1、2018 年计算机等级考试二级 C 语言程序题练习 41 及答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是用函数指针指向要调用的函数,并进行调用。规定在_2_处使 f 指向函数 f1,在_3_处使 f 指向函数 f2。当调用正确时,程序输出x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分
2、数:30)(1).(分数:10)填空项 1:_(2).(分数:10)填空项 1:_(3).(分数:10)填空项 1:_二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1C 是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数 fun 的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_三、程序设计题(总题数:1,分数:40.00)请编写函数 fun,函数的功能是判断字符串是
3、否为回文,若是,函数返回 1,主函数中输出 YES,否则返回 0,主函数中输出 NO。回文是指顺读和倒读都一样的字符串。例如,字符串 LEVEL 是回文,而字符串 123312 就不是回文。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_2018 年计算机等级考试二级 C 语言程序题练习 41 答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是用函数指针指向要调用的函数,并进行调用
4、。规定在_2_处使 f 指向函数 f1,在_3_处使 f 指向函数 f2。当调用正确时,程序输出x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_ (正确答案:double)解析:(*f)()代表一个指向函数的指针变量,而本题所被调用的 f1、f2 两函数的返回值均为 double 型,因而此空应该填写 double。(2).(
5、分数:10)填空项 1:_ (正确答案:f1)解析:因为在给函数指针变量赋值时,只需给出函数名而不必给出参数,因而此空应该填写 f1。(3).(分数:10)填空项 1:_ (正确答案:f2)解析:同填空 2,此空应该填写 f2。二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1C 是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数 fun 的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。(
6、分数:30.00)_正确答案:(1)p=h-next; (2)p=p-next;)解析:(1)判断当前指针 P 指向的结点是否存在,若存在则对该结点数据域进行判断操作。(2)判断结束后指针指向下一个结点。三、程序设计题(总题数:1,分数:40.00)请编写函数 fun,函数的功能是判断字符串是否为回文,若是,函数返回 1,主函数中输出 YES,否则返回 0,主函数中输出 NO。回文是指顺读和倒读都一样的字符串。例如,字符串 LEVEL 是回文,而字符串 123312 就不是回文。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_正确答案:()解析:判断回文就是将第一个字符与最后一个字符比较。第二个字符与倒数第二个字符进行比较,依此类推,直到中间的字符,如果比较的结果都相同,那么这个字符串就是回文,否则不是。程序中循环语句用来遍历字符串,条件语句用来判断当前字符与对应位置的字符是否相同。