c++期末考試真題(1)_第1頁
c++期末考試真題(1)_第2頁
c++期末考試真題(1)_第3頁
c++期末考試真題(1)_第4頁
c++期末考試真題(1)_第5頁
免費預(yù)覽已結(jié)束,剩余11頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、-"w - 'V ,r - "w 'V = ,r = = ,v-= ,v .- -r = ,» -= " v v v 一、 填空題1 .類是一組具有共同的_屬性特征和行為特征的對象的抽象。2 .在面向?qū)ο蟪绦蛟O(shè)計H, 一個對象向另一個對象發(fā)出的請求被稱為_消息一。3 .用class作關(guān)鍵字進(jìn)行類聲明,默認(rèn)的訪問屬性是private(私有的)_4 .函數(shù)名重載是指同一作用域內(nèi)的多個函數(shù)使用相同的函數(shù)名,這些小函數(shù)要從參數(shù)類型和參數(shù)個數(shù) 進(jìn)行區(qū)分。5 .構(gòu)造函數(shù)的作用是_在創(chuàng)建對象時對對象進(jìn)行初始化 。6 .多重繼承指一個派生類可以有多個基類

2、 。7 .保護(hù)繼承下,基類中所有公有成員在派生類中的訪問屬性是保護(hù)的 。8 .假定要訪問一個對象指針p所指對象中的b成員,則表示方法 p.b 09 .若需要把一個函數(shù)“void F()定義為一個類AB的友元函數(shù),則應(yīng)在類AB的定義 中加入一條語句:friend void F(AB &)_ 。10.Static成員函數(shù)與普通成員函數(shù)的區(qū)別是 靜態(tài)成員函數(shù)沒有this指針。11.若要在程序文件中進(jìn)行標(biāo)準(zhǔn)輸入輸出操作,則必須在開始的#include命令中使用iostream 頭文件。727.關(guān)鍵字 c說明對象或變量初始化后不會被修改。a. static b. public c. const

3、d. inline2 .如果調(diào)用帶有默認(rèn)參數(shù)的函數(shù)時缺少一個參數(shù),則 B 參數(shù)就作為這一參數(shù)。a.第一個 b. 最后一個 c. 中間一個 d.以上都不是3 .成員函數(shù)可聲明為靜態(tài)的,條件是它不訪問 C 類成員。a.靜態(tài) b. 常數(shù)c. 非靜態(tài) d. 公共4 .內(nèi)聯(lián)函數(shù)執(zhí)行起來比標(biāo)準(zhǔn)函數(shù) B。a.更慢 b. 更快c.次數(shù)更多d.以上都不是5 .默認(rèn)參數(shù)的值由 C 提供。a. 該函數(shù) b. 調(diào)用程序 c.上述二者d. 以上都不是6 .在C+中,混合類型表達(dá)式A。a. 允許存在 b.為一錯誤 c. 從int 到float d. 從float 到int7 . 表達(dá)式long(intVar)也可表示為C

4、。a. intvar = long; b. intVar(long) c. (long)intVar d.以上者 B 不是8 .靜態(tài)數(shù)據(jù)成員的生存期A 。a.與整個程序相同b.不長于類的生存期c.取決于創(chuàng)建的對象數(shù)d. 以上都不是9 .要讓一個類中的所有對象具有共同的數(shù)據(jù),請使用 C。a.常數(shù)成員變量 b.私有數(shù)據(jù)成員c. 靜態(tài)數(shù)據(jù)成員 d.以上都是1、C+是(C )A.面向?qū)ο蟮某绦蛟O(shè)計語言B.面向過程的程序設(shè)計語言C.既支持面向?qū)ο蟮某绦蛟O(shè)計又支持面向過程的程序設(shè)計的混合型語言罪名卬"D.非結(jié)構(gòu)化的程序設(shè)計語言2、面向?qū)ο蟪绦蛟O(shè)計思想的主要特征中不包括( D )。A.封裝性 B.

5、多態(tài)性 C.繼承性 D.功能分解,逐步求精3、若定義:string str;當(dāng)語句cin>>str;執(zhí)行時,從鍵盤輸入:Microsoft Visual Studio 6.0!所得的2果是str= ( B )0A. Microsoft Visual Studio 6.0! B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考慮下面的函數(shù)原型聲明:void testDefaulParam(int a,int b=7,char z='*');下面函數(shù)調(diào)用中,不合法的是(C )。A. testDe

