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

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

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

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

程序填空题

1.给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵:

1 2 3 计算结果为 1 0 0

4 5 66 5 0

7 8 910 14 9

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

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

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

1 #include<stdio.h>

2 #define N 4

3 /**********found**********/

4 void fun(int(*t)__1__)

5 { int i,j;

6 for(i=1 ; i<N;i++)

7 ( for(j=0;j<i;j++)

8 {

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

10 __2___=t[i][j]+t[j][i];

11 /**********found**********/

12 __3__=0;

13 }

14 }

15 }

16 main()

17 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;

18 printf(’’\nThe originalarray:\n’’);

19 for(i=0;i<N;i++)

20 {for(j=0;j<N;j++) printf(’’%2d’’,t[i][j]);

21 printf(’’\n’’);

22 }

23 fun(t);

24 printf(’’\nThe result is:\n’’);

25 for(i=0; i<N;i++)

26 { for(j=0 ; j<N;j++)printf(’’%2d’’,t[i][j]);

27 printf(’’\n’’);

28 }

29 }

(1)[N] (2)t[i][j] (3) t[j][i]

解析:第一空:在主函数中fun函数的调用形式是“fun(t);”,t是数组名,故fun函数的参数是指针,因此第一空处应为“[N]”。第二空:“__2__=t[i][j]+t[j][i];”是将对称元素相加存放在左下三角元素中,左下三角元素可表示为t[i][j],故第二空处应为“t[i][j]”。第三空:“__3__=0;”是将右上三角元素置0,右上三角元素可表示为t[j][i],故第三空为“t[i][i]”。

程序修改题

2.给定程序MODI1.C中函数fun的功能是:将长整型数s中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为:87653142时,t中的数为:8642。

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

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

1 #include<stdio.h>

2 void fun(long s,long *t)

3 { int d;

4 long s1=1;

5 *t=0;

6 while(s>0)

7 {d=s%10;

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

9 if(d%2=0)

10 {*t=d *s1+*t;

11 s1 *=10;

12 }

13 /**********found**********/

14 s\=10;

15 }}

16 main()

17 {long s,t;

18 printf(’’\nPlease enter s:’’); scanf(’’%1d’’,&s);

19 fun(s,&t);

20 printf(’’The result is:%1d\n’’,t);

21 }

(1)if(d%2==0) (2)s/=10;

解析:(1)第一个标识是判断d是否是偶数,即比较“d%2”是否等于0,在C语言中,“==”表示的是“等于”,而“=”是赋值,因此第一个标识下“if(d%2=0)”应改为“if(d%2==0)”。

(2)第二个标识下的“s\=10;”是对a的截取,这里的“\”本意应该是除号,但这个在C语言中是不可识别的,所以第二个标识下“s\=10;”应该改为“s/=10;”。

程序设计题

3.请编写一个函数void fun(char *tt,int pp[]),统计在tt所指字符串中’’’a’’’到’’’z’’’26个小写字母各自出现的次数,并依次放在pp所指数组中。

例如,当输入字符串:abcdefgabcdeabc后,程序的输出结果应该是:

3 3 3 2 2 1 1 0 0 0 0 0 0 0 O 0 0 0 0 0 0 0 0 0 0 0

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

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

1 #include<stdio.h>

2 #include<string.h>

3 void fun(char *tt,int pp[])

4 {

5

6 }

7 main()

8 { char aa[1000];

9 int bb[26],k;

10 void NONO();

11 printf(’’\nPlease enter a char string:’’);scanf(’’%s’’,aa);

12 fun(aa,bb);

13 for(k=0 ; k<26;k++) printf(’’%d’’,bb[k]);

14 printf(’’\n’’);

15 NONO();

16 }

17 void NONO()

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

19 char as[1000];

20 int bb[26],k,i;

21 FILE *rf,*wf;

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

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

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

25 fscanf(rf,’’%s’’,aa);

26 fun(aa,bb);

27

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号