(精選)長安大學期末考試C++樣題_第1頁
(精選)長安大學期末考試C++樣題_第2頁
(精選)長安大學期末考試C++樣題_第3頁
(精選)長安大學期末考試C++樣題_第4頁
(精選)長安大學期末考試C++樣題_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、樣題 1 試題單選題 (所選字母填寫在( )內(nèi);每 1 小題分,共10 分)1. 已知 : int x, y; 下列表達式中,非法的是()。A. x%y B. y=-x C. -(x*y)D. x+=y2. 已知 : int x, y; 下列循環(huán)的執(zhí)行次數(shù)是( )。for(x(0),y(0);!y&&x<=5;x+,y+)A 1 B. 2 C. 5 D.無限3. 己知 : int a ,*p; 下列操作中,非法的是( )。A. p=a B. p=&a C. *p=9 D. p!=a;4下列有關(guān)語句的描述中,錯誤的是() 。A條件語句中,else子句可以有。個或1個

2、8 Continue 語句只能出現(xiàn)在循環(huán)體內(nèi)C Switch 語句不能出現(xiàn)在循環(huán)體內(nèi)D.循環(huán)語句可以自身嵌套,也可以相互嵌套5下列關(guān)于構(gòu)造函數(shù)的描述中,錯誤的是() 。A構(gòu)造函數(shù)是沒有名字的B.構(gòu)造函數(shù)是可以重載的C.構(gòu)造函數(shù)是系統(tǒng)自動調(diào)用的D.構(gòu)造函數(shù)是可以沒有參數(shù)的6下列關(guān)于運算符new 的描述中,錯誤的是( ) 。A new 運算符用來創(chuàng)建動態(tài)對象9 new 運算符用來創(chuàng)建堆對象時可進行初始化C.用new運算符創(chuàng)建的對象可用delete運算符釋放D.用new運算符可創(chuàng)建對象數(shù)據(jù),并可同時進行初始化)。7下列關(guān)于公有繼承方式下基類成員在派生類中訪問性的描述,其中錯誤的是(A基類中私有成員在

3、派生類中為私有成員B.基類中公有成員在派生類中為公有成員C.基類中保護成員在派生類中為保護成員D.派生類中成員函數(shù)不能訪問基類私有成員8類的構(gòu)造函數(shù)的成員初始化列表中,不可以包含() 。A基類構(gòu)造函數(shù)B .子對象類的構(gòu)造函數(shù)C.靜態(tài)數(shù)據(jù)成員初始化D .常數(shù)據(jù)成員的初始9已知:B 類是 A 類的公有繼承的派生類,下列描述中,錯誤的是()。AA 類的對象就是B類的對象10 B 類對象可以給A類對象賦值C B 類對象的地址值可以給A 類對象指針賦值DB 類對象可以給A類對象引用賦值10下列關(guān)于派生類定義格式的描述中,錯誤的是( ) 。A定義派生類可用關(guān)鍵字class或structB.定義派生類時要指

4、出派生類的類名和基類的類名C.定義派生類時一定要給出繼承方式,不能默認D.定義派生類時,類體中給出派生類的成員2 .判斷題(對者在題號前劃V,錯者劃在題號前X;每小題 0.5分,共10分)1 .函數(shù)體和循環(huán)語句的循環(huán)體都可為空。2 .數(shù)組下標只能是常量,不能是表達式。3 .使用delete運算符釋放一個用 new創(chuàng)建的數(shù)組時,每次只能釋放一個元素。4 .設(shè)置函數(shù)參數(shù)默認值只能用常量,不能用表達式。5 . 一個類的對象可以是該類的成員。6 .內(nèi)部靜態(tài)對象是全局對象,因為它的壽命是長的。7 .引用是一種可做函數(shù)參數(shù)的變量。8 .只有運算符+,-,才具有副作用。9 .構(gòu)造函數(shù)與拷貝構(gòu)造函數(shù)的名字都與

5、類名相同。10 友元函數(shù)只能訪問類中的私有成員。11 .單繼承中,一個派生類只有一個基類,而一個基類可以生成多個派生類。12 .派生類對基類成員的可訪問性與派生類對象對基類成員的可訪問性是相同的。13 .保護繼承方式下,基類中公有成員和保護成員在派生類中都是保護成員。14 .在公有繼承和保護繼承方式下,基類中的公有成員在直接派生類和間接派生類中都是可訪問的,而直接派生類和間接派生類的對象也可訪問。15 .靜態(tài)數(shù)據(jù)成員應該在構(gòu)造函數(shù)的成員初始化列表中進行初始化。16 .友元函數(shù)是說明在類體內(nèi)的成員函數(shù),它的定義應在類體外。17 .用new創(chuàng)建的堆對象,在使用 delete釋放時必須是先創(chuàng)建的后釋

6、放,后創(chuàng)建的先 釋放。18 .在C+程序中,創(chuàng)建一個對象時系統(tǒng)自動調(diào)用構(gòu)造函數(shù)進行初始化,如果一個類中 沒有定義構(gòu)造函數(shù),則無法創(chuàng)建對象。19 .友元類中的所有成員函數(shù)只能訪問友元類所在類中的私有成員。20 .所有的成員函數(shù)都可以重載。3 .填空題(將適當?shù)膬?nèi)容填寫在下劃線上面,每個空 1分,共10分)1 .定義類A中有兩個公有的成員函數(shù),其中一個是構(gòu)造函數(shù),另一個是靜態(tài)成員函數(shù) f1(),還有兩個私有的數(shù)據(jù)成員,一個是靜態(tài)數(shù)據(jù)成員 a,另一個類B的對象bo類 有兩個私有的數(shù)據(jù)成員。為滿足上述要求,請?zhí)顚懴铝谐绦虻目瞻滋?。A int apublic : (int i, int j ): voi

7、d f1 ();2. P類公有繼承Q類,P和Q類中都僅有一個私有的數(shù)據(jù)成員,P類中兩個成員函數(shù),個是構(gòu)造函數(shù),另一個友元函數(shù)fun()。下列一段程序?qū)崿F(xiàn)上述要求,請將空白處填上適當?shù)膬?nèi)容。class P public :P (int i, int j) P=i; void fun();private;四.分析下列程序的輸出結(jié)果(分析結(jié)果寫在該程序左邊或右邊的空白處; 每小題5分,共30分)1.#include <iostream.h>void main()int a=40;while(-a)if(a=20)break;if(a%2=0|a%3=0|a%5)continue;cout

8、<<a-1<<endl;2.#include <iostream.h>void main()int x(5);int & fun(int &);int y=fun(x)-;cout<<y<<endl;int w;int & fun(int &i)w=i*i;return w;3#include <iostream.h>int y=3;int fun(int,int =2,int &c=y);void main()int a(2),b(3),c(4);int x=fun(a);int

9、y=fun(a,b);int z=fun(a,b,c); cout<<x+y+z<<endl;int fun(int a,int b,int &c)a=b; b=c; c=a; cout<<a+b+c<<endl;return a+b+c;4#include <iostream.h>class ABpublic:AB(int i,int j):b(j) ab=i+2; cout<<"ABn" AB() cout<<ab<<endl; friend int fun(AB &

10、amp;a);private:static int a;int ab;const int b;int fun(AB &a) return AB:a+a.b+a.ab; int AB:a(0);void main()AB a(2,3),b(4,5);cout<<fun(a)<<','<<fun(b)<<endl;5#include <iostream.h>class PQpublic:PQ(int i=0) p=i; void print() cout<<p<<endl; PQ() cou

11、t<<"PQ"<<p<<endl; private:int p;PQ a(8);void main()PQ *p1,*p2;p1=new PQ(7);p2=new PQ2;p20=a;p21=*p1;(*p1).print();p20.print();p21.print();delete p1;delete p2;6#include <iostream.h>class Mpublic:M(int i) a=i; void f1() cout<<a<<'M'<<endl; M(

12、) cout<<'M'<<endl; protected:int a;class N:public Mpublic:N(int i,int j,int k):M(i),aa(j) b=k; void f1()cout<<a<<endl;aa.f1();cout<<b<<'N'<<endl;N() cout<<'N'<<endl; private:M aa;int b;void fun(M a)a.f1();void main()M a1(1

13、5);N b1(13,15,17);a1.f1();b1.f1();fun(b1);五. 分析程序回答問題 (共 10 分) #include <iostream.h> class Apublic:A() a1=a2=0; A(int i,int j) a1=i; a2=j; A()cout<<"An" A(A &a)a1=a.a1+2;a2=a.a2+2;cout<<"Cn"void print() cout<<a1+a2<<endl; private:int a1,a2;void f

14、un(A &a)A b;b=a;b.print();void main() A x(4,8),y;A p(x);y=x;fun(p);y.print();1. 該程序調(diào)用了幾次構(gòu)造函數(shù)( 全部 ) ?(3 分)2. 函數(shù) fun() 中, b. print() 輸出值是多少?( 3 分)3. 該程序調(diào)用了幾次拷貝構(gòu)造函數(shù)?( 4 分)六簡單回答問題 (每小題回答結(jié)果寫在該題下面空白處;每小題 2 分,共 10 分)1. 己知: int a=10,*pa=&a; 定義一個指針 pa 的引用 ref , 并計算表達式*ref*8 的值。2. 已知: A 類中有一個成員函數(shù)說明如下:

15、int fun (int) ;請將該成員函數(shù)fun( ) 說明常成員函數(shù), 其格式如何?該函數(shù)的功能是返回該參數(shù)的平方,寫出在類體外定義該函數(shù)的語句。3使用指針作函數(shù)參數(shù)和使用引用作函數(shù)參數(shù)有何不同?4 .在兩個不同的類中,A類對象可以賦值給類B的對象,要求A類和B類有什么關(guān)系?5 . C+詡言中有關(guān)函數(shù)定義方面與C語言有何不同?樣題 1 參考答案單選題(每1小題分,共10分)1. C 2. A 3. B 4. C 5. A 6. D 7. A 8. C 8. A 10. B2 .判斷題(每小題0.5分,共10分)對的有:2, 5, 8, 9,11,13,14,16, 203 .填空題(每個空

16、1分,共10分)1. class Astatic int a;B b _ ; public : A (int i, int j ): B(i,j) static void f1 ();2.class P:public Q public :P (int i, int j) :Q(j) P=i; friend void fun(); private int p ;;四.分析下列程序的輸出結(jié)果(部分答對酌情給分;每小題全對5分,共30分)1. 34242.253.7810254.ABAB7,11645.787PQ7PQ7PQ8PQ86.15M1315M17M13MMMNMM五 . 分析程序回答問題

17、(共 10 分)1. 該程序調(diào)用了幾次構(gòu)造函數(shù)( 全部 ) ?(2 分)答: 4 次2. 函數(shù) fun () 中, b. print() 輸出值是多少?( 2分)答:123. 該程序調(diào)用了幾次拷貝構(gòu)造函數(shù)?( 2 分)答:1 次六簡單回答問題 (每小題回答結(jié)果寫在該題下面空白處;每小題 2 分,共 10 分)1. 己知: int a=10,*pa=&a; 定義一個指針 pa 的引用 ref , 并計算表達式*ref*8 的值。答:指針 pa 的引用 ref 定義如下: int *&ref=pa;表達式 *ref*8 的值 : 802. 已知: A 類中有一個成員函數(shù)說明如下:i

