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

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

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

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

程序填空题

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

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

注意:源程序存放在考生文件夹下的BLANK1.C中。

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

1 #include<stdio.h>

2 #define N 8

3 typedef struct

4 { int num;

5 int year,month,day;

6 } STU;

7 int fun(STU *std, STU *k, int year)

8 { int i,n=0;

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

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

11 if(__1__==year)

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

13 k[n++]=__2__;

14 /**********found**********/

15 return( __3__);

16 }

17 main()

18 {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}};

19 STU k[N];int i,n,year;

20 printf(’’Enter a year : ’’);scanf(’’%d’’,&year);

21 n=fun(std,k,year);

22 if(n==0)

23 printf(’’\nNo petson was born\n%d\n’’,year);

24 else

25 { printf(’’\nThese persons were born\ n%d\n’’,year);

26 for(1=0; i<n;i++)

27 printf(’’%d %d-%d-%d\n’’, k[i].num,k[i].year,k[i].month,k[i].day);

28 }

29 }

(1)std[i].year (2)std[i] (3)n

解析:fun函数的功能是在结构体数组std中找出指定出生年份的人员将其数据放在形参k所指的数组中。

第一空:比较结构体的出生年份是否等于year,std是结构体指针,指向结构体数组的首地址,因此访问一个结构体的year成员是“std[i].year”,因此第一空处应为“if(std[i].year==year)”。

第二空:这里是将找到的数据放在形参k所指的数组中,k是指针变量,k指向结构体数组的首地址,std[i]是结构体的地址,因此等号左边也应该是地址,故第二空处应为“k[n++]=std[i];”。

第三空:fun函数的返回值是满足指定条件的人数n,故第三空处是“return(n);”。

程序修改题

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.学生的记录由学号和成绩组成,N名学生的数据己在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。

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

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

1 #include<stdio.h>

2 #define N 8

3 typedef struct

4 { char num[10];

5 double s;

6 } STREC;

7 double fun(STREC *a,STREC *b,int*n)

8 {

9 }

10 main()

11 {STREC s[N]={{’’GA05’’,85},{’’CA03’’,76},{’’CA02’

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号