1、国家二级 C语言机试(操作题)模拟试卷 144及答案与解析 一、程序填空题 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 #defirte N 9
2、int fun(int a, int n) int i, j; j=0; for (i=0; i void fun(char *a, int n) main() char s81; int n; void NONO(); printf(“Enter a string: n“); gets(s); printf(“Enter rl: “); scanf(“ d“, n); fun(s, n); printf(“The string after deleted: n“。 ); puts(s); NONO(), void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
3、* FILE *in, *out; int i, n; char s81; in=fopen(“in dat“, “r“); out=fopen(“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”。