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

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

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

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

程序填空题

1.给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵

1 2 3

4 5 6

7 8 9

程序执行结果为

0 0 l

0 0 4

0 0 7

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

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

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

1 #include<stdio.h>

2 #define N 4

3 void fun(int(*t)[N],int m)

4 { int i,j;

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

6 for(i=0;i<N;__1__ )

7 { for(j=N-1-m;j>=0;j–)

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

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

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

11 for(j=0;j<__3__;j++)

12 t[i][j]=0;

13 }

14

15 main()

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

17 printf(’’\nThe original array:\n’’);

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

19 { for(j=0;j<N;j++)

20 printf(’’%2d’’,t[i][j]);

21 printf(’’\n’’);

22 }

23 printf(’’Input m(m<=%d) :’’,N);scanf(’’%d’’,&m);

24 fun(t,m);

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

26 for(2=0;i<N;i++)

27 { for(j=0;j<N;j++)

28 printf(’’%2d’’,t[i][j]);

29 printf(’’\n’’);

30 }

31 }

(1)i++ (2)m (3)m

解析:函数fun的功能是将每行元素中的值均右移m个位置。

第一空:题目要求对每行元素中的值均右移m个位置,故第一空处循环变量每次增1,共循环N次,完成对N行的移位操作,因此第一空处应为“i++”。

第二空:循环“for(j=N-1-m;j>=0;j–)”是进行行元素中的值右移m个位置,即把t[i][j]元素放置在t[i][j+m]上,因此第二空应为“m”。

第三空:循环“for(j=0;j<__3__;j++)”是对空出来的位置补0,每行元素的前m位数据已经移动到后面,每行空处m个元素,因此第三空为“m”。

程序修改题

2.给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。

请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。

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

1 #include<stdio.h>

2 #include<stdlib.h>

3 typedef struct aa

4 { int data;

5 struct aa *next;

6 } NODE;

7 NODE *Creatlink(int n,int m)

8 {NODE * h=NULL,*p,*s;

9 int i;

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

11 p=(NODE)malloc(sizeof(NODE));

12 h=p;

13 { p->next=NULL;

14 for(i=1;i<=n;i++)

15 {s=(NODE *)malloc(sizeof(NODE));

16 s->data=rand()%m; s->next=p->next;

17 p->next=s;p=p->next;

18 }

19 /**********found**********/

20 return p;

21 }

22 outlink(NODE *h)

23 { NODE *p;

24 p=h->next;

25 printf(’’\nXnTHE LIST:\n\n HEAD’’);

26 while(p)

27 { printf(’’->%d’’,p->data);

28 p=p->next;

29 }

30 printf(’’\n’’);}

31 main()

32 { NODE *head;

33 head=Creatlink(8,22);

34 outlink(head);}

(1)p=(NODE*)malloc (sizeof(NODE)); (2)return h;

解析:(1)“p=(NODE)malloc(sizeof(NODE));”第一标识,maclloc函数的返回类型是void*类型,表示未确定类型的指针,因此需要指针类型转换,而“(NODE)”不是指针类型,故第一标识下应改成“p=(NODE*)malloc(sizeof(NODE));”。

(2)第二个标识下,最后将单链表返回,应该是返回头指针h指向的链表,而不是其中的一个节点p,所以“return p;”应该改为“return h;”。

程序设计题

3.请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。

例如,二维数组中的数据为:

33 33 33 33

44 44 44 44

55 55 55 55

则一维数组中的内容应是:

33 44 55 33 44 55 33 44 55 33 44 55。

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

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

1 #include<stdio.h>

<

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号