18、nt fun(int) ;請將該成員函數(shù)fun( )說明常成員函數(shù),其格式如何?該函數(shù)的功能是返回該參數(shù)的平方,寫出在類體外定義該函數(shù)的語句。答:常成員函數(shù)fun( )說明如下:int fun(int) const;在類體外該函數(shù)定義如下:int A:fun(int a) const return a*a;3使用指針作函數(shù)參數(shù)和使用引用作函數(shù)參數(shù)有何不同?答: 使用指針作函數(shù)形參時對應實參使用變量或?qū)ο蟮牡刂分担?而使用引用作函數(shù)形參 時對應實參使用變量或?qū)ο笾怠? .在兩個不同的類中,A類對象可以賦值給B類的對象,要求A類和B類有什么關(guān)系?答: A 類公有繼承B 類5 . C+詡言中有關(guān)函數(shù)

19、定義方面與C語言有何不同?答:C+詡言中函數(shù)定義肘時,不可缺省函數(shù)類型;函數(shù)體內(nèi)說明語句位置不受限制函; 數(shù)說明使用原型說明; 可以定義重載函數(shù); 可以定義內(nèi)聯(lián)函數(shù); 可以設(shè)置函教參數(shù)的默認值。樣題 2 試題一、判斷題(對者在題號前劃,錯者在題號前劃X)(20分)1. 構(gòu)造函數(shù)可以重載。2. 類的數(shù)據(jù)成員不一定都是私有的。3. 對象數(shù)組的元素應是同類的對象。4. 任意一種構(gòu)造函數(shù)都具有轉(zhuǎn)換類型功能。5. 在私有繼承中,基類中只有公有成員對派生類是可見的。6. 引用可以作函數(shù)參數(shù),不能作函數(shù)的返回值。7. 抽象類是不能創(chuàng)建對象的。8. 析構(gòu)函數(shù)是不能被定義為虛函數(shù)的。9. C+詡言既支持單繼承,

20、又支持多繼承。10. put() 函數(shù)只能從標準流對象cin 中提取字符。11引用的值是不可以被改變的,它的值永遠是被引用的變量的值。12定義一個對象時,系統(tǒng)總會對該對象進行初始化。13沒有參數(shù)的構(gòu)造函數(shù)稱為默認構(gòu)造函數(shù),該構(gòu)造函數(shù)一定是系統(tǒng)自動生成的。14在用一個對象給同類的另一個對象賦值時,調(diào)用拷貝初始化構(gòu)造函數(shù)。15靜態(tài)對象的成員稱為靜態(tài)成員。16友元類中的所有成員函數(shù)都是友元函數(shù)。17 this 指針是指向?qū)ο蟮闹羔?,是系統(tǒng)自動生成的。18 .運算符new可以創(chuàng)建對象,也可創(chuàng)建對象數(shù)組。19定義派生類時必須指出基類名和繼承方式,二者都不可默認。20. C+斑言對標準文件的讀寫函數(shù)與對磁

21、盤文件的讀寫函數(shù)是一致的。填空題 (20 分 )1 C+詡言中,類的繼承方式有三種,分別是 、2 定義靜態(tài)成員使用 關(guān)鍵字,靜態(tài)成員是屬于 的。3 堆對象的創(chuàng)建使用 運算符,刪除使用 運算符。4 運算符重載的兩種方式是 和 5 含有 的類稱為抽象類。單選填空題 (20 分 )_是錯誤的。B. 用它創(chuàng)建的對象應用 delete 來刪除1. 關(guān)于 new 運算符的下列描述中,_A. 創(chuàng)建對象時必須指定初始值創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù)公有繼承的私有私有繼承的公有B. 派生類至少有一個基類D. 派生類中包含它基類中的成員運算符重載可以改變優(yōu)先級D. 運算符重載不可以改變語法結(jié)構(gòu)C. 可用它來創(chuàng)建動態(tài)對象

