国家二级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版点下载