国家二级C语言机试(操作题)模拟试卷349
程序填空题
1.给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 #include<stdlib.h>
3 void fun(char *s,int a,double f)
4 {
5 /**********found**********/
6 ___1___ fp;
7 char str[100],str1[100],str2[100];
8 int a1;double f1;
9 fp=fopen(’’filel.txt’’,’’w’’);
10 fprintf(fp,’’%s%d%f\n’’,s,a,f);
11 /**********found**********/
12 __2__;
13 fp=fopen(’’file1.txt’’,’’r’’);
14 /**********found**********/
15 fscanf(__3__,’’%s%s%s’’, str,str1,str2);
16 fclose(fp);
17 a1=atoi(str1);
18 f1=atof(str2);
19 printf(’’\nThe result:\n\n%s%d%f\n’’,str,a1, f1);
20 }
21 main()
22 {char a[10]=’’Hello!’’;int b=12345;
23 double c=98.76;
24 fun(a,b,c);
25 }
(1)FILE* (2)fclose(fp) (3)fp
解析:第一空:“fp=fopen(’’filel.txt’’,’’w’’);”可知fp是文件型指针,故第一空处fp的定义应为“FILE*”。
第二空:第二处的后面一句是“fp=fopen(’’filel.txt\\
程序修改题
2.给定程序MODI1.C中函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
1 #include<stdio.h>
2 long fun(int x,int y,long *p)
3 { int i;
4 long t=1;
5 /**********found**********/
6 for(i=1 ; i<y; i++)
7 t=t* x;
8 *p=t;
9 /**********found**********/
10 t=t/1000;
11 return t;
12 }
13 main()
14 { long t,r; int x,y;
15 printf(’’\nTnput x and y: ’’);scanf(’’%1d%1d’’,&x,&y);
16 t=fun(x,y,&r);
17 printf(’’\n\nx=%d,y=%d,r=%1d,1ast=%1d\n\n’’,x,y,r,t);
18 }
(1)for(i=1;i<=y;i++) (2)t=t%1000;
解析:函数的功能是求整数x的y次方的低3位值。(1)第一个标识下的“for (i=1;i<y;i++)”说明进行了y-1次方,而不是y次方,所以将“for(i=1;i<y;i++)”改为“for(i=1;i<=y;i++)”。(2)题目中要求截取前面求得结果的低三位,因此,第二个标识下“t=t/1000;”应该改为“t=t%1000;”。
程序设计题
3.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
注意:部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 #include<string.h>
3 #define N 10
4 typedef struct ss
5 { char num[10]; int s;) STU;
6 void fun(STU a[],STU *s)
7 {
8 }
9 main()
10 {STU a[N]={{’’A01’’,81},{’’A02”,89},{’’A03’’,66},{’’A04’’,87},{’’A05’’,77},{’’A06’’,90},{’’A07’’,79},{’’A08’’,61},{’’A09’’,80},{’’A10’’,71}},m;
11 int i;void NONO();
12 printf(’’***** The original data *****\n’’);
13 for(i=0;i<N;i++)printf(’’No=%s Mark=%d\n’’,a[i].num,a[i].s);
14 fun(a,&m);
15 printf(’’***** THE RESULT *****\n’’);
16 printf(’’The lowest:%s,%d\n’’,m.num,m.s);
17 NONO();
18 }
19 void NONO()
20 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
21 FILE *rf,*wf;
22 STU a[N],m;
23 int i;
24 rf=fopen(’’in.dat’’,’’r’’);
25 wf=fopen(’’out.dat’’,’’w’’);
26 for(i=0;i<10;i++)fscanf(rf,’’%s %d’’,a[i].mum,&a[i].s);
27 fun(a,&m);
28 fprintf(wf,’’The lowest:%s,%d\n’’,m.num,m.s);
29 fclose(rf);
30 fclose(wf);}
1 int i, min=a[0].s, j=
本文档预览:3600字符,共3864字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载