填空题
1. 请补充main()函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,将结果保存在原来的字符串中。
例如,当str[M]="abcdef123ABCD"时,结果输出为“ABCDEF123ABCD”。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。
试题程序: #include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define M 80
void main()
{
int j;
char str[M]="abcdefl23ABCD";
char *pf= str;
system("CLS");
printf("***original string***\n");
puts(str);
______
while(*(pf+j)
{
if(*(pf+j)>='a'&&*(pf+j)<='z')
{
*(pf+j)=______;
______;
}
else
j++;
}
printf("****new string****\n");
puts(str);
system("pause");}
【正确答案】
1、j=0
*(pf+j)-32
j++
【答案解析】 由程序中可知,变量j为字符数组的下标,其初始值为0,因此,第一空处填“j=0”;大写字母的ASCII码值比小写字母的小32,要将小写字母变为大写字母,因此,第二空处填“*(pf+j)-32”;要将字符串数组中的所有小写字母变为大写字母,需要检查其中的每一个字符,因此,第三空处填“j++”。