2011年计算机二级考试C语言十套上机题.docx_第1页
2011年计算机二级考试C语言十套上机题.docx_第2页
2011年计算机二级考试C语言十套上机题.docx_第3页
2011年计算机二级考试C语言十套上机题.docx_第4页
2011年计算机二级考试C语言十套上机题.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2011年计算机二级考试C语言十套上机题1.填空题请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。例如:str1=“How do”,str2=“ you do?”,结果输出:How do you do?注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include#include#define N 40void fun(char *str1,char *str2)int i=0;char *p1=str1;char *p2=str2;while(【1】)i+;for( ;【2】;i+)*(p1+i)=【3】;*(p1+i)=0;main()char str1N,str2N;clrscr();printf(*Input the string str1 &str2*n);printf( nstr1:);gets(str1);printf( nstr2:);gets(str2);printf(*The string str1 & str2*n);puts(str1);puts(str2);fun(str1,str2);printf(*The new string *n);puts(str1);答案及评析:【1】*(p1+i) 【2】*p2 【3】*p2+【解析】填空1:变量i用来记录字符串str1的长度,当指针指到字符串str1结束标志符0时,while循环结束,变量i停止累加。填空2:指针p2指向字符串str2,通过for循环将字符串str2接在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符0。填空3:指针p2最初指向字符串str2的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将字符串str2接在str1后面的功能。1.填空题请补充函数fun(),该函数的功能是求一维数组xN的平均值,并对所得结果进行四舍五入(保留两位小数)。例如:当x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0,结果为:avg=15.030000。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include#includedouble fun(double x10)int i;long t;double avg=0.0;double sum=0.0;for(i=0;i10;i+)【1】;avg=sum/10;avg=【2】;t=【3】;avg=(double)t/100;return avg;main()double avg,x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0;int i;clrscr();printf(nThe original data is :n);for(i=0;i10;i+)printf(%6.1f,xi);printf(nn);avg=fun(x);printf(average=%fnn,avg);答案及评析:【1】sum+=xi 【2】avg*1000 【3】(avg+5)/10【解析】填空1:通过for循环求出10个数的累加和,存于变量sum中。填空2:为了实现四舍五入保留两位小数的功能,应将平均值先扩大1000倍。填空3:将平均值加上5,再除以10,实现四舍五入的功能。1.填空题请补充函数fun(),该函数的功能是:从a到z统计一个字符串中所有字母字符各自出现的次数,结果保存在数组alf中。注意:不区分大小写,不能使用字符串库函数。例如,输入:“A=abc+5*c”,结果为:a=2,b=1,c=2。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include#include#define N 100void fun(char *tt,int alf)int i;char *p=tt;for(i=0;i=A&*p=a&*p=z)alf*p-a+;【3】;main()char strN;char a=a;int alf26,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,alfk);printf(n);答案及评析:【1】alfi=0 【2】*p+=32 【3】p+【解析】填空1:数组alf26用来存放字母字符出现的次数,在使用之前需要清零。填空2:题目要求不区分大小写,所以可以先将所有的大写字母都转换为对应的小写字母,然后一并记录出现的次数。将大写字母转换为对应的小写字母,只需将ASCII码加上32就可以了。填空3:指针p指向字符串tt,通过p自加1来移动指针,访问字符串中的所有字符。1.填空题请补充函数fun(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。例如,输入aeiouAOUpqrt,结果为A:2 E:1 I:1 O:2 U:2 other:4。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include#include#define N 100void fun(char *str,int bb)char *p=str;int i=0;for(i=0;i6;i+)【1】;while(*p)switch(*p)case A:case a:bb0+;break;case E:case e:bb1+;break;case I:case i:bb2+;break;case O:case o:bb3+;break;case U:case u:bb4+;break;default:【2】;【3】main()char strN,ss6=AEIOU;int i;int bb6;clrscr();printf(Input a string: n);gets(str);printf(the string is: n);puts(str);fun(str,bb);for(i=0;i5;i+)printf(n%c:%d,ssi,bbi);printf(nother:%d,bbi);答案及评析:【1】bbi=0 【2】bb5+ 【3】p+;【解析】填空1:数组bb6 用来存放5个元音字母和其他字符的个数,在使用之前需要清零。填空2:数组元素bb5 用来存放其他字符的个数,当指针p所指的字符不是元音字母时,则认为是其他字符,bb5加1。填空3:指针p指向字符串str,通过p自加1来移动指针,访问字符串中的所有字符。1.填空题 str是全部由小写字母字符和空格字符组成的字符串,由num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。 例如:str=“how do you do”,结果为:num=4。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #define N 80 void fun(char *s,int *num) int i,n=0; for(i=0;【1】;i+) if(si=a&si=z&(si+1= |si+1=0) 【2】; 【3】; main() char strN; int num=0; printf(Enter a string:n); gets(str); while(strnum) num+; fun(str,&num); printf(The number of word is : %dnn,num); 答案及评析:【1】i*num 【2】n+ 【3】*num=n 【解析】填空1:*num传入字符串的长度,所以for循环中变量i的变化范围是从0到*num-1。填空2:如果当前判断的字符是小写字母,并且它的下一个字符是空格或者是字符串结束标记符,则表示当前字符是一个单词的最后一个字母,统计单词数的变量n要加上1。填空3:题目要求结果由变量num传回,所以要将n的值赋给指针num所指的单元。 1.填空题 str是一个由数字和字母字符组成的字符串,由变量num传入字符串长度。请补充函数fun(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。 例如:str=“Bcd123e456hui890”,结果为:123456890。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #define N 80 int bbN; int fun(char s,int bb,int num) int i,n=0; for(i=0;inum;i+) if(【1】) bbn=【2】; n+; return 【3】; main() char strN; int num=0,n,i; printf(Enter a string:n); gets(str); while(strnum) num+; n=fun(str,bb,num); printf(nbb= ); for(i=0;i= 0 &si5) 【2】; return【3】; main() int xxN; int yyN; int num=0,n=0,i=0; printf(Input number :n); do scanf(%u,&xxnum); while(xxnum+!=0); n=fun(xx,yy,num); printf(nyy=); for(i=0;iprintf(%u ,yyi); 答案及评析:【1】xxi 【2】bbn+=xxi 【3】n 【解析】填空1:将一个整数对10取余,则得到这个整数的个位数,将一个整数除以10再对10取余,则得到这个整数的十位数。由程序可以看出,变量s保存了整数的十位数,所以应该将整数的个位数保存于变量g中。填空2:当整数的个位与十位的数字之和大于5时,则将这个整数存于数组bb中,同时,变量n记录了满足条件的无符号整数的个数。填空3:题目要求满足条件的无符号整数的个数由fun函数返回,所以函数返回n。 1.填空题 请补充函数fun(),该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #include char *fun(int n) int g,s,b; g=n%10; s=n/10%10; b=【1】; if(g+b)=s) return【2】; else return【3】; main() int num=0; clrscr(); printf(*Input data *n); scanf(%d,&num); printf(nnn); printf(* The result *n); printf(nnn%s,fun(num); 答案及评析:【1】n/100%10 【2】yes! 【3】no! 【解析】填空1:由程序可以知道,变量g保存了整数的个位数,变量s保存了整数的十位数,所以变量b应该保存整数的百位数。将整数除以100再对10取余,则得到这个整数的百位数。填空2:当个位数字和百位数字之和等于十位数字时,则返回yes!。填空3:当个位数字和百位数字之和不等于十位数字时,则返回no!。 1.填空题 请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定长度的子字符串。其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。 例如:当str1=“cdefghij”,然后输入4,则str2=“cdef”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #define LEN 80 main() char str1LEN,str2LEN; int n,i; clrscr(); printf(Enter the string:n); gets(str1); printf(Enter the position of the string deleted:); scanf(【1】); for(i=0;in;i+) 【2】 str2i=0; printf(The new string is:%sn,【3】); 答案及评析:【1】%d,&n 【2】str2i=str1i; 【3】str2 【解析】填空1:本题考查对标准输入函数scanf()的调用格式,由后面的程序可以知道,变量n保存了要截取的字符数,注意在n前面不要忘了取址符 &。填空2:截取前n个字符,就是将字符串str1的前n个字符依次赋给字符串str2的前n个字符。填空3:本题考查对标准输出函数printf()的调用格式,根据题意,应输出截取后的字符串,即字符串str2。 1.填空题 请补充main函数,该函数的功能是:从键盘输入一个字符串并保存在字符str1中,把字符串str1中下标为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论