1、国家二级 C语言机试(操作题)模拟试卷 92及答案与解析 一、程序填空题 1 函数 fun的功能是:把形参 a所指数组中的偶数按原顺序依次存放到 a0、a1、 a2、 中,把奇数从数组中删除,偶数个数通过函数值返回。例如: 若 a所指数组中的数据最初排列为: 9、 1、 4、 2、 3、 6、 5、 8、 7,删除奇数后a所指数组中的数据为: 4、 2、 6、 8,返回值为 4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include #define N 9 in
2、t fun(int a, int n) int i, j; j=0; for(i=0; 2 void fun(char*a, int n) main() char s8 1; int n; void NONO(); printf(“Enter a string: n“); gets(s); printf(“Enter n: “); SCanf(“ d“, &n); fun(s, n); printf(“The string after deleted: n“); puts(s); NONO(); void NONO() /*本函数用 r打开文件,输入数据,调用函 数,输出数据,关闭文件。 */
3、 FILE*in, *out; int i, n ; char s8 1 ; in=fopen(“in dat“, “r“); out=1open(“out dat“, “w“); for(i=0 ; in) /对统计的 “*”号数目大于给定的 “*”号总数 n while(*p&pt+n) /当超出给定的 “*”号数目,则开始进行截取 ai=*p; /截取 n个 “*”号 i+; p+; ai=0; /对新生成的串加尾符 【试题解析】 解题过程首先确定字符串尾,然后由串尾开始对字符进行判断,同时对 “*”字符进行统计,如果大于 n,就进行截取。 (1)首先确定字符串的尾 ,然后判断 “*”号字符,并对字符串中的字符进行判断,如果字符是符号 “*”则对 “*”号进行统计。 (2)根据统计的 “*”号数目结合题目中对 “*”。号个数的要求,判断是执行对 “*”号的截取操作,还是什么都不用做。 (3)所有字符处理完后,记得在新串 s的末尾加上结束符 “0”。