1、2018 年计算机等级考试二级 C 语言程序题练习 46 及答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是根据形参 i 的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_(2).(分数:10)填空项
2、1:_(3).(分数:10)填空项 1:_二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1C 中函数 fun 的功能是比较两个字符串,将长的那个字符串的首地址作为函数值返回。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_三、程序设计题(总题数:1,分数:40.00)请编写函数 fun,函数的功能是移动字符串中的内容,移动的规则如下:把第 1m 个字符,平移到字符串的最后,把第 m+1 个到最后的字符移到字符串的前部。例如,字符串中原有的内容为 ABCDEF
3、GHIJK,m 的值为 3,移动后,字符串中的内容应该是 DEFGHUKABC。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_2018 年计算机等级考试二级 C 语言程序题练习 46 答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是根据形参 i 的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.00000
4、0请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_ (正确答案:double)解析:(*f)()代表一个指向函数的指针变量,而本题所被调用的 f1、f2 两函数的返回值均为 double 型,因而此空应该填写 double。(2).(分数:10)填空项 1:_ (正确答案:f1)解析:因为在给函数指针变量赋值时,只需给出函数名而不必给出参数,因而此空应该填写 f1。(3).(分数:10)填空项 1:_ (正确答案:f
5、2)解析:分析同填空 2,此空应该填写 f2。二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1C 中函数 fun 的功能是比较两个字符串,将长的那个字符串的首地址作为函数值返回。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_正确答案:(1)char*fun(char *s,char *t) (2)ss+; (3)tt+: )解析:(1)fun 函数参数是字符串,返回也为字符串,所以参数、返回值都是指针形式。 (2)指针形式后移是指针直接自增,不要加*,加*
6、是取内容。 (3)同(2)三、程序设计题(总题数:1,分数:40.00)请编写函数 fun,函数的功能是移动字符串中的内容,移动的规则如下:把第 1m 个字符,平移到字符串的最后,把第 m+1 个到最后的字符移到字符串的前部。例如,字符串中原有的内容为 ABCDEFGHIJK,m 的值为 3,移动后,字符串中的内容应该是 DEFGHUKABC。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_正确答案:()解析:本题应采用“循环左移”的算法,多层循环用于控制移动的字符的个数,即需进行多少次循环,内嵌循环的作用是将从第 2 个字符以后的每个字符依次前移一个位置,最后将第 1 个字符放到最后一个字符中。