数组str全由大小写字母字符组成。请补充函数fun(),该函数的功能是:把str中的字母转换成紧接着的下一个字母,如果原来的字母为‘z’或‘Z’,则相应地转换成‘a’或‘A’,结果仍保存在原数组中。 例如,输入“StudentZz”,则输出“TuvefouAa”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #define N 80 void fun(char s[]) { int i; for(i=0; 【1】 ;i++) {if(s[i]==’z’||s[i]=’Z’) s[i]-= 【2】 ;else s[i]+= 【3】 ; } }main() { char str[N]; clrscr(); printf("\n Input a string:\n"); gets(str); printf("\n*** original string***\n"); puts(str); fun(str); printf("\n*** new string***\n"); puts(str); }
参考答案:[1]s[i]!=’\0’ [2]25 [3]1
解析: 填空1:for循环的执行条件是当前字符不为’\0’,即还没有到字符串的最后一个字符’\0’。填空2:如果原来的字母是‘z’ 或‘Z’,则要转换成‘a’ 或‘A’。也就是把ASCII码减去25。填空3:除了字母‘z’ 或‘Z’,其他字母都转换成下一个字母,所以把ASCII码加上1。