一、程序改錯題
(1)應改為“catch(char*s)”。
(2)應改為“cateh(inti)”。
(3)應改為“catch(…)”。
【解析】本題中第1個標識前的異常拋出語句為“throw("error");”,其中的類型為字符串。所以對應的異常捕捉語句catch中應該符合這個類型,而程序中給出的語句“catch(chars)”是字符型的,所以第1處的語句修改為“catch(char*S)”。第2個標識前的異常拋出語句為“throw((int)0);”,其中的類型為int。對應的異常捕捉語句catch中應該符合這個類型,所以補充catch子句中的類型,否則如果找不到匹配的catch塊,系統(tǒng)就會調用一個系統(tǒng)函數,使程序終止運行。即第2處的語句修改為“catch(inti)”。如果在catch子句中沒有指定異常信息的類型,那么就用刪節(jié)號“…”表示它可以捕捉任何類型的異常信息,即修改為“catch(…)”。
二、簡單應用題
for(intj=0;j(i;j++)//行循環(huán)
{
for(intk=0;k<=j;k++)//列循環(huán)
cout<<"#";//輸出“#”
cout<}
【解析】本題首先利用for循環(huán)進行外層循環(huán),輸出對應的i行,然后利用for循環(huán)進行內層循環(huán),輸出對應i行的i列。
三、綜合應用題
(1)應添加“virtualvoidGetNamt!()=0;”。
(2)應添加“constchar*GetName2()”。
(3)應添加“TC2(char*str)”。
(4)應添加“m_str[i]=0;”。
【解析】本題第1處要求“在類TC1中定義接口函數GetName,為純虛函數”。在C++中,在基類中用virtual聲明成員函數為虛函數。純虛函數是在聲明虛函數時被“初始化”為0的函數,即“virtualvoidGetName()=0;”。第2處要求“函數GetName2實現獲得名字的緩存,但只獲得讀允許操作這個緩存”。只能引用數據成員,而不能修改,所以使用常成員函數,其一般形式為“const函數類型函數名”,即“constchar*GetName2()”。第3處要求“實現TC2的構造函數”。TC2的構造函數與類TC2的名稱應該相同,而且第3處的大括弧中是對字符數組str的操作,所以類TC2的構造函數中的參數為str,即這里補全為“TC2(char*str)”。第4處要求“完成TC2的構造函數,實現對名字的處理”,補全類TC2的構造函數,構造函數中的名字變量str對應于類TC中的成員變量m_str,所以這里補全變量賦值操作“m_str[i]=0;”。
全國職稱計算機考試速成過關系列套裝:W .. 定價:¥133 優(yōu)惠價:¥133.0 更多書籍 | |
全國職稱計算機考試速成過關系列套裝:W .. 定價:¥124 優(yōu)惠價:¥124.0 更多書籍 |