1、国家二级( C语言)机试模拟试卷 258及答案与解析 一、程序填空题( 30分) 1 请补充 main()函数,该函数的功能是:把字符串 str1中的非空格字符复制到字符串 str2中。 例如,若 str1=”nice to meet you!“, 则 str2=“nicetomeetyou!“。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #inelude #include #define M 80 void main() static char strlM=“nice to meet
2、 you!“; char strZM; int i=0, j=0; system(“CLS“); printf(“ n*str1* n“); puts(str1); while(str1i) if(【 1】 ) str2j+=str1i; 【 2】; printf(“ n*str2* n“); for(i=0; i #include int fun (char *s, char *t) int n; char *p , *r; n = 0; while (*s) p = s; r = t; while (*r) if (*r = *p) /*found*/ r+; p+ else break;
3、 /*found*/ if(*r=0) n+; s+; return n; main() char s100, t100; int m; printf(“nPlease enter string S:“); scanf(“%s“, s); printf(“nPlease enter substring t:“); scanf(“%s“, t); m = fun(s, t); printf(“nThe result is: m = %dn“, m); 三、程序设计题( 40分) 3 请编写函数 fun,它的功能是:求出 1到 1000之间能被 7或 ll整除、但不能同时被 7和 11整除的所有整
4、数并将它们放在 a所指的数组中,通过 n返回这些数的个数。 注意:部分源程序在文件 PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include void fun (int *a, int *n) main() int aa1000, n, k ; void NONO (); fun (aa, for (k = 0 ; k n ; k+) if(k + 1) % 10 = 0) printf(“n“); else printf(“%5d“, aak); NONO(); void NONO () /* 本函数用于打开文件,
5、输入测试数据,调用 fun函数,输出数据,关闭文件。*/ int aa1000, n, k ; FILE *fp ; fp = fopen(“out.dat“,“w“); fun (aa, for (k = 0 ; k n ; k+) if(k + 1) % 10 = 0) fprintf(fp, “n“); else fprintf(fp, “%5d“, aak); fclose(fp); 国家二级( C语言)机试模拟试卷 258答案与解析 一、程序填空题( 30分) 1 【正确答案】 【 1】 str1i!=“【 2】 i+ 【试题解析】 题目中要求把字符串 str1中的非空格字符复制到字
6、符串 str2中,因此 if语句的条件是判断 str1中的字符不是空格,因此,【 1】处填 “str1 i!=“”;由程序可知,变量 i为字符串 strl中字符的下标,检查字符串 str1中的字符通过改变元素下标变量来实现,因此,【 2】处填 i+。 二、程序修改题( 30分) 2 【正确答案】 r+; p+; if(*r=0) 【试题解析】 ( 1) C语言中,语句应该以 “;”结束,在第二个标识处, “p+”语句没 有以 “;”结束,因此第一个标识处应该是 “r+; p+;”。 ( 2)根据审题分析,要判断指针 r是否指向串尾来结束内循环,而判断语句应该是 “if(*r=0)”。 三、程序
7、设计题( 40分) 3 【正确答案】 int i; *n=0; for(i=7; i1000; i+) if(i%7)=0|(i%11)=0) 【试题解析】 进入 fun函数,根据前面的分析: 首先, *n置 0,设置为累计器,计算符合条件的数的个数。 然后,通过循环,判断小于 1000的每一个整数是否符合题干中的要求。其中的判断条件能否被 7或者被 11整除为 i%7=0|i%11=0,不能被 11和 7同时整除为i%77!=0,它们之间的并关系就用 &连接,最后结果即为(i%7=0|i%11=0)&i%77!=0。 最后,将符合条件的整数存入数组 a中,同时对 *n 进行自加,返回结果。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1