2011年计算机二级考试C语言十套上机题3.docVIP

2011年计算机二级考试C语言十套上机题3.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2011年计算机二级考试C语言十套上机题3

2011年计算机二级考试C语言十套上机题(3) 1.填空题   请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。注意:不区分大小写,不能使用字符串库函数。   例如,输入:“A=abc+5*c”,结果为:a=2,b=1,c=2。   注意:部分源程序给出如下。   请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。   试题程序:   #include   #include   #define N 100   void fun(char *tt,int alf[])   {   int i;   char *p=tt;   for(i=0;i26;i++)   【1】;   while(*p)   {   if(*p=A*p=Z)   【2】;   if(*p=a*p=z)   alf[*p-a]++;   【3】;   }   }   main()   {   char str[N];   char a=a;   int alf[26],k;   clrscr();   printf(\nPlease enter a char string:);   scanf(%s,str);   printf(\n**The original string**\n);   puts(str);   fun(str,alf);   printf(\n**The number of letter**\n);   for(k=0;k26;k++)   {   if(k%5==0)   printf(\n);   printf(%c=%d ,a+k,alf[k]);   }   printf(\n);   }   答案及评析:   【1】alf[i]=0 【2】*p+=32 【3】p++   【解析】填空1:数组alf[26]用来存放字母字符出现的次数,在使用之前需要清零。填空2:题目要求不区分大小写,所以可以先将所有的大写字母都转换为对应的小写字母,然后一并记录出现的次数。将大写字母转换为对应的小写字母,只需将ASCII码加上32就可以了。填空3:指针p指向字符串tt,通过p自加1来移动指针,访问字符串中的所有字符。 2. 改错题   下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为4576235时,t中的数为4725。   请改正程序中的错误,使它能得到正确结果。   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。   试题程序:   #include   #include   /**********************found***********************/   int fun(long s,long *t)   {   long s1=10;   *t=s;   while(s0)   {   /**********************found***********************/   s=s0;   *t=s*s1+*t;   s1=s1*10;   }   }   main()   {   long s, t;   clrscr();   printf(\nPlease enter s: );   scanf(%ld,s);   fun(s,t);   printf(The result is: %ld\n ,t);   }   答案及评析:   (1)错误:int fun(long s,long *t)   正确:void fun(long s,long *t)   (2)错误:s=s0;   正确:s=s/100;   【解析】错误1:函数由指针来完成参数的传递,所以没有返回值,应定义函数的类型为void。   错误2:此处要注意特殊运算符号%--取余和/--整除的区别。将一个数整除100则可得到由其百位数以上的数组成的新数字,将一个数整除100取余则可得到由十位数和个位数组成的新数。 3. 编程题   请编写一个函数fun(),它的功能是:求出一个4×M整型二维数组中最小元素的值,并将此值返回调用函数。   注意:部分源程序给出如下。   请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。   试题程序:   #define M 4   #include   fun (int a[][M])   {   }   main()   {   int arr[4][M]={11,3,9,35,42,-4,24,32,6,48,

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档