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