1、国家二级(C 语言)机试-试卷 53 及答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_2.给定程序中,函数 fun 的功能是建立一个 NxN 的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第 2 层元素的值全部为 2;第 3 层元素的值全部为 3,依次类推。例如,若 N5,生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 l 2 2 2 1 1 1 1 1 1 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 B
2、LANKlC 中。 不得增行或删行,也不得更改程序的结构! (分数:2.00)_二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_4.给定程序 MODllC 中函数 fun 的功能是:首先把 b 所指字符串中的字符按逆序存放,然后将 a 所指字符串中的字符和 b 所指字符串中的字符,按排列的顺序交叉合并到 c 所指数组中,过长的剩余字符接在 c所指数组的尾部。例如,当 a 所指字符串中的内容为“abcdefg”,b 所指字符串中的内容为“1234”1 时,c 所指数组中的内容应该为“a4b3e2dlefg”;而当 a 所指字符串中的内容为“1234”,b 所指字
3、符串中的内容为“abedefg”时,c 所指数组中的内容应该为“lg2f3e4dcba”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_6.请编写一个函数 fun,其功能是:将 ss 所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。注意:部分源程序在文件 PROGlC 文件中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数
4、 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_国家二级(C 语言)机试-试卷 53 答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_解析:2.给定程序中,函数 fun 的功能是建立一个 NxN 的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第 2 层元素的值全部为 2;第 3 层元素的值全部为 3,依次类推。例如,若 N5,生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 l 2 2 2 1 1 1 1 1 1 请在程序的下划线处填入正确的内容并把下划
5、线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKlC 中。 不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)N (2)i (3)i1)解析:解析:本题中函数 fun 的功能是按照指定的规律建立一个 NN 的矩阵,可用循环来完成。二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_解析:4.给定程序 MODllC 中函数 fun 的功能是:首先把 b 所指字符串中的字符按逆序存放,然后将 a 所指字符串中的字符和 b 所指字符串中的字符,按排列的顺序交叉合并到 c 所指数组中,过长的剩余字符接在 c
6、所指数组的尾部。例如,当 a 所指字符串中的内容为“abcdefg”,b 所指字符串中的内容为“1234”1 时,c 所指数组中的内容应该为“a4b3e2dlefg”;而当 a 所指字符串中的内容为“1234”,b 所指字符串中的内容为“abedefg”时,c 所指数组中的内容应该为“lg2f3e4dcba”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! (分数:2.00)_正确答案:(正确答案:(1)while(ij)或 while(ji) (2)if(*a)解析:解析:本题中函数的功能是首先把 b 所指字符串中的字符按逆序
7、存放,然后将 a 所指字符串中的字符和 b 所指字符串中的字符,按排列的顺序交叉合并到 c 所指数组中,过长的剩余字符接在 c 所指数组的尾部。其中,对于字符串的逆序过程,分别用变量 i 和 j 代表字符串中开始和末尾字符的下标,把下标 i和 j 元素中的值对调后,i+和 j-直到 i 的值大于 j 时逆序操作完成。三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_解析:6.请编写一个函数 fun,其功能是:将 ss 所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。注意:部分源程序在文件 PROGlC 文件中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_正确答案:(正确答案: )解析:解析:该程序功能是将字符串中所有下标为奇数位置上的字母转换为大写。其中,同一英文字母的大写和小写的 ASCII 码值相差 32,因此,要将小写字母转换为大写字母,只要将其对应的 ASCII 码值减去 32 即可。