考試試題答案與解析
一、程序改錯(cuò)題
(1)“d3=(d1 (2)“d3=(d2)?d1\d2:-l;”應(yīng)改為“d3=(d2)?d1/d2:-l;”。
(3)“d3=(--dl)+(d2++);”應(yīng)改為“d3=(d1++)+(d2--);或d3=(++d1)+(--d2);”。
【解析】本題考查了考生對(duì)條件表達(dá)式和自增自減運(yùn)算符了解的情況。d3應(yīng)為d1和d2中較大者的值,所以“(d1(d2)”應(yīng)改為“(d1>d2)”。若d2不為0,應(yīng)返回d1/d2的值,而不是d1\d2。第3處應(yīng)該輸d1+1d2-l,所以兩者的+
+、--應(yīng)反過來。又因?yàn)閐3應(yīng)該是兩者原值之和,所以++、--應(yīng)同時(shí)為后綴式或前綴形式。
二、簡(jiǎn)單應(yīng)用題
//必須使用遞歸
jntfunl(intn)
{
if(n<=0)
return0;
if(n==1)
return1;
returnn*funl(n-1);
};
//不能使用遞歸
intfun2(intn)
{
if(n<=0)
retturn0;
intres=1:
for(inti=1;i<=n;i++)
{
res*=i;
}
returnres;
}
【解析】本題考查的是遞歸函數(shù)和階乘算法。遞歸的階乘算法可以通過判斷傳入?yún)?shù),如果大于1,則返回n*funl(n-1),意思是返回n乘以n-1的階乘;如果等于1,則返回1。這樣遞歸下去就能最終得出n的階乘。非遞歸算法可以先建立一個(gè)累乘變量,并初始化為1,然后循環(huán)遍歷1~n,將遍歷的數(shù)累乘到變量中即可。
三、綜合應(yīng)用題
(1)“while()”應(yīng)改為“while(infile.get(ch))”。
(2)應(yīng)添加“bur[len++]=ch;bur[len]=ch;len++;”。
(3)應(yīng)添加“outfile2< (4)“TCobj();”應(yīng)改為“TCobi("in.txt");”。
【解析】本題考查了文件流的使用。根據(jù)題意,第1處要獲得一個(gè)字符,并判斷是否到文件結(jié)尾,所以應(yīng)使用get函數(shù);第2處應(yīng)將ch存入buf數(shù)組,同時(shí)讓len增1;第3處將buf中的字節(jié)輸出給outfile2,注意同時(shí)讓i增1,否則while循環(huán)將進(jìn)入死循環(huán);第4處TC只確一個(gè)帶char*參數(shù)的構(gòu)造函數(shù),所以創(chuàng)建對(duì)象時(shí)必須使用構(gòu)造參數(shù),根據(jù)題意這個(gè)參數(shù)應(yīng)該是“"in.txt"”。
相關(guān)推薦:
2014年計(jì)算機(jī)二級(jí)C++考點(diǎn)歸納
2014年計(jì)算機(jī)二級(jí)C++考試精選試題及答案匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |