C++面向?qū)ο蠹夹g(shù)復(fù)習(xí)題匯總(含答案)_第1頁
C++面向?qū)ο蠹夹g(shù)復(fù)習(xí)題匯總(含答案)_第2頁
C++面向?qū)ο蠹夹g(shù)復(fù)習(xí)題匯總(含答案)_第3頁
C++面向?qū)ο蠹夹g(shù)復(fù)習(xí)題匯總(含答案)_第4頁
C++面向?qū)ο蠹夹g(shù)復(fù)習(xí)題匯總(含答案)_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο蟪绦蛟O(shè)計C+復(fù)習(xí)資料與答案第一、二、六、七章習(xí)題一、選擇題1、系統(tǒng)約定C+源程序文件名的缺省的擴展名為()A、 bcc B、 c+C、 cppD、 vcc2 、面向?qū)ο蟮某绦蛟O(shè)計將數(shù)據(jù)與() 放在一起, 作為一個相互依存、 不可分割的整體來處理。A、對數(shù)據(jù)的操作B、信息 C數(shù)據(jù)隱藏D、數(shù)據(jù)抽象3 、當(dāng)一個函數(shù)無返回值時,函數(shù)的類型應(yīng)定義為()A、void B、任意C、intD、無4、對于C+鈉函數(shù),正確的敘述是:A、函數(shù)的定義不能嵌套,但函數(shù)的調(diào)用可以嵌套B、函數(shù)的定義不能嵌套,但函數(shù)的調(diào)用不能嵌套C、函數(shù)的定義和調(diào)用都不能嵌套D、函數(shù)的定義和調(diào)用都可以嵌套5 、下列語句中錯誤的是()

2、A、 int *p=new int(10);B、 int *p=new int10C、 int *p=new int;D、 int *p=new int40(0);6、假設(shè)已經(jīng)有定義:const char *const name= ” chen” ;,下面的語句中正確的是:()A、name3= ' a' ;B、name=" lin"C、name=new char5;D、cout<<name3;7 、假設(shè)已經(jīng)定義:char *const name=” chen” ;, 下面的語句中正確的是:()A、 name3= q ;B、name="

3、lin"C、name=new char5;D、name=new char( q );8 、假設(shè)已經(jīng)定義:const char *name=” chen” ;, 下面的語句中錯誤的是:()A、 name3= q ;B、name=" lin"C、name=new char5;D、name=new char( q );9、下面的類型聲明中正確的是:()A、 int &a4;B、 int &*p;C、 int &&qD、 int i,*p=&i;10 、假設(shè)定義了函數(shù)模板()template <class T>T max

4、(T x,T y) return(x>y)x:y;并定義了 int i;char c;錯誤的調(diào)用語句是:()A、 max(i,i)B、 max(c,c)C、 max(int)c,i);D、 max(i,c)11、模板的使用是為了()A、提高代碼的可重用性B、提高代碼的運行效率C、加強類的封裝性D、實現(xiàn)多態(tài)性12、設(shè)有二個語句:int x 'a' ;cin>>x;則編譯器認(rèn)為()A、說明語句int x 'a'錯B、二個語句都錯C、語句cin>>x錯D、二個語句正確,沒有語法錯13、設(shè)有語句:void f(int a10,int &am

5、p;x);int y10,*py=y,n; 則對函數(shù)f的正確調(diào)用語句是()A、f(py10,n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C+中實現(xiàn)封裝是借助于()A、枚舉 B、類C、數(shù)組D、函數(shù)15、對于下面幾個函數(shù):(1) void f(int x,float y) (2) int f(int a,float b) int f(int i,int j) (4) float k(int x) 是重載函數(shù)。A、4個全部 B 1和2C、2和3D、3和416、使用("",ios:app);語句打開文件后,則()A、使輸出追加到文件尾部

6、B、打開一個文件進行讀操作C、打開一個文件進行讀和寫操作D、文件以二進制方式打開,默認(rèn)時為文本文件二、填空題1、面向?qū)ο蟮某绦蛟O(shè)計有四大特征,它們是抽象、封裝、 、。2、結(jié)構(gòu)體類型中的數(shù)據(jù)和成員函數(shù)默認(rèn)類型為 。3、C+要求為每個函數(shù)建立原型,以說明函數(shù)的名稱、參數(shù)的 和,以及函數(shù)返回值。4、在函數(shù)說明前加關(guān)鍵字“ inline",則該函數(shù)被聲明為 函數(shù),其引入的目的是為了 消除函數(shù)調(diào)用時的開銷,以提高運行速度。5、引用變量與被引用變量占有 內(nèi)存單元。6、運算符能夠用于訪問當(dāng)前作用域內(nèi)與局部變量同名的全局變量。7、#include <>void s(int a,int &

7、amp;b)int t=a;a=b;b=t;void main(void) int x=500,y=1000; cout<<x<<,t,<<y<<,n,;s(x,y);cout<<x<<,t,<<y<<,n / ; 程序的第一行輸出為 ,第二行輸出為 。8、#include <>void main(void) for(int a=1,b=1;a<=5;a+)if(b>=8) break;if(b%2=1)b+=7;continue;b-=3; cout<<&quo

8、t; a=" <<a<<,n,<<" b=" <<b<<,n,;程序輸出結(jié)果是 a=, b=。9、#include <>int x=100;void main(void) int x=200;x+=:x; int x=500;:x+=x; cout<<x<< ' n ' ;cout<<:x<<' n ' ;程序的第一行輸出為 ,第二行輸出為 。 10、#include<>void f(float x=5

9、, int y=16, char z=' C');void main() float a=; int b=2; char c='D' f();f(a);f(a,b); f(a,b,c); void f(float x, int y, char z) cout<< “x=" <<x<< " y= ” <<y<< " z= ” <<z<<endl; 程序的第二行輸出為 ,第三行輸出為 。11、以下程序的輸出結(jié)果是 。#include <> c

10、har a="ABCDEFGHI ;char &f(int);int main()f(6)= X' cout<<a<<endl; return 0;char &f(int i) return ai;12、如果C+程序中使用了 : cout、strcpy ,則必須在程序首部包含文件 和。13、#include <>#include <iomanip> void main() int i=7890; cout<<setw(6)<<i<<endl; cout<<i<

11、<endl; 程序的第一行輸出為 ,第二行輸出為 。 14、#include <> void main() int i=100;(ios:hex); cout<<i<< " t" ;cout<<i<<" t" ;(ios:dec);cout<<i<< " n ” ;以上程序運行的結(jié)果是 第三章類和對象一、選擇題1、()不是構(gòu)造函數(shù)的特征。A、構(gòu)造函數(shù)的函數(shù)名與類名相同;B、構(gòu)造函數(shù)可以重載;C、構(gòu)造函數(shù)可以設(shè)置缺省參數(shù);D、構(gòu)造函數(shù)必須指定類型說明。2、下

12、列關(guān)于構(gòu)造函數(shù)的描述中,()是正確的。A、構(gòu)造函數(shù)可以設(shè)置缺省參數(shù);B、構(gòu)造函數(shù)可以被繼承;C、構(gòu)造函數(shù)可以對靜態(tài)數(shù)據(jù)成員進行初始化;D、構(gòu)造函數(shù)可以說明為虛函數(shù);3、()是析構(gòu)函數(shù)的特征。A、析構(gòu)函數(shù)可以有一個或多個參數(shù);B、析構(gòu)函數(shù)名與類名不同;C、析構(gòu)函數(shù)的定義只能在類體內(nèi);D、一個類中只能定義一個析構(gòu)函數(shù);4 、定義析構(gòu)函數(shù)時,應(yīng)該注意() 。A、其函數(shù)名與類名完全相同;B、函數(shù)返回類型是 void類型;C、無形參,也不可重載;D、函數(shù)體中必須有 delete語句;5 、下列靜態(tài)數(shù)據(jù)成員的特性中,( )是錯誤的。A、說明靜態(tài)數(shù)據(jù)成員時前邊要加修飾符static;B、靜態(tài)數(shù)據(jù)成員要在類體

13、外進行初始化;C、靜態(tài)數(shù)據(jù)成員不是所有對象所共用的;D、引用靜態(tài)數(shù)據(jù)成員時,要在其名稱前加類名和作用域運算符;6 、友元的作用是() 。A、提高程序的運用效率;B、加強類的封裝性;C、實現(xiàn)數(shù)據(jù)的隱藏性;D、增加成員函數(shù)的種類;7 、關(guān)于成員函數(shù)特征的下列描述中,( )是錯誤的。A、成員函數(shù)一定是內(nèi)聯(lián)函數(shù);B、成員函數(shù)可以重載;C、成員函數(shù)可以設(shè)置缺省參數(shù)值;D、成員函數(shù)可以是靜態(tài)的;8 、已知: print() 函數(shù)是一個類的常成員函數(shù),它無返回值,下列表示中, ( )是正確的;A、 void print() const ;B、 const void print() ;C、 void cons

