全国计算机等级考试二级C语言上机考试试题详解 下载本文

p++; }

for (i=l, j=0; i<10; i=i+2, j++) 【3】 ; main ( )

{ char str [N]; int num[10] ,k ;

printf (\: \ gets (str);

printf(\ puts (str); fun (str, num);

printf (\ for (k=0; k<5; k++) { printf (\

print f (\ }

printf (\ return; }

改错题:下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。 请改正程序中的错误,使它能得到正确结果。

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

试题程序:

# include #include #define N 20

void fun(int *a, int n) { int i,m,t,k;

********************************** for(i=0; i

for(k=i; k

********************************** k=m;

t=a [i]; a[i]=a[m]; a[m]=t; } } main ( )

{ int x,b[N]={ll, 5, 12,0,3, 6, 9, 7, 10,8},n=10, i; for(i=0; i

printf (\

printf (\ fun (b, n);

for(i=0; i

printf(\ printf (\}

编程题:m个人的成绩存放在score数组中,请编写函数fun(),它的功能是将高于平均分的人数作为函数值返回,将高于平均分的分数放在up所指的数组中。

例如,当score数组中的数据为24,35,88,76,90,54,59,66,96时,函数返回的人数应该是5,up中的数据应为88,76,90,66,96。 注意:部分源程序给出如下。

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

试题程序:

#include #include #include

int fun(int score[],int m, int up[]) { }

main ( )

{ int i, n, up[9];

int score [ 9] ={24,35, 88, 76, 90,54,59,66,96}; n=fun (score, 9, up);

printf (\:\ for (i=0; i

printf(\}

第7套

填空题 :请补充main函数,该函数的功能是:从字符串str中取出所有数字字符,并分别计数,然后把结果保存在数组b中并输出,把其他字符保存在b[10]中。 例如:当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 #include main ( )

{ int i,b[ll];

char *str=\,*p=str ;

printf(\

for (i=0; i

{ switch( 【1】 )

{ case '0':b[0]++;break; case '1':b[1]++;break; case '2':b[2]++;break; case '3':b[3]++;break; case '4':b[4]++;break; case '5':b[5]++;break; case '6':b[6]++;break; case '7':b[7]++;break; case '8':b[8]++;break; case '9':b[9]++;break; 【2】; } 【3】; }

printf (\ for (i=0; i

printf (\:%d\

print f ( \:%d\}

改错题:下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。若high的值为100,则函数的值为1060。 请改正程序中的错误,使它能得到正确结果。

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

#include

#include #include int fun(int high)

{ int sum=0,n=0, j, yes; while (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 (\

编程题:请编写函数void fun(int x,int pp[],int *n),它的功能是求出能整除x且不是奇数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为24,则有6个数符合要求,它们是2,4,6,8,12,24。 注意:部分源程序给出如下。

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

试题程序:

#include #include

void fun (int x, int pp[], int *n) { }

main ()

{ int x, aa[l000], n, i ;

printf (\:\\n \ scanf (\ fun (x, aa, &n) ; for (i=0; i

printf (\ printf (\}

第8套

填空题:请补充main函数,该函数的功能是:从键盘输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。

例如,输入:-3847652,结果为:3847652。 注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

#include #include main ( )

{ long int n;

printf(\ scanf ( 【1】 );

printf (\ if (n<0) 【2】

printf (\

printf (【3】 ); }

改错题:下列给定程序中,函数fun()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCⅡ码降序排序后输出。 例如:输入dathc,则应输出hfdca。

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

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

试题程序:

#include #include

********************************** int fun (char t[ ]) { char c; int i,j;

for (i=0; i

********************************** t [j ]=t [i++]; t [i]=c; } } main ( )

{ char s[81];

printf (\:\ gets (s);

printf (\:\\n %s\ fun (s);

printf (\:\\n%s\}

编程题:请编写一个函数void fun(int m,int k,int xx[ ]),该函数的功能是将大于整数m且紧靠m的k个非素数存入所指的数组中。

例如,若输入15,5,则应输出16,18,20,21,22。 注意:部分源程序给出如下。

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

试题程序:

#include #include

void fun(int m, int k, int xx[ ]) { } main ( )

{ int m,n, zz [1000];

printf (\: \