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

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

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

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

程序填空题

1.函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。

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

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

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

1 #include<stdio.h>

2 void fun(int a[],int n)

3 { int i,t;

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

5 for(2=0 ; i<__1__; i++)

6 {

7 t=a[i];

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

9 a[i]=a[n-1- __2__];

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

11 __3__=t;

12 }

13 }

14 main()

15 {int b[9]={1,2,3,4,5,6,7,8,9},i ;

16 printf(’’\nThe original data:\n’’);

17 for(i=0;i<9;i++)

18 printf(’’%4 d’’,b[i]);

19 printf(’’\n’’);

20 fun(b,9);

21 printf(’’\nThe data after invert:\n’’);

22 for(2=0;i<9;i++)

23 printf(’’%4d’’,b[i]);

24 printf(’’\n’’);

25 }

(1)n/2 (2)i (3)a[n-i-1]

解析:函数fun的功能是将数组中的元素倒置。

第一空:由审题分析可知,总共交换n/2次,故循环的终止条件为i等于n/2,故第一空处应为“n/2”。

第二空:a[0]和a[n-1]交换,a[1]和a[n-2]交换…,因此a[i]和a[n-i-1]交换,故第二空处应为“i”。

第三空:“t=a[i];a[i]=a[n-1-i];”所以第三空处是把t值赋值a[n-1-i],故第三空处应为“a[n-1-i]”。

程序修改题

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

S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。例如,当n为5时,函数值应为:10.407143。

f(x)函数定义如下:

(1)double f(double x) (2)return s;

解析:(1)第一个标识下f函数的定义缺少返回值类型,所以将“f(double x)”改为“double f(double x)”。

(2)第二个标识下返回语句没有分号结束。所以,第二个标识下“return s”应该改为“return s;”。

程序设计题

3.函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。

例如,当a=45,b=12。调用该函数后,c=4251。

注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。

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

1 #include<stdio.h>

2 void fun(int a,int b,long *c)

3 {

4 }

5 void NONO()

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

7 FILE *rf,*wf;

8 int i,a,b;long c ;

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

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

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

12 fscanf(rf,’’%d,%d’’,&a,&b);

13 fun(a,b,&c);

14 fprintf(wf, ’’a=%d,b=%d,c=%1d\n’’, a, b, c);

15 }

16 fclose(rf);

17 fclose(wf);

18 }

19 main()

2 { int a,b;long c;void NONO();

21 printf(’’Input a,b:’’);

22 scanf(’’%d%d’’,&a,&b);

23 fun(a,b,&c);

24 printf(’’The result is:%1d\n’’,c);

25 NONO();}

*c=(a/10) *1000+(b%10)*100+(a%10)*10+(b/10);

解析:(1)分解两位数的正整数n的个位和十位数,可用n%10和n/10实现。(2)设x0、x1、x2、x3为一位数,则x0、x1×10、x2×100、x3×1000,可以分别使x0、x1、x2、x3构成个、十、百、千带权数,而x0+x1×10+x2×100+x3×1000构成四位数。本题最多只考虑四位数。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号