2015计算机二级《C语言程序设计》无纸化操作题三份(3)
1下列给定程序中,函数fun的功能是:计算如下公式前n项的和,并作为函数值返回。
例如,当形参n的值为10时,函数返回值为9.612558。
请在程序的下画线处填入正确的内容并将下画线删除.使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
(1)0 (2)n (3)(t*t)
【考点分析】
本题考查:变量初始化操作,需注意该变量是用做累加器还是累乘器;for循环语句。
【解题思路】
填空l:程序开始定义了变量s,但没有对其进行初始化,根据公式及后面的程序可知变量s用来存放公式的前n项和,因此该变量应初始化为0。
填空2:通过for循环语句将表达式各项进行累加,结果存于变量S中,循环变量i的取值范围为l~12。
填空3:根据题目要求确定表达式通项。前面已定义t=2.0*i,因此此空应填(t*t)。
【解题宝典】
程序要求计算表达式的值时,一般都设定一个变量S并赋初值。如果s用来存放表达式的和,则赋初值为0;如果s用来存放表达式的积,则赋初值为1。
二、程序改错题
2下列给定程序中fun函数的功能是:求表达式s=aa…aa-…-aaa-aa-a
(此处aa…aa,表示n个a,a和n的值在1~9之间)
例如,a=3,n=6,则以上表达式为:
s=333333-33333-3333-333-33-3其值是296298。
a和n是fun函数的形参,表达式的值作为函数值传回main函数。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)long s=0,t=0;
(2)t=t/10;
【考点分析】
本题考查:变量赋初值操作;求余运算和除法运算的区别。
【解题思路】
(1)t用来存放每次循环后的多位数,第一次循环时,t应当是个位数,所以t的初始值应为0。
(2)根据题意,这里不需要求余数,而是要去掉个位数,重新组合为一个数,因此运用除法运算。
【解题宝典】
去掉数值n的个位数的方法是采用除法运算,如果需要取出个位数则使用求余运算,不要混淆。
三、程序设计题
3规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。
例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“****A*BC*DEF*G”。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
参考解析:
【参考答案】
【考点分析】
本题考查:删除字符串尾部*号,删除的主要思想是把不删除的字符保留起来。
【解题思路】
对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号’\0’。具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非*号字符为止,最后在该字符后 面加上结束符号‘\0’。