填空题 请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。 例如:当str[N]“123 abcdef ABCDEF!”,结果输出: “123ABCDEFABCDEF!”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #include<stdlib.h> #include<conio.h> #define N 80 void main() { int j; char str[N]="123abcdef ABCDEF!"; char *pf=str; clrscr(); printf("*** original string ***/n"); puts(str); {{U}} 【1】 {{/U}}; while(*(pf+j)). { if(*(pf+j)>='a'&&* (pf+j)<='z') { *(pf+j)={{U}} 【2】 {{/U}}; j++; } else {{U}} 【3】 {{/U}}; } printf("****** new string ******/n"); puts(str); system("pause"); }
  • 1、
【正确答案】 1、【1】j=0 【2】*(pf+j)-32 【3】j++    
【答案解析】[解析]填空1:变量j声明时没有初始化,而后面程序用到j,所以在这里对j初始化为0。填空2:将小写字母转换为对应的大写字母的方法是,小写字母的ASCII码减去32,得到对应的大写字母的ASCII码。填空3:如果当前字符不是小写字母,则不做任何处理,使指针指向下一个字符,准备进行判断。