1、全国计算机二级 C语言上机试题 42+2015年及答案解析(总分:30.00,做题时间:90 分钟)1.给定程序中,函数 fun的功能是: 将 s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参 s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun(char *s) int i, j=
2、0, k=0; char t180, t280; for(i=0; si!=/0; i+) if(si=0 /*found*/ *(pstr + i) = pstr + j ; *(pstr + j) = p ; main( ) int i ; char *pstr6, str6MAXLINE ; for(i = 0; i =0 /*found*/ *(pstr + i) = pstr + j ; *(pstr + j) = p ; main( ) int i ; char *pstr6, str6MAXLINE ; for(i = 0; i 6 ; i+) pstri = stri ; pr
3、intf( “/nEnter 6 string(1 string at each line): /n“ ) ; for(i = 0 ; i 6 ; i+) scanf(“%s“, pstri) ; fun(pstr) ; printf(“The strings after sorting:/n“) ; for(i = 0 ; i 6 ; i+) printf(“%s/n“, pstri) ; (分数:10.00)_正确答案:(第一处:for 循环语句中缺少分号。 第二处:应该把 pstr+j位置上的值赋值给*(pstr+i)上,所以应改为:*(pstr+i)=*(pstr+j);。)解析:3.
4、请编写函数 fun,它的功能是:求出 ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串: 123412132,输入字符为: 1,则输出:3。 注意: 部分源程序在文件 PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 给定源程序: #include #include #define M 81 int fun(char *ss, char c) main() char aM, ch; printf(“/nPlease enter a string:“); gets(a); printf(“/nPlease enter a char:“); ch = getchar(); printf(“/nThe number of the char is: %d/n“, fun(a, ch); NONO ( ); (分数:10.00)_正确答案:(int fun(char *ss, char c) int cnt = 0 ; char *p = ss ; while(*p) if(*p = c) cnt+ ; p+ ; return cnt ; )解析: