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

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

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

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

程序填空题

1.给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。

例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302,311,320、401、410、5000共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。

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

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

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

1 #include<stdio.h>

2 int fun(int x)

3 { int n,s1,s2,s3,t ;

4 n=0;

5 t=100;

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

7 while(t<= __1__) {

8 /*********found*********/

9 s1=t%10;s2=( __2__ )%10;s3=t/100;

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

11 if(s1+s2+s 3==__3__)

12 {printf(’’%d’’,t);

13 n++;

14 }

15 t++;

16 }

17 return n;

18 }

19 main()

20 { int x=-1;

21 while(x<0)

22 { printf(’’Please input(x>0):’’); scanf(’’%d’’,&x);}

23 printf(’’\nThe result is:%d\n’’,fun(x));

24 }

(1)999 (2)t/10 (3)x

解析:在100~999之间(含100和999)所有整数中,取x的个位、十位和百位,可由x%10,x/10再对10求余、x/100分别得到。第一空:是补充while循环的终止条件,题干要求fun寻找100~999之间满足条件的数x,因此循环终止条件是999,故第一空处应填“999”。第二空:“s1=t%10;s2=(__2__)%10;s3=t/100;”可知s1求得t的个位数,s3求得t的百位数,因此s2是求t的十位数。(t/10)变量t变成两位数,再次对10取余便得到t的十位数,因此第二空处应为“t/10”。第三空:“if(s1+s2+s3==__3__)”是判断t是否满足题干条件:各位上数字之和为x,因此第三空处应为“x”。

程序修改题

2.给定程序MODI1.C中fun函数的功能是:求

s=aa…aa-…-aaa-aa-a

(此处aa…aa表示n个a,a和n的值在1至9之间)

例如a=3,n=6,则以上表达式为:

s=333333-33333-3333.333-33-3

其值是:296298

a和n是fun函数的形参,表达式的值作为函数值传回main函数。

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

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

1 #include<stdio.h>

2 long fun(int a,int n)

3 { int j;

4 /**********found**********/

5 long s=0,t=1;

6 for(j=0;j<n;j++)

7 t=t *10+a;

8 s=t;

9 for(j=1;j<n;j++){

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

11 t=t%10;

12 s=s-t;

13 }

14 return(s);

15 }

16 main()

17 { int a,n ;

18 printf(’’\nPlease enter a and n:’’);

19 scanf(’’%d%d’’,&a,&n);

20 printf(’’The value of function is:%id\n’’,fun(a,n));

21 }

(1)lonq s=0, t=0; (2)t=t/10;

解析:函数的功能是求s=aa…aa-…-aaa-aa-a。

(1)当进入第一循环,“t=t*10+a;”语句,如果输入的a是3,并且利用题目中给出的初始化值1,计算得出t的值为13,而实际应该是3,由此可知t的初值设置不正确,不应该是1。所以将“long s=0,t=1;”改为“long s=0,t=0;”。

(2)循环中通过语句“t=t%10;”来获得每一项,每循环一次,t的值应缩小10倍,这里应该用除以10来实现,而不能用“%”求余数。所以将“t=t%10;”改为“t=t/10;”。

程序设计题

3.规定输入的字符串只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。

例如, 字符串中的内容为:

*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。

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

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

1 #include<stdio.h>

2 void fun(char *a)

3 {

4 }

5 main()

6 { char s[81];

7 void NONO();

8 printf(’’Enter a string:\n’’); gets(s);

9 fun(s);

10 prLntf(’’The string after deleted:\n’’);puts(s);

11 NONO();

12 }

13 void NONO()

14 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

15 FILE *in,*out;

16 int i;char s[81];

17 in=fopen(’’in.dat’’,’’r’’);

18 out=fopen(’’out.dat’’,’’w’’);

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

20 fScanf(in,’’%s’’,s);

21 fun(s);

22 fprintf(out,’’%s\n’

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号