6、faulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列語句中,將函數(shù)int sum(int x, int y)正確重載的是(C )。A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,(A )是正確的。已知:int a=1000;A.

7、int &x=a; B. char &y; C. int &z=1000; D. float &t=&a;7、在一個函數(shù)中,要求通過函數(shù)來實現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行 速度,選用(A )。A.內(nèi)聯(lián)函數(shù) B.重載函數(shù)C.遞歸調(diào)用D.嵌套調(diào)用8、下列有關(guān)C+類的說法中,不正確的是(D )。A.類是一種用戶自定義的數(shù)據(jù)類型B.只有類中的成員函數(shù)或類的友元函數(shù)才能存取類中的私有成員C.在類中,如果不做特別說明,所有成員的訪問權(quán)限均為私有的D.在類中,如果不做特別說明,所有成員的訪問權(quán)限均為公用的雅品卬"口9、已知X類,則當(dāng)程序執(zhí)行到語句:X

8、 array3;時,調(diào)用了( D )次構(gòu)造函數(shù)。A. 0B. 1C. 2D. 310、下面說法中,正確的是(B )A. 一個類只能定義一個構(gòu)造函數(shù),但可以定義多個析構(gòu)函數(shù)B. 一個類只能定義一個析構(gòu)函數(shù),但可以定義多個構(gòu)造函數(shù)C.構(gòu)造函數(shù)與析構(gòu)函數(shù)同名,只要名字前加了一個求反符號()D.構(gòu)造函數(shù)可以指定返回類型,而析構(gòu)函數(shù)不能指定任何返回類型,即使是void類型也不可以12、下面描述中,表達(dá)錯誤的是( B )A.公用繼承時基類中的public成員在派生類中仍是public的B.公用繼承時基類中的private成員在派生類中仍是private的C.公用繼承時基類中的protected成員在派生類

9、中仍是protected的D.私有繼承時基類中的public成員在派生類中是private的14、下面(B )的敘述不符合賦值兼容規(guī)則。A.派生類的對象可以賦值給基類的對象B.基類的對象可以賦值給派生類的對象C.派生類的對象可以初始化基類的對象D.派生類的對象的地址可以賦值給指向基類的指針16、下面關(guān)于友元的描述中,錯誤的是( D )。A.友元函數(shù)可以訪問該類的私有數(shù)據(jù)成員B. 一個類的友元類中的成員函數(shù)都是這個類的友元函數(shù)C.友元可以提高程序的運行效率D.類與類之間的友元關(guān)系可以繼承17、下列關(guān)于靜態(tài)數(shù)據(jù)成員白說法,不正確的是( C )。A.類中定義的公用靜態(tài)數(shù)據(jù)成員,可以通過類的對象來訪問

10、B.類中定義的所有靜態(tài)數(shù)據(jù)成員,都必須在類外初始化嵋品WpRC.靜態(tài)數(shù)據(jù)成員不是所有對象所共用的D.普通的成員函數(shù)可以直接訪問類中的靜態(tài)數(shù)據(jù)成員18、如果表達(dá)式+i*k中的“+”和“*”都是重載的友元運算符,若采用運算符函數(shù)調(diào)用格式,則表達(dá)式還可以表示為A. operator*(i.operator+(),k)C. i.operator+().operator*(k) 19、下面對模板的聲明,正確的是(A. template<T>C. template<class T1, class T2>20、下列的各類函數(shù)中,(C )A.構(gòu)造函數(shù)B.析構(gòu)函數(shù)二、填空題(前14個空,

11、每空1分,(B )。B. operator*(operator+(i),k)D. k.operator*(operator+(i)C )。B. template<class T1, T2>D. template<class T1; class T2> 不是類的成員函數(shù)C.友元函數(shù) D.復(fù)制構(gòu)造函數(shù)后3個空,每空2分,共20分)1、類和對象的關(guān)系可表述為:類是對象的抽象.而對象則是類的實例2、靜態(tài)成員函數(shù)沒有隱含的this指針 、所以,在C+程序中,靜態(tài)成員函數(shù)主要用來訪問靜態(tài)數(shù)據(jù)成員,而不訪問非靜態(tài)成員。3、在圖1中,A, B, C, D, E, F均是類,其中屬于單繼

12、承的派生類有 E . 屬于多繼承的派生類有 D、F ,類F的基類有 A、B、C、D、E ,類A的派生類有D、F。圖1類的繼承層次圖7、若要把void fun()定義為類A的友元函數(shù),則應(yīng)在類 A的定義中加入語句 friendvoid fun(A&a) 。8、列出C+中的兩種代碼復(fù)用方式:繼承 和組合或模板。罪名9、析構(gòu)函數(shù)的作用是在對象被系統(tǒng)釋放之前做一些內(nèi)存清理工作10、假定A是一個類名,則該類的拷貝構(gòu)造函數(shù)的原型說明語句為:A(constA&)。11、后置自增運算符“+”重載為類的成員函數(shù)(設(shè)類名為A)的形式為:A operator+(int) 。一、單項選擇題(每小題2分

13、,共40分)1、關(guān)于C+與C語言關(guān)系的描述中,(D )是錯誤的。A. C語言是C+語言的一個子集B. C語言與C+語言是兼容的C. C+語言對C語言進(jìn)行了一些改進(jìn)D. C+語言和C語言都是面向?qū)ο蟮?、系統(tǒng)在調(diào)用重載函數(shù)時往往根據(jù)一些條件確定哪個重載函數(shù)被調(diào)用,在下列選 項中,不能作為依據(jù)的是(A )0A.函數(shù)的返回值類型 B,參數(shù)的類型C.函數(shù)名稱D.參數(shù)個數(shù)5、下列有關(guān)C+類的說法中,不正確的是( D )。A.類是一種用戶自定義的數(shù)據(jù)類型B.只有類中的成員函數(shù)或類的友元函數(shù)才能存取類中的私有成員C.在類中,如果不做特別說明,所有成員的訪問權(quán)限均為私有的D.在類中,如果不做特別說明,所有成員