14、t print() ;D、 void print(const) ;9 、在()情況下適宜采用 inline 定義內(nèi)聯(lián)函數(shù)。A、函數(shù)體含有循環(huán)語句;B、函數(shù)體含有遞歸語句;C、函數(shù)代碼小,頻繁調(diào)用;D、函數(shù)代碼多,不常調(diào)用;10 、假定 AB 為一個類,則執(zhí)行“ AB a(4) , b3 , * p2 ; ”語句時,自動調(diào)用該類構(gòu)造函數(shù)的次數(shù)為 ( )。A、 3 B、4 C、 6 D、911、通??截惓跏蓟瘶?gòu)造函數(shù)的參數(shù)是( )。A、某個對象名B、某個對象的成員名C、某個對象的引用名D、某個對象的指針名12 、有關(guān)類的說法不正確的是( )。A、類是一種用戶自定義的數(shù)據(jù)類型B、只有類中的成員函數(shù)才

15、能存取類中的私有數(shù)據(jù)C、在類中,如果不作特別說明,所有的數(shù)據(jù)均為私有類型D、在類中,如果不作特別說明,所有的成員函數(shù)均為公有類型13、在聲明類時,下面說法正確的的是( ) 。A、可以在類的聲明中給數(shù)據(jù)成員賦初值B、數(shù)據(jù)成員的類型可以是registerC、 public, private, protected 這三種屬性的成員可以按任意順序出現(xiàn)D、沒有用public, private, protected 定義的成員是公有成員14、已知 :p 是一個指向類A 數(shù)據(jù)成員 m 的指針 ,A1 是類 A 的一個對象。如果要給m 賦值為5, ( )是正確的。A、 =5B、 A1->p=5C、 A1

16、.*p=5D、 *=515、已知:類 A 中一個成員函數(shù)說明如下 :void Set(A&a); 其中 ,A&a 的含義是 ( ) 。A、指向類A的指針為aB、將a的地址值賦給變量SetC、a是類A的對象引用,用來作函數(shù)Set()的形參D、變量A與a按位相與作為函數(shù)Set()的參數(shù)16、下列說明中const char *ptr; ptr 應(yīng)該是 ( ) 。A、指向字符型常量的指針B、指向字符的常量指針C、指向字符變量的指針D、指向字符串的常量指針17、采用 函 數(shù) 重 載 的 目 的 在 于 :A、實現(xiàn)共享日 減少空間C、提高速度D、使用方便,提高可讀性18 、有關(guān)類和對象的說

17、法下列不正確的是( )。A、對象是類的一個實例B、任何一個對象只能屬于一個具體的類C、一個類只能有一個對象D、類與對象的關(guān)系和數(shù)據(jù)類型和變量的關(guān)系相似19 、有以下類的說明,請指出錯誤的地方() 。Class CSampleint a=;ACSample();Bpublic:CSample(int val);CCSample();D;20 、在類的定義形式中,數(shù)據(jù)成員、成員函數(shù)和 ( )組成了類定義體。A、成員的訪問控制信息B、公有消息C、私有消息D、保護消息二、填空題1 通常的拷貝初始化構(gòu)造函數(shù)的參數(shù)是2 .在C+用函數(shù)參數(shù)的傳遞方式有三種,分別是: 、和。3 任何類中允許有三種訪問權(quán)限的數(shù)

18、據(jù),這三種訪問權(quán)限分別是、 和 。4 類中數(shù)據(jù)成員和成員函數(shù)的默認(rèn)類型為 5 在類內(nèi)部定義的 和數(shù)據(jù)不能被不屬于該類的成員函數(shù)來存取, 定義為 的數(shù)據(jù),可以在類外部進行存取。6 是一種特殊的成員函數(shù),它主要用來為對象分配內(nèi)存空間,對類的數(shù)據(jù)成員進行初始化并執(zhí)行對象的其他內(nèi)部管理操作。7 一個類中有個析構(gòu)函數(shù)。8 成員函數(shù)中不能直接引用類中說明的非靜態(tài)成員。9 已知類Sample 中的一個成員函數(shù)說明如下:void Set( Sample &a ) ;其中,Sample &a 的含意是 10 靜態(tài)數(shù)據(jù)成員屬于類,可以使用 的方式訪問靜態(tài)的數(shù)據(jù)成員。11 編譯程序?qū)his 指針指

19、向 。12 以下程序的執(zhí)行結(jié)果是 。# include <>class Sample public:Sample () cout <<“ constructore ” << endl; ;void fn (int i) static Sample c;cout <<“ i= ” << i << endl;void main () fn (10) ;fn (20) ;13 . 以下程序的執(zhí)行結(jié)果是 。# include <>class sample private:int n;static int k;publi

