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

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

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

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

程序填空题

1.给定程序中,函数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中。

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

1 #include<stdlib.h>

2 #include<stdio.h>

3 #define N 10

4 double fun(double *x)

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

6 av=0;

7 /**********found**********/

8 for(i=0;i<N; i++) av+=__1__;

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

10 if(x[i]<av){

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

12 y[j]=x[i];x[i]=-1;_2__;}

13 i=0;

14 while(i<N)

15 { if(x[i]!=-1)y[j++]=x[i];

16 /**********found**********/

17 __3__;

18 }

19 for(i=0;i<N;i++)x[i]=y[i];

20 return av;

21 }

22 main()

23 { int i;double x[N];

24 for(i=0;i<N;i++){x[i]=rand()%50;printf(’’%4.of’’,x[i]);}

25 printf(’’\n’’);

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

27 printf(’’\nThe result:\n’’,fun(x));

28 for(i=0 ; i<N;i++) printf(’’%5.of’’,x[i]);

29 printf(’’\n’’);}

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

解析:第一空:“for(i=0;i<N;i++)av+=__1__;”在该循环的下一个循环内是逐个比较元素x[i]是否小于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[j]=x[i];x[i]=-1;__2__;”如果x[i]小于平均值则将x[i]存储在y数组中,变量i是循环变量,变量j记录数组y的下标变化,下一次执行if内部语句时,y数组的下标应为下一个位置,故第二空处应为j加1,即第二空出为“j++”或“j=j+1”。

第三空:i为while循环的循环变量,第一次进入while的时候i为0,判断第一个元素x[0]是否是-1,第二次进入的时候判断第二个元素x[1]是否是-1,依此类推直到i=N退出循环,故第三处是变量i自增,即第三空处为“i++”或“i=i+1”。

程序修改题

2.给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。

例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。

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

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

1 #include<stdio.h>

2 long fun(long num)

3 {

4 /**********found**********/

5 long k;

6 do

7 { k*=num%10;

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

9 num\=10;

10 }while(num);

11 return(k);

12 }

13 main()

14 {long n;

15 printf(’’\nPlease enter a number:’’) scanf(’’%1d’’,&n);

16 printf(’’\n%1d\n’’,fun(n);}

(1)long k=1; (2)num/=10;

解析:(1)第一个错误标识下的k是函数的返回值,子函数fun中在执行“k*=num%10;”之前,只进行了定义,却没有赋初值,编译时会警告变量在使用之前没有初始化k。k代表了各个位上的数字之积,其初值应为1。因此,第一个标识下的“long k;”改为“long k=1;”。

(2)第二个标识下的符号“\”是非法字符,根据题意,这里应该是进行除法运算,所以“num\=10;”应该改为“num/=10;”。

程序设计题

3.请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。

注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

1 #include<stdio.h>

2 #include<stdlib.h>

3 #define M 14

4 void NONO();

5 void

fun(char(*t)[N],int*a,int*c)

6 {

7 }

8 void get(char(*s)[M])

9 {int i,j;

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

11 {for(j=0;j<M;j++)

12 {s[i][j]=65+rand()%12;

13 printf(’’%c’’,s[i][j]);}

14 printf(’’\n’’);

15 }

16 }

17 main()

18 {char a[M][M];

19 int x,y;

20 get(a);

21 fun(a,&x,&y);

22 printf(’’A=%d C=%d\n’’,x,y);

23 NONO();

24 }

25 void NONO()

26 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */本文档预览:3600字符,共4617字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号