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

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

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

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

程序填空题

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的功能是:计算

S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。例如,当n为5时,函数值应为:10.407143。

f(x)函数定义如下:

(1)double f(double x) (2)return s;

解析:(1)第一个标识下f函数的定义缺少返回值类型,所以将“f(double x)”改为“double f(double x)”。

(2)第二个标识下返回语句没有分号结束。所以,第二个标识下“return s”应该改为“return s;”。

程序设计题

3.函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。

例如,当a=45,b=12时,调用该函数后,c=5142。

注意:部分源程序存在文件PROG1.c中。数据文件in.dat中的数据不得修改。

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

1 #include<stdio.h>

2 void fun(int a,int b,long *c]

3 {

4

5 }

6 main()

7 { int a,b;long c;

8 void NONO();

9 printf(’’Input a,b:’’);

10 scanf(’’%d,%d’’,&a,&b);

11 fun(a,b,&c);

12 printf(’’The result is:%1d\n’’,c);

13 NONO();

14 }

15 void NONO()

16 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

17 FILE *rf,*wf;

18 int i,a,b ; long c;

19 rf=fopen(’’in.dat’’,’’r’’);

20 wf=fopen(’’out.dat’’,’’w’’);

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

22 fscanf(rf,’’%d,%d’’, &a, &b);

23 fun(a,b,&c);

24 fprintf(wf,’’a=%d,b=%d,c=%1d\n”,a,b,c);

25 }

26 fclose(rf);

27 fclose(wf);

28 }

*c=(a%10)*1000+(b/10)*100+ (a/10)*10+(b%10);

解析:(1)分解两位数的正整数n的个位和十位数,可用n%10和n/10实现。

(2)设x0、x1、x2、x3为一位数,则x0、x1×10、x2×100、x3×1000,可以分别使x0、x1、x2、x3构成个、十、百、千带权数,而x0+x1×10+x2×100+x3×1000构成四位数。本题最多只考虑四位数。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号