全国计算机等级考试二级C语言上机考试试题详解.doc

上传人:豆**** 文档编号:33412264 上传时间:2022-08-11 格式:DOC 页数:253 大小:410.50KB
返回 下载 相关 举报
全国计算机等级考试二级C语言上机考试试题详解.doc_第1页
第1页 / 共253页
全国计算机等级考试二级C语言上机考试试题详解.doc_第2页
第2页 / 共253页
点击查看更多>>
资源描述

《全国计算机等级考试二级C语言上机考试试题详解.doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言上机考试试题详解.doc(253页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date全国计算机等级考试二级C语言上机考试试题详解上机考试试题第四部分 全国计算机等级考试二级C语言上机考试试题详解第7章全国计算机等级考试二级C语言上机考试试题第1套填空题:请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。 例如:当strN=“123 abcdef ABCDEF!”时,结果输

2、出:“123ABCDEFABCDEF!”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include #define N 80 main() int i; char strN=123abcdef ABCDEF!; char *pf=str; printf(*original string*n); puts(str); 【1】 ; while(*(pf+j) if(*(pf+j)=a&*(pf+j)=z) *(pf+j)= 【2】 ;j+; else 【3】 ;

3、 printf(*new string*n); puts(str); system(pause);改错题:下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASC值小或相等的字符依次存放到c数组中,形成一个新的字符串。 例如:a中的字符串为fshADfg,b中的字符串为sdAEdi, 则c中的字符串应为fdAADf。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include void fun(char *p,char *q,char *c) int k=0; wh

4、ile(*p|*q) /*found*/ if (*p=*q) ck=*q; else ck=*p; if(*p) p+; if(*q) q+; /*found*/ K+ main() char a10=fshADfg,b10=sdAEdi,c80=0; fun(a,b,c); printf(The string a:);puts(a); printf(The string b:);puts(b); printf(The result:);puts(C);编程题:请编写函数fun(),其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个

5、位和十位上,b数的十位和个位数依次放出c数的百位和千位上。 例如,当a=16,b=35, 调用该函数后,c=5361。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include void fun(int a,int b,long *c) main() int a,b;long c; printf(Input a,b;); scanf(dd,&a,&b); fun(a,b,&c); printf(The result is:ldln,c);第2套填空题:请补充main函数,该函数的功能是求方程ax2+b

6、x+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式 (disc=b2-4ac)小于0,则要求重新输入a、b、c的值。 例如,当a=1,b=2,c=1时,方程的两个根分别是x1-1.00,x2=-1.00。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#includemath.h#includemain() float a,b,c,disc,xl,x2;do printf(Input a,b,c:);scanf(f,f,f,&a,&b,&c);disc=b*b-4*a*c;if(dis

7、c0)printf(disc=fn lnput again!n,disc);while( 【1】 );printf(*the result*n1);x1=【2】;x2=【3】;printf(nx1=6.2fnx2=6.2fn,x1,x2);改错题 :下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。y=l-1/(22)+1/(33)-1/(44)+(-1)(m+1)/(mm)例如:m中的值为5,则应输出0.838611。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#includedou

