填空题 数组s全由字母字符组成,请补充fun()函数,该函数的功能是:把s中的字母转换成紧接着的下一个字母,如果原来的字母为“a”或“A”,则相应地转换成“b”或“B”,结果仍保存在原数组中。
例如,输入“aAZut”,则输出“bBAvu”。
注意:部分源程序给出如下。
请勿改动main()函数与其他函数中的任何内容,仅在fun()函数的横线上填写所需的若干表达式或语句。
试题程序:
#include<stdio.h>
#define N 100
void fun(char p[])
{
int j;
for(j=0; 1; j++)
if(p[j]=="z"||p[j]=="Z")
p[j]-= 2;
else
p[j]+= 3;
}
void main()
{
char s[N];
printf("Please Input a string: /n");
gets(s);
printf("The original string: /n");
puts(s);
printf("The new string: /n");
puts(s);
}
【正确答案】
【答案解析】p[j]!="/0" 25 1 [解析] 本题函数的功能是把S中的字母转换成紧接着的下一个字母,当是最后一个字符时,下一个字符是起始的第一个字符,所以ASCII码差25,其他仅相差1。
所以第一空:当不是尾符时就进行转换,应填:“p[j]!="/0"”。
第二空:这里是字符为Z或z的情况,也就是最后一个字符,所以ASCII码值相差25。
第三空:在不是末字符的情况下,其他ASCII码的值相差1。