1、国家二级(C 语言)机试-试卷 17-1 及答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_2.给定程序中,函数 fun 的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数 atoi 和 atof 将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的:BLANKlC 中。不得增行或删行,也不得更改程序的结构! (分数:2.00)_二、程序修改题(总题数
2、:2,分数:4.00)3.程序修改题()(分数:2.00)_4.给定程序 MODllC 中函数 fun 的功能是:根据输入的三个边长(整型值),判断能否构成三角形:构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回 3,若能构成等腰三角形函数返回 2,若能构成一般三角形函数返回 1,若不能构成三角形函数返回 0。 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!(分数:2.00)_三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_6.函数 fun 的功能是:将 s 所
3、指字符串中除了下标为偶数、同时 ASCII 值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一含新串放在 t 所指的数组中。例如,若 s 所指字符串中的内容为:“ABCDEFGl23456”,其中字符 A 的 ASCII 码值为奇数,因此应当删除:其中字符 B 的 ASCII 码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符 2 的 ASCII 码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后 t 所指的数组中的内容应是:“246”。注意:部分源程序存在文件 PROGlC 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号
4、中填入你编写的若干语句。 (分数:2.00)_国家二级(C 语言)机试-试卷 17-1 答案解析(总分:12.00,做题时间:90 分钟)一、程序填空题(总题数:2,分数:4.00)1.程序填空题()(分数:2.00)_解析:2.给定程序中,函数 fun 的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数 atoi 和 atof 将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的:BLANKlC 中。不得增行或删行,也不得更改程序的
5、结构! (分数:2.00)_正确答案:(正确答案:(1)FILE* (2)fclose(fp) (3)fp)解析:解析:本题中函数劬的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数 atoi 和 atof 将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。二、程序修改题(总题数:2,分数:4.00)3.程序修改题()(分数:2.00)_解析:4.给定程序 MODllC 中函数 fun 的功能是:根据输入的三个边长(整型值),判断能否构成三角形:构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回 3,若能构成等腰三角形函
6、数返回 2,若能构成一般三角形函数返回 1,若不能构成三角形函数返回 0。 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!(分数:2.00)_正确答案:(正确答案:(1)int fun(int a,int b,int c) (2)else return 1;)解析:解析:本题中函数的功能是判断能否构成三角形;构成的是等边三角形,还是等腰三角形,利用if 语句判断三边值之间的关系,然后根据判断结果,返回题干中要求的值。 构成三角形的条件是任意两边之和大于第三边,等腰三角形的条件是在构成三角形的基础上还需要两条边
7、相等,等边三角形是三条边均相等。三、程序设计题(总题数:2,分数:4.00)5.程序设计题()(分数:2.00)_解析:6.函数 fun 的功能是:将 s 所指字符串中除了下标为偶数、同时 ASCII 值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一含新串放在 t 所指的数组中。例如,若 s 所指字符串中的内容为:“ABCDEFGl23456”,其中字符 A 的 ASCII 码值为奇数,因此应当删除:其中字符 B 的 ASCII 码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符 2 的 ASCII 码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后 t 所指的数组中的内容应是:“246”。注意:部分源程序存在文件 PROGlC 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 (分数:2.00)_正确答案:(正确答案: )解析:解析:该程序功能是将字符串中除了下标为偶数、ASCII 值也为偶数的字符外,其余的全都删除。解题过程利用 if 条件判断表达式选择符合条件的字符,然后将符合条件的字符放入指定的字符串。