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

admin2020-06-02  26

问题 给定程序MODI1.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*********/
for(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[1 00];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://jikaoti.com/ti/auG0FFFM
0

最新回复(0)