第 1 頁:上機試題 |
第 2 頁:參考答案 |
答案與解析
一、程序改錯題
(1)應改為“classTC”。
(2)應改為“~TC(){}”。
(3)應改為“};”。
【解析】本題第1處的“classTC()”為類的定義,根據C++中類的定義格式,類名后面是沒有括號的,所以第1處應為“classTC”。第2處的“void~TC(){}”是析構函數,C++中析構函數的格式中是沒有函數類型說明的,所以修改為“~TC(){}”。根據C++中類的定義,第3個標識下類結束的“}”缺少分號,即修改為“};”。
二、簡單應用題
intlow=0;//初始查找區間的下界
inthigh;
intk;
for(high=0;str[high]!=0;high++)//求字符串長度
while(10w {
k=(low+high)/2;
if(str[k]==ch)
returnk;
elseif(str[k]>ch)
high=k-l:
elselow=k+1:
}
if(str[low]==ch)
returnlow;
return-1:
【解析】本題首先初始查找區間的下界為0,然后求得字符串長度len,上界為len-1,查找區間的中部后,k=(下界+上界)/2;若list[k]等于ch,查找成功。若list[k]>ch,則新的查找區間的下界不變,上界改為k-1;否則新的查找區間的下界改為k+1,上界不變。
三、綜合應用題
(1)應添加“pParenl->next=telnp;”。
(2)應添加“pNext=pNext->next;”。
(3)將“while()”補充完整為“while(P->next!=NULL)”。
(4)將“TC*t1=;”補充完整為“TC*t1=P->next;”。
【解析】本題第1處要求“在父結點的Next中保存新插入的結點的指針”。對于指針的操作,pParent->next為pParent的子結點,在父結點的Next中保存新插入的結點的指針,即“pParent->next=temp;”。第2處要求“把pNext的子結點賦給pNext本身”。pNext->next為pNext的子結點,把pNext的子結點賦給pNext本身,即“pNext=pNext->next;”。注釋3下是判定P的子結點不為空。P的子結點是p->next。程序中的“while()”缺乏P的子結點不為空的判斷條件,所以修改為“while(P->next!=NULL)”。第4處要求“用t1保存動態申請內存結點的鏈表頭”。P為鏈表,P->next為鏈表頭。程序中的語句“TC*t1=;”中t1沒有被賦值,所以修改為“TC*t1=P->next;”。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: