21.D!窘馕觥勘绢}考鴦this指針的使用。類的每一個成員函數(shù)都有一個隱含的常量指針,印this指針。類的靜態(tài)成員函數(shù)不能含有this指針.因為this指針是一個指向本對象的指針。
22.A!窘馕觥勘绢}考查C++流的溉念和I/0的格式化。tin是istream類的對象,即輸入流對象。ifstream是輸入文件流,類不能定義個輸出流對象。getline函數(shù)的功能是允許從輸入流中讀取多個字符,并且允許指定輸入終止,在讀取完成后,從讀取的內容中刪除該終止字符,所以D選項中的語句序列后x中字符串應該是Happynewyear。
23.C!窘馕觥勘绢}中類TestClass為基類,TestClassl為TestClass的派生類。由main主函數(shù)入手,定義TestClassl類型的對象dl,參數(shù)值為y。TestClassl類繼承TestClass,所以主函數(shù)中“TestClassldl(’y’);”語句首先調用“TestClassl(charc){colll< 24.D!窘馕觥刻摶愓f明格式為:Virtual<繼承方式><基類名>其中,virtual是虛基類的關鍵詞。虛基類的說明是用在定義派生類時,寫在派生類名的后面。即class<派生類名>:Virtual<繼承方式><基類名>。
25.C!窘馕觥勘绢}考查類的構造函數(shù)和析構函數(shù)。首先,Samplesl(2,3);會調用含有兩個參數(shù)的構造函數(shù)Sam-ple(inta,intb){x=a;y=b;),disp()函數(shù)輸出成員變量x和y的值x=2,y=3;然后結束時調用析構函數(shù)。因為x和y值不等,故輸出X!=Y。
26.D!窘馕觥勘绢}主要考查switch語句的使用,在第一個case處,因為滿足條件,所以輸出字符3。但這個分支沒有break語句終止,所以會繼續(xù)執(zhí)行下面的分支語句,即輸出字符2,這時出現(xiàn)break語句,結束整個語句,即輸出32。
27.A。【解析】靜態(tài)數(shù)據(jù)成員是類中所有對象共享的成員,而不是某個對象的成員。題中變量n是靜態(tài)數(shù)據(jù)成員,對象對其操作的結果具有疊加作用,main函數(shù)中先定義了Test的對象*P,然后又delereP,所以對靜態(tài)數(shù)據(jù)n進行了兩次操作,分別是"n+=2"和"n-=3",n的初始值是1,那么n最后的值變?yōu)?。main函數(shù)最后通過調用靜態(tài)函數(shù)getNum得到n的值,并輸出。
28.A!窘馕觥勘绢}考查虛基類的應用。雖然Derivedl和Derived2都是由共同的基類x派生而來的,但由于引入了虛基類,使得它們分別對應基類的不同副本。這時數(shù)據(jù)成員x只存在一份副本,不論在類Derivedl中修改,還是在Derived2中修改,都是直接對這唯一副本進行操作。本題程序執(zhí)行語句“Derivedobj;”時.就會先調虛基類Base的構造函數(shù),使得X=0,然后執(zhí)行類Derivedl的構造函數(shù)使得x=10,再執(zhí)行類Derived2的構造函數(shù),使得x=20。最后輸出x的值為20。
29.C。【解析】用一個指針變量p指向字符數(shù)組A,在while循環(huán)中,當不指向數(shù)組尾時,將小寫字母轉換為大寫字母,然后將其輸出。
30.B!窘馕觥勘绢}定義TestClass型常對象a,然后調用對象a中的成員函數(shù)print()。因為在C++中.如果一個對象被聲明為常對象,則不能調用該對象中的非const型成員函數(shù)。所以,這里調用的是對象中的const型成員函數(shù)voidprint()const,輸出為print2。
31.A!窘馕觥勘绢}考查含有虛基類的繼承中構造函數(shù)的調用順序,應該先調用基類的構造函數(shù),接著按照派生類繼承列表的順序依次調用虛基類的構造函數(shù),最后調用派生類自己的構造函數(shù)。
32.B!窘馕觥勘绢}考查模板函數(shù)的應用,表達式int(1.1)和int(4.2)用于將1.1和4.2強制轉換為整型。
33.D。【解析】本題考查引用調用,因為函數(shù)swap引用調用參數(shù)a,所以在swap函數(shù)中a的變化會改變主函數(shù)中a的值,即a自加1。但b的值并未改變。
34.B!窘馕觥勘绢}是兩個循環(huán)語句和一個判斷語句的嵌套。For循環(huán)的作用是在i等于10的時候跳出循環(huán),故本題的答案為B。
35.B。【解析】本題考查派生類中構造函數(shù)的定義。派生類的構造首先要調用基類的構造函數(shù),對基類成員初始化,然后對派生類中的新增成員初始化。格式為,派生類名(構造函數(shù)形參表)基類構造函數(shù)(形參表)。
36.A!窘馕觥*a[]表示一個字符串數(shù)組,for循環(huán)的作用是輸出字符串數(shù)組中每一個字符串的第一個字符。所以正確答案為選項A。
37.D。【解析】數(shù)組和指針的關系非常密切,因為數(shù)組名稱單獨使用是表示數(shù)組的首地址。故可用的表示可能是a[i],p[i],*(P{i),同樣&(a[i])表示地址,因此*(&a[i])等同于a[i]。本題答案為D。
38.A!窘馕觥緾++語言中,setfill的意思是在空格的地方填上setfill函數(shù)中的參數(shù)字符,setw的意思是設置整個輸出字符串的字符個數(shù),本題中用*來代替空格。
39.D!窘馕觥勘绢}考查的是類的繼承和派生。系統(tǒng)首先要通過派生類的構造函數(shù)調用基類的構造函數(shù),對基類成員初始化,然后對派生類中的新增成員初始化。
40.C!窘馕觥坑芍骱瘮(shù)main入手,首先x被賦值為3,a被賦值為4,然后調用fun函數(shù),參數(shù)為4,所以在fun函數(shù)中的a=4。而主程序中的x作用域是由它定義開始到cout輸出,在fun函數(shù)中無效。而在fun函數(shù)定義前的變量X作用域是整個程序,所以fun函數(shù)中的x值為5,這樣C的值就為20。在主函數(shù)中的x+fun(a)中的x為靠近這條語句的x定義,即3,所以最后x的值為20+3=23。
![]() | ![]() .. 定價:¥225 優(yōu)惠價:¥213 更多書籍 |
![]() | ![]() .. 定價:¥133 優(yōu)惠價:¥133.0 更多書籍 |