1、2018 年计算机等级考试二级 C 语言程序题练习 5 及答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是将形参 n 所指变量中各位为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n 传回所指变量。例如,输入一个数 27638496,新的数为 739。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_(2
2、).(分数:10)填空项 1:_(3).(分数:10)填空项 1:_二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1C 中函数 fun 的功能是计算 n!。例如,给 n 输入 5,则输出 120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_三、程序设计题(总题数:1,分数:40.00)请编写一个函数 fun,它的功能是将一个表示正整数的数字字符串转换为一个整数(不得调用 C 语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转
3、换为整数值 1234。函数fun 中给出的语句仅供参考。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_2018 年计算机等级考试二级 C 语言程序题练习 5 答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是将形参 n 所指变量中各位为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n 传回所指变量。例如,输入一个数 27638496,新的数为 73
4、9。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_ (正确答案:10)解析:通过 t 对 10 求余,取出该数值的个位。(2).(分数:10)填空项 1:_ (正确答案:0)解析:通过 if 条件语句实现奇偶数的判定。如果条件表达式对 2 求余为 0 即是偶数,反之是奇数。(3).(分数:10)填空项 1:_ (正确答案:x)解析:最后将剩余的数赋给 n 指向的元素。二、程序改错题(总题数:1,分数:30.00)给
5、定程序 MODI1C 中函数 fun 的功能是计算 n!。例如,给 n 输入 5,则输出 120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_正确答案:(1)if(n=0)(2)result*=n-;或result*=n;n-;)解析:(1)这里是一个简单的格式错误,if 条件应该加括号。(2)根据阶乘的概念,从 n 开始计算“n!=n*(n-1)!”,直到 1,所以应该为 result*=n-;。三、程序设计题(总题数:1,分数:40.00)请编写一个函数 fun,它的功
6、能是将一个表示正整数的数字字符串转换为一个整数(不得调用 C 语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值 1234。函数fun 中给出的语句仅供参考。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_正确答案:()解析:if 语句的作用是判断该字符串应当为正数还是负数。注意:*p 是一个字符(如9、4,并不是一个数,要将其转成相应的数字需令其减去0(不是0),即*p-0就得到*p 这个字符的相应数字,如0-0=0、8-0=8 等。