第 1 頁:選擇題 |
第 3 頁:基本操作題 |
第 4 頁:簡單應用題 |
三、簡單應用題(共24分)
42 [簡答題]
請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2。其中有類Point(“點”)、Rectangle(“矩形”)和Circle(“圓”)的定義。在程序所使用的平面坐標系統中,x軸的正方向是水平向右的,y軸的正方向是豎直向下的。請在橫線處填寫適當的代碼并刪除橫線,以實現上述類定義。此程序的正確輸出結果應該是:
--圓形------------
圓心=(3,2)
半徑=1
面積=3.14159
--外切矩形------
左上角=(2,1)
右下角=(4,3)
面積 =4
注意:只能在橫線處填寫適當的代碼,不要改動程序中的其他內容,也不要刪除或移動“// ****found ****”。
參考解析:
【參考答案】 (1)point.getX()+width,point.getY()+height
(2)radius * radius
(3)center.getX() - radius,center.getY() - radius
(4)2 * radius
【考點分析】
本題考查Point類、Rectangle類和Circle類,其中涉及構造函數、const函數和靜態成員。
【解題思路】
(1)主要考查考生對成員函數的掌握,程序要求返回右下角頂點,該點的x坐標為左上角頂點的x坐標加上width,該點的y坐標為左上角頂點y坐標加上height,即return Point(point.getX()+width,point.getY()+height);。
(2)主要考查考生對成員函數的掌握,程序要求計算圓形面積,也就是返回圓面積,即return PI * radius * radius;。
(3)主要考查考生對成員函數的掌握,首先看函數聲明:Rectangle Circle::boundingBox()const,可知該函數要返回的是一個Rectangle類型,即要返回的是圓的外切矩形。再看Rectangle類的構造函數Rectangle(Point p,int w,int h),由此可知,空格處要定義的點pt為左上角點,即Point pt(center.getX() - radius,center.getY() - radius);。
(4)由函數聲明和Rectangle類的構造函數可知,w和h應該為直徑,即w=h=2 * radius;。
四、綜合應用題(共18分)
43 [簡答題]
【考點分析】
本題考查類的數據成員、類的成員函數、重載流運算符>>和插入運算符<<和字符數組。
【解題思路】
程序定義了MyString類,它包含一個成員:str字符指針;默認構造函數和復制構造函數通過dup()函數,動態分配地址p,將參數拷貝到p指向的內存空間,再使用p初始化str;show()成員函數將str指向的字符串輸出;reverse()成員函數將str指向的字符串反轉;重載的<<運算符函數調用形參m對象的show()函數輸出str指向的字符串。
main()函數首先構造一個MyString類對象m1,構造過程中傳人字符串“This is a string”,所以m1對象中的str指向一個動態分配的內存空間,該段內存存放拷貝的字符串“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自增1,j自減1,直到i不小于j為止。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: