给定程序MODll.C中,函数fun的功能是:分别统计出形参str所指的字符串中的大写字母和小写字母的个数,并传递回主函数输出。例如,若str所指的内容为"BAY23Kill",其中大写字母数为4,小写字母数为3,则应输出:c0=4,c1=3。  请改正函

admin2022-04-02  76

问题 给定程序MODll.C中,函数fun的功能是:分别统计出形参str所指的字符串中的大写字母和小写字母的个数,并传递回主函数输出。例如,若str所指的内容为"BAY23Kill",其中大写字母数为4,小写字母数为3,则应输出:c0=4,c1=3。
 请改正函数fun中指定部位的错误,使它能得出正确的结果。
 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
 #include<stdio.h>
 #include<string.h>
 #pragma warning(disable:4996)
 void fun(char *str,int *c0,int *c1){
   int k;
 /**********found**********/
 c0=c1=0;
 /**********found**********/
 f3or(k=1;k<strlen(str);k++)
 {
 /**********found**********/
   if((str[k]>=’A’)&&(str[k]<=’Z’))*c0++;
   if((str[k]>=’a’)&&(str[k]<=’z’))(*c1)++;
   }
 }

 main()
 {char str[100];int c0,c1;
  printf("input string:");
  scanf("%s",str);
  fun(str,&c0,&c1);
  printf("c0=%d,c1=%d\n",c0,c1);
 }

选项

答案(1)*c0=*c1=0;  (2)for(k=0;k<strlen(str);k++)  (3)(*c0)++;

解析 函数fun()的参数分别是str,c0,c1,其中str指向待处理的字符串,c0所指变量用来统计字符串中大写字母的个数,c1所指变量用来统计字符串中小写字母的个数。首先对c0和c1所指变量赋初值为0,然后遍历字符串str,若当前字符str的ASCII码在‘A’到‘z’之间,则对c0所指变量的值自增1,若当前字符str的ASCII码在‘a’到‘z’之间,则对c1所指变量的值自增1,由于c0和c1都是指针变量,所以在使用地址中存储的数据时,需要对它们进行解引用。
转载请注明原文地址:https://kaotiyun.com/show/qhkp777K
0

最新回复(0)