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

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

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

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

程序填空题

1.给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符“*”补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长<N。

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

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

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

1 #include<stdio.h>

2 #include<string.h>

3 #define M 5

4 #define N 20

5 void fun(char(*ss)[N])

6 { int i,j,n,len=0;

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

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

9 if(i==0)n=len;

10 if(len>n)n=len;

11 }

12 for(i=0;i<M;i++) {

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

14 n=strlen( __1__);

15 for(j=0;j<len-n;j++)

16 /**********found**********/

17 ss[i][ __2__]=’*’;

18 /**********found**********/

19 ss[i][n+j+__3__]=’\0’;

20 }

21 }

22 main()

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

24 int i;

25 printf(’’The original strings are:\n’’);

26 for(i=0;i<M;i++)printf(’’%s\n’’,ss[i]);

27 printf(’’\n’’);

28 fun(ss);

29 printf(’’The resuit is:\n’’);

30 for(i=0;i<M;i++)printf(’’%s\n’’,ss[i]);

31 }

(1)ss[i] (2)n+j (3)1

解析:函数fun的功能是求出形参ss所指字符串数组中最长字符串的长度。

第一空:第一个循环求最长字符串的长度“len”,在第二个循环内在其他字符串的后面补“*”,使其达到长度“len。”在“for(j=0;j<len-n;j++)”语句中,“i<len-n”是在字符串的后面填“len-n”个“*”,故n是字符串“ss[i]”的长度,因此第一空应为“ss[i]”。

第二空:循环“for(j=0;j<len-n;j++)”目的是在字符串的后面填len-n个“*”,第二空处应为“n+j”。

第三空:字符串以“\0”结束,因此需在字符串后加结束符,故第三空应为“1”。

程序修改题

2.给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

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

1 #include<stdio.h>

2 #include<stdlib.h>

3 #include<string.h>

4 #define N 10

5 typedef struct ss

6 { char num[10];

7 int s;

8 } STU;

9 STU *fun(STU a[],int m)

10 { STU b[N],*t;

11 int i,j,k;

12 /**********found**********/

13 t=(STU *)calloc(sizeof(STU),m)

14 for(i=0;i<N;i++)b[i]=a[i];

15 for(k=0;k<m;k++)

16 { for(i=j=0;i<N;i++)

17 if(b[i].s>b[j].s) j=i ;

18 /**********found**********/

19 t(k)=b(j);

20 b[j].s=0;

21 }

22 return t;

23 }

24 outresult(STU a[],FILE *pf)

25 { int i;

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

27 fprintf(pf,’’No=%s Mark=%d\n’’,a[i].num,a[i].s);

28 fprintf(pf,’’\n\n’’);

29 }

30 main()

31 { STU a[N]={{’’A01’’,81},{’’A02’’,89},{’’A03’’,66},{’’A04’’,87},{’’A05’’,77},{’’A06’’,90},{’’A07’’,79},{’’A08’’,61},{’’A09’’,80},{’’A10’’,71}};

32 STU *pOrder;

33 int i,m;

34 printf(’’*****The Original data*****\n’’);

35 outresult(a,stdout);

36 printf(’’\nGive the number of the students who have better score:’’);

37 scanf(’’%d’’,&m);

38 while(m>10)

39 { printf(’’\nGive the number of the students who have better score:’’);

40 scanf(’’%d’’,&m);

41 }

42 porder=fun(a,m);

43 printf(’’***** THE RESULT ***** \n’’);

44 printf(’’The top:\n’’);

45 for(i=0;i<m;i++)

46 printf(’’%s%d\n’’,pOrder[i].num,pOrder[i].s);

47 free(pOrder);

48 }

(1)t=(STU *)calloc(sizeof (STU),m); (2)t[k]=b[j];

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号