1、国家二级(C 语言)机试-试卷 19-1 及答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_2.给定程序中,函数 fun 的功能是:将形参 s 所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s 所指字符串为:asdl23fgh5#43df,处理后新字符串为:123543asdfghdf。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANKlC 中。不得增行或删行,也不得更改程序的结构!(分数:2.0
2、0)_二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_4.给定程序 MODllC 中函数 fun 的功能是:读入一个字符串(长度20),将该字符串中的所有字符按ASCII 码升序排序后输出。例如,若输入:edcba,则应输出:abcde。请改正程序中的错误,使它能统计出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_6.请编写函数 fun,函数的功能是:移动一维数组中的内容:若数组中有 n 个整数,要求把下标从 0 到p(含
3、 p,p 小于等于 n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10:p 的值为 3。移动后,一维数组中的内容应为:5, 6, 7, 8, 9, 10, 1, 2, 3,4。注意:部分源程序在文件 PROGlC 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_国家二级(C 语言)机试-试卷 19-1 答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_解析:2.给定程序中,函数 f
4、un 的功能是:将形参 s 所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s 所指字符串为:asdl23fgh5#43df,处理后新字符串为:123543asdfghdf。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANKlC 中。不得增行或删行,也不得更改程序的结构!(分数:2.00)_正确答案:(正确答案:(1)j (2)k (3)p)解析:解析:函数 fun 的功能是:将形参 s 所指字符串中的所有数字字符顺序前移,其他字符顺序后移出。在劬函数中,定义了两个数组指针 p 和
5、 t 分别存储数字字符和其他字符,把 s 所指的字符串中的数字字符和其他字符分别存储在 p 和 t 中,然后将 t 字符串中的字符按照题干要求的顺序存储在 p 字符串的后面。二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_解析:4.给定程序 MODllC 中函数 fun 的功能是:读入一个字符串(长度20),将该字符串中的所有字符按ASCII 码升序排序后输出。例如,若输入:edcba,则应输出:abcde。请改正程序中的错误,使它能统计出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答
6、案:(1)for(istrlen(t)1;i;i-)或 for(i=strlen(t)1;i0;i-)(2)if(tjtj1)解析:解析:本题中函数的功能是读入一个字符串(长度20),将该字符串中的所有字符按 ASCII 码升序排序后输出。本题思路是利用字符串长度作为循环的控制条件,然后在循环过程中将字符按ASCII 码排序。三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_解析:6.请编写函数 fun,函数的功能是:移动一维数组中的内容:若数组中有 n 个整数,要求把下标从 0 到p(含 p,p 小于等于 n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10:p 的值为 3。移动后,一维数组中的内容应为:5, 6, 7, 8, 9, 10, 1, 2, 3,4。注意:部分源程序在文件 PROGlC 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_正确答案:(正确答案: )解析:解析:该程序功能是移动一维数组中的内容。解题思路首先将字符串拷贝到一个临时的数组,然后将字符串进行前移操作,最后将由于前移覆盖掉的字符,由临时数组中拷贝到指定字符串。