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

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

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

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

程序填空题

1.给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

1 #include<stdio.h>

2 void fun(char *s)

3 { int i,n,k;char c;

4 n=0,

5 for(i=0;s[i]!=’\0’;i++)n++;

6 /**********found**********/

7 if(n%2==0)k=n__1__;

8 else k=n-2;

9 /**********found**********/

10 c=__2__;

11 for(i=k-2; i>=1j i=i-2) s[i+2]=s[i];

12 /**********found**********/

13 s[1]=__3__;

14 }

15 main()

16 { char s[80]=’’abcdefgh’’;

17 printf(’’\nThe original string is:%s\n’’,s);

18 fun(s);

19 printf(’’\nThe result is:%s\n’’,s);

20 }

(1)1 (2)s[k] (3)c

解析:函数fun的功能是移动下标为奇数位置的字符。

第一空:“for(i=0;s[i]!=’\0’;i++)n++;”n记录了数组s的长度,“if(n%2==0)”如果长度n是偶数,那么最右边被移出的字符的下标是在n-1,如果n是奇数,那么最右边被移出的字符的下标是n-2,因此第一空处应为“1”。

第二空:题目要求最右边被移出字符串的字符绕回放到第一个奇数位置,因此最右边被移出的字符是s[k],在s[k]被替换之前必须先把s[k]保存在其他变量中,故第二空处应为“s[k]”,将s[k]保存在c中。

第三空:此处是把最右边被移出字符串的字符绕回放到第一个奇数位置,最右边被移出字符保存在c,第一奇数位置是s[1],故第三处应为“c”。

程序修改题

2.给定程序MODI1.C中函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。

若high的值为:100,则函数的值为:732。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

1 #include<stdio.h>

2 #include<math.h>

3 int fun(int high)

4 { int sum=0,n=0,j,yes;

5 /**********found**********/

6 while((high>=2)&&(n<10)

7 { yes=1;

8 for(j=2;j<=high/2;j++)

9 if(high%j==0) {

10 /**********found**********/

11 yes=0;break

12 }

13 if (yes) {sum+=high; n++;)

14 high–;

15 }

16 return sum;

17 }

18 main()

19 {

20 printf(’’%d\n’’,fun(100));

21 }

(1)while((2<=high)&&(n<10)) (2)yes=0; break;

解析:函数的功能是计算并输出high以内最大的10个素数之和。

(1)C语言中左右括弧必须成对出现,在第一个标识下“while((high>=2)&&(n<10)”中,显然缺少一个右括弧,应改为“while((2<=high)&&(n<10))”。

(2)在判断素数的循环过程中,只要被判断的数能被某数整除就不是素数,就会跳出判断循环,在C语言中使用break语句跳出循环,并且C语言中的语句使用分号为结尾。所以“break”应改为“break;”。

程序设计题

3.请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。

注意:部分源程序在文件PROG1.C中。

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

1 #include<stdio.h>

2 #include<string.h>

3 #define N 80

4 int fun(char *s)

5 {

6

7 }

8 main()

9 { char 1ine[N];int num=0; void NONO();

10 printf(’’Enter a string:\n’’);gets(line);

11 num=fun(line);

12 printf(’’The number of wordis:%d\n\n’’,num);

13 NONO();

14 }

15 void NONO()

16 {/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/

17 FILE *rf,*wf;int i,num;charline[N],*p;

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

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

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

21 fgets(1ine,N,rf);

22 p=strchr(1ine,’\n’);

23 if(p!=NULL) *p=0;

24 num=fun(1ine);

25 fprintf(wf,’’%d\n’’,num);

26 }

27 fclose(rf);fclose(wf);

28 }

1 int i,n=0;//字符统计初始值设置为0

2 for(i=0;i<strlen(s);i++)

3 //小于字符串长度进行字符循环

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号