第 1 頁:選擇題 |
第 5 頁:程序改錯題 |
第 6 頁:綜合應用題 |
第 7 頁:參考答案 |
21.B。【解析】voidf(int*X,int&。y);第一個參數需要取值,第二個參數需要取地址,所以為v1為取值,&Lv2為取址。
22.C。【解析】應為“staticconstintval一5;”,只有靜態常量才可以初始化。
23.D。【解析】簡單類之間繼承關系的調用,按照通常做法便可以得到答案。center.get()函數調用后,3和4的和被返回接著再調用Circle類的radius成員交量5相加后得到12。
24.A。【解析】C++不僅可以對運算符進行重載,還可以重載類型轉換符,函數聲明的形式勾operator類型符()const。
25.C。【解析】函數返回類型是double型,則T1為double型,T2為int型才符合函數模板的定義。
26.D。【解析]setw(6)將輸出寬度設為6,如果位數不夠則在最左邊補齊,因此該項輸出一定不會與其他三項一致。
27.A。【解析】析構函數不能被重載,因為它的函數中不帶有任何參數,也沒有任何返回值,函數只有一個版本,即~類名(){}。
28.B。【解析】構造函數沒有返回值,雖然叫函數但是它沒有任何返回值,包括void型都不是,官方叫法為“構造器”。
29.A。【解析]PAT(*ad){3);該表達式表示一個指向類PAT的數組的指針,只是聲明了該指針,而并沒有進行實例化對象,因此該語句運行時并不會調用構造函數。
30.C。【解析]Derived2繼承Base的方式為protected,則Base的public成員只能在Base內訪問。
31.D。【解析】多繼承構造函數執行的順序為繼承時的順序。所以答案為D。Derived(inta,intb,intC,intd):Basel(b),Base2(a),bl(d),b2(c)的含義是:構造函數Basel的參數值為b,構造函數Base2的參數值為a。成員變量b1,b2的值分別為d、C。
32.B。【解析】本題中需要注意的是虛函數的定義:指向基類的指針在操作它的多態類對象時,會根據不同的類對象,調用其相應的函數,這個函數就是虛函數。所以P->functionl();會指向實現類Derived,而P->function2()則會指向Base。
33.C。【解析】該題考查了C++模板類和+運算符重載的知識,3+b1時,程序不能將b1轉化為整型,所以編譯會出錯。
34.C。【解析】輸入流要打開的文件不存在,則會自動建立該文件,而輸出流要打開的文件不存在,則會報錯,而不會新建一個文件。
35.B。【解析】eonst函數只能被eonst對象調用,a.get()函數調用的返回值是3,而b.get()調用的返回值是8。
36.A。【解析】該題考查了函數參數傳遞的兩種方式:引用傳遞和值傳遞。引用傳遞時X和Y會交換,而傳值時二者不交換,因此選10。
37.C。【解析】每調用一次get函數時,對新的類A對象進行一次實例化,調用一次構造函數,類A的靜態成員變量b便加1。
38.D。【解析】簡單類之間繼承關系的調用,按照通常做法便可以得到答案。center.get()函數調用后,3和4的和被返回,接著再調用Circle類的radius成員變量5相加后得到12。
39.A。【解析】C++不僅可以對運算符進行重載,還可以重載類型轉換符,函數聲明的形式為:operator類型符()const。
40.C。【解析】函數返回類型是double型,則T1為double型,T2為int型才符合函數模板的定義。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |