1、国家二级( C语言)机试模拟试卷 280及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:计算出形参 s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。 例如,形参 s所指的字符串为: This is a C languageprogram,函数的返回值为6。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结 构 ! #include int fun(char*s) int n=0, flag=0; while(*s!
2、= 0) if(*s!=&flag=0) *found* 【 1】; flag=1; *found* if(*s=)flag=【 2】; *found* 【 3】; return n; main() char str81; int n; printf(“ nEnter a line text: n“); gets(str); n=fun(str); printf(“ nfhere are d words in this text n n“, n); 二、程序修改题( 30分) 2 给定程序 MODll C中函数 fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶 数,并将这两个素数
3、通过形参指针传回主函数。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include #include void fun(int a, int*b, int*c) ( int i, j, d, y; for(i=3; i void fun(char *a) main() char s81; void NONO(); printf(“Enter a string: n“); gets(s); fun(s); printf(“The string after deleted: n“); puts(s); NO
4、NO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE *in, *out; int i; char s81; in=fopen(“in dat“, “r“); out=fopen(“out dat“, “w“); for(i=0; i10; i+) fscanf(in, “ s“, s); fun(s); fprintf(out, “ s n“, s); fclose(in); fclose(out); 国家二级( C语言)机试模拟试卷 280答案与解析 一、程序填空题( 30分) 1 【正确答案】 (1)n+ (2)0 (3)s+
5、【试题解析】 第一空: “if(*s!=&flag=0)“说明找到空格了,单词的数量应加1,故第一空处应为 “n+“。 第二空: “if(*s!=&flag=0)“和 “if(*s=)flag=【 2】: “在 flag为 0的情况下, n才加 1,因此第二空处是将 flag置 0,即第二空处应为 “0“。 第三空: “while(s!= 0)“循环的终止条件是 s达到结尾,因此在循环体内 s应该不断往字符串尾移动,即第三空为 “s+“。 二、程序修改题( 30分) 2 【正确答案】 (1)y=1; (2)d=a i; 【试题解析】 (1)第一标识下 “Y=1: “变量 Y没有定义,编译时会提
6、示出错。题中用标志 y区别 i是否是素数, y=1是素数, y=0不是素数。第一个标识下当 i是素数时, y最后的值就是进入循环结构前的初始化值 0,标识该值不是素数,所以“Y=1; “应该改为 “y=1: “。 (2)在语句 “ify=1)“中,应该是判断 (a-i)是否是素数,即 d应赋值 “a-i“而不是“d=a-i: “,所以第二个标识下 “d=a-i; “改为 “d=a-i: “。 三、程序设计题( 40分) 3 【正确答案】 int i=0; char*p, *q; p=q=a; while(*p) p+; p一一; while(*p=*) p; while(q=p) ai=*q; i+; q+; ai= 0; 【试题解析】 (1)首先,使用一个指针 p指向串尾,然后对指向串 尾的指针 p指向的字符进行判断,如果是 “*“,指针 p就跳过,这样来设置一个指针变量 q指向字符串的头位置。 (2)然后,将由字符串起始到最后一个字母之间的字符拷贝到字符串 a。 (3)最后,在新生成的字符串尾加 0。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1