14、的訪問權(quán)限均為公用的7、有關(guān)析構(gòu)函數(shù)的說法,不正確的是( B )。A.析構(gòu)函數(shù)有且僅有一個B.析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參C.析構(gòu)函數(shù)的功能是在系統(tǒng)釋放對象之前作一些內(nèi)存清理工作D.析構(gòu)函數(shù)無任何函數(shù)類型8、類定義的內(nèi)容允許被其對象無限制地存取的是( C )。A. private部分 B. protected部分 C. public部分 D.以上都不對 10、運用運算符delet刪除一個動態(tài)對象時(C )。A.系統(tǒng)首先為該動態(tài)對象調(diào)用構(gòu)造函數(shù),再釋放其占用的內(nèi)存B.系統(tǒng)首先釋放該動態(tài)對象占用的內(nèi)存,再為其調(diào)用構(gòu)造函數(shù)雅品卬"口C.系統(tǒng)首先為該動態(tài)對象調(diào)用析構(gòu)函數(shù),再釋放其占用的內(nèi)

15、存D.系統(tǒng)首先釋放動態(tài)對象占用的內(nèi)存,再為其調(diào)用析構(gòu)函數(shù)11、可以在類外用p.m勺形式訪問派生類對象p的基類成員a,其中a是(D )。A.私有繼承的公用成員B.公用繼承的私有成員C.公用繼承的保護(hù)成員D.公用繼承的公用成員12、在公用繼承方式下,有關(guān)派生類對象和基類對象的關(guān)系,不正確的敘述是(C )。A.派生類的對象可以賦給基類的對象B.派生類的對象可以初始化基類的引用C.派生類的對象可以直接訪問基類中的成員D.派生類的對象的地址可以賦給指向基類的指針18、下列運算符中,(C )運算符在C+中不能被重載。A. &&B. 口C.二D. new19、模板的使用實際上是將類模板實例化

16、成一個( C )。A .函數(shù)B .對象C .類D.抽象類20、假定MyClass為一個類,則該類的拷貝構(gòu)造函數(shù)的聲明語句為( C )。A . MyClass(MyClass x)B. MyClass&(MyClass x)C. MyClass(MyClass &x)D. MyClass(MyClass *x)二、填空題(前16個空,每空1分,后2個空,每空2分,共20分)1、類和對象的關(guān)系可表述為:類是對象的 抽象、而對象則是類的實例。2、在C+中,三種繼承方式的說明符號為public 、private 和 protected .如果不加說明,則默認(rèn)的繼承方式為private

