下列给定程序中,函数fun()的功能是;将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为 a),其他字符不变。 请改正函数fun()中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改

admin2013-06-12  27

问题 下列给定程序中,函数fun()的功能是;将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为 a),其他字符不变。
   请改正函数fun()中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include <stdio.h>
   #include <ctype.h>
   #include <conio.h>
   void fun(char *s)
   /*************found**************/
   { while(*s!=’@’)
     { if(*s>=’A’ &*s<=’z’||*s>=’a’&&*s<=’z’)
       {if(*s==’Z’)    *S=’A’;
       else  if(*S==’z’)    *s=’a’;
       else  *s+=1;
       }
   /*************found**************/
       (*s)++;
     }
   }
   main()
   { char s[80];
     clrscr();
     printf("\n Enter a string with length <80:\n\n");gets(s);
     printf("\n The string:\n\n");puts(s);
     fun(s);
     printf("\n\n The Cords:\n\n");puts(s);
   }

选项

答案(1)错误:while(*s!=’@’) 正确:while(*s) (2)错误:(*s)++; 正确:s++;

解析 根据题目要求,可对字符串所有字母进行遍历。对每一个字母,若该字母为’z’或’Z’,将该字母改成’a’或’A’,即 ASCII码值减25,当然也可以用题目中的if语句来实现转换。若该字母不是’z’或’Z’,则该字母的ASCII码值加1;对字符串所有字符重复以上过程即可得到题目要求的结果,可用循环语句和条件语句来实现。
转载请注明原文地址:https://kaotiyun.com/show/grJp777K
0

最新回复(0)