填空题 1.  请补充函数proc(),该函数的功能是:只保留字符串中的大写字母,删除其他字符,结果仍保存在原来的字符串中,由全局变量m对删除后字符串的长度进行保存。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
    试题程序:
    #include<stdlib.h>
    #include<stdlib.h>
    #include<conio.h>
    int m;
    void proc(char *str)
    {
    int i=0,j=0;
    char *p=str;
    while(*(p+i))
    {
    if(*(p+i)>='A'&&*(p+i)<='Z')
    {
    ______;
    }
    ______;
    }
    str[j]='\0';
    ______;
    }
    void main()
    {
    char str[80];
    system("CLS");
    printf("\nEnter a string:");
    gets(str);
    printf("\n\nThe string is:%s\n",str);
    proc(str);
    printf("\n\nThe string of changing is:%s\n",str);
    printf("\n\nThe length of changed string is:%d\n",m);
    }
  • 1、
【正确答案】 1、str[j++]=*(p+i)  
   i++  
   m=j    
【答案解析】 根据题目要求,将字符串中的每一个大写字母放在原来的字符串中,因此,空一处填“str[j++]=*(p+i)”;变量i存放字符串中每一个字符对于字符串头指针的偏移量,每作一次循环要向后移动一个字符,因此,空二处填“i++”;变量j为新的字符串下标的最大值,也就是字符串的长度,题目要求字符串的长度由全局变量进行保存,因此,空三处填“m=j”。