2020年全国计算机等级考试二级c语言上机精选题库(共80套)

内容发布更新时间 : 2024/9/21 15:24:00星期一 下面是文章的全部内容请认真阅读。

char str[N]; char ch;

printf(\ gets(str);

printf(\ scanf(\ while (str[i] != '\\0') {

if (str[i] == ch) ___1___ ___2___; }

str[i] = ___3___;

printf(\ puts(str); }

第二题:下列给定程序中,函数fun的功能是:交换主函数中两个变量的值。例如:若变量a中的值原为8,b中的值为3,则程序远行后a中的值为3,b中的值为8。

请改正程序中的错误,使它能得出正确的结果。

注意,不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

/********found********/ void fun(int x, int y) {

int t;

/********found********/ t = x; x = y; y = t; }

main() {

int a, b; a = 8; b = 3;

fun(&a, &b);

printf(\ %d\\n\}

第三题:假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是****A*BC**DEF*G。在编写函数时,不得使

用C语言提供的字符串函数。

请勿改动主函数main和其他函数中哦的任何内容,仅在函数fun的花括号填入所编写的若干语句。 #include #include #include

void fun( char *a) { }

main() {

char s[81]; FILE *out;

printf(\ gets(s); fun( s );

printf(\ puts(s);

out=fopen (\

strcpy(s, \ fun(s);

fprintf(out, \ fclose (out ); } 答案

第一题:第1处:break;

第2处 i++或++i 或i+=1或i=i+1 第3处 ‘\\0’ 或0

第二题:第1处 void fun(int x,int y)应改为void fun(int*x,int*y) 第2处 t=x;x=y;y=t; 应改为t=*x;*x=*y;*y=t; 第三题:

void fun( char *a) {

int i=0; char *p,*q; p=q=a; while(*p) p++;

p--;

while(*p==’*’) p--;

while(q<=p) {

a[i]=*q; i++; q++; }

a[i]=’\\0’; }

第 4套试题

一、填空题

请补充main函数的功能是:输出方程组A+B=5,A+2B=60的一组正整数解.本题的结果是:

A=44,B=8.

仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其中他任何内容. #include main() {

int i, j;

for (i=0; i<100; i++) for (j=0; j<100; j++)

if (i+j==52 ___1___ i+2*j==60)

printf(\}

第1处填空:&& 第2处填空:i,j 二、改错题

下列给定程序中,函数fun的功能是:将十进制正整数转换成k(2<=k<=9)进制数,并按位输入出.例如,若输入8和2,则应输出1000(即十进制数8转换成二制成二进制表示是1000).

请改正fun函数中的错误,使它能得出正确的结果.

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include #include

/********found********/ void fun(int m, int k); {

int aa[20], i; for (i=0; m; i++) {

/********found********/ aa[i] = m/k; m /= k; }

for (; i; i--)

/********found********/ printf(\}

main() {

int b, n;

printf(\ scanf(\ fun(n, b); printf(\}

第1处:void fun(int m,int k):应改为void fun(int m,int k) 第2处:aa[i]=m/k;应改为aa[i]m%k;

第3处:printf(“%d”,aa[i]);应改为printf(“%d”,aa[i-1]); 三、编程题

请编写函数fun,其功能是:将两个两面三刀位数的正整数a、b合并形成一个整数放在c中.合并的方式是:将a数的十位和个位数依次放在c数的个位和十位上.

例如,当a=45,b=12,调用该函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句. #include #include

void fun(int a, int b, long *c) { }

main() {

int a,b; long c;

FILE *out;

printf(\

scanf(\ fun(a,b,&c);

printf(\ out=fopen (\ for (a = 0; a < 10; a++) {

fun(a+77, a+66, &c); fprintf(out, \ }

fclose (out ); }

void fun(int a,int b,long *c) {

c=(b/10)1000+(a)*100+(b)*10+a/10; }

第5套试题

一填空题

给定程序中,函数fun的功能是: 有N*N矩阵.以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0. 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 计算结果为:

1 0 0 6 5 0 10 14 9

请勿改动主函数main和其它函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句. #include #define N 4

void fun(int (*t)___1___) {

int i, j;

for (i=1; i

for (j=0; j

___2___ = t[i][j]+t[j][i]; ___3___ = 0; } }

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi