《国家计算机二级考试题库.docx》由会员分享,可在线阅读,更多相关《国家计算机二级考试题库.docx(113页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 .求二分之一的圆面积,函数通过形参得到 圆的半径,函数返回二分之一的圆面积。r*r &xx函数 fun 的功能:计算 S=f (-n)+f (-n+l)+f (0)+f (l)+f (2)+f (n) f (x) 函数定义如下: f (x) =错误:f (double x) 正确:double f (double x) (2)错误:return s 正 确:return s;编写函数fun,功能:计算s,结果作为函数值返回;n通过形参传入。 S=l+l/(l+2)+1/(1+2+3)+-+l/(l+2+3+-+n) float fun(int n) int i,sl=0;float s=0
2、. 0;for (i=l;i=n;i+)sl=sl+i;s=s+l. 0/sl;) return s;2 .请补充main函数:计算两个自然数n和m(m10000)之间所有数的和(n 和m从键盘输入)。sum=0 sum+=n Id fun函数的功能是:根据形参m,计算下列公式的值: t=l+l/2+l/3+l/4+l/m错误:t+=1.0/k; 正确:t+=1.0/I;(2)错误:return I; 正确:return t;编写一个函数void fun (char *tt, int pp),统计在tt字符串中“a到 z26个字母各自出现的次数,并依次放在pp所指数组中。例如,当输入字 符串a
3、bcdefghabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 1 0 0 00000000000000000void fun (char *tt, int pp) int i;for(i=0;i= a &*ttl 或 ln (2)n-l(3)1下列给定的程序中,函数fun的功能是:计算并输出k以内最大的10个能 被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则 函数的值为4622o错误:if(k%13=0) | | (k%17=0)正确:if(k%13=0) | | (k%17=0)(2)错误:缺少大括号 正确:力口 请编写函数fun,它的功能是计算
4、:s=(ln(l)+ln(2)+ln(3)+-+ln(m)C语言中用log(n)函数求ln(n) odouble fun(int m)int i;double s-0.0;for(i=l;i=m;i+)s=s+log(i);return sqrt (s);7 .补充函数fun,功能是:整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。例如当x=20时,依次输出:20 10 4 2o(l)i=l (2)k%i=0&i%2=0(3)j 或 j-l下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值:(1) 错:for(i=2;im;i+) 正:for(i
5、=2;i=m;i+)(2) 错误:y-=l/(i*i);正:y-=L 0/(i*i);编写函数fun,功能是:求n以内(不包括n)同时能被5与11整除的所有自 然数之和的平方根s,并作为函数值返回。double fun(int n)double s=0. 0;int i;for(i=0;in;i+)if(i%5=0&i%ll=0)s=s+i;s=sqrt(s);return s;8 .补充函数fun,功能是:计算并输出n (包括n)以内所有能被3或7整除的 自然数的倒数之和。(1) i=n (2) | |(3) 1. 0 或(double) 1在主函数中从键盘输入若干个数放入数组中,用0结束输
6、入并放在最后一 个元素中。下列给定程序中,函数fun的功能是:计算数组元素中值为正数 的平均值(不包括0)。例如,数组中元素的值依次为39, -47, 21, 2,-8, 15, 0, 则程序的运行结果为19. 250000o(1)错误:int sum=0. 0;正确:double sum=0. 0; (2)错误:sum=c;正 确:sum/=c;请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指 数组中,非素数的个数通过k传回。例如,输入17,则应输出4 6 8 9 10 12 14 15 16ovoid fun(int m, int *k, int xx)int i,
7、j, n=0;for (i=4;im;i+)for(j=2;ji;j+)if(i%j=0) break;if (jno P=m!/(n! (m-n)!),例如,m=12, n=8时,运行结 果为 495. 000000 ofloat fun (int m, int n) int i;double p=l.0;for(i=l;i=m;i+)p=p*i; /*求 m!*/for(i=l;i=n;i+)p=p/i; /*求 m!/n!*/for(i=l;i=m-n;i+)p=p/i ;/*求 m!/(n! (m-n) !)*/ return p;)10.请补充函数fun(char*s),该函数的功能
8、是:把字符串中的内容逆置。例如,字符串中原有的字符串为abcde,则调用该函数后,串中的内容为 edcba。(1) n一或一n 或 5=1或11=11-1 (2) si=sN或*(s+i)=*(s+n) (3) sN=t *(s+n)=t 下列给定程序中,函数fun的功能是:按如下递归公式求函数值。例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。错误:int fun(n)正确:int fun (int n) (2)错误:if (n=l)正确:if (n=l)请编一个函数float fun (double h),函数的功能是:对变量h中的值保留 两位小数,并对第三位进行四舍五入
9、(规定h中的值为正数)。例如,若h值为8. 32433,则函数返回8函2;若h值为& 32533,则函数返回 8. 33ofloat fun (float h)long t;t=(h*1000+5)/10;return (float)t/100;11.请补充main函数,该函数的功能是:输出一个 矩阵,要求非周边元素赋 值0,周边元素赋值1。(1) i=01 | i=n-l | | j=01 | j=n-l (2) bbi j=0函数fun的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第 一项起,斐波拉契级数序列为1, 1, 2, 3, 5, 8,13, 21,例如,若给n输入7, 该
10、项的斐波拉契级数值为13。(1)错误:switch(g);正确:去掉分号 错误:case 1 ;case 2: return 1; 正确:case 1 :case 2:return 1;请编写函数fun,功能是:求出二维数组周边元素之和,作为函数值返回。二 维数组中的值在主函数中赋予。例如,若二维数组中的值为1 35792 99946 999813570则函数值为61。int fun(int a EMN)int i,j, sum=0;for(i=0;iM;i+)for(j=0;j=le-6);return xl;13.补充main函数,功能是:从键盘输入3个整数,然后找出最大的数并输 出。例如
11、,输入12, 45, 43,最大值为45o(1) max=a (2) max=b (3) max=c下列给定程序中,函数fun的功能是:将十进制正整数m转换成进制数,并 按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进 制表示是1000) o(1)错误:void fun(int m, int k); 正确:void fun(int m, int k)(2)错误:aai=m/k ;正确:aai=m%k;(3)错误:printf(%d, aai);正确:printf (%d, aai-l);假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字 符串中的前导*
12、号全部删除,中间和后面的*号不删除。例如,若字符串中 的内容为*A*BC*DEF*G*,删除后,字符串中的内容则应当是 A*BC*DEF*G* ovoid fun (char *a) char *p=a;while(*p= *,)p+;for (; *p! = 0 ; p+, a+)*a=*p;*a= 0;)14.函数fun的功能是:从三个形参a、b、c中找出中间的数,作为函数值 返回。例如,当a=3, b=5, c=4时,中间的数为4。(1) a (2) a (3) b下列给定程序中,函数fun的功能是:计算函数 F(x, y, z) = (x+y)/(x-y) + (z+y)/(z-y)的
13、值。其中 x 和 y 不相等,z 和 y 不等。 例如,当x的值为9, y的值为11, z的值为15时,函数值为-3. 50o(1)错误:#define FU (m, n) (m/n)正确:#define FU (m, n) (m) / (n)(2)错误:return (Value); 正确:return (value);请编写函数fun,该函数的功能是:判断字符串是否为回文,若是则函数返 回1,主函数中输出YES,否则返回0,主函数中输出“N0。回文是指顺读 和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就 不是回文。int fun(char *str)int i,
14、n=0, fg=l;char *p=str;while (*p)n+;p+:for(i=0;in/2;i+)if(stri=strn-l-i);elsefg=0;break;)return fg;)15 .函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数, 并用外部(全局)变量cl、c2、c3返回主函数。(1) n%10(2) break (3) break函数fun的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把 s中的字符按正序连接到t串的后面。例如,当s中的字符串为ABCDE时, 则t中的字符串应为EDCBAABCDEo(1)错误:ti=sslT;正确:ti=s
15、slT-i;请编一个函数fun (char *s),该函数的功能是把字符串中的内容逆置。例如,字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。void fun(char *s)char ch;int i, m, n;i=0;m=n=strlen(s)-l;while(i(n+l)/2)ch=si;si=sm;sm=ch;i+;m一;16 .请补充main函数,该函数的功能是:打印出1 1000中满足个位数字的立方等于其本身所有数。本题的结果为:1 64 125 216 729(1) i%10(2) g*g*g=i下列给定程序中,函数fun的功能是:求三个数的最
16、小公倍数。(1)错误:j=l;正确:j=0;(2)错:while (t!=0 & m!=0 & n!=0)正:while (t!=0 | | m!=0 | | n!=0)请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数。例 如,若输入字符串“T234”,则函数把它转换为整数值-1234。long fun(char *p) long n=0;int flag=l;if (*p,,)p+;flag= -1;else if(*p=,+,)p+:while(*p!=,0*n=n*10+*p-O;p+;return n*flag;17.请补充main函数,该函数的功能是:打印出满足个位的
17、数字、十位上的 数字和百位上的数字都相等的所有三位数。本题的结果为:111 222 333 444 555 666 777 888 999。(1) g=s&s=b 或者 g=b&s=b 或者 g=s&g=b (2) g+s*10+b*100下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:80.5 60 72 90. 5 98 51.5 88 64则 低于平均分的学生人数为4 (平均分为75. 5625)。(1)错误:t=sk;正确:t+=sk;(2)错误:*aver二&ave
18、;正确:*aver=ave;请编写一个函数void fun (char *ss),其功能是:将字符串ss中所有下标 为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)o例如, 若输入abc4EFg,则应输出aBc4EFgovoid fun(char *ss)int i, n=0;char *p=ss;while(*p)n+;p+;for(i=0;i=a &ssi= z )&i%2 !=0)ssi=ssi-32;ssi=,0;)18.补充main函数。该函数的功能是:求1 100(不包括100)以内所有素数的平均值。 程序运行后的结果为42. 40o(1) j%i=O (2) flag
19、-l (3) aver/n下列给定程序中,函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。(1)错误:s=p; 正确:p=s;(2)应填 p+;或+p;或 p+= 1;或 p=p+1;(3)错误:ai= O;正确:ai= 0;或 ai=O编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asd asasdfg asd as zx67 asd mklo, 子字符串为as,则应当输出6。int fun(char *str, char *substr)int i, j=0;for(i=0;s
20、tri+l!=, 0* ;i+)if(stri=substr0&stri+1=substr1)j+;return j;19.请补充函数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. 030000o(1) sum+=xi (2) avg*1000 (3) (avg+5)/10函数fun的功能是:删除字符串s中所有空白字符(包括Tab符、回车符及 换行符)。输入字符串时用结束输入。
21、(1)错误:ct=O;正确:ct=O;编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参 指针max传回该串地址(用*作为结束输入的标志)ochar *fun(char (*a)81, int num, char *max) int i=0;max=a0;for(i=0;inum;i+)if(strlen(max)0 (2) n%10+0(3) stri=0下列给定程序中,函数fun的功能是:先从键盘上输入一个3行、3列的矩 阵的各个元素的值,然后输出主对角线元素之和。(1)错误:sum=l;正确:sum=0;错:scanf (%d, ai j);正确:scanf (%d”,
22、&ai j);编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到pl所指的字符串后。例如,分别输入下面两个字符串:FirstStringSecondString则程序输出:FirstStringSecondStringvoid fun (char pl , char p2 口)int i, j;for(i=0;pli!=0;i+);for(j=0;p2j != 0 ;j+)pli+=p2j; /pli= 0;21.请补充函数fun,该函数的功能是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入Are you c
23、ome from Sichuan?”, 则输出“are you come from sichuan?”。(1)(2) tti+=32(3) tt函数fun的功能是:求出字符串中最后一次出现的子字符串的地址,通过函 数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULLo例如,当字符串中的内容为abcdabfabcdx, t中的内容为ab时,输出结果应 是abcdxo当字符串中的内容为abcdabfabcdx, t中的内容为abd时,则程 序输出未找到的信息Not found!(1)错误:a=Null;正确:a=NULL;(2)错误:if (r=p) r+;p+;正确:if
24、(*r=*p) r+;p+;请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个 字符按ASCII码值升序排列。例如,原来的字符串为Bdsihad,则排序后输 出为 Badhisdoint fun(char *s, int num)char t;int i, j;for (i=l;inum-2;i+)for(j=i+l;jsj)t=si;si=sj;sj=t;22 .请补充main函数,功能是:从键盘输入一个长整数,如果这个数是负数, 则取它的绝对值,并显示出来。例如,输入:-3847652,结果为:3847652。(1) %ld”,&n (2) n=-n;(3)n函数fun
25、的功能是:将字符串tt中的小写字母都改为对应的大写字母,其 他字符不变。例如,若输入Ab, cD,则输出AB, CD”。错误:I I正确:&(2)错误:tti+= 32 正确:tti-=32;请编写函数fun,功能是:统计各年龄段的人数。N个年龄通过调用随机函 数获得,并放在主函数的age数组中。要求函数把。至9岁年龄段的人数 在d0中,把10至19岁年龄段的人数放在dl中,把20至29岁年龄段 的人数放在d 2中,依次类推,把100岁(含100岁)以上年龄的人数都放在 d10中。结果在主函数中输出。void fun(int *a, int *b)int i, j;for(j=0;jM;j+)
26、bj=O;for(i=0;i=100)b10+;elsebai/10+;23 .请补充main函数功能是:从键盘输入若干字符放到一个字符数组中,当 按回车键时结束输入,最后输出这个字符数组中的所有字符。(1) break(2)0(3)*p+下列给定程序中,函数fun的功能是:计算s所指字符串中含有t所指字符 串的数目,并作为函数值返回。(1)错误:*r=t;正确:r=t; (2)应填:r=t;或 r=&t 0;请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为:W W W WS S S SH H H H则字符串中的内
27、容应是:WSHWSHWSHWSHovoid fun(char (*s)N, char *b)int i, j, k=0;for(i=0;iN;i+)for(j=0;jM;j+)bk+=sj i;bk=, 0* ;24 .请补充main函数,功能是求方程ax2+bx+c=0的两个实数根。方程的系 数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于0,则要求重新输入 a、b、c的值。例如,当a=l,b=2,c=l时,方程的两个根分别是 xl=-l. 00, x2=-l. 00o(1) disc0(2) (-b+sqrt (disc)/ (2*a)(3)(-b-sqrt(disc)/(
28、2*a)函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个 新数放在t中。高位仍在高位,低位仍在低位。例如当s中的数为87653142 时,t中的数为7531。(1)错误:t=0; 正确:*t=0;(2)错误:if (d%2=0) 正确:if(d%2!=0)请编写一个函数fun,功能是:求出一个整型二维数组中最大元素的值,并 将此值返回调用函数。fun (int aM)int i, j, max=a0 0;for(i=0;i2;i+)for(j=0;jM;j+)if(maxaij)max=aij;return max;25.请补充main函数,功能是:从键盘输入两个字符串并分
29、别保存在字符数 组strl和str2中,用字符串str2替换字符串strl前面的所有字符。注 意:str2的长度不大于strl,否则需要重新输入。例如,如果输入 strl=abced”, str2=fk,则输出fkced”。(1) strlen(strl)strlen(str2)(2)*p2(3) strl下列给定程序中,函数fun的功能是:实现两个整数的交换。例如,给a和b分别输入60和65,输出为:a=65 b=60(1)错误:void fun (int a, b)正确:void fun (int *a, int *b)(2)错误:t=b; b=a; a=t; 确:t=*b; *b二*a;
30、 *a=t;下列程序定义了的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN),该函数的功能是:使数组左下半三角元素中的值全部置 成0。例如a数组中的值为:a=l 9 72 3 84 5 6则返回主程序后a数组中的值应为:0 9 70 0 80 0 0int fun (int aN)int i, j;for (i=0;iN;i+)for(j=0;j=i;j+)ai j=0;)26.给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个 元素按num成员进行升序排列。(1) std3、std口或*std(2) PERSON (3) std下列给定程序中,函数fun的功能
31、是:将一个由八进制数字字符组成的字 符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含 5位8进制数字。例如,若输入77777,则输出将是32767(1)错误:n=*p-o正确:n=*p-O(2)错误:n=n*7+*p- o正确:n=n*8+*p- O请编写函数fun,其功能是:计算并输出给定10个数的方差。其中:例 如 ,给 定 的 10 个 数 为95. 0, 89. 0, 76. 0, 65. 0, 88. 0, 72. 0, 85. 0, 81. 0, 90. 0, 56. 0,则 输出为 S=ll. 730729cdouble fun(double x10)double
32、 xl=0. 0, s=0. 0;for(i=0;i10;i+)xl=xl+xi;xl=xl/10;for(i=0;i0)(3)错误:*(pstr+i)=pstr+j;正确:*(pstr+i)= *(pstr+j);已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数 组中。请编写函数fun,功能是:找出成绩最高的学生记录,通过形参返回主 函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。fun(STU a, STU *s)int i;*s=aO;for(i=0;iss;while(h!=NULL)/*通过循环找到最高分数*/if(maxs) max=h-s;h=h-n
33、ext;return max;29 .请补充main函数,功能是:先以只写方式打开文件”out29. dat,再把字 符串str中的字符保存到这个磁盘文件中。(1) “out29.dat, w (2) fputc (ch, fp) (3) fclose (fp)N个有序整数数列已放在一维数组中,给定下列程序中,函数fun的功能是: 利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值; 反之,则返回T。错误:void fun(int a, int m) 正确:int fun(int a, int m)(2)错误:else if(m=amid) 正确:else if(mamid)学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体 数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指 定的序号在主函数中输入。若没找到指定的学号,在结构体变量中给学号 置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp) o STREC fun(STREC *a, char *b)STREC str= o,T;for(i=0;iN;i+)if (strcmp(aEi. num, b)=0)str=ai;return str;30 .请补充main函数