使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,fun()函数的功能是分别统计字符串中大写字母和小写字母的个数。 例如,给字符串s输入AAaaBBbb123CCcccd,则

admin2023-02-27  16

问题 使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,fun()函数的功能是分别统计字符串中大写字母和小写字母的个数。
    例如,给字符串s输入AAaaBBbb123CCcccd,则应输出:
  upper=6,lower=8
  请改正程序中的错误,使它得出正确的结果。
  注意:部分源程序在文件modil1.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!
   试题程序:
1 #include<stdio.h>
2  /*********found*********/
3 void fun(char * s,int a,int b)
4 {
5  while(*s)
6  {if(*s>=’A’&&*s<=’Z’)
7 /*********found*********/
8     * a=a+1;
9    if(*s>=’a’&&*s<=’z’)
10 /*********found*********/
11    *b=b+1;
12    s++;
13  }
14 }
15 main()
16 {char s[100];int upper=0,  lower=0;
17  printf("\nPlease enter astring:");
18  gets(s);
19  fun(s,&upper,&lower);
20  printf("\n upper=%d lower=%d\n",upper,lower);
21 }

选项

答案(1)void fun(char*s,int*a,int*b) (2)*a=*a+1; (3)*b=*b+1;

解析 (1)由主函数中调用fun()函数的语句fun(s,&upper,&lower)可知,函数的形参为指针变量,所以应该为* a和*b。
    (2)*a的作用是记录大写字母的个数,此处的作用是对*a累加1,所以应改为*a=*a+1;。
    (3)*b的作用是记录小写字母的个数,此处的作用是对*b累加1,所以应改为*b=*b+1;。  
转载请注明原文地址:https://kaotiyun.com/show/1J0D777K
0

相关试题推荐
最新回复(0)