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

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

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

国家二级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版点下载

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号