一、程序改錯(cuò)題
(1)應(yīng)改為“catch(char*s)”。
(2)應(yīng)改為“cateh(inti)”。
(3)應(yīng)改為“catch(…)”。
【解析】本題中第1個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為“throw("error");”,其中的類型為字符串。所以對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)該符合這個(gè)類型,而程序中給出的語(yǔ)句“catch(chars)”是字符型的,所以第1處的語(yǔ)句修改為“catch(char*S)”。第2個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為“throw((int)0);”,其中的類型為int。對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)該符合這個(gè)類型,所以補(bǔ)充catch子句中的類型,否則如果找不到匹配的catch塊,系統(tǒng)就會(huì)調(diào)用一個(gè)系統(tǒng)函數(shù),使程序終止運(yùn)行。即第2處的語(yǔ)句修改為“catch(inti)”。如果在catch子句中沒(méi)有指定異常信息的類型,那么就用刪節(jié)號(hào)“…”表示它可以捕捉任何類型的異常信息,即修改為“catch(…)”。
二、簡(jiǎn)單應(yīng)用題
for(intj=0;j(i;j++)//行循環(huán)
{
for(intk=0;k<=j;k++)//列循環(huán)
cout<<"#";//輸出“#”
cout<}
【解析】本題首先利用for循環(huán)進(jìn)行外層循環(huán),輸出對(duì)應(yīng)的i行,然后利用for循環(huán)進(jìn)行內(nèi)層循環(huán),輸出對(duì)應(yīng)i行的i列。
三、綜合應(yīng)用題
(1)應(yīng)添加“virtualvoidGetNamt!()=0;”。
(2)應(yīng)添加“constchar*GetName2()”。
(3)應(yīng)添加“TC2(char*str)”。
(4)應(yīng)添加“m_str[i]=0;”。
【解析】本題第1處要求“在類TC1中定義接口函數(shù)GetName,為純虛函數(shù)”。在C++中,在基類中用virtual聲明成員函數(shù)為虛函數(shù)。純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的函數(shù),即“virtualvoidGetName()=0;”。第2處要求“函數(shù)GetName2實(shí)現(xiàn)獲得名字的緩存,但只獲得讀允許操作這個(gè)緩存”。只能引用數(shù)據(jù)成員,而不能修改,所以使用常成員函數(shù),其一般形式為“const函數(shù)類型函數(shù)名”,即“constchar*GetName2()”。第3處要求“實(shí)現(xiàn)TC2的構(gòu)造函數(shù)”。TC2的構(gòu)造函數(shù)與類TC2的名稱應(yīng)該相同,而且第3處的大括弧中是對(duì)字符數(shù)組str的操作,所以類TC2的構(gòu)造函數(shù)中的參數(shù)為str,即這里補(bǔ)全為“TC2(char*str)”。第4處要求“完成TC2的構(gòu)造函數(shù),實(shí)現(xiàn)對(duì)名字的處理”,補(bǔ)全類TC2的構(gòu)造函數(shù),構(gòu)造函數(shù)中的名字變量str對(duì)應(yīng)于類TC中的成員變量m_str,所以這里補(bǔ)全變量賦值操作“m_str[i]=0;”。
相關(guān)推薦:
考試吧推薦:2014年3月計(jì)算機(jī)二級(jí)考前沖刺備考專題
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |