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

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

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

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

程序填空题

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的功能是:从低位开始取出长整型变量S中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为:7654321时,t中的数为:642。

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

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

1 #include<stdio.h>

2 /*********found*********/

3 void fun(long s,long t)

4 { long s1=10;

5 s/=10;

6 *t=s%10;

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

8 while(s<0)

9 { s=s/100;

10 *t=s%10 *s1+*t;

11 s1=s1 * 10;

12 }

13 }

14 main()

15 {long s,t;

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

17 fun(s,&t);

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

19 }

(1)void fun(long s,long *t) (2)while(s>0)

解析:函数目的是取出长整型变量s中偶数位上的数。(1)第一个标识下的形参t被定义为一个long型变量,而对应的主函数中的实参却是一个地址值。因此,t在函数定义中应该被定义为一个指针变量,即“void fun(long s,long t)”改为“void fun(longs,long *t)”。(2)第二个标识下的while循环控制表达式“s<0”要求s小于0才进入循环。而s的值总是大于0,因此将“while(s<0)”改为“while(s>0)”。

程序设计题

3.请编写函数fun,它的功能是:求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。

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

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

1 #include<stdio.h>

2 void fun(int *a,int *n)

3 {

5 }

6 main()

7 { int aa[1000],n,k;

8 void NONO();

9 fun(aa,&n);

10 for (k=0; k<n; k++)

11 if((k+1)%10==0)printf(’’\n’’);

12 else printf(’’%5d’’,aa[k]);

13 NONO();}

15 void NONO()

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

17 int aa[1000],n,k;

18 FILE *fp;

19 fp=fopen(’’out.dat’’,’’w’’);

20 fun(aa,&n);

21 for(k=0;k<n;k++)

22 if((k+1)%10==0)fprintf(fp,’’\n’’);

23 else fprintf(fp,’’%5d’’,aa[k]);

24 fclose(fp);}

1 int i;

2 *n=0 ;

3 for(i=7;i<1000; i++)

4 if(((i%7)==0 ‖ (i%11)==0)&&(i%77)!=0) a[(*n)++]=i;

解析:进入fun函数,判断是否被7整除→判断是否被11整除→并且不被77整除→按要求返回计算结果,首先,*n置0,设置为累计器,计算符合条件的数的个数。然后,通过循环,判断小于1000的每一个整数是否符合题

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号