8、ble fun(int m) double y=1.0;/*found*/int j=1, i;for(i=2;i=m;i+) j=-1*j;/*found*/y+=1/(i*i);return(y);main() int n=5;printf(nThe result islfn,fun(n);编程题:请编一个函数void fun(int ttMN,int ppN,tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意;部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的

9、若干语句。试题程序:#include #include #define M 3#define N 4void fun(int ttMN,int pN)main() int tMN=68,32,54,12,14,24,88,58,42,22,44,56;int pN,i,j,k;printf(The riginal data is:n);for(i=0;iM;i+) for(j=0;jN;j+) printf(6d,tij);printf(n);fun(t,p);printf(nThe result is:n);for(k=0;kN;k+)printf(4d,pk);printf(n);第3套填

10、空题:数组xxN保存着一组3位数的无符号正整数,其元素的个数通过变量num传入函数fun()。请补充函数fun(),该函数的功能是:从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组中,其个数由函数fun()返回。 例如:当xx8=135,78,72,32,222,424,333,141,541时,bb6=787,232,222,424,333,141。 注意:部分源程序给出如下. 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #define N 1000 int fun(int xx,i

11、nt bb,int num) int i,n=0; int g,b; for(i=0;inum;i+) g= 【1】 ;b=xxi/100;if(g=b) 【2】 ; return 【3】 ; main() int xx8=135,787,232,222,424,333,141,541,yyN; int num=8,n=0,i=0; printf(*original data*n); for(i=0;inum;i+) printf(u,xxi); printf(nnn); n=fun(xx,YY,num); printf(nyy=); for(i=0;in;i+) printf(u,yyi);

12、改错题:下列给定程序中函数fun()的功能是计算1/n!的值。 例如:给n输入5,则输出0.008333。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include /*found*/ int fun(int n) double result=1.0; if(n=0) return 1.0; while(n1&n170) /*found*/ result*=n+; result=1/result; return result; main() int n; printf(Input N:); sc

13、anf(d,&n); printf(”n1/d!=lfn,n,fun(n);编程题:编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。 例如:n为1000时,函数值应为s=96.979379。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include double fun(int n) main() int n=1000; printf(s=fn,fun(1000);第4套填空题:给定程序的功能是判断

14、字符ch是否与串str中的某个字符相同;若相同,什么也不做,若不同,则插在串的最后。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!试题程序:#include #include void fun(char*str, char ch )while (*str & *str != ch ) str+;if( *str【1】ch )str0 =ch;【2】= 0;main( )chars81,c;printf( nplease enter a string:n );gets ( s );printf (n please enter t

15、he character to search : );c = getchar();fun(【3】) ;printf( nthe resultis %sn,s); 改错题:下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。 例如:输入352,则输出应该是38;若输入328,则输出应该是77。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include long fun(long num) /*found*/ long k=1; do k+=(num10)*(num10);

16、num/=10; /*found*/ while(num) return(k); main() long n; printf(Please enter a number:); scanf(ld,an); printf(nldn,fun(n);编程题:请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacai数列F(n)的定义为:F(0)=0,F【1】=1, F(n)=F(n-1)+F(n-2) 例如:t=1000时,函数值为987。 注意:部分源程序给出如下: 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入

17、所编写的若干语句。 试题程序: #include #include #include int fun(int t) main() int n; n=1000; printf(n=d,f=dn,n,fun(n); 第5套填空题 :请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2倒置后接在字符串strl后面。 例如:strl=“How do”,str2=“?od uoy”,结果输出:“How do you do?”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include #

18、include #define N 40void fun(char *strl,char *str2) int i=0, j=0, k=0, n; char ch,*pl=strl,*p2=str2; while (* (pl+i) i+; while (* (p2+j) ) j+; n= 【1】 ; for (; k=j/2; k+, j-) ch=* (p2+k); * (p2+k) =* (p2+j); * (p2+j) =ch; 【2】 ; for(; 【3】 ;i+) * (pl+i)=*p2+; * (pl+i) = 0; main ( ) char strl N, str2 N;

19、 int m, n, k; printf (*Input the string strl & str2*n); printf (nstrl: ); gets (strl); printf (nstr2: ); gets (str2); printf (* The string strl & str2 *n); puts (strl); puts (str2); fun(str1,str2); printf(“*The new string*n”); puts(str1);改错题:下列给定程序中,函数fun()的功能是找出100n(n不大于1000)之间百位数字加十位数字等于个位数字的所有整数,

20、把这些整数放在s所指的数组中,个数作为函数值返回。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#define N 100int fun(int *s, int n) int i, j=0, k,a,b,c; for(i=100; in; i+)* k=n; a=k%10; k/=10; b=k%10; c=k/10; if (a=b+c)* s j=i; return j;main ( ) int aN, n,num=0, i; do printf(nEnter n( 1000); num= fun (

21、a, n); printf (nnThe result:n); for(i=0; inum; i+) printf ( %5d, a i ); printf (nn); 编程题:程序定义了NN的二维数组,并在主函数中自动赋值。请编写函数fun(int aN,int n),该函数的功能是使数组左下半三角元素中的值加上n。例如:若n的值为3,a数组中的值为 a=2 5 4 1 6 9 5 3 7 则返回主程序后a数组中的值应为 5 5 4 4 9 9 8 6 10 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#

22、include #include #include #define N 5fun(int aN, int n)main () int aNN,n, i,j;printf(* The array *n);for(i=0; iN; i+) /*产生一个随机5*5矩阵*/ for(j=0; j=5); /*产生一个小于5的随机数n* /printf (n=%4dn, n); fun (a, n);printf (*THE RESULT*n); for(i=0; iN; i+) for (j=0; jN; j+) printf (%4d,ai j ); printf (n); 第6套填空题 :请补充函

23、数fun(),该函数的功能是:按0到9统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。 例如:输入“x=112385713.456+0.909*bc”,结果为:1=3,3=2,5=2,7=1,9=2。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include#define N 1000void fun(char *tt,int num) int i,j,bb10; char *p=tt; for (i=0; i= 0 &*p= 9 ) 【2】 ;

24、 p+; for (i=l, j=0; i10; i=i+2, j+) 【3】 ;main ( ) char str N; int num10 ,k ; printf (nPlease enter a char string: ); gets (str); printf(n*The original string*n); puts (str); fun (str, num); printf (n*The number of letter*n); for (k=0; k5; k+) printf (n); print f (%d=%d, 2*k+1, num k ); printf (n); r

25、eturn;改错题:下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a0中的数对调,次最小数和a1中的数对调。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:# include #include #define N 20void fun(int *a, int n) int i,m,t,k;* for(i=0; in; i+) m=i; for(k=i; kn; k+) if (akam)* k=m; t=a i; ai=am; am=t; main ( ) int x,bN=ll, 5, 1

26、2,0,3, 6, 9, 7, 10,8,n=10, i; for(i=0; in; i+) printf (%d ,bi ); printf (n); fun (b, n); for(i=0; in; i+) printf(%d , bi); printf (n);编程题:m个人的成绩存放在score数组中,请编写函数fun(),它的功能是将高于平均分的人数作为函数值返回,将高于平均分的分数放在up所指的数组中。 例如,当score数组中的数据为24,35,88,76,90,54,59,66,96时,函数返回的人数应该是5,up中的数据应为88,76,90,66,96。 注意:部分源程序给出

27、如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include #include #include int fun(int score,int m, int up)main ( ) int i, n, up9; int score 9 =24,35, 88, 76, 90,54,59,66,96; n=fun (score, 9, up); printf (nup to the average score are:); for (i=0; in; i+) printf(%d ,upi );第7套填空题 :请补充main函数,该函数

28、的功能是:从字符串str中取出所有数字字符,并分别计数,然后把结果保存在数组b中并输出,把其他字符保存在b10中。 例如:当strl=“abl23456789cde090”时,结果为: 0:2 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:2 0ther charactor:5 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序:#include#includemain ( ) int i,bll; char *str=ab123456789cde090,*p=str ; print

29、f(* the origial data *n); puts (str); for (i=0; ill; i+) bi=0; while (*p) switch( 【1】 ) case 0:b0+;break; case 1:b1+;break; case 2:b2+;break; case 3:b3+;break; case 4:b4+;break; case 5:b5+;break; case 6:b6+;break; case 7:b7+;break; case 8:b8+;break; case 9:b9+;break; 【2】; 【3】; printf (* the result *

30、n); for (i=0; il0; i+) printf (n%d:%d, i,bi );print f ( nother charactor:%d, b i ); 改错题:下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。若high的值为100,则函数的值为1060。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include int fun(int high) int sum=0,n=0, j, yes; while

31、 (high=2) yes = 1; for(j=2; j=high/2; j+)* ifhigh%j=0 yes=0 ; break; * if (yes=0) sum+=high; n+; high-; return sum;main ( ) printf (%dn, fun (100);编程题:请编写函数void fun(int x,int pp,int *n),它的功能是求出能整除x且不是奇数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为24,则有6个数符合要求,它们是2,4,6,8,12,24。 注意:部分源程序给出如下。 请勿改

32、动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include #include void fun (int x, int pp, int *n)main () int x, aal000, n, i ; printf (nPlease enter an integer number:n ) ; scanf (%d, &x) ; fun (x, aa, &n) ; for (i=0; in ; i+) printf (%d , aa i); printf (n ) ;第8套填空题:请补充main函数,该函数的功能是:从键盘输入一个长整数,如果这

33、个数是负数,则取它的绝对值,并显示出来。例如,输入:-3847652,结果为:3847652。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include#includemain ( ) long int n; printf(Enter the data;n); scanf ( 【1】 ); printf (* the absolute value *n); if (n0) 【2】 printf (nn); printf (【3】 );改错题:下列给定程序中,函数fun()的功能是:读入一个字符串(长度20),将该字符串中的所有字符按AS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com