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

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

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

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

程序填空题

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的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。

请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

1 #include<stdio.h>

2 int fun(int *x,int y)

3 {

4 int t;

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

6 t=x;x=y;

7 /**********found**********/

8 return(y);

9 }

10 main()

11 { int a=3,b=8;

12 printf(’’%d%d\n’’,a,b);

13 b=fun(&a,b);

14 printf(’’%d%d\n’’,a,b);

15 }

(1)t=*x;*x=v; (2)return(t);

解析:(1)根据fun中x变量的定义,x为指针型变量,所以第一个错误标识下的“t=x;x=y;”改为“t=-*x;*x=y;”。(2)交换之后t中存放原来x的值,x存放原来y的值,这里应该是返回原来x的值,所以第二个标识下的“return(y);”应该改为“return(t);”或者“return t;”。

程序设计题

3.请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCH码降序排列。

例如,原来的字符串为:CEAedca,排序后输出为:CedcEAa。

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

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

1 #include<stdio.h>

2 #include<ctype.h>

3 #include<string.h>

4 void fun(char *s,int num)

5 {

6

7 }

8 NONO()

9 {

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

11 char s[10];

12 FILE *rf,*wf ;

13 int i=0;

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

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

16 while(i<10) {

17 fgets(s,10,rf);

18 s[7]=0 ;

19 fun(s,7);

20 fprintf(wf,’’%s\n’’,s);

21 i++;

22 }

23 fclose(rf);

24 fclose(wf);

25 }

26 main()

27 {

28 char s[10];

29 printf(’’输入7个字符的字符串:’’);

30 gets(s);

31 fun(s,7);

32 printf(’’\n%s’’,s);

33 NONO();

34 }

1 char t;

2 int i,j;

3 for(i=1;i<num-2;i++)

4 //对n个元素进行循环选择

5 for(j=i+1;j<num-1;j++)

6 if(s[i]<s[j])

7 //将str[i]设为最大值,和剩下的j~num-1进行比较

8 { t=s[i];

9 s[i]=s[j];

10 s[j]=t;

11 }

解析:选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一个元素交换,接着从剩下的num-1个元素中再挑出一个

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号