22、D.2. 派生類的對它基類中 成員不可以訪問。A.公有繼承的公有B.C.公有繼承的保護D.3. 關(guān)于派生類的下列描述中 是錯誤的。A. 派生類中繼承基類成員的訪問權(quán)限不變C. 派生類還可作另一個派生類的基類4. 下列對重載函數(shù)的描述中 是正確的。A.運算符重載可以改變結(jié)合性B.C. 運算符重載可以改變操作數(shù)的個數(shù)5. 在類體內(nèi)說明虛函數(shù)使用的關(guān)鍵字是_A. virtual B. friend C. inline D. static6. 下列關(guān)于構(gòu)造函數(shù)的特征中, 是正確的。A. 不可以重載B.不可以設(shè)置缺省參數(shù)C. 與類名不同D.不說明其類型7. 己知:類 Point 中有一個成員函數(shù)說明如下

23、Point & Set(Point a);下面對返回值的描述由 是正確的。A. 該函數(shù)無返回值B.該函數(shù)返回值是類 Point 對象C. 該函數(shù)返回值是類Point 的對象的引用D. 該函數(shù)返回值是指向類Point的對象的地址8. 關(guān)于動態(tài)聯(lián)編的下列描述中 是錯誤的。A. 動態(tài)聯(lián)編是以公有繼承為基礎(chǔ)的B. 動態(tài)聯(lián)編是在運行中確定所選函數(shù)代碼的C. 動態(tài)聯(lián)編是在編譯時確定所選函數(shù)代碼的D. 動態(tài)聯(lián)編要有虛函數(shù)9. 下列輸出字符串"MN的方法中, 是正確的。A. cout<<put( “ MN” );B. cout<<” MN” ;C. cout.put(

24、“ MN” );D. cout<<write(“ MN” );10. 下列打開磁盤文件的訪問方式常量中, 是以讀方式打開文件的。A. out B. in C. ate D. app分析下列程序的輸出結(jié)果(30 分 )1.#include <iostream.h>class Mint a;public:M(int i=15) a=i; cout<<"in Mn"int geta() return a;void main()M r1,r2(18);cout<<oct<<r1.geta()<<endl;cou

25、t<<dec<<r2.geta()<<endl;2.#include <iostream.h>class Adouble x;public:A(double i) x=i; A operator +(A c) return A(x*c.x); double Getx() return x;void main()A a(0);a=A(3)+A(4);cout<<a.Getx()+8<<endl;3.#include <iostream.h>class P1public:P1(int i) p1=i; virtua

26、l int fun() return p1; private:int p1;class P2:public P1public:P2(int i,int j):P1(i),p2(j) int fun() return p2; private:int p2;void main()P1 *pf=new P1(10);P2 *pd=new P2(8,18);P1 &b=*pd;cout<<pf->fun()<<endl;cout<<b.fun()<<endl;cout<<(*pd).fun()<<endl;delet

27、e pf;delete pd;4.#include <iostream.h>class A tatic int N;int *a;public:A(int k) a=new intN;for(int j=0;j<N;j+) aj=j+k;int geta(int i) return *(a+i);static int getN() return N;A() cout<<"Dn" delete a;void main()A x(6),y(9);for(int i=0;i<A:getN();i+)cout<<x.geta(i)+y

28、.geta(i)<<endl;int A:N=3;5.#include <iostream.h>class Rpublic:R() cout<<"in Rn" virtual void fun(int i) cout<<"R:"<<i<<endl; char *gun() return "HELLOn"class T:public Rpublic:void fun(int i) cout<<"T:"<<i<<endl; ;void f1(R &a)a.fun(88);cout<<a.gun();void f2(R a)a.fun(99);cout<<a.gun();void main()T b1,b2;f1(b1);f2(b2);五、 簡單回答下列問題 (10 分 )1. 什么是友元函數(shù)?它有什么作用?2. 一個類的派生類是否還可以生成新的派生類?派生類的構(gòu)造函數(shù)是否必須有成員初始化列表?3. 靜態(tài)數(shù)據(jù)成員有什么特點?如何引用靜態(tài)數(shù)據(jù)成

溫馨提示

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

評論

0/150

提交評論