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