2012年3月计算机2级答案

更新时间:2024-05-11 15:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

二级C语言上机考试复习资料,共有50套题目 一、程序填空题

1、给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。

例如,有9个正整数:1 5 7 23 87 5 8 21 45 按升序排列时的中间数为:8

处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 9 int fun(int x[])

{ int i,j,k,t,mid,b[N];

for(i=0;i

for(j=i+1;jb[j]) k=j; if(k != i ) {

/**********found**********/

t=b[i]; b[i]=___1___; b[k]=t; } }

/**********found**********/ mid=b[___2___]; for(i=0; i

/**********found**********/

if(x[i] ___3___ mid) x[i]=mid; return mid; }

main()

{ int i, x[N]={1,5,7,23,87,5,8,21,45}; for(i=0; i

2、给定程序中,函数fun的功能是建立一个N×N的矩阵。 矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,?依次类推。例如,若N=5,生成的矩阵为: 1 1 1 1 1

1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 7

/**********found**********/ void fun(int (*a) __1__) { int i,j,k,m;

if(N%2==0) m=N/2 ; else m=N/2+1; for(i=0; i

/**********found**********/ for(j= __2__ ; j

a[k][i]=a[k][N-i-1]= __3__; } }

main()

{ int x[N][N]={0},i,j; fun(x);

printf(\ for(i=0; i

{ for(j=0; j

3、给定程序中,函数fun的功能是: 将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include void fun(char *s)

{ int i, j=0, k=0; char t1[80], t2[80]; for(i=0; s[i]!='\\0'; i++) if(s[i]>='0' && s[i]<='9')

{

/**********found**********/ t2[j]=s[i]; ___1___; }

else t1[k++]=s[i]; t2[j]=0; t1[k]=0;

/**********found**********/ for(i=0; i

for(i=0; i<___3___; i++) s[k+i]=t2[i]; }

main()

{ char s[80]=\

printf(\ fun(s);

printf(\}

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

7 8 9计算结果为 1 0 0 6 5 0 10 14 9

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 4

/**********found**********/ void fun(int (*t)___1___ ) { int i, j;

for(i=1; i

/**********found**********/

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

}

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf(\ for(i=0; i

{ for(j=0; j

fun(t);

printf(\ for(i=0; i

{ for(j=0; j

5、给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

void fun(char *s, char *p) { int i, j, n, x, t; n=0;

for(i=0; s[i]!='\\0'; i++) n++; for(i=1; i

/**********found**********/

for(j=___2___+2 ; js[j]) t=j; if(t!=i)

{ x=s[i]; s[i]=s[t]; s[t]=x; } }

for(i=1,j=0; i

main()

{ char s[80]=\

printf(\ fun(s,p);

printf(\}

6、程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include typedef struct { int num;

char name[9]; char sex;

struct { int year,month,day ;} birthday; float score[3]; }STU;

/**********found**********/ void show(STU ___1___) { int i;

printf(\

tt.birthday.year, tt.birthday.month, tt.birthday.day); for(i=0; i<3; i++)

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

main( )

{ STU std={ 1,\ printf(\/**********found**********/ show(___3___); }

7、给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵: 1 2 3 4 5 6

7 8 9fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 4

fun(int t[][N], int n) { int i, sum;

/**********found**********/ ___1___;

for(i=0; i

/**********found**********/ sum+=___2___ ; for(i=0; i

/**********found**********/ sum+= t[i][n-i-___3___] ; return sum; }

main()

{ int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j; printf(\ for(i=0; i

{ for(j=0; j

printf(\}

8、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。

例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 主函数中输出:46 32 40 45 48

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define N 10

double fun(double x[],double *y) { int i,j; double av; /**********found**********/ av=__1__;

/**********found**********/

for(i=0; i

/**********found**********/

if(x[i]>av) y[__3__]= x[i]; y[j]=-1; return av; }

main()

{ int i; double x[N] = {46,30,32,40,6,17,45,15,48,26}; double y[N];

for(i=0; i

printf(\ for(i=0; y[i]>=0; i++) printf(\ printf(\}

9、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:30 6 17 15 26 46 32 40 45 48

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 10

double fun(double *x)

{ int i, j; double av, y[N]; av=0;

/**********found**********/

for(i=0; i/**********found**********/

y[j]=x[i]; x[i]=-1; __2__;} i=0;

while(i

{ if( x[i]!= -1 ) y[j++]=x[i]; /**********found**********/ __3__; }

for(i=0; i

main()

{ int i; double x[N];

for(i=0; i

printf(\ printf(\

for(i=0; i

10、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:46 32 40 45 48 30 6 17 15 26

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 10

double fun(double *x)

{ int i, j; double s, av, y[N]; s=0;

for(i=0; i

for(i=j=0; iav ){

/**********found**********/ y[__2__]=x[i]; x[i]=-1;} for(i=0; i

/**********found**********/

if( x[i]!= __3__) y[j++]=x[i]; for(i=0; i

main()

{ int i; double x[N]= {46,30,32,40,6,17,45,15,48,26}; for(i=0; i

printf(\ printf(\

for(i=0; i

}

11、函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、??中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 9

int fun(int a[], int n) { int i,j; j = 0;

for (i=0; i

/**********found**********/ if (a[i]%2==___1___) {

/**********found**********/ a[j] = a[i]; ___2___; }

/**********found**********/ return ___3___; }

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf(\

for (i=0; i

printf(\ printf(\

for (i=0; i

12、给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

#include #define M 5 #define N 20

int fun(char (*ss)[N], int *n) { int i, k=0, len= N; /**********found**********/ for(i=0; i<___1___; i++) { len=strlen(ss[i]); if(i==0) *n=len;

/**********found**********/ if(len ___2___ *n) { *n=len; k=i; } }

/**********found**********/ return(___3___); }

main()

{ char ss[M][N]={\ int n,k,i;

printf(\ for(i=0;i

printf(\ printf(\}

13、人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 8 typedef struct { int num;

int year,month,day ; }STU;

int fun(STU *std, STU *k, int year) { int i,n=0;

for (i=0; i

/**********found**********/

if( ___1___==year) /**********found**********/ k[n++]= ___2___; /**********found**********/ return (___3___); }

main()

{ STU std[N]={ {1,1984,2,15},{2,1983,9,21},{3,1984,9,1},{4,1983,7,15}, {5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}}; STU k[N]; int i,n,year;

printf(\ n=fun(std,k,year); if(n==0)

printf(\ else

{ printf(\ for(i=0; i

printf(\ } }

14、函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5、1、2、3、4。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 9

void fun(int a[], int n) { int i, t, p;

/**********found**********/

p = (n%2==0)?n/2:n/2+___1___; for (i=0; i

t=a[i];

/**********found**********/ a[i] = a[p+___2___]; /**********found**********/ ___3___ = t; } }

main()

{ int b[N]={1,2,3,4,5,6,7,8,9}, i; printf(\

for (i=0; i

printf(\ for (i=0; i

15、给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确嶄绸果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

void fun(char *s, int a, double f) {

/**********found**********/ __1__ fp; char ch;

fp = fopen(\

fprintf(fp, \ fclose(fp);

fp = fopen(\ printf(\ ch = fgetc(fp);

/**********found**********/ while (!feof(__2__)) { /**********found**********/

putchar(__3__); ch = fgetc(fp); } putchar('\\n'); fclose(fp); }

main()

{ char a[10]=\ double c= 98.76; fun(a,b,c); }

16、给定程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include #define N 4

void fun(int (*a)[N], int *b) { int i,j;

for(i=0; i

/**********found**********/ b[i]= __1__;

for(j=1; j

/**********found**********/

if(b[i] __2__ a[j][i]) b[i]=a[j][i]; } }

main()

{ int x[N][N]={ {12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3} },y[N],i,j; printf(\ for(i=0;i

{ for(j=0;j

/**********found**********/ fun(__3__);

printf(\

for(i=0; i

17、给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7。输出结果为:4。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

void fun(char *s, int *t) { int i, n; n=0;

/**********found**********/ for(i=0; ___1___ !=0; i++) /**********found**********/

if(s[i]>='0'&&s[i]<= ___2___ ) n++; /**********found**********/ ___3___ ;

}

main()

{ char s[80]=\ int t;

printf(\ fun(s,&t);

printf(\}

18、函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。

注意:规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! # include #define N 9

void fun(int a[], int n)

{ int i,j, max, min, px, pn, t; for (i=0; i

/**********found**********/ max = min = ___1___; px = pn = i;

for (j=i+1; j

{ max = a[j]; px = j; } /**********found**********/ if (min>___3___)

{ min = a[j]; pn = j; } }

if (pn != i)

{ t = a[i]; a[i] = min; a[pn] = t; if (px == i) px =pn; }

if (px != i+1)

{ t = a[i+1]; a[i+1] = max; a[px] = t; } } }

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i; printf(\

for (i=0; i

printf(\ for (i=0; i

19、给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如,s所指字符串为:asd123fgh5##43df, 处理后新字符串为:123543asdfgh##df。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include #include char *fun(char *s)

{ int i, j, k, n; char *p, *t; n=strlen(s)+1;

t=(char*)malloc(n*sizeof(char)); p=(char*)malloc(n*sizeof(char)); j=0; k=0;

for(i=0; i

{ t[k]=s[i]; k++; } }

/**********found**********/

for(i=0; i<__2__; i++) p[j+i]= t[i]; p[j+k]=0;

/**********found**********/ return __3__; }

main()

{ char s[80];

printf(\ printf(\

}

20、给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵 1 2 3 4 5 6

7 8 9程序执行结果为 0 0 1 0 0 4 0 0 7

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 4

void fun(int (*t)[N], int m) { int i, j;

/**********found**********/ for(i=0; i=0; j--) /**********found**********/

t[i][j+___2___ ]=t[i][j]; /**********found**********/ for(j=0; j<___3___; j++) t[i][j]=0; } }

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j, m; printf(\ for(i=0; i

printf(\ printf(\ }

printf(\ fun(t,m);

printf(\ for(i=0; i

printf(\ printf(\ }

}

21、函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、??中,把奇数从数组中删除,偶数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6、8,返回值为4。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 9

int fun(int a[], int n) { int i,j; j = 0;

for (i=0; i

/**********found**********/ if (___1___== 0) { /**********found**********/ ___2___ = a[i]; j++; }

/**********found**********/ return ___3___; }

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf(\

for (i=0; i

printf(\:%d\\n\ printf(\

for (i=0; i

22、给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是\幻方\,若是,函数返回值为1; 不是,函数返回值为0。\幻方\的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下3×3的矩阵就是一个\幻方\: 4 9 2 3 5 7 8 1 6

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构! #include #define N 3

int fun(int (*a)[N])

{ int i,j,m1,m2,row,colum; m1=m2=0;

for(i=0; i

{ j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; } if(m1!=m2) return 0; for(i=0; i

/**********found**********/ row=colum= __1__; for(j=0; j

{ row+=a[i][j]; colum+=a[j][i]; } /**********found**********/

if( (row!=colum) __2__ (row!=m1) ) return 0; }

/**********found**********/ return __3__; }

main()

{ int x[N][N],i,j;

printf(\ for(i=0; i

for(j=0; j

{ for(j=0; j

if(fun(x)) printf(\ else printf(\}

23、给定程序中,函数fun的功能是将a和b所指的两个字符串分别转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。

例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include #define N 9

long ctod( char *s ) { long d=0; while(*s)

if(isdigit( *s)) { /**********found**********/ d=d*10+*s-__1__;

/**********found**********/ __2__; } return d; }

long fun( char *a, char *b ) {

/**********found**********/ return __3__; }

main()

{ char s1[N],s2[N]; do

{ printf(\ while( strlen(s1)>N ); do

{ printf(\ while( strlen(s2)>N );

printf(\}

24、给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include void fun(char *s)

{ int i, n, k; char c; n=0;

for(i=0; s[i]!='\\0'; i++) n++; /**********found**********/ if(n%2==0) k=n-___1___ ; else k=n-2;

/**********found**********/ c=___2___ ;

for(i=k-2; i>=1; i=i-2) s[i+2]=s[i]; /**********found**********/ s[1]=___3___ ; }

main()

{ char s[80]=\

printf(\ fun(s);

printf(\}

25、给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define M 5 #define N 20

void fun(char (*ss)[N]) { int i, j, n, len=0; for(i=0; in)n=len; }

for(i=0; i

main()

{ char ss[M][N]={\ int i;

printf(\ for(i=0; i

fun(ss);

printf(\

for(i=0; i

26、给定程序中,函数fun的功能是:将N×N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵 1 2 3 4 5 6

7 8 9计算结果为 3 1 2 6 4 5 9 7 8

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 4

void fun(int (*t)[N]) { int i, j, x;

/**********found**********/ for(i=0; i<___1___; i++) {

/**********found**********/ x=t[i][___2___] ; for(j=N-1; j>=1; j--) t[i][j]=t[i][j-1]; /**********found**********/ t[i][___3___]=x; } }

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf(\ for(i=0; i

{ for(j=0; j

fun(t);

printf(\ for(i=0; i

{ for(j=0; j

}

27、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时, 程序输出:

x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double f1(double x) { return x*x; }

double f2(double x, double y) { return x*y; }

/**********found**********/

__1__ fun(int i, double x, double y) { if (i==1)

/**********found**********/ return __2__(x); else

/**********found**********/ return __3__(x, y); }

main()

{ double x1=5, x2=3, r; r = fun(1, x1, x2); r += fun(2, x1, x2);

printf(\}

28、给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将a、b、c三个结点链接成一个单向链表,并输出链表结点中的数据。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include typedef struct list { char data;

struct list *next; } Q;

void fun( Q *pa, Q *pb, Q *pc) { Q *p;

/**********found**********/

pa->next=___1___; pb->next=pc; p=pa;

while( p ) {

/**********found**********/

printf(\/**********found**********/ p=____3____; }

printf(\}

main()

{ Q a, b, c;

a.data='E'; b.data='F'; c.data='G'; c.next=NULL; fun( &a, &b, &c ); }

29、给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define M 5 #define N 20

void fun(char (*ss)[N])

{ int i, j, k, n[M]; char t[N]; for(i=0; i

/**********found**********/ for(j=___1___; jn[j]) ___2___; if(k!=i)

{ strcpy(t,ss[i]); strcpy(ss[i],ss[k]); /**********found**********/ strcpy(ss[k],___3___); n[k]=n[i]; } }

}

main()

{ char ss[M][N]={\ int i;

printf(\ for(i=0; i

printf(\

for(i=0; i

30、给定程序中,函数fun的作用是:统计整型变量m中各数字出现的次数,并存放到数组a中,其中:a[0]存放0出现的次数,a[1]存放1出现的次数,?? a[9]存放9出现的次数。

例如,若m为14579233,则输出结果应为:0,1,1,2,1,1,0,1,0,1,

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

void fun( int m, int a[10]) { int i;

for (i=0; i<10; i++)

/**********found**********/ __1__ = 0; while (m > 0) {

/**********found**********/ i = ___2___; a[i]++;

/**********found**********/ m = ___3___; } }

main()

{ int m, a[10],i;

printf(\请输入一个整数 : \ fun(m, a);

for (i=0; i<10; i++) printf(\}

31、给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include void fun(char *s) { int i, j, n;

for(i=0; s[i]!='\\0'; i++) /**********found**********/

if(s[i]>='0' ___1___ s[i]<='9') { n=0;

/**********found**********/

while(s[i+1+n]!= ___2___) n++; for(j=i+n+1; j>i; j--) /**********found**********/ s[j+1]= ___3___; s[j+1]='*'; i=i+1; } }

main()

{ char s[80]=\

printf(\ fun(s);

printf(\}

32、函数fun的功能是:输出a所指数组中的前n个数据,要求每行输出5个数。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include

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

for(i=0; i

/**********found**********/ if( ___1___==0 )

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

main()

{ int a[100]={0}, i,n; n=22;

for(i=0; i

33、给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 20 void fun( int *a) { int i, x, n=0; x=rand() ;

/**********found**********/ while (n<__1__)

{ for(i=0; i

if( i==__3__){ a[n]=x; n++; } x=rand() ; } }

main()

{ int x[N]={0} ,i; fun( x );

printf(\ for( i=0; i

if((i+1)%5==0)printf(\ }

printf(\}

34、函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9', 则'0'转换成'9','1'转换成'8','2'转换成'7',??,'9'转换成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

/**********found**********/ ___1___ fun(char ch) {

/**********found**********/ if (ch>='0' && ___2___) /**********found**********/

return '9'- (ch-___3___); return ch ; }

main()

{ char c1, c2;

printf(\ c1='2'; c2 = fun(c1);

printf(\ c1='8'; c2 = fun(c1);

printf(\ c1='a'; c2 = fun(c1);

printf(\}

35、给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define M 5 #define N 20

/**********found**********/

int fun(char (*ss) ___1___, int *n) { int i, k=0, len=0; for(i=0; i*n) {

/**********found**********/ ___3___; k=i;

} }

return(k); }

main()

{ char ss[M][N]={\ int n,k,i;

printf(\ for(i=0;i

printf(\ printf(\}

36、给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define M 5 #define N 20

void fun(char (*ss)[N])

{ int i, j, k=0, n, m, len; for(i=0; in) {

/**********found**********/ n=len; ___1___=i; } }

for(i=0; i

len=strlen(ss[i]); /**********found**********/ for(j=___2___; j>=0; j--) ss[i][m--]=ss[i][j]; for(j=0; j

___3___='*'; } }

main()

{ char ss[M][N]={\ int i;

printf(\ for(i=0; i

printf(\

for(i=0; i

37、给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include typedef struct { char name[10]; int age; }STD;

STD fun(STD std[], int n) { STD max; int i; /**********found**********/ max= ___1___;

for(i=1; i

/**********found**********/

if(max.age<___2___) max=std[i]; return max; }

main( )

{ STD std[5]={\ STD max;

max=fun(std,5);

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

printf(\}

38、人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,

由主函数输出,若指定编号不存在,返回数据中的编号为空串。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 8 typedef struct { char num[10];

int year,month,day ; }STU;

/**********found**********/

___1___ fun(STU *std, char *num)

{ int i; STU a={\ for (i=0; i

/**********found**********/

if( strcmp(___2___,num)==0 ) /**********found**********/ return (___3___); return a; }

main()

{ STU std[N]={ {\

{\ {\ STU p; char n[10]=\ p=fun(std,n); if(p.num[0]==0)

printf(\ else

{ printf(\

printf(\ } }

39、给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。例如,若N=3,有下列矩阵:

1 2 3 4 5 6

7 8 9计算结果为 7 4 1

8 5 2 9 6 3

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 4

void fun(int (*t)[N]) { int j ,r[N];

for(j=0; j

/**********found**********/

t[0][N-j-1]=t[j][___1___ ]; for(j=0; j=0;___2___ ) t[N-1][N-1-j]=t[j][N-1]; for(j=N-1; j>=0; j--) /**********found**********/ t[j][N-1]=r[___3___]; }

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf(\ for(i=0; i

{ for(j=0; j

fun(t);

printf(\ for(i=0; i

{ for(j=0; j

40、给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵: 1 2 3 4 5 6

7 8 9交换后为: 3 2 1 4 5 6

9 8 7

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 4

/**********found**********/ void fun(int ___1___ , int n) { int i,s;

/**********found**********/ for(___2___; i++) { s=t[i][i];

t[i][i]=t[i][n-i-1]; /**********found**********/ t[i][n-1-i]=___3___; } }

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf(\ for(i=0; i

{ for(j=0; j

fun(t,N);

printf(\ for(i=0; i

{ for(j=0; j

41、给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。 例如,s所指字符串为:baacda,c中的字符为:a, 执行后s所指字符串为:baaaacdaa。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

void fun(char *s, char c) { int i, j, n;

/**********found**********/

for(i=0; s[i]!=___1___ ; i++) if(s[i]==c) {

/**********found**********/ n=___2___ ;

while(s[i+1+n]!='\\0') n++;

for(j=i+n+1; j>i; j--) s[j+1]=s[j]; /**********found**********/ s[j+1]=___3___ ; i=i+1; } }

main()

{ char s[80]=\

printf(\

printf(\ fun(s,c);

printf(\}

42、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 5

typedef struct student { long sno;

char name[10]; float score[3]; } STU;

void fun(char *filename, STU n) { FILE *fp;

/**********found**********/ fp = fopen(__1__, \/**********found**********/

fseek(__2__, -(long)sizeof(STU), SEEK_END); /**********found**********/

fwrite(&n, sizeof(STU), 1, __3__); fclose(fp); }

main()

{ STU t[N]={ {10001,\ {10003,\ {10005,\ STU n={10006,\ int i,j; FILE *fp;

fp = fopen(\ fwrite(t, sizeof(STU), N, fp); fclose(fp);

fp = fopen(\ fread(ss, sizeof(STU), N, fp); fclose(fp);

printf(\ for (j=0; j

{ printf(\ for (i=0; i<3; i++) printf(\ printf(\ }

fun(\

printf(\ fp = fopen(\ fread(ss, sizeof(STU), N, fp); fclose(fp);

for (j=0; j

{ printf(\ for (i=0; i<3; i++) printf(\ printf(\ } }

43、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 5

typedef struct student { long sno;

char name[10]; float score[3]; } STU;

void fun(char *filename)

{ FILE *fp; int i, j; STU s[N], t;

/**********found**********/ fp = fopen(filename, __1__); fread(s, sizeof(STU), N, fp); fclose(fp);

for (i=0; i

if (s[i].sno __2__ s[j].sno)

{ t = s[i]; s[i] = s[j]; s[j] = t; } fp = fopen(filename, \/**********found**********/

__3__(s, sizeof(STU), N, fp); /* 二进制输出 */ fclose(fp); }

main()

{ STU t[N]={ {10005,\ {10002,\ {10001,\ int i,j; FILE *fp;

fp = fopen(\ fwrite(t, sizeof(STU), 5, fp); fclose(fp);

printf(\ for (j=0; j

{ printf(\ for (i=0; i<3; i++) printf(\ printf(\ }

fun(\

printf(\ fp = fopen(\ fread(ss, sizeof(STU), 5, fp); fclose(fp);

for (j=0; j

{ printf(\ for (i=0; i<3; i++) printf(\ printf(\ } }

44、给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include typedef struct { int num;

char name[10]; }PERSON;

/**********found**********/ void fun(PERSON ___1___) {

/**********found**********/ ___2___ temp;

if(std[0].num>std[1].num)

{ temp=std[0]; std[0]=std[1]; std[1]=temp; } if(std[0].num>std[2].num)

{ temp=std[0]; std[0]=std[2]; std[2]=temp; } if(std[1].num>std[2].num)

{ temp=std[1]; std[1]=std[2]; std[2]=temp; } }

main()

{ PERSON std[ ]={ 5,\ int i;

/**********found**********/ fun(___3___);

printf(\ for(i=0; i<3; i++)

printf(\}

45、给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。

例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 主函数中输出:m=30

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 10

double fun(double x[],double *av) { int i,j; double d,s;

s=0;

for(i=0; i

for(i=0; i

if(x[i]<*av && *av - x[i]<=d){ /**********found**********/ d=*av-x[i]; j=__2__;} /**********found**********/ return __3__; }

main()

{ int i; double x[N]= {46,30,32,40,6,17,45,15,48,26}; double av,m;

for(i=0; i

printf(\ printf(\ printf(\}

46、给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include typedef struct { int num;

char name[9]; float score[3]; }STU;

void show(STU tt) { int i;

printf(\ for(i=0; i<3; i++)

printf(\ printf(\}

/**********found**********/

void modify(___1___ *ss,float a) { int i;

for(i=0; i<3; i++)

/**********found**********/ ss->___2___ *=a; }

main( )

{ STU std={ 1,\ float a;

printf(\ show(std);

printf(\/**********found**********/ modify(___3___,a);

printf(\ show(std); }

47、围绕山顶一圈有N个山洞,编号为0、1、2、3、??、N-1,有一只狐狸和一只兔子在洞中居住。狐狸总想找到兔子并吃掉它,它的寻找方法是先到第一个洞(即编号为0的洞)中找;再隔1个洞,即到编号为2的洞中找;再隔2个洞,即到编号为5的洞中找;下次再隔3个洞;即到编号为9的洞中找;??。若狐狸找一圈,请为兔子指出所有不安全的洞号。程序中用a数组元素模拟每个洞,数组元素的下标即为洞号,数组元素中的值为0时,表示该洞安全,为1时表示该洞不安全。例如,当形参n的值为30时,不安全的洞号是0、2、5、9、14、20、27。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 100

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

for( i=0; i

/**********found**********/ ___2___=1; while( i

/**********found**********/ i=___3___; } }

main()

{ int a[N], i, n=30; fun( a, n);

for(i=0; i

if( a[i]==1 ) printf(\不安全的洞号是 : %d\\n\}

48、函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

void fun(int a[], int n) { int i,t;

/**********found**********/ for (i=0; i<___1___; i++) {

t=a[i];

/**********found**********/ a[i] = a[n-1-___2___]; /**********found**********/ ___3___ = t; } }

main()

{ int b[9]={1,2,3,4,5,6,7,8,9}, i; printf(\ for (i=0; i<9; i++)

printf(\ printf(\ fun(b, 9);

printf(\ for (i=0; i<9; i++)

printf(\ printf(\}

49、函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;其余以此类推。例如:若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 9

/**********found**********/ void fun(int ___1___, int n) { int i, j, max, min, px, pn, t; /**********found**********/ for (i=0; i

/**********found**********/ for (j=___3___; j

{ max = a[j]; px = j; } if (min > a[j])

{ min = a[j]; pn = j; } }

if (px != i)

{ t = a[i]; a[i] = max; a[px] = t; if (pn == i) pn= px; }

if (pn != i+1)

{ t = a[i+1]; a[i+1] = min; a[pn] = t; } } }

main()

{ int b[N]={1,4,2,3,9,6,5,8,7}, i; printf(\

for (i=0; i

printf(\ for (i=0; i

50、给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

本文来源:https://www.bwwdw.com/article/dd7g.html

Top