第 1 頁:基本操作題 |
第 2 頁:簡單應用題 |
第 3 頁:綜合應用題 |
綜合應用題
3 [簡答題]
使用vc6打開考生文件夾proj3下的工程proj3,其中聲明了MyString類,它是一個用于表示字符串的類。成員函數reverse將字符串反轉,例如“abcde”反轉后就成了“edcba”。請補充完整函數reverse。在main函數中給出了一個測試數據,此情況下程序的輸出應該是:
This is a string
gnirts a si sihT
注意:只需在函數reverse的// ******** 333 ******** // ******** 666 ******** 之間填入若干語句,不要改動程序中的其他內容。
參考解析:
【參考答案】
【考點分析】
本題考查類的數據成員、類的成員函數、重載流運算符>>和插入運算符<<和字符數組。
【解題思路】
程序定義了MyString類,它包含一個成員:str字符指針;默認構造函數和復制構造函數通過dup()函數,動態(tài)分配地址p,將參數拷貝到p指向的內存空間,再使用p初始化str;show()成員函數將str指向的字符串輸出;reverse()成員函數將str指向的字符串反轉;重載的<<運算符函數調用形參m對象的show()函數輸出str指向的字符串。
main()函數首先構造一個MyString類對象m1,構造過程中傳入字符串“This is a string”,所以m1對象中的str指向一個動態(tài)分配的內存空間,該段內存存放拷貝的字符串“This is a string”,輸出m1后,再調用m1.reverse()函數,將str指向的字符串進行反轉,再輸出m1,題意要求我們完成reverse()成員函數的定義,完成反轉字符串的功能。
由題意,我們僅有的信息就是str指向一個字符串,它是char * 類型,需要對str指向的字符串進行反轉,需要獲得字符串的長度,然后將首尾字符進行交換,直到交換到中間字符串為止,所以我們定義兩個變量i、j,表示元素下標,分別從首(i=0)和尾(長度-1)向中間遍歷該字符串,每次遍歷,首先判斷i是否小于j,若i小于j則將i和j下標對應的字符進行交換,交換完成后i自增l,j自減1,直到i不小于j為止。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: