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

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

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

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

程序填空题

1.函数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中。

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

1 #include<stdio.h>

2 #define N 9

3 /**********found**********/

4 void fun(int___1___,int n)

5 { int i,j,max,min,px,pn,t;

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

7 for(i=0;i<n-1;i+=__2__)

8 { max=min=a[i];

9 px=pn=i;

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

11 for(j=__3__;j<n;j++)

12 { if(max<a[j])

13 { max=a[j];px=j;)

14 if(min>a[j])

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

16 }

17 if(px!=i)

18 {t=a[i]; a[i]=max;a[px]=t;

19 if(pn==i)pn=px;

20 }

21 if(pn!=i+1)

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

23 }

24 }

25 main()

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

27 printf(’’\nThe original data:\n’’);

28 for(2=0;i<N;i++)printf(’’%4d’’,b[i]);

29 printf(’’\n’’);

30 fun(b,N);

31 printf(’’\nThe data after moving:\n’’);

32 for(2=0;i<N;i++)printf(’’%4d’’,b[i]);

33 printf(’’\n’’);

34 }

(1)*a (2)2 (3)i+1

解析:第一空:主函数内fun函数的调用“fun(b,N);”,其中b为整型数组名,故fun函数的第一参数为整型指针,又根据“max=a[j]”可知第一个参数名为a,故第一空处为“*a”。

第二空:根据题意a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中,升序排序和降序排序的下标变化是每次在前一次的基础上+2,即a[0]、a[2]、a[4]…降序排序,a[1]、a[3]、a[5]…升序排序,故第二空应为“2”。

第三空:选择排序法中的升序排序,首先从数组中挑选一个最小的元素,把它和第一元素交换,接着从剩下的n-1个元素中再挑出一个最小的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。故内层循环变量i应该从i+1开始,因此第三空处应为“i+1”。

程序修改题

2.给定程序MODI1.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。

例如,若输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64

则低于平均分的学生人数为:4(平均分为:75.5625)。

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

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

1 #include<stdio.h>

2 #define N 20

3 int fun(float *s,int n,float* aver)

4 { float ave,t=0.0;

5 int count=0,k,i;

6 for(k=0;k<n ; k++)

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

8 t=s[k];

9 ave= t/n;

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

11 if (s[i]<ave) count++ ;

12 /**********found**********/

13 *aver=Ave ;

14 return count ;

15 }

16 main()

17 { float s[30],aver;

18 int m,i;

19 printf (’’\nPlease enter m:’’);scanf(’’%d’’,&m);

20 printf(’’\nPlease enter %d mark:\n’’, m);

21 for(i=0;i<m;i++)scanf(’’%f’’,s+i);

22 printf(’’\nThe number of students:%d\n’’,fun(s,m,&aver));

23 printf(’’Ave=%f\n’’,aver);

24 }

(1)t+:s[k]; (2)*aver=ave;

解析:程序功能是统计出低于平均分的学生人数。

(1)根据题目要求求出平均分,首先要求总分,要把所有学生成绩相加再求平均分,因此第一个标识下面的“t=s[k];”应改为“t+=s[k];”。

(2)根据题目可知,比较的结果中低于平均分的分数ave放入指针aver所指的地址单元中,而变量Ave没有定义,因此第二标识下应将“*aver=Ave;”改为“*aver=ave;”。

程序设计题

3.请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入XX所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。

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

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

1 #include<stdio.h>

2 void fun(int m, int k, int xx[])

3 {

4 }

5 Nain()

6 {

7 int m,n,zz[1000];void NONO();

<

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号