17、_。5、類的靜態(tài)成員分為 靜態(tài)數(shù)據(jù)成員 和 靜態(tài)成員函數(shù) 。6、運算符重載要求保持其原來的操作數(shù)個數(shù)、結(jié)合性、優(yōu)先級和語法結(jié)構(gòu)。7、通過關(guān)鍵字 template 可以聲明模板,通過關(guān)鍵字 class(或typename)罪名指定函數(shù)模板的類型參數(shù),有幾個類型參數(shù)就有幾個類型關(guān)鍵字。8、列出C+中兩種用戶自定義的數(shù)據(jù)類型: 類 、 結(jié)構(gòu)體 。單項選擇題(共20題,每題1分,共20分)1、下列關(guān)于C+而識符的命名不合法的是(C )與Cd樣A. Pad B. name_1C. A#bc D. _a122、若有以下類型標(biāo)識符定義:int x=2; char w='a' ; float

18、y=23.45f ; double z=45.6712;則表達(dá)式w*x+y-z的結(jié)果類型是(D)A. float B. char C. intD. double6、對重載函數(shù)形參的描述中,錯誤的是DA.參數(shù)的個數(shù)可能不同B.參數(shù)的類型可能不同C.參數(shù)的順序可能不同D.參數(shù)的個數(shù)、類型、順序都相同,只是函數(shù)的返回值類型不同7、以下能正確定義數(shù)組并正確賦初值的語句是DA. int N=5,bNN;B. int a2=1,3,4,5;C. int c2=1,2,3,4;D. int d32=1,2,3,4;8、下列給字符數(shù)組進(jìn)行的初始化中,不正確的是DA. char s1="abcd&qu

19、ot;B. char s23='x','y',''0'C. char s3='a','x','y',''0'D. char s46="xyz","mnp"9、通常的拷貝構(gòu)造函數(shù)的參數(shù)是CA.某個對象名B.某個對象成員名C.某個對象的引用D.某個對象的指針名10、關(guān)于構(gòu)造函數(shù)特點的描述中,錯誤的是AA.定義構(gòu)造函數(shù)必須指出類型(構(gòu)造函數(shù)特點是無返回類型)B.構(gòu)造函數(shù)的名字與該類的類名相同C. 一個類中可定義0至多個構(gòu)造函數(shù)D.構(gòu)造

20、函數(shù)是一種成員函數(shù)11、下面程序的運行結(jié)果為C#include <iostream>int add(int a,int b);void main()extern int x,y;-"w - 'V ,r - "w 'V = ,r = = ,v-= ,v .- -r = ,» -= " v v v cout<<add(x,y)<<endl; int x=20,y=5;int add(int a,int b) int s=a+b; return s;A. 20 B . 5C . 25D .編譯會提示出錯信息1

21、3、關(guān)于友元函數(shù)的描述中,錯誤的是BA.友元函數(shù)不是成員函數(shù)B.友元函數(shù)只能訪問類中私有成員C.友元函數(shù)破壞隱藏性,盡量少用D.友元函數(shù)說明在類體內(nèi),使用關(guān)鍵字 friend14、如果有int x,*p; float y,*q;則下面操作正確的是CA. p=x B . p=qC . p=&x D . p=&y16、若數(shù)組名作實參而指針變量作形參,函數(shù)調(diào)用時實參傳給形參的是DA.數(shù)組的長度B.數(shù)組第一個元素的值C.數(shù)組所有元素的值D.數(shù)組第一個元素的地址17、對于動態(tài)分配內(nèi)存空間描述正確的是DA,使用new運算符分配的內(nèi)存空間的長度必需是常量B. delete運算符可以釋放動態(tài)的

22、存儲空間和靜態(tài)的存儲空間C.由new分配的內(nèi)存空間是不連續(xù)的D. delete運算符只能釋放由new分配的動態(tài)存儲空間18、能夠釋放對象所占資源的是() AA.析構(gòu)函數(shù)B .數(shù)據(jù)成員C.構(gòu)造函數(shù)D .靜態(tài)成員函數(shù)20、在C+”串流類是在頭文件strstrea.h中定義的,下列不屬于串流類的是)CA. strstream B . ostrstreamC. ofstream D . istrstream二、填空題(共9題16空,每空1分,共16分)1、函數(shù)重載時,編譯系統(tǒng)會根據(jù)形參的類型 或形參的個數(shù)來區(qū)分。與返回值類型無關(guān)2、若有char a80;則cin>>a表示從鍵盤上讀入一個_

