问题 问答题

请编写一个函数void fun(char*ss),其功能是:将字符串 ss中所有下标为偶数位置上的字母转化为大写(若该位置上不是字母,则不转换)。 例如,若输入abc4Efg,则应输出AbC4EfG。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio. h> #include<stdio. h> void fun ( char *ss) { } main ( ) { char tt[51]; clrscr (); printf("Please enter an character stringwithin 50 characters:\n"); gets (tt); printf ("\n\nAfter changing, the string\n %s", tt); fun (tt); printf("\nbecomes\n \%s",tt); }

答案

参考答案:

解析:void fun ( char *ss) {int i; for(i=0;ss[i]!=’\0’;i++) { if(i%2==0 && ss [i]>=’a’ && ss [i]<=’z’) /*将ss所指字符串中所有下标为偶数位置的字母转换成大写*/ ss[i]==ss[i]-32;} /*大写字母比相应的小写字母的ASCII码值小32*/ } 从C语言的学习中我们知道,只要将小写字母减去32则转换成大写字母,将大写字母加上32则转成小写字母,该程序使用if语句实现该功能转换的。

判断题
单项选择题