国家二级C语言机试(操作题)模拟试卷350
程序填空题
1.函数fun的功能是:计算
直到
(1)x (2)n (3)fabs(t)
解析:函数fun的功能是计算级数和。
第一空:“f=1.0+x;”f的初始化为级数的前两项之和,do while循环从第三项x2/2开始计算,第一空处是给t赋初值,t表示级数项,“n++;t*=(-1.0)*x/ __2__;”即第一次进入do循环之后n的值为2,故t的初值应该为x,第一空处应为“x”。
第二空:由审题分析可知,后一项乘以(-1)*x除以n,故第二空处应为“n”。
第三空:循环的终止条件是(x0/n!)的绝对值小于1e-6,即只要(xn/n!)大于等于le-6,do循环就执行,故第三处应为“fabs(t)”,fabs函数的功能是求绝对值。
程序修改题
2.给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。
(1)double fun(int m) (2)for(i=100; i<=m; i+=100)
解析:函数为累计相加,计算公式的值。
(1)第一个标识下的fun函数的定义,根据题干中给出的公式中的分数部分,可知应该具有double类型返回值。所以应将“fun(int m)”改为“double fun(int m)”。
(2)第二个标识下的for循环过程是实现对公式的求解,C语句中for循环中的多个循环条件表达式是以分号为分隔符,所以第二个标识下“for(i=100,i<=m,i+=100)” 改为 “for(i=100;i<=m;i+=100)”。
程序设计题
3.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
例如, 字符串中的内容为:
****A*BC*DEF*G*******,删除后字符串中的内容应当是:****ABCDEFG。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 void fun(char*a)
3 {
4 /*以下代码仅供参考*/
5 int i=0,k;
6 while(a[i]==’*’)i++;
7 k=i;
8 while(a[i]!=’\0’)/*以下程序段实现非*字符前移*/
9 {
10 }
11 a[k]=’\0’;
12 }
13 main()
14 {char s[81];void NONO();
15 printf(’’Enter a string:\n’’);gets(s);
16 fun(s);
17 printf(’’The string after deleted:\n’’);puts(s);
18 NONO();
19 }
20 void NONO()
21 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
22 FILE *in,*out;
23 int i ; char s[81];
24 in=fopen(’’in.dat’’,’’r’’);
25 out=fopen(’’out.dat’’,’’w’’);
26 for(i=0;i<10;i++) {
27 fscanf(in,’’%s’’,s);
28 fun(s);
29 fprintf(out,’’%s\n’’,s);
30 }
31 fclose(in);
32 fclose(out);
33 }
2 void fun( char *a )
3 { int i=0,k;
4 while(a[i]==’*’)i++;
5 k=i;
6 while(a[i]!=’\0’)
7 {if(a[i]!=’*’)
a[k++]=a[i];
8 i++;
9 }
10 a[k]=’\0’;
11 }
解析:本题主函数中需要输入一个字符串,然后进入fun函数处理字符串,在fun函数中,就要实现题目要求我们写出的功能了。首先是判断字符串的开始是否为“*”,这里就用到while函数(这里因为有步骤的区别,所以这里用while比用if好),判断开始的字符是否为“*”,见程序第5~6行,这里需要顺次进行,因为开始无论有多少个“*”都不用删除,当出现字母时,就开始下一步了,因为已经出现了字母,所以后面出现的“*”一律删除,而字母时不用管的,所以这里就又需要if条件语句来判断是否为“*”然后赋值为空,见程序第9~12行,当程序进行到字符为空时代表字符串结束,程序就终止,这里就要用到while条件语句进行终止判断,见程序第7行。这样循环进行就能保留字符串前面的“*”并且删除后面出现的所有“*”了,然后fun函数执行完成就可以转到主函数中进行新字符串的输出了。
本文档预览:3600字符,共3003字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载