23、字符串_至U數(shù)組a中。3、若希望用一個已有對象來構(gòu)造另一個同類型的對象,可取使用 一 拷貝構(gòu)造函數(shù) 來實現(xiàn)。4、靜態(tài)成員(static )屬于 類 ,而不屬于任何一個對象 ,它被同一個類的所有對象共享。易品第P川6、重載運算符的含義必須清楚,不能有 二義性 。9、C+勺I/O是以字節(jié)流的形式實現(xiàn)的,每個C+與譯系統(tǒng)都帶有一個面向?qū)ο?的輸入/輸出軟件包,這就是I/O流類庫。C+湎向?qū)ο蟪绦蛟O(shè)計語言期末考試試卷.選擇題(每題1分,共10分)1 .在C+中,常量'C和"C兩者 A 。A完全不同B)存儲長度相同C )類型相同D)存儲值相同2 .有二維字符數(shù)組 char s46= Z

24、hang ",“gao",“tang ",“wang”,執(zhí)行程序 cout<<*s2,屏幕上顯示 _D。A) gaoB) tangC) gD) t右 w=1,x=2,y=3,z=4,則條w>x?w:z>y?z:x的結(jié)果為 A 。A) 4B) 3C) 2D) 1設(shè)a和b為整型變量,執(zhí)行語句b=(a=2+3,a*4),a+5;后a和b的值為D。A) 5, 10B) 20, 25C) 5, 25D) 5, 20如果整型變量a,b,c的值分別為5, 4, 3,則語句if(a>=b>=c) c+; 執(zhí)行后c的值是C。A) 5B) 4C)

25、3D) 23.4.5.int i=10;執(zhí)行下列語句后,i的值是_D。case 9: i+=1;case 10: i+=1;case 11: i+=1;case 12: i+=1;A) 10B) 11C) 12D) 136.7.執(zhí)行以下程序:#include<iostream>void main(void)char c=0;cout<<c<< 'n '輸出的結(jié)果是D。A) 0 ' B)語法錯 C)0D) 一個空行設(shè)有類型說明:enum colorred,yellow=3,white,black;則執(zhí)行語句cout<<whi

26、te<< n'后輸出的結(jié)果是 DA) 4B) 3C) 2D) 18.對于下面的幾個函數(shù):器高以0川void f(int x)/1int f(int y)/2int f(int i,int j)113float k(int x) /4(A)是重載函數(shù)。A)4個全部B) 1和4C) 2和3D) 3和4二.填空題(每空2分,共10分)1 .浮點型變量f當(dāng)前存儲的值是17.8,經(jīng)(int) f類型強(qiáng)制轉(zhuǎn)換后f存儲的值是 _17.8。2 .若:typedef char * STRING;STRING p,s10;則:p和s的數(shù)據(jù)類型分別是字符型指針_、字符型指針數(shù)組。3 .求a, b

27、, c中的最大值,請將表達(dá)式補(bǔ)充完整 (t=a>=b?a:b)<c? c:t。4,已知字母 a的ASCII碼為十進(jìn)制數(shù)97,且ch為字符型變量,則£達(dá)式ch='a'+'9'- 3'的值為g。三.閱讀程序題(每空2分,共14分)1 .下列程序的輸出結(jié)果是 15_0#define MUL(x,y) x*y#include<iostream>void main(void)int x=4,y=6;cout<<MUL(x+1,y-3)<<'n'2 .下面函數(shù)的功能是 比較字符串的大小 。 s

28、ss(char* s,char* t)while(*s)&&(*t)&&(*t+=*s+); return;3 .對于下述程序段:int c(int x,int y)if(x<1) return(y+2);else if(x%2=1) return(y*c(x-1,y+1);else return(c(x/2,y)*3);當(dāng)主程序中有打印語句cout<<c(6,2)<<'n' 時,程序的輸出是 324。4 .程序雅高卬"#include<iostream.h>int c=-1;void f(in

29、t* a,int b) static int c=2;(*a)+;c-;cout<<*a<<'t'<<b<<'t'<<c<<endl;void main(void)int i;for(i=0;i<=1;i+)f(&i,c); cout<<"c="<<c<<endl;程序執(zhí)行后輸出的第二行是_c= 1_;輸出的最后一行是c= -1 05 .程序下面程序的輸出結(jié)果是 17_0#include<iostream.h>

30、int funa(int a,int b)return(a + b);int funb(int a,int b)return(a - b);int sub(int(*f)(int ,int),int x,int y)return (*f)(x,y);void main(void)int x,(*p)(int,int);p=funb;x=sub(funa,8,3);x+=sub(p,9,3);cout<<"x="<<x<<'n'6 .程序下面程序的輸出結(jié)果是 3_0#include<iostream.h>int aa33=2,4,6;void main(void)int i,*p=&aa00;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論