填空题 数组str全由大小写字母字符组成。请补充函数proc(),该函数的功能是:把str中的字母转换成紧接着的下一个字母,如果原来的字母为"b"或"B",则相应地转换成"c"或"C",结果仍保存在原数组中。
例如,输入“String”,则输出“Tusjoh”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#define M 80
void proc(char str[])
{
int i;
for(i=0; 1; i++)
{
if(str[i]=="z"|| str[i]=="Z")
str[i]-= 2;
else
str[i]+= 3;
}
}
void main()
{
char str[M];
system("CLS");
printf("/n Input a string:/n");
gets(str);
printf("n***original string***/n");
puts(str);
proc(str);
printf("/n***new string***/n");
puts(str);
}
【正确答案】
【答案解析】str[i]!="/0" 25 1[解析] 要将字符串str中的字母转换成紧接着的下一个字母,需要转换str中从第一个到最后一个的字母,因此,第一处填“str[i]!="/0"”;每一个字母的下一个字母比上一个字母的ASCII值大1,只有字母z和Z例外,因为字母z和Z的下一个字母为a和A,其ASCII码值比字母z和Z小25,因此,第二处填“25”;第三处填“1”。