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

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

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

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

程序填空题

1.给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长<N。

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

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

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

1 #include<stdio.h>

2 #include<string.h>

3 #define M 5

4 #define N 20

5 int fun(char(*ss)[N],int *n)

6 { int i,k=0,len=N;

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

8 for(i=0;i< __1__;i++)

9 {len=strlen(ss[i]);

10 if(i==0) *n=len;

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

12 if(len __2__ *n)

13 {* n=len;

14 k=i ;

15 }

16 }

17 /**********found**********/

18 return(__3__);

19 }

20 main()

21 { char ss[M][N]={’’shanghai’’,’’guangzhou’’,’’beijing’’,’’tianjing’’,’’chongqing’’};

22 int n,k,i;

23 printf(’’\nThe original strings are:\n’’);

24 for(i=0;i<M;i++)puts(ss[i]);

25 k=fun(ss,&n);

26 printf(’’\nThe length of shortest string is:%d\n’’,n);

27 printf(’’\nThe shortest string is:%s\n’’,ss[k]);

28 }

(1)M (2)< (3)k

解析:第一空:循环的目的是在M个字符串中寻找长度最短的字符串,因此循环变量i从0变化到“M-1”,故第一空处应为“M”。

第二空:“*n”记录最小字符串的长度,由审题分析可知,字符串ss[i]长度比min小,则交换最小长度值和下标位置,故第二空处应为“<”。

第三空:变量k记录了最小字符串的下标位置,函数的返回值是最短的字符串所在的行下标,故第三空处应为“k”。

程序修改题

2.给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。

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

1 #include<stdio.h>

2 #include<stdlib.h>

3 typedef struct aa

4 {int data; struct aa *next;} NODE;

5 int fun(NODE *h)

6 { int sum=0;

7 NODE *p;

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

9 p=h;

10 while(p)

11 { if(p->data%2==0)

12 sum+=p->data;

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

14 p=h->next;

15 }

16 return sum;

17 }

18 NODE *creatlink(int n)

19 (NODE *h,*p,*s;

20 int i;

21 h=p=(NODE*)malloc(sizeof(NODE));

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

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

24 s->data=rand()%16;

25 s->next=p->next;

26 p->next=s;

27 p=p->next;

28 }

29 p->next=NULL;

30 return h;

31 }

32 outlink(NODE *h,FILE *pf)

33 {NODE *p;

34 p=h->next;

35 fprintf(Pf,’’in\nTHE LIST:in\n HEAD’’);

36 while(p)

37 {fprintf(pf,’’->%d’’,p->data); p=p->next;}

38 fprintf(pf,’’in’’);

39 }

40 outresult(int s,FILE *pf)

41 { fprintf(pf,’’\nThe sum of even numbers:%d\n’’,s);}

42 main()

43 { NODE *head;int even;

44 head=creatlink(12);

45 head->data=9000;

46 outlink(head,stdout);

47 even=fun(head);

48 printf(’’\nThe result:in’’); outresult(even,stdout);

49 }

(1)p=h->next; (2)p=p->next;

解析:(1)根据题干中求得除了头结点之外的结点数据域中的数据值,头指针h,工作指针p指向头结点的下一个结点,所以第一个标识下的“p=h;”指向头结点应该改为指向下一个结点“p=h->next;”。

(2)工作指针p,利用p实现对链表的遍历,p表示指向链表的当前结点,所以指向下一个结点应该是“p=p->next;”。

程序设计题

3.编写函数fun,它的功能是计算下列级数和,和值由函数值返回。

1 double s=1.0,y=x ;

2 int i;

3 long k=1;

4 for(i = 1 ; i <=n ; i++) {

5

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号