1、国家二级( C语言)机试模拟试卷 268及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:将形参 s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如, s所指字符串为: asdl23fgh543df,处理后新字符串为: asdfghdfl23543。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得 更改程序的结构 ! #include #include #include char *fun(char *s) in
2、t i, j, k, n; char *p, *t; n=strlen(s)+1; t=(char*)malloc(n*sizeof(char); p=(char*)malloc(n*sizeof(char); j=0; k=0; for(i=0; i=a)&(si=A)&(si #define N 20 int fun(float*s, int n, float *aver) float ave, t=0 0; int count=0, k, i; for(k=0; k=k,因此第二空处应为 “k”。 第三空:在 C语言中,字符串以 “0”结束,故第三处应为 “0”或 “0”。 二、程序 修改题( 30分) 2 【正确答案】 (1)t+=sk; (2)*aver=ave; 【试题解析】 (1)根据题目要求求出平均分,首先要求总分,要把所有学生成绩相加再求平均分,因此第一个标识下面的 “t=sk; “应改为 “t+=sk; “。 (2)根据题目可知,比较的结果中高于平均分的分数 ave放入指针 aver所指的地址单元中,而变量 Ave没有定义,因此第二标识下应将 “*aver=Ave; “改为“*aver=ave; “。