1、国家二级 C+机试(操作题)模拟试卷 191及答案与解析 一、基本操作题 1 下列给定程序中,函数 fun的功能是:在形参 s所指字符串中寻找与参数 c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。 例如,若 s所指字符串为 “baacda”, c中的字符为 a,执行后 s所指字符串为“baaaacdaa”。 请在程序的中括号处填入正确的内容并将中括号删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include void fun(char, *s, char c) int i, j, n; *f
2、ound* for(i=0; si!=【 1】; i+) if(si=c) *found* n=【 2】; while(si+1+n!= 0) n+; for(j=i+n+1; ji; j-) sj+1=sj; *found* sj+1=【 3】; i=i+1; main() char s80=“baacda“, c; printf(“ n The string: s n“, s); printf(“ nInput a character: “); scarlf(“ c“, &c); fun(s, c); printf(“ nThe result is: s n“, s); 二、简单应用题 2
3、 下列给定程序中,函数 fun的功能 是:计算并输出下列级数的前 N项和 SN,直到SN+1的值大于 g为止, g的值通过形参传入。 例如,若q的值为 50 0,则函数值应为 49 394948。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 !试题程序: #include#includedouble fun(double q) int n; double s, t; n=2; s=2 0; while(s 三、综合应用题 3 请编写函数 fun,其功能是:统计 s 所指字符串 中的数字字符个数,并作为函数值返回。 例如, s所
4、指字符串中的内容是: 2def35adh253kjsaf7 kj8655x, 函数 fun返回值为: 11 注意:部分源程序在文件 PROGl C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include void NONO(); 2nt fun(char*s) main() char*s=“2clef35adh25 3kjsdf 7 kj8655x“; printf(“ s n“, s); printf(“ d n“, fun(s); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE*fp, *wf; int i; char s256; fp=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i=0)&(*p=9) n+; return n; 【试题解析】 要统计字符串中数字字符的个数,首先应定义变量 n,并初始化为0,然后遍历字符串,逐个判断字符是否为数字字符,判断条件为该元素的 ASCII码在字符 0和 9的 ASCII码之间,若判断条件成立,则使 n的值加 1,否则,继续判断下一个字符,直到字符串结束。