《计算机二级考试上机题库.docx》由会员分享,可在线阅读,更多相关《计算机二级考试上机题库.docx(121页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1套1、程序填空题函数fun的功能是:计算234-1*/(x)= l + x-+-+-+(-1)*-2+(7)12!3!41(1)14直到一1。.若x=2.5,函数值为:1.917915. n请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果注意:源.序存放在考生文件大下的BLANK1.C中。不警增忏或删行,也不得更改程序的结构!#include Sinclude double fun(double x) double f, t; int n;f =1.0+ x;/*found*/ t =1; n =1;do n+;/*found*/ t *=(-1.0)*x/2;f +=
2、 t;)/*found*/ while (3= le-6);return f;) main () double x, y; x=2.5; y = fun (x); printf(z,nThe result is :n); printf (x=%T2.6f y=%T2.6fn,x, y);乡的请注D 6 f & MO15数要 曷函不 程方正: 定次改意1X功的位评不 fur低位於 数的部砌 函值定挺 中此指ai c m能是:求整数x的y次方的低3位值。例如,整触得正也ttinclude long fun(int x, int y, long *p ) int i;long t=l;/*found
3、*/for(i=l; iy; i+)t=t*x;*p=t;/*found*/t=t/1000;return t;)main () long t, r; int x, y;printf(*nlnput x and y:); scanf&x,&y);t=fun (x, y,&r);printf (z,nnx=%d, y=%d, r=%ld, last=%ldnn”, x, y, r, t );)3、程序设计题请编写函数firn,其功能是;计算并输出当x0.97时下列多项式的值,直到is1rsl141Vo 000001为止.-一05共 QXaADHLOnDef),,上05(57)(05-2)(05-
4、+1)/,:改填 如意勿中 花 花在等人4.1:-l4Ri 植文卑 手常 数萋写 一黑函编给X输入0.21后,输出为:s=l. 100000.PROG1. C中.他函数中的任何内容,仅在函数fun的 句。include #include double fun(double x)main () double x, s;printf (z,Input x:); scanf &x);s=fun(x);printf (z,s=%fnzz, s);第2套1、程序填空题函数fun的功能是:统计卡整数n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量cl, c2, c3成回主函数。例如当n=123
5、114350时,结果应该为: ci=3 c2=l c3=2注意:源程序存放在考生文件容下的BLANK1.C中。 不容增杆或删行,也不容更改程序的结构!请江程序访下划线处填入正确的内容并把下划线删除,使程序得出正确的结果g ,#include int cl, c2, c3; void fun(long n) cl = c2= c3=0;while (n)/*found*/ switch (1)(/*found*/ case 1:cl+;2;/*found*/case 2: c2+;3;case 3: c3+; n /=10;) main() long n=123114350L;fun(n);pr
6、intf (,znThe result :n);printf (n二%Id cl=%d c2=%d c3=%dn,z, n, cl, c2, c3);给个。的请注 的回大 零返最程如80正:定数例是改意L参入 DI雷 MO过若 霓,数要函不fu改主号回符传无匕be J 甘- O 功并80 1,期 好函整旨11 树ma 疆:至可是该见曙 使行个位蹿为值数字 字函数 数为上 宓任何 各管各 史子, 数数项 整的政 号春ttinclude int fun(unsigned n, int *zero) int count=O, max=0, t;do t=n%10;/*found*/ if(t=O)
7、count+;if (maxt) max=t; n=n/10;while(n);/*found*/ zero=count;return max;) main() unsigned n; int zero, max;printf (z/nlnput n (unsigned):); scanf (/cT,&n);max = fun( n,&zero );printf (nThe result: max=%d zero=%dn,z, max, zero);)3、程序设计题请编写函数fun,其功能是:计算并输出下列多项式的值:111S =1+1*21*2*31*2*3*50例如,在主函数中从键盘给n输
8、入50后,输出为:s=l.718282。注意:塞您的演皆1但不大于100。请勿改磬醯雕i京手罐蟒3任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include double fun(int n)main() int n; double s;printf(Xnlnput n:); scanf&n);s=fun(n);printf (nns二%fnn,s);520使 为数86, 上函64除 位为.删 各4线. 申,回下 却数返把 府的数并容fun的痴姐-数反整线一函策划.,位一下.中低入的104: 一1,程定高如在一给行请.来 。原 果中构 C土口 一 K1的 ANK序 BL程 的改
9、下更 件不 文也考行 在删 放或 序增 源不#include unsigned long fun(unsigned long n) unsigned long x=0; int t;while(n) t=n%10;/*found*/if(t%2=_l_)/*found*/x=_2_+t;/*found*/n=_3_;return x;)main() unsigned long n=l;while(n99999999|n0) printf(Please input(0n100000000):); scanf&n); printf CnThe result is:%ldn”, fun(n);次取铲
10、程即OD/L史画数生鲤懈思出编写一个函数f 它的功能是 即嘲瞥搬甯.一B符串的连接(不使用库函数strcat),FirstString- SecondString 程序输出:FirstString-SecondString 用PROG LC文怦中。rirstbtnng注意:手分源程序在支匕 ,、请勿改易主函薮mai痛其它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。:出,构成一个就数放在t中。高位仍在壹怔低例如,当S中的薮为:87653142时,t锁数为:7531。请改正程序中的错误,使它能卷出正南的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#
11、include void fun (long s, long *t) int d;long sl=l;/*f ourid*/ t =0;while ( s 0) d = s%10;/*f ourid*/ if (d%2=0)*t = d * si +*t;si *=10;)s /二10;)main () long s, t;printf (z,nPlease enter s:); scanf(ld,&s);fun(s,&t);printf (/zThe result is:%ldn”, t);)3、程序设计题#include void fun (char pl , char p2口)main(
12、)printf (z,Enter si and s2:n); scanf(zz%s%szz, si, s2);printf(si二%sn”, si);printf(zzs2=%sn,z, s2);printf (Invoke fun (si, s2):n,z);fun (si, s2);printf(,zAfter invoking:nz,);printf(z,%sn/z, si);第4套在列上最1、程序填空题13410697的就曜中若翳魏舞蠹赢罐胪在行上最大,例如,宥下列矩阵,程序执行结果为;find: a=9请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序
13、存放在考生文件旁下的BLANK1.C中。不得增拧或删行,也不得更改程序的结构!ttinclude #defineM3#defineN4void fun(int (*a)N) int i=0, j, find=0, rmax, c, k; while(iM)&(!find) rmax=ai0; c=0;for(j=l; jN; j+) if(rmaxaij)/*found*/ rmax=aij; c=_1find=l; k=0;while(kM & find)/*found*/if (k!=i & akc=rmax) find=_2_;k+;if (find) printf Cfind: a%d
14、%d=%drT, i, c, aic);/*found*/_3_;if (!find) printf (not found!n,z);)main() int xMN, i, j;printf (Enter number for array:n);for(i=0; iM; i+)for(j=0; jN; j+) scanf C%d,&xij);printf (z,The array:n/z);for(i=0; iM; i+) for(j=0; jN; j+) printf (飞3d”, xij);printf(nn);fun(x);2、程序修改题值。给定程序HODI1.C中函数fun的功能是:根
15、据整型形参m的值,计算如下公式的111 t =a-.2*23*3例如,若m中的值为:5,则应输出:0.536389请改正程序中的错误,使它能符由正确的结果。注意:不要改动main函数,不棺增行或删行,也不得更改程序的结构#include double fun ( int m ) double y =1.0;int i ;/*found*/ for(i =2; i m ; i+)/*found*/ y -=1/(i * i);return( y );main() int n =5;printf(nThe result is %lfnz,, fun ( n );3、程序设计题score数组由,请编
16、写函数fun,它的功能是;将低于平均分的火春舞魏矗,将低于平均分的分数放在bel嬴所指的数组申。例如,当score数组中的数据为:i。、20、3。、 函数这回的人数应该是4, bel班中的数据应为:10、注意:部分源程序在文件PR0G1.C文件中。请勿改凝主函薮mai丽箕它函数中的任何内容, 你编写的若干语句。40、50、60、70、80、90时, 20、30、40。仅在函数fun的花括号中填入Sinclude ttinclude int fun(int score, int m, int below) main()int score 9=10,20,30,40,50,60,70,80,90n
17、 = fun(score,9, below);printf(/znBelow the average score are:);for (i =0; i n ; i+) printfC%d ,belowi);第5套1、程序填空题给定程厅中,函数fun的功能是;在形参ss所指专饯串数组中,将所直串长超过k的定发串中右边的字符删除,只保留左边的k个室桂。ss所内字符串毂组中共看N个李特南,且串长小于肌果。注意:请在程序的下城线处填入正确的内容并把下划线删除,使程序得出正确的结源程序存放在考生文件隽下的BLANK1.C中。不梯增存或删行,也不舍更改程序的结构#include #include #def
18、ineN5#defineM10/*found*/void fun(char (*ss)_1_, int k) int i=0;/*found*/while(i_2_)/*f ound*/ssik=_3_; i+;main () char xNM=Create,Modify,Sort,skip,Delete; int i;printf(nThe original stringnn);for(i=0;1N;i+)puts(xij); printf;fun(x,4):printf (,znThe string after deleted :nn);for(i=0; iN; i+) puts(xi);
19、 printf(n);2、程序修改题给定程序MOD. C中函数fun的功能是;根据以下公式求兀值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。兀1121231234-=1+-X+XX+X X-X+23353573579请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不悖增行或删行,也不得更改程序的结构。include Sinclude double fun (double eps) double s, t; int n=l;s=0.0;/*found*/t=0;while( teps) s+=t;t=t * n/(2*n
20、+l);n+;)/*f otind*/return (s);)main () double x;printf (,znPlease enter a precision:); scanf &x);printf (z,neps=%lf, Pi=%lfnnz,, x, fun(x);3、程序设计题 ttinclude 假定输入的锣串中只包含字母和*号。请编写函数fun,它的功熊是:使字 的前导*号不得多于n个;若多于11个,则触除多余的*号,若少字或等于n个, 乍中间和局部的*号不删除。函数fun中给出的语句仅供参提的内容为:*A*BC*DEF*G*,若n的值为4,删除后,符串的前导*号 则什么也不
21、做,例如, 字符串中的是;*A*pbpgF*、G警甘;,若的值为矣则吉:工 . 么_f八一*-f串中电力瓷仍为:*a*bc*DEF*G*。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字行串函数。注意:部分源翟序在文住PROG 1.C文件中。请勿改主函薮mai而箕它函数中的任何内容,仅在函数fun的花括号中填入 你编写的若干语句。void fun( char *a, int n )/*以下代码仅供参考*/ int i=0, j, k=0;while(ak=,) k+;/* k 为统计*字符个数*/ if(kn)(i=n;j=k;/*以下完成将下标为k至串尾的字符前移k-n个位置*/m
22、ain ()printf (z,Enter a string:n,z);gets(s);printf (Enter n :);scanf (d,&n);fun( s, n );printf (z,The string after deleted:n,z);puts(s);1、程序填空题给定程序中,函数fun的功能是;有NXN矩阵,以主次角线为对称卷对称元素相加并蒋结果存放在左下三角元素中,右上三角元素亶为0。例如,第N=3,有下列矩阵:123456789计算结果为10065010149果。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结注意,程序存放在考生文件旁下的BLANK
23、L C中。警增后或删行,也不备更改程序的结构!#include #defineN 4/*found*/ void fun(int (*t)1) int i, j;for (i=l; iN; i+) for(j=0; ji; j+)(/*found*/_2_/*found*/_3_=0;main () int tN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10), i, J;printf (,znThe original array:nz,);for(i=0; iN; i+) for(j=0; jN; j+) printf(*%2d *, tij
24、);printf(n);fun(t);printf(nThe result is:n );for(i=0; iN; i+) for(j=0; j,z和y的值不等。-3.50o#include #include #include / *f ourid*/#define FU(m, n) (m/n)float fun(float a,float b,float c) float value;value=FU(a+b, a-b)+FU(c+b, c-b);/ *f otind*/ Return(Value);)main () float x, y, z, sum;printf(Input x y z
25、: );scanfC%f%f%r, &x, &y, &z);printf (z,x=%f, y=%f, z=%fn,z, x, y, z);if (x=y | | y=z) printf (Data error!n/z);exit (0);) sum=fun (x, y, z);printf (,zThe result is : %5. 2fnz,, sum);3、程序设计题应当 7E ; A*BC*DEF*G*,:*a*bc*def*g*,注意:邯分源请勿改副主函 你编写的若干语句.在编写函数时,序在文件PROG 1.C中。mai/口其它函数中的任何内容,仅在函数fun的花括号中填入Sinc
26、lude void fun( char *a ) main() char s81;printf (Enter a string:nzz);gets(s);fun ( s );printf (The string after deleted:nz,);puts(s);第7套1、程序填空题给定程序中,函数fun的功能是;将断指4X3矩阵中第k行的元素与第0行元素交投。栩如,有下列矩阵:23456789101112若k为2,程序执行结果为:789456123101112请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件旁下的BLANK1.C中。生棒增忏或
27、刎行,也不得更双程存的结构!ttinclude #defineN3#defineM4/*found*/void fun(int (*a)N, int _1_) int i, temp ;/*found*/ for(i =0; i _2_; i+) temp=a0i;/*found*/a0i=_3;aki= temp ;main () int xMN=1,2,3,4,5,6,7,8,9,10,11,12,i, j;printf (z,The array before moving:nnz,);for(i=0; iM; i+) for(j=0; jN; j+) printf (zz%3d,z, x
28、ij);printf(nn);fun(x,2);printf (z,The array after moving:nn,z);for(i=0; iM; i+) for(j=0; jN; j+) printf (zz%3d,z, xij);printf(nn);2、程序修改题给定程序M0DILC中函数fun的功能是:读入一个字符串(长度20 ),将该字符串中的例如,符按ASCI I码升序排序后输出。:edcba,则应输出:abcde.二二二,使它能绕计出正确的结果。注意:不要改动main函数,不德增行或删行,也不得更改程序的结构!请改正程序中的错误,ttinclude ttinclude voi
29、d fun( char t)(char c;int i, j;/ *f ourid*/for( i = strlen( t ); i; i-) for( j = 0; j i; j+ )/ *f otind*/if( tj t j + 1 )(c = tj;tj = t j + 1 ;tj + 1 = c;main ()char s81;printf( nPlease enter a character string: );gets( s );printf( nnBefore sorting:n %s,s );fun( s );printf ( ,znAfter sorting decendi
30、ngly:n %sn,s );写为,:改若 编作意勿的 请写-大若普干我鹿赢 fur该be序ma 数若a襄。 函I 入源函句 个写地刀主语号专F.4 O 斤FT cm nDUH - S贝司44-/#include #include void fun( char *ss ) void main( void )printf(nPlease enter an character string within 50 characters :n/z );gets( tt );printf ( ,znnAfter changing, the stringntt );fun(tt);printf ( z,nb
31、ecomesntt );)第8套1、程序填空题给定程序里,函数fun的功能是:找出100999之间 中各位上薮字乏和为x (x为一正整数)的整数,然后输出; 力函数值返回.例如,当X值为5时,100999之间各位上数字之和为5的整数有:104、113、122、131,140,203,212,221、230、302,311,320、401,410,500.共有15个。当x值为27时,各位数字之和为27的整数是;99%只有1个。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果注意;源性序存放在考生文件秀下的BLANKLC中不容增旺或删行,也不箱更改程序的结构!#include
32、int fun(int x) int n, si, s2, s3, t;n=O;t=100;/*1ound*/while(t=_1_)/*f ound*/sl=t%10; s2=(_2_)%10; s3=t/100;/*found*/if(sl+s2+s3=_3) printf (%d ”, t); n+;)t+;)return n;)main () int x=-l;while(x0):); scanf&x); printf(nThe result is:%dn”, fun(x);)2、程序修改题给定程序MODIl. C中函数fun的功能是:从低位开始契出长整型变量s中偶数位上的数,犊茨构成
33、一个新数放在t中。高位仍在高位,低程仍在低位。的如,当s市的数为:76543214,仲的数为:642。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不椁增行或删行,也不得更改程序的结构!#include /*found*/void fun long s /= *t =(long s, long t) sl=10;10;s %10;/*f otind*/ while ( s 0) s = s/100;*t = s%10*sl +*t;si = si *10;main() long s, t;printf(XnPlease enter s:); scanf(%ld,&s);
34、fun (s,&t);printf (The result is:%ldn,z, t);3、程序设计题学生的记录由学号和成绩组成,N名学生的数据己在主函数中放入结构体数组 s中,请编写函数fun,它的功熊是:按分数的高低舞列学生的记录,高分在前。卷意:碎分源卷序在文件PR0G1.C文件中。请勿改副主函薮mai丽其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。Sinclude #defineN 16typedef struct char num10; int s; STREC; void fun( STREC a)STREC trap; int i,j; for(i =0;
35、i N; i+) for(j = i+1; j N; j+)/*请按题目要求完成以下代码*/main () STREC sN=GA005,85,GA003,76,“GA002,69,GA004,85,GA001,91,GA007,72,GA008,64,GA006”,87,GA015,85,GA013,91,GA012,64,“GA014”,91,GA011”,66,GA017,64,GA018,64,GA016,72;int i;FILE *out ;fun( s );printf (,zThe data after sorted :n);for(i=0;iN; i+) if(i)%4=0)
36、printfCn,z);printf (z,%s %4d z,, si. num, si. s);)printf(n);out = fopen(out.dat,w);for(i=0;iN; i+) if (i)%4=0& i) fprintf (out,n);fprintf (out,%4d , si.s);)fprintf(out,n);fclose(out);1、程序填空题给定程序电,函数fun的功能是:计算NX N矩阵的主对角线元素和反向对元素之和,并柞为函数值返回。注意:要求先累加主对角线元素再的值,选加反向对角续元素中的横。例如,若N=3,有下列矩阵:123456789fun函数首先
37、累加1、5、9,然后里加3、5、7,函数的返回值为30。注意,请在程序的下划线处填入正商的内容并把下划线删除,使程序得出正确的结源矍序存放在考生文件夫下的BLANK1.C中。不停增杵或删行,也不得更改程序的结构!#include #defineN 4 fun(int tN, int n) int i, sum;/*found*/1;for(i=0; in; i+)/*found*/sum+=2;for(i=0; in; i+)/*found*/sum+= t in-i-3;return sum;)main() int tN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10, i, j; printf (,znThe original data:nz/); for(i=0; iN; i+) for(j=0; jN; j+) printf C%4d*, tij);printf(n);)printf (,zThe result is:%dz/, fun(t, N);)2、程序修改题给定程序MODI1.C中函数fun和funx的功能是:用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过O.OOlo,给横蚣90,则函数求得的一个根值为2.000。使它能售出正确结果。数,不容增行或删行,也不得更改程序的结构
限制150内