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

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

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

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

程序填空题

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

解析:函数fun的功能是求ss所指字符串数组中长度最短的字符串所在的行下标。求最短字符串所在的下标,一般假设第一个字符串的长度最短min,用k记录最长字符串的下标的话,开始时min=strlen(ss[0]),k=0,然后逐个比较其他字符串长度,如果字符串ss[i]长度比min小,则将min赋值为这个字符串长度,“k=i”,如此便可求得最短字符串和最短字符串所在的下标位置。

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

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

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

程序修改题

2.给定程序MODI1.C中函数fun的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其他字符不变。

例如,若输入”Ab,cD”,则输出”AB,CD”。

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

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

1 #include<stdio.h>

2 #include<string.h>

3 char* fun(char tt[])

4 {

5 int i;

6 for(i=0;tt[i]; i++)

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

8 if((’a’<=tt[i])||(tt[i]<=’z’))

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

10 tt[i]+=32;

11 return(tt);

12 }

13 main()

14 {

15 char tt[81];

16 printf(’’\nPlease enter a string:’’);

17 gets(tt);

18 printf(’’\nThe result string is:\n%s’’,fun(tt));

19 }

(1)if((’a’<=tt[i])&&(tt[i]<=’z’))

(2)tt[i]-=32;

解析:本题中函数的功能是将字符串中的小写字母改为对应的大写字母。首先判断字母是否为小写字母,如果是小写字母则进行转换。

(1)第一个错误标识下的if判断语句中的逻辑有误,应该是与(&&)的关系,不是或(||) 的关系,所以if判断语句改为“if((’a’<=tt[i])&&(tt[i]<=’z’))”。

(2)第二个标识下小写字母转换为大写字母的转换算法有误,小写转换为大写应该是减去32,而不是加上32,所以“tt[i]+=32;”改为“tt[i]-=32;”。

程序设计题

3.请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。

例如,若输入:17,则应输出:

4 6 8 9 10 12 14 15 16。

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

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

1 #include<stdio.h>

2 void fun(int m,int *k,int xx[])

3 {

4

5 }

6 main()

7 {

8 int m,n,zz[100];

9 void NONO();

10 printf(’’\nPlease enter aninteger number between 10 and100:’’);

11 scanf(’’%d’’,&n);

12 fun(n,&m,zz);

13 printf(’’\n\nThere are%d nonprime numbers less than%d:’’,m,n);

14 for(n=0; n<m; n++)

15 printf(’’\n%4d’’,zz[n]);

16 NONO();

17 }

18 void NONO()

19 {

20 /*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/

21 int m,n,zz[100];

22 FILE *rf,*wf;

23 rf=

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号