2019计算机三级网络技术练习题及答案4
>>全国计算机等级考试:2019计算机三级网络技术练习题及答案4
下列程序的功能是:把s字符串中的所有字母改成该字母的下一个字母,字母z改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( ),读取in60.dat中的字符串,并把结果输出到文件out60.dat中。
例如:s字符串中原有的内容为Mn 123Zxy,则调用该函数后,结果为No 123Ayz。
注意:部分源程序已给出。
请勿改动主函数main( )和输入输出函数readwriteDAT( )的内容。
试题程序:
#include
#include
#include
#include
#define N 81
void readwriteDAT();
void chg(char *s)
{
}
void main()
{
char a[N];
system("CLS");
printf("Enter a string:");
gets(a);
printf("The original string is :");
puts(a);
chg(a);
printf("The string after modified :");
puts(a);
readwriteDAT();
}
void readwriteDAT()
{
int i;
char a[N];
FILE *rf,*wf;
rf=fopen("in60.dat","r");
wf=fopen("out60.dat","w");
for(i=0;i<10;i++)
{
fgets(a,81,rf);
chg(a);
fprintf(wf,"%s",a);
}
fclose(rf);
fclose(wf);
}
【答案】
void chg(char *s)
{
while(*s) /*若当前字符不是字符串结束符,则循环一直进行*/
if(*s=='z'||*s=='Z') /*将当前字母是'z'或者'Z'*/
{
*s-=25; /*则分别将其改成'a'或'A'*/
s++; /*取下一个字母*/
}
else if(*s>='a'&& *s<='y') /*若是小写字母,则改成该字母的下一个字母*/
{
*s+=1;
s++; /*取下一个字母*/
}
else if(*s>='A'&& *s<='Y') /*若是大写字母,则改成该字母的下一个字母*/
{
*s+=1;
s++; /*取下一个字母*/
}
else s++; /*取下一个字母*/
}
【解析】本题考查用指针访问字符串的方法。
这里利用一个while循环对从字符串中逐个获取的字符进行判断,如果当前字符是小写字母'z'或'Z', 则相应地改成'a'或者'A'。如果不是,再接着判断是否是字母,如果是,就改成该字母的下一个字母,否则不作改变。
以上就是今天小编的分享,有了小编的帮助,你们的备考资料是不会欠缺的。赶紧登录坦途网计算机等级考试频道获取更多计算机等级考试模拟题和知识点总结吧。想要获得好成绩,就要多积累多练习,这样你们才可以顺利上岸!
温馨提示:因考试政策、内容不断变化与调整,坦途网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!