填空题 从键盘输入一组小写字母,保存在字符数组str中。请补充函数fun(),该函数的功能是:把字符数组str中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。 例如,输入“acegikm”,输出“aCeGiKm”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> #define N 80 void fun (char s[]) { int i=0; while ({{U}} 【1】 {{/U}}) { if (i%2!=0) s[i]-={{U}} 【2】 {{/U}}; {{U}} 【3】 {{/U}}; } } main () { char str [N]; clrscr (); printf("/n Input a string:/n"); gets (str); printf("/n*** original string ***/n"); puts (str); fun (str); printf ("In*** new string ***/n"); puts (str); }
  • 1、
【正确答案】 1、[1] s[i]!= '/0'或s[i] [2] 32 或'a'-'A' [3] i++    
【答案解析】[解析] 填空1:while循环的条件是当前参加判断的字符不为‘/0’,即还没有到字符串的最后一个字符。填空2:将小写字母转换为对应的大写字母的力法是,将字母的ASCII码减去32。‘a’-‘A’的结果就是32。填空3:通过i++依次访问字符串s中的各个字符。