1、国家二级 C语言机试(操作题)模拟试卷 495及答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.给定程序中,函数 fun的功能是:判断形参 s所指字符串是否是“回文”(Palindrome),若是,函数返回值为 1;不是,函数返回值为 0。“回文“是正读和反读都一样的字符串(不区分大小写字母)。 例如,LEVEL和 Level是“回文”,而 LEVLEV不是。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! #include #
2、include #include int fun(char *s) char *lp,*rp; /* found*/ lp= 【1】 ; rp=s+strlen(s)-1; while(toupper(*lp)=toupper (*rp) voidNONO (); printf(“/nPlease enter two integers:“);scanf(“%d %d“, fun(m, n, zz) ;for(m = 0 ; m n ; m+) printf(“%d “, zzm);printf(“/n“);NONO();void NONO ()* 本函数用于打开文件,输入测试数据,调用 fun
3、函数,输出数据,关闭文件。*int m, n, zz1000, i ; FILE *rf, *wf ; rf = fopen(“in.dat“,“r“) ; wf = fopen(“out.dat“, “w“); for(i = 0 ; i 10 ; i+) fscanf(rf, “%d%d“, fun(m, n, zz);for(m = 0 ; m n ; m+)fprintf (wf, “%d “, zzm);fprintf(wf, “/n“); fclose (rf); fclose(wf); (分数:2.00)_国家二级 C语言机试(操作题)模拟试卷 495答案解析(总分:6.00,做
4、题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.给定程序中,函数 fun的功能是:判断形参 s所指字符串是否是“回文”(Palindrome),若是,函数返回值为 1;不是,函数返回值为 0。“回文“是正读和反读都一样的字符串(不区分大小写字母)。 例如,LEVEL和 Level是“回文”,而 LEVLEV不是。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! #include #include #include int fun(char *s) char
5、 *lp,*rp; /* found*/ lp= 【1】 ; rp=s+strlen(s)-1; while(toupper(*lp)=toupper (*rp) voidNONO (); printf(“/nPlease enter two integers:“);scanf(“%d %d“, fun(m, n, zz) ;for(m = 0 ; m n ; m+) printf(“%d “, zzm);printf(“/n“);NONO();void NONO ()* 本函数用于打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。*int m, n, zz1000, i ; FI
6、LE *rf, *wf ; rf = fopen(“in.dat“,“r“) ; wf = fopen(“out.dat“, “w“); for(i = 0 ; i 10 ; i+) fscanf(rf, “%d%d“, fun(m, n, zz);for(m = 0 ; m n ; m+)fprintf (wf, “%d “, zzm);fprintf(wf, “/n“); fclose (rf); fclose(wf); (分数:2.00)_正确答案:(正确答案:int r=0, temp,p, sign=1; for(temp=m+1;tempm*m;temp+ ) 从 temp开始循环
7、,判断紧靠 temp 的整数 for(p=2;ptemp;p+) if(tempp!=0)判断 temp 是否为素数 sign=1;若是素数,标志设为 1 else sign=0;若不是素数,标志 设为 0 break; if(sign=1&p=temp) if(k=0) 判断已有的素 数个数是否已经满足 sum个 xxr+=temp;将素数 temp 存入数组 select k-;将题目中要求的素数 个数减 1 else break; )解析:解析:进入 fun函数,根据前面的分析: 首先,定义、初始化变量 sign,作为素数的标志;定义r,初始化为存储素数数组的起始位。然后,每判断一次 temp中的值是否为素数后,使 temp的值增 1,再次对 temp中新的值进行判断其是否为素数,不断循环此过程,直到 m的值等于指定的个数,即函数中的 k个数。