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

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

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

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

程序填空题

1.给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。SS所指字符串数组中共有M个字符串,且串长<N。

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

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

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

#include

#include

#define M 5

#define N 20

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

{ int i,j,k,n[M]; char t[N];

for (i=0; i<M; i++) n [i] =strlen

for (i=0; i<M—1; i++)

if (n[kl>n [j]) ____2____ ;

{ strcpy (t,ss [i]) ;

strcpy (ss [i] ,ss [k] ) ;

strcpy (ss [ k],____3____) ;

}

}

}

main ( )

{ char ss [M] IN]={\\

(1)i+1

(2)k=j

(3)t

解析:函数fun的功能是用是选择排序对M个字符串由短到长进行排序。

第一空:由审题分析可知,外循环i=0时,内循环变量从i+l到M—1(下标从0开始),从M—1个字符串中再挑出一个最短的字符串,故第一空处应为“i+l”。

第二空:k记录最短字符串的下标,内循环开始前k赋初值i,内循环从剩下的M—i个字符串里面找最短的,比较k字符串和j字符串的长度大小,如果n[k]>nD],则把j赋给k,即第二空处应为“k= j”。

第三空:if[k!=i)说明找到了新的更短的字符串,那么把它和第i个字符串交换,因此第三空处应为“t”。

程序修改题

2.给定程序MODI1.C中函数fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。

请改正程序中的错误,使它能进行正确的操作。

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

#include

#include

/*********found**********/

void fun (char str, char ch)

{ while (*str && *str !=ch) str++;

/*********found**********/

if (*str== ch)

{ str [0] = ch;

/*********found**********/

{ str [1] = ch;

}}

main ()

{ char s[81],c ;

printf ( \\

(1) void fun(char *str, char ch)

(2) if (*str !=ch)

(3) str[1]=’\\\\0’;

解析:函数功能首先是查找子串再判断。

(1)第一个标识下,“void fun(char str, char ch)”根据主函数中的fun函数的调用“fun(s,c)”,知道s为数组名,所以传的应该是数组地址,所以应改为“void fun(char *str, char ch)”。

(2)while循环中对ch与str进行匹配检查,第二个标识下,是当不同时执行连接操作,那么判断*str与ch是否不同的表达式应该是“if(*str !=ch)”。

(3)第三个标识下,连接后的新串要添加结尾符,所以正确的表达是将“str[1]=’0’;”改为“str[1]=’\\\\0’;”。

程序设计题

3.请编一个函数fun(char *s),函数的功能是把s所指字符串中的内容逆置。

例如:字符串中原有的字符串为:abcdefg,则调用该函数后,串中的内容为:gfedcba。

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

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

#include

#include

#define N 81

fun (char *s)

{

}

NONO()

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

int i ;

char a[N] ;

FILE *rf,*wf ;

rf = fopen (\\

1 char b[N];

2 int i=0, j;

3 memset (b, 0, N);

4 for (j=strlen (s) —1; j>=0; j——) b[i++]=s[j];

5 strcpy(s, b);

解析:该程序功能是字符串中的内容逆置。把字符串中字符逆置,就是把字符串中的第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,直到所有元素交换完成为止。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号