2015計(jì)算機(jī)二級《C語言程序設(shè)計(jì)》無紙化操作題三份(3)
1下列給定程序中,函數(shù)fun的功能是:計(jì)算如下公式前n項(xiàng)的和,并作為函數(shù)值返回。
例如,當(dāng)形參n的值為10時,函數(shù)返回值為9.612558。
請?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并將下畫線刪除.使程序得出正確的結(jié)果。
注意:部分源程序給出如下。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
參考解析:
(1)0 (2)n (3)(t*t)
【考點(diǎn)分析】
本題考查:變量初始化操作,需注意該變量是用做累加器還是累乘器;for循環(huán)語句。
【解題思路】
填空l:程序開始定義了變量s,但沒有對其進(jìn)行初始化,根據(jù)公式及后面的程序可知變量s用來存放公式的前n項(xiàng)和,因此該變量應(yīng)初始化為0。
填空2:通過for循環(huán)語句將表達(dá)式各項(xiàng)進(jìn)行累加,結(jié)果存于變量S中,循環(huán)變量i的取值范圍為l~12。
填空3:根據(jù)題目要求確定表達(dá)式通項(xiàng)。前面已定義t=2.0*i,因此此空應(yīng)填(t*t)。
【解題寶典】
程序要求計(jì)算表達(dá)式的值時,一般都設(shè)定一個變量S并賦初值。如果s用來存放表達(dá)式的和,則賦初值為0;如果s用來存放表達(dá)式的積,則賦初值為1。
二、程序改錯題
2下列給定程序中fun函數(shù)的功能是:求表達(dá)式s=aa…aa-…-aaa-aa-a
(此處aa…aa,表示n個a,a和n的值在1~9之間)
例如,a=3,n=6,則以上表達(dá)式為:
s=333333-33333-3333-333-33-3其值是296298。
a和n是fun函數(shù)的形參,表達(dá)式的值作為函數(shù)值傳回main函數(shù)。
請改正程序中的錯誤,使它能計(jì)算出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
參考解析:
【參考答案】
(1)long s=0,t=0;
(2)t=t/10;
【考點(diǎn)分析】
本題考查:變量賦初值操作;求余運(yùn)算和除法運(yùn)算的區(qū)別。
【解題思路】
(1)t用來存放每次循環(huán)后的多位數(shù),第一次循環(huán)時,t應(yīng)當(dāng)是個位數(shù),所以t的初始值應(yīng)為0。
(2)根據(jù)題意,這里不需要求余數(shù),而是要去掉個位數(shù),重新組合為一個數(shù),因此運(yùn)用除法運(yùn)算。
【解題寶典】
去掉數(shù)值n的個位數(shù)的方法是采用除法運(yùn)算,如果需要取出個位數(shù)則使用求余運(yùn)算,不要混淆。
三、程序設(shè)計(jì)題
3規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:將字符串尾部的*號全部刪除,前面和中間的*號不動。
例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“****A*BC*DEF*G”。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。
注意:部分源程序給出如下。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
試題程序:
參考解析:
【參考答案】
【考點(diǎn)分析】
本題考查:刪除字符串尾部*號,刪除的主要思想是把不刪除的字符保留起來。
【解題思路】
對于一個字符串要刪除其尾部的*號,只需要在最后一個不是*號的字符后面加上結(jié)束符號’\0’。具體操作為:首先找到字符串的結(jié)尾,然后從最后一個字符開始往前逐個判斷是否為*號,直到找到非*號字符為止,最后在該字符后 面加上結(jié)束符號‘\0’。