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