国家二级C语言机试(操作题)模拟试卷412
程序填空题
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的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串:若未找到,则函数值为NULL。
例如,当字符串中的内容为’’abcdabfabcdx\\
(1)a=NULL; (2)if(*r==*p)
解析:函数功能是求得字符串中某子串最后一次出现的地址。(1)第一个标识下面:语句“a=Null;”中的Null未定义。NULL代表空值,但程序中写成了Null。所以,改成“a=NULL;”。(2)程序的主体是二重循环,其中外循环使指针s逐个指向字符串的字符,直到遇到串结束符退出循环,内循环检查指针p与r所指字符串是否匹配。因为这里p、r是指针,如果使用判断表达式“if(r==p)”,那么比较的是地址,而题目要求比较它们所指的字符。所以,改为:“if(*r==*p)”。
程序设计题
3.编写函数fun,它的功能是计算下列级数和,和值由函数值返回。
1 double s=1.0,y=x ;
2 int i;
3 long k=1;
4 for(i = 1 ; i <=n ; i++) {
5 k=k*i;
6 s += y / k ;
7 y *=x ;
8 }
9 return s ;
解析:(1)根据题干中给出的数列,推出每一项分子是在前一项的基础上乘以x,分母是每一项的阶乘,它可以在前一项的基础上乘以当前项的项数,即第n项是n。
(2)在循环中求得每一项,然后对其进行累加求和。
本文档预览:3600字符,共2226字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载