第 1 頁:單選題 |
第 5 頁:程序改錯 |
第 6 頁:簡單應(yīng)用題 |
第 7 頁:綜合應(yīng)用題 |
第 8 頁:參考答案 |
21.B。【解析】value作為類的數(shù)據(jù)成員在引用時可以通過對象來引用,也可以通過域操作符引入類名來限定。由于選項D中P是指針,它對指針變量的賦值方式是錯誤的。
22.C!窘馕觥勘绢}考查友元函數(shù)的應(yīng)用。程序中函數(shù)square是類sample的一個友元函數(shù),它可以直接訪問類sample的所有成員。它的功能是返回類sample的私有數(shù)據(jù)成員x的平方。所以程序的執(zhí)行結(jié)果是900。
23.B!窘馕觥空{(diào)用拷貝構(gòu)造函數(shù)的情況為:一個新對象被另一個已存在的同類型對象初始化;當(dāng)一個對象作為實參傳遞給函數(shù)時為初始化形參,要調(diào)用拷貝構(gòu)造函數(shù)。在函數(shù)值返回時形參的生命期結(jié)束時它的析構(gòu)函數(shù)被調(diào)用;在函數(shù)返回一個對象時調(diào)用拷貝構(gòu)造函數(shù)。符合以上條件的有:用對象objl來初始化obj3;obj3作為實參被傳入;函數(shù)fun返回一個對象時;系統(tǒng)用返回值初始化一個匿
名對象時調(diào)用了拷貝構(gòu)造函數(shù)?偣舱{(diào)用4次。
24.A!窘馕觥坑芍骱瘮(shù)main入手,定義外部變量x和y,調(diào)用函數(shù)add。因為x,y為外部變量,所以“intx(20),y(5);”的賦值在add也是有效的,即add函數(shù)的運算結(jié)果為25。
25.B!窘馕觥亢瘮(shù)setfill(charc)用于設(shè)置填充字符,在輸出數(shù)據(jù)時,如果數(shù)據(jù)寬度小于設(shè)置的寬度,則空閑位置要用填充字符填滿,設(shè)置的填充符一直有效,直到再次填充字符為止,如題中調(diào)用函數(shù)setfill(’*’)將填充字符設(shè)置為’*’,后又調(diào)用函數(shù)setfill(’#’)將填充字符設(shè)置為’#’。函數(shù)setw(intn)用于設(shè)置輸入/輸出寬度.寬度設(shè)置的效果只對一次輸入或輸出有效,在完成一次數(shù)據(jù)的輸出/輸入后,寬度設(shè)置自動恢復(fù)為0,如題中語句以寬度10輸出數(shù)據(jù)“123”后,字符串“OK”的輸出寬度就自動恢復(fù)為0了。而且題中輸出的對齊方式為在輸出寬度內(nèi)左對齊。本題結(jié)果為123######OK。
26.D。【解析】C++中,虛基類說明格式為class<類名>:virtual<繼承方式><基類名>。其中,virtual是虛基類的關(guān)鍵詞。在定義派生類時使用虛基類的說明,寫在派生類名的后面。
27C!窘馕觥勘绢}考查在繼承中構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序,應(yīng)該是先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù),調(diào)用析構(gòu)函數(shù)時的順序是先調(diào)用派生類的析構(gòu)函數(shù),后調(diào)用基類的析構(gòu)函數(shù)。
28.D!窘馕觥繕(gòu)造函數(shù)的主要作用是對數(shù)據(jù)成員初始化。構(gòu)造函數(shù)不能聲明為虛函數(shù),這是因為在執(zhí)行構(gòu)造函數(shù)時類對象還未完成建立過程,當(dāng)然談不上函數(shù)與類對象的關(guān)聯(lián)。
29.A。【解析】程序中的TestClassl為TestClass的派生類,主函數(shù)main中定義。TestClass對象*P,
TestClassl對象objl,然后P引用0bjl,執(zhí)行p->who()則是調(diào)用基類中的who函數(shù),輸出TestClass。
30.A。【解析】本程序設(shè)計了一個點類Point,包含了橫、縱兩個坐標(biāo)數(shù)據(jù)x和y,由它派生出了圓類Circle,并加入了新的數(shù)據(jù)成員,即一個半徑r和一個求圓面積的函數(shù)成員area。在主函數(shù)main中,首先定義了一個圓Circle類的對象c1,并通過它的構(gòu)造函數(shù)初始化其數(shù)據(jù)成員。由此可知,其半徑r的值為10,所以其面積為PI*10*10=314,即對象c1的函數(shù)成員area的返回值為314。
31.D。【解析】本題考查指針的使用。在給*P賦值前,指針P并沒有指向一個具體的對象。此時可以通過編譯,但運行時由于P中為隨機值,該賦值可能會破壞內(nèi)存中某個重要的地址空間的內(nèi)容,導(dǎo)致程序出錯。
32.D!窘馕觥勘绢}考查類的定義。C++語言規(guī)定,在類體內(nèi)不允許對所定義的數(shù)據(jù)成員進(jìn)行初始化。
33.B!窘馕觥勘绢}考查的是對構(gòu)造函數(shù)的掌握,另外++運算符是右結(jié)合的,所以在進(jìn)行輸出的時候都是先把原來的輸出后再自加1。
34.C。【解析】C++中可以在定義文件流對象的同時打開文件,也可以在定義文件流對象以后用open函數(shù)打開文件?梢酝ㄟ^構(gòu)造函數(shù)或open函數(shù)的第二個參數(shù),確定文件的打開模式。
35.C!窘馕觥++是右結(jié)合的,所以先賦值為3,最后輸出3+1;常成員函數(shù)只有常對象才能調(diào)用,所以輸出2。
36.C!窘馕觥扛鶕(jù)遞歸調(diào)用的含義,當(dāng)n為2時有fib(o),fib(1),fib(2)被調(diào)用,且fib(0),fib(1)時調(diào)用結(jié)束,共3次。
37.D!窘馕觥窟x項A錯誤,不存在這樣的定義方式;選項B定義了一個MyClass類的對象P;選項C是Java的定義方式。
38.C!窘馕觥勘绢}針對虛基類的定義及特點考查。虛基類的聲明為“class<類名>:virtual<繼承方式><基類名>”,即本題的A為虛基類。
39.B!窘馕觥恳辉蚨\算符函數(shù)作為成員函數(shù)時,第一操作數(shù)就是對象本身,并不出現(xiàn)在參數(shù)表中,即第一操作數(shù)僅以this指針的形式隱含于參數(shù)表中,因此對于一元運算符參數(shù)表是空的;而對于二元運算符參數(shù)表中只有一個參數(shù),它代表第二操作數(shù)。
40.D!窘馕觥磕0逍螀⒂衪ypename<參數(shù)名>、class<參數(shù)名>、<類型修飾><參數(shù)名>3種形式,即typename與class通用。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |