1、国家二级( C语言)机试模拟试卷 288及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:将形参 s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如, s所指字符串为: udl23fghS#43df,处理后新字符串为:123543asdfgll#df。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也 不得更改程序的结构 ! #include #include #include #include char*fun(ch
2、ar *s) int 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 /*found*/ void fun(char*s, int a, int b) while(*s) ( if(*s=A&s=a&*s #define N 12 typedef struct char num10; double s; STREC, double fun(STREC*a, STREC*b, int *n)
3、 maIn() STREC sN=”GA05”, 85, ”GA03”, 76, “GA02”, 69, ”GA04”, 85, “GA01”, 91, ”GA07”, 72, “GA08”, 64, ”GA06”, 87, “GA09”, 60, “GAll”, 79, ”GAl2”, 73, ”GA10”, 90, STREC hN, t; FILE*out; int i, j, n; double ave; ave=fun(s, h, &n); printf(”The d student data which is higher than 7 3f: n”, n, ave); for(i; 0; it)b (*n)+=ai; return t; 【试题解析】 (1)首先,通过循环求总分,然后求得平均分。 (2)在循环中,进行平均分与每个成绩进行比较,并将满足条件的数据存入数组及对其个数进行累加。