首页 > 全部 > 二级C语言 > 国家二级C语言机试(操作题)模拟试卷386

国家二级C语言机试(操作题)模拟试卷386

本单篇文档共4456字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 7578人下载
价格: 1.00 原价:¥8.80
收藏

国家二级C语言机试(操作题)模拟试卷386

程序填空题

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

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

主函数中输出:46 32 40 45 48

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

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

1 #include<stdlib.h>

2 #include<stdio.h>

3 #define N 10

4 double fun(double x[],double *y)

5 { int i,j;double av;

6 /**********found**********/

7 av=___1__;

8 /**********found**********/

9 for(i=0; i<N; i++) av = av+ __2__;

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

11 /**********found**********/

12 if(x[i]>av)y[__3__]=x[i];

13 y[j]=-1;

14 return av;

15 }

16 main()

17 { int i;double x[N],y[N];

18 for(i=0;i<N;i++){ x[i]=rand()%50; printf(’’%4.0f’’,x[i]);}

19 printf(’’\n’’);

20 printf(’’\nThe average is:%f\n’’, fun(x,y));

21 for(i=0 ; y[i]>=0;i++) printf(’’%5.1f’’,y[i]);

22 printf(’’\n’’);

23 }

(1)0 (2)x[i]/N (3)j++

解析:函数fun的功能是计算形参x所指数组中N个数的平均值,同时利用传址参数传回平均值。

第一空:“return av;”可知变量av保存了平均值,故第一空处aV初始化应为0,即第一空处应填“0”。第二空:“for(i=0;i<N;i++) av=av+__2__;”后面的循环就是比较比平均值大的元素,因此这个循环结束后av中的值就是平均值。由“av=(x[0]+x[1]+…x[N-1])/N=x[0]/N+x[1]/N+…+x[N-1]/N”可知,第二空处应为“x[i]/N”。第三空:“if(x[i]>av)y[__3__]=x[i];”是将x[i]保存在y所指的数组中,i是循环变量,j初始化为0,故y[]的计数变量为j,故第三空处应为“j++”。

程序修改题

2.给定程序MODI1.C中函数fun的功能是:计算S所指字符串中含有t所指字符串的数目,并作为函数值返回。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

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

1 #include<stdio.h>

2 #include<string.h>

3 #define N 80

4 int fun(char *s,char *t)

5 { int n;

6 char *p,*r;

7 n=0;

8 while(*s)

9 { p=s;

10 /**********found**********/

11 r=p;

12 while(*r)

13 if(*r==*p) { r++; p++;}

14 else break;

15 /**********found**********/

16 if(*r=0)

17 n++;

18 s++;

19 }

20 return 0;

21 }

22 main()

23 { char a[N],b[N];int m;

24 printf(’’\nPlease enter stringa:’’);gets(a);

25 printf(’’\nPlease enter substring b:’’);gets(b);

26 m=fun(a,b);

27 printf(’’\nThe result is :m=%d\n’’,m);

28 }

(1)r=t; (2)if(*r==0)

解析:函数的功能是计算字符串中含有某子串的数目。

(1)根据“while(*r)if(*r===*p){r++;p++;}”可知该循环是比较r和p指向的字符串是否相等,本题的要求是计算字符串中含有某子串的数目,p指向的源字符串s,所以r应指向的是字符串t,故第一标识下应改成“r==t;”。

(2)根据题意第二标识下“if(*r=0)”应该是判断r是否指向字符串尾,在C语言中,等于是用“==”标识,因此第二标识下应改成“if(*r==0)”。

程序设计题

3.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

例如:二维数组中的值为:

1 3 5 7 9

2 9 9 9 4

6 9 9 9 8

1 3 5 7 0

则函数值为61。

注意:部分源程序存在文件PROG1.C文件中。

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

l #include<stdio.h>

2 #define M 4

3 #define N 5

4 int fun(int a[M][N])

5 {

6

7 }

8 main()

9 { Int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};

10 int i,j,y;void NONO();

11 printf(’’The original data is:\n’’);

12 for(i=0;i<M; i++)

13 { for(j=0;j<N;j++)printf(’’%6d’’,aa[i][j]);

14 printf(’’\n’’);

15 }

16 y=fun(aa);

17 printf(’’\nThe sum:%d\n’’,y);

18 printf(’’\n’

本文档预览:3600字符,共4456字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(操作题)模拟试卷386

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号