20、c:sample(int i) n=i; k+; ;void disp();void sample: disp () cout<<"n=" <<n <<", k=" <<k <<endl; int sample: k=0;void main () sample a(10), b(20), c(30) ;() ;();();14 以下程序的執(zhí)行結(jié)果是# include <>class sample int x;public:void setx( int i ) x=i; int put

21、x( ) return x; ;void main ( ) sample *p;sample A 3;A0.setx(5);A1.setx(6);A2.setx(7);for (int j=0 ; j<3; j+ ) p= &A j ;cout<<p->putx( ) << " " ;cout<<endl;15 以下程序的執(zhí)行結(jié)果是#include<>class A public:A( ) cout<<"Constructing A n"A( ) cout<<&q

22、uot;Destructing A n"class B public:B( ) cout<<"Constructing B n"B( )cout<<"Destructing B n"main( ) A a;B b;return 0;第四章派生類與繼承一、選擇1、從一個基類派生出的各個類的對象之間。A、共享所有數(shù)據(jù)成員,每個對象還包含基類的所有屬性B、共享部分?jǐn)?shù)據(jù)成員,每個對象還包含基類的所有屬性C、不共享任何數(shù)據(jù)成員,但每個對象還包含基類的所有屬性D、共享部分?jǐn)?shù)據(jù)成員和成員函數(shù)2、 C+的繼承性允許派生類繼承基類的(2)

23、。A、部分特性,并允許增加新的特性或重定義基類的特性B、部分特性,但不允許增加新的特性或重定義基類的特性C、所有特性,并允許增加新的特性或重定義基類的特性D、所有特性,但不允許增加新的特性或重定義基類的特性3、對于公有繼承,基類的公有和保護成員在派生類中將 成員。A、全部變成公有B、全部變成保護C、全部變成私有D、仍然相應(yīng)保持為公有和保護4、建立包含有類對象成員的派生類對象時,自動調(diào)用構(gòu)造函數(shù)的執(zhí)行順序依次為的構(gòu)造函數(shù)。A、自己所屬類、對象成員所屬類、基類B、對象成員所屬類、基類、自己所屬類C、基類、對象成員所屬類、自己所屬類D、基類、自己所屬類、對象成員所屬類5、派生類的對象對其基類中(5)

24、可直接訪問。A、公有繼承的公有成員B、公有繼承的私有成員C、公有繼承的保護成員D、私有繼承的以有成員6、設(shè)類B是基類A的派生類,并有語句:A aa, * pa=&aa; B bb, * pb=&bb;則正確的語句是 (6)。A、pb=pa;B、bb=aa;C、aa=bb;D、*pb=*pa;7、在公有派生情況下,有關(guān)派生類對象和基類對象的關(guān)系,不正確的敘述是_.A、派生類的對象可以賦給基類的對象B、派生類的對象可以初始化基類的引用C、派生類的對象可以直接訪問基類中的成員D、派生類的對象的地址可以賦給指向基類的指針8、若類X和類Y的定義如下:class X int a,b;pub

25、lic:void fx ();;class Y: public X int c; public: void fy ();;void Y:fy ( ) c=a*b; 則上述代碼中,(8)是非法的語句。A、void 僅();B> k=a*b;C、void fy();D、int c;9、如果一個派生類的基類不止一個,則這種繼承稱為(9)。A、單繼承B、虛繼承C、多態(tài)繼承D、多重繼承10 .假定要對類 AB定義加號操作符重載成員函數(shù),實現(xiàn)兩個AB類對象的加法,并返回相加結(jié)果,則該成員函數(shù)的聲明語句為:(10)。A、AB operator+(AB & a , AB & b) B、

26、AB operator+(AB & a)C、operator+(AB a) D、 AB & operator+()11、下面敘述不正確的是(11)。A、派生類可以使用private派生B、基類的public成員在派生類中仍然是publicC、對基類成員的訪問必須是無二義性的D、賦值兼容原則也適合多重繼承的組合12、下面敘述不正確的是(12)。A、基類的protected成員在派生類中仍然是protectedB、基類的protected成員在public派生類中仍然是 protectedC、基類的protected成員在private派生類中仍然是 privateD、對基類成員的

27、訪問必須是無二義性的13、下面敘述不正確的是(13)。A、成員的訪問能力在private派生類中和public派生類中仍是不同的B、基類的private成員在public派生類中不可訪問C、賦值兼容規(guī)則不適合于多重繼承的組合D、public基類成員在 protected派生中是 protected14、下面敘述正確的是(14)。A、基類的對象可以賦給派生類B、只要是基類的對象,都可以賦給由它派生的任一個派生類對象C、只有該基類直接派生出來的類的對象才可以賦給該基類的對象D、公有派生類的對象可以賦給基類的對象15以下程序的輸出結(jié)果為是05。#include<>class A publ

28、ic:int n; ;class B:virtual public A;class C:virtual public A;class D:public B,public C int getn()return B:n; ;void main() D d;二n=10;二n=20;cout<<:n<<","<<:n<<endl;A、10, 20B、20, 20 C 10, 10D、輸出有二義性,不確定二、填空題1、在C+中派生類時,可以有 、 和 三種不同的方式。2、公有派生類不能訪問基類的 成員,但是派生類可以訪問基類的 成員和

29、(6)成員。3、構(gòu)造函數(shù)不能被繼承,因此,派生類的構(gòu)造函數(shù)必須通過調(diào)用(7)構(gòu)造函數(shù)進行初始化基類的對象。4、保護派生具有雙重作用:對(8),具有公有性,對其他外部,具有(9)。5、在多重派生中,要使公共基類在派生類中只有一個拷貝,必須將該基類說明為(10)。第五章多態(tài)性一、單選題1、下列運算符中,A、2、下列運算符中,A、 >運算符在B、+運算符在B、口C+時不能重載。C、一C+時不能重載。C、:3、在C+用,通常重載運算符的成員函數(shù)稱為A、運算符函數(shù)C、函數(shù)重載運算符4、下列函數(shù)中,不能重載。A、成員函數(shù)B、非成員函數(shù)OB、重載函數(shù)D、以上都不對C、析構(gòu)函數(shù)D、<=D、<

30、<D、構(gòu)造函數(shù)5、系統(tǒng)在調(diào)用重載函數(shù)時,往往根據(jù)一些條件確定哪個重載函數(shù)被調(diào)用,在下列選項中, 不能作為依據(jù)的是。A、參數(shù)的個數(shù)B、參數(shù)的類型C、參數(shù)的順序D、函數(shù)的類型6、下列對重載函數(shù)的描述中,是錯誤的。A、重載函數(shù)中不允許使用默認(rèn)參數(shù)B、重載函數(shù)中編譯是根據(jù)參數(shù)表進行選擇的C、一般情況下,不要使用重載函數(shù)來描述毫無相干的函數(shù)D、構(gòu)造函數(shù)重載將會給初始化帶來多種方式 7、下列關(guān)于運算符重載的描述中, 是正確的。A、運算符重載可以改變運算符的個數(shù)B、運算符重載可以改變優(yōu)先級C、運算符重載可以改變結(jié)合性D、運算符重載不可以改變語法結(jié)構(gòu)8、要實現(xiàn)動態(tài)聯(lián)編,派生類中的虛函數(shù) 。A、參數(shù)個數(shù)必

31、須與函數(shù)的原型相同,參數(shù)類型可以與函數(shù)的原型不同B、參數(shù)類型必須與函數(shù)的原型相同,返回類型可以與函數(shù)的原型不同C、參數(shù)個數(shù)、類型和順序必須與函數(shù)的原型相同,返回類型必須與函數(shù)的原型相同D、以上都對9、關(guān)于虛函數(shù)的描述中, 是正確的。A、虛函數(shù)是一個static類型的成員函數(shù)B、虛函數(shù)是一個非成員函數(shù)C、基類中說明了虛函數(shù)后,派生類中對其對應(yīng)的函數(shù)可不必說明為虛函數(shù)D、派生類的虛函數(shù)與基類的虛函數(shù)具有不同的參數(shù)個數(shù)和類型10、是一個在基類中說明的虛函數(shù),它在該基類中沒有定義,但要求任何派生類都必須定義自己的版本。A、虛析構(gòu)函數(shù)B、虛構(gòu)造函數(shù)C、純虛函數(shù)D、靜態(tài)成員函數(shù)11、對于以下類定義,下面正

32、確的敘述是 () class A public: virtual void func1(兒 void func2() ;class B:public A public:void func1( )cout<< " class B func 1" <<end1;virtual void func2( ) cout<< " class B func 2" <<end1; ;A、A:func2()和 B:func1()都是虛函數(shù)B、A:func2()和 B:func1()都不是虛函數(shù)C、B:func1()是虛函數(shù),而 A:func2()不是虛函數(shù)D、B:func1()不是虛函數(shù),而 A:func2()是虛函數(shù)12、假定要對類 AB定義加號操作符重載成員函數(shù),實現(xiàn)兩個AB類對象的加法,并返回相加結(jié)果,則該成員函數(shù)的聲明語句為:A、AB operator+(AB & a , AB & b) B、AB operator+(AB & a) C、operator+(AB a) D、AB & operator+()13、下面是對虛函數(shù)的的正確描述 _

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論