c++練習(xí)題(帶答案).doc_第1頁
c++練習(xí)題(帶答案).doc_第2頁
c++練習(xí)題(帶答案).doc_第3頁
c++練習(xí)題(帶答案).doc_第4頁
c++練習(xí)題(帶答案).doc_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一、選擇題1. C+語言屬于( C )。A) 自然語言 B) 機(jī)器語言 C)面向?qū)ο笳Z言 D) 匯編語言2. 下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是(C) 。A)繼承性 B)多態(tài)性 C)相似性 D)封裝性3. 可用作C+語言用戶標(biāo)識符的一組標(biāo)識符是( B )。A) void define +WORD B) a3_b3 _123 YNC) for -abc CaseD) 2a DO sizeof4. 假定一個二維數(shù)組的定義語句為“int a34=3,4,2,8,6;”,則元素a21的值為(A)。A) 0 B) 4 C) 8 D) 65. 下列情況中,哪一種情況不會調(diào)用拷貝構(gòu)造函數(shù) ( B )A)用派生類的對象去初始化基類對象時B)將類的一個對象賦值給該類的另一個對象時C)函數(shù)的形參是類的對象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時D)函數(shù)的返回值是類的對象,函數(shù)執(zhí)行返回調(diào)用者時6. 以下哪一關(guān)鍵字可用于重載函數(shù)的區(qū)分( C )A)externB)staticC)constD)virtual7. 下列有關(guān)數(shù)組的敘述中,正確的是( B )A)C+中數(shù)組的存儲方式為列優(yōu)先存儲B)數(shù)組名可以作為實(shí)參賦值給指針類型的形參C)數(shù)組下標(biāo)索引從1開始,至數(shù)組長度n結(jié)束D)數(shù)組指針的語法形式為:類型名 *數(shù)組名下標(biāo)表達(dá)式;8. 下列有關(guān)繼承和派生的敘述中,正確的是( C )A)派生類不能訪問通過私有繼承的基類的保護(hù)成員B)多繼承的虛基類不能夠?qū)嵗疌)如果基類沒有默認(rèn)構(gòu)造函數(shù),派生類就應(yīng)當(dāng)聲明帶形參的構(gòu)造函數(shù)D)基類的析構(gòu)函數(shù)和虛函數(shù)都不能夠被繼承,需要在派生類中重新實(shí)現(xiàn)9. 實(shí)現(xiàn)運(yùn)行時多態(tài)的機(jī)制是( A )A)虛函數(shù)B)重載函數(shù)C)靜態(tài)函數(shù)D)模版函數(shù)10. 若有下面的函數(shù)調(diào)用:fun(a+b, 3, max(n-1, b);其中實(shí)參的個數(shù)是( A )A)3B)4C)5D)611. 下列關(guān)于this指針的說法正確的是( B )A)this指針存在于每個函數(shù)之中B)在類的非靜態(tài)函數(shù)中this指針指向調(diào)用該函數(shù)的對象C)this指針是指向虛函數(shù)表的指針D)this指針是指向類的函數(shù)成員的指針12. 在下列關(guān)于C+函數(shù)的敘述中,正確的是( C )A)每個函數(shù)至少要有一個參數(shù)B)每個函數(shù)都必須返回一個值C)函數(shù)在被調(diào)用之前必須先聲明D)函數(shù)不能自己調(diào)用自己13. 下列運(yùn)算符中,不能重載的是 ( C )A)&B)!=C).D)-14. 下面程序的輸出結(jié)果是( B )#include using namespace std;int i = 0;int fun(int n) static int a = 2;a+;return a+n;void main()int k = 5;int i = 2;k += fun(i);k += fun(i);cout k;A)13B)14C)15D)1615. 下面的程序段的運(yùn)行結(jié)果為( D )char str = job, *p = str;cout *(p+2) endl;A)98 B)無輸出結(jié)果 C)字符b的地址 D)字符b16. 下面程序的輸出結(jié)果是( C )#include using namespace std;class A public: A (int i) x = i; void dispa () cout x “,”; private : int x ;class B : public A public: B(int i) : A(i+10) x = i; void dispb() dispa(); cout x endl; private : int x ;void main()B b(2);b.dispb();A)10,2B)12,10C)12,2D)2,217. 下面程序的輸出結(jié)果是( C )#include using namespace std;class Base public: Base(int i) cout i; Base () ;class Base1: virtual public Base public: Base1(int i, int j=0) : Base(j) cout i; Base1() ;class Base2: virtual public Base public: Base2(int i, int j=0) : Base(j) cout i; Base2() ;class Derived : public Base2, public Base1 public: Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c), Base2(d), Base(a) cout b; private: Base2 mem2; Base1 mem1;void main() Derived objD (1, 2, 3, 4); A)134122B)123412C)14302012D)14321218. 下面程序的輸出結(jié)果是( C )#include using namespace std;class Base public: virtual void f() cout “f0+”; void g() cout “g0+”; ;class Derived : public Base public: void f() cout “f+”; void g() cout f(); p-g(); A)f+g+B)f0+g+C)f+g0+D)f0+g0+19. 下面程序的輸出結(jié)果是( C )#include using namespace std;class Samplefriend long fun (Sample s) if (s.x 2) return 1; return s.x * fun(Sample(s.x-1); public: Sample (long a) x = a; private: long x;void main() int sum = 0; for (int i=0; i4; i+) sum += fun(Sample(i); cout sum; A)12B)16C)10D)3420. 以下程序的輸出結(jié)果是:(D )#include using namespace std;int fun(char *s) char *p=s;while (*p!=0) p+;return (p-s);void main()coutfun(abc)endl;A0 B. 1 C. 2 D. 321. 有如下程序段:int i=1;while(1)i+;if (i=10) break;if(i%2=0) coutGetValue() D) x.GetValue( )25. 假定AA為一個類,int a()為該類的一個成員函數(shù),若該成員函數(shù)在類定義體外定義,則函數(shù)頭為( A )。A) int AA:a( ) B) int AA:a() C) AA:a() D) AA:int a()26. 有如下程序:#include using namespace std;class Testpublic:Test() Test()cout#;int main()Test temp2, *pTemp2; return 0;執(zhí)行這個程序輸出星號(#)的個數(shù)為(B )。A)1 B)2 C)3 D)427. 有如下程序:#include using namespace std;class MyClass public: MyClass(int i=0)cout1;MyClass(const MyClass&x)cout2;MyClass& operator=(const MyClass&x)cout3; return *this; MyClass()cout4;int main()MyClass obj1(1),obj2(2),obj3(obj1);obj1=obj2;return 0;運(yùn)行時的輸出結(jié)果是( A)。A)1123444 B)11114444 C)121444 D)1131444428. 有如下程序: #include using namespace std;class point public: static int number; public:point() number+;point() number-; int point:number=0; void main() point *ptr; point A,B;point *ptr_point=new point3; ptr=ptr_point; point C; delete ptr;cout1)#include using namespace std;int f(int);int main()int n,s; coutn; s= f(n) ; coutThe result is sendl; return 0; int f(int n) /遞歸法求立方和函數(shù) if ( n=1 ) return 1; else return ( f(n-1)+n*n*n );3. 請將下列程序補(bǔ)充完整,使得輸出結(jié)果為“Destructor Derived Destructor Base”。#include using namespace std;class Base public: virtual Base () cout “Destructor Base” endl; ;class Derived : public Base public: Derived() cout “Destructor Derived” endl; ;void main () Base *pBase = new Derived; delete pBase ; 三、閱讀程序,寫出運(yùn)行結(jié)果1.#include#includeusing namespace std;class CD char name20; int number;public: void Init(char* aa, int bb) strcpy(name,aa); number=bb; char* Getname () return name; int Getnumber () return number; void Output() cout name number endl; CD dx;void main()CD dy;dx.Init(歌唱祖國,30);dy.Init(義勇軍進(jìn)行曲,3*dx.Getnumber ()+5);dx.Output();dy.Output();歌唱祖國 30義勇軍進(jìn)行曲 952#include using namespace std; int f(int a) return +a; int g(int& a) return +a; void main() int m=0,n=0; m+=f(g(m); n+=f(f(n); coutm=mendl; coutn=nendl; 3. #include using namespace std;class Demopublic: Demo()coutdefault constructorn; Demo(const Demo &x)coutcopy constructorn;Demo userCode(Demo b)Demo c(b);return c;void main() Demo a,d; coutcalling userCode()n; d = userCode(a);執(zhí)行上面的程序的過程中,構(gòu)造函數(shù)Demo()和Demo(const Demo &x)被調(diào)用的次數(shù)分別是多少次?五、編寫程序1、編寫函數(shù)計(jì)算y=1!+2!+3!.n! ,n作為參數(shù)傳遞,在主函數(shù)調(diào)用該函數(shù)并輸出結(jié)果。2、編寫函數(shù)找出二維數(shù)組(5*4)中元素的最大值與最小值,并返回其最大值與最小值。測試結(jié)果。3、編寫一個三角形類,有計(jì)算面積,顯示面積的功能等,并測試。要求有參數(shù)的構(gòu)造函數(shù)及復(fù)制構(gòu)造函數(shù)下面關(guān)于類概念的描述中,( D )是錯誤的。A)類是抽象數(shù)據(jù)類型的實(shí)現(xiàn) B)類是具有共同行為的若干對象的統(tǒng)一描述體C)類是創(chuàng)建對象的樣板 D)類就是C語言中的結(jié)構(gòu)體類型D面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括 ( D ) 。A)封裝性 B)多態(tài)性 C)繼承性 D)功能分解,逐步求精D01|11|1|1在C+中,函數(shù)原型不能標(biāo)識 ( ) 。A)函數(shù)的返回類型 B)函數(shù)參數(shù)的個數(shù) C)函數(shù)參數(shù)類型 D)函數(shù)的功能D01|11|1|1 有關(guān)析構(gòu)函數(shù)的說法不正確的是 ( )。A) 析構(gòu)函數(shù)有且僅有一個 B) 析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參C) 析構(gòu)函數(shù)的功能是用來釋放一個對象 D) 析構(gòu)函數(shù)無任何函數(shù)類型B01|11|2|1已知X類.則當(dāng)程序執(zhí)行到語句,X array3;時,調(diào)用了(D )次構(gòu)造函數(shù)。A)0 B)1 C)2 D)3D01|13|1|1類定義的內(nèi)容允許被其他對象無限制地存取是( C )。A)private 部分 B)protected 部分 C)public 部分 D)以上都不對C01|01|2|1關(guān)于new運(yùn)算符的下列描述中,( D )是錯誤的.。A) 它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組B) 使用它創(chuàng)建對象或?qū)ο髷?shù)組,可以使用運(yùn)算符DELETE刪除C) 使用它創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù)D) 使用它調(diào)用對象數(shù)組時不許指定初始值D01|01|2|1對于下面程序段,表達(dá)式正確的是( B )。class Base public:int b;class Base1:public base ;class Base2:public base ;class Derived:public base1,public base2public:int fun ( );Derived d;A) d. Base1:b B)d. Base :b C) d.b D) d. Base : fun( )B01|12|1|1可以用p.a的形式訪問派生類對象p 的基類成員a其中a是( D )。A)私有繼承的公有成員B)公有繼承的私有成員C)公有繼承的保護(hù)成員D)公有繼承的公有成員D下列關(guān)于C+類的描述中錯誤的是 ( C ) 。A)類與類之間可以通過一些手段進(jìn)行通信和聯(lián)絡(luò) B)類用于描述事物的屬性和對事物的操作C)類與類之間必須是平等的關(guān)系,D)類與類之間可以通過封裝而具有明確的獨(dú)立性C01|12|1|1下列描述中哪個是正確的( B )。 A)私有派生的子類無法訪問父類的成員 B)類A的私有派生子類的派生類C無法初始化其祖先類A對象的屬性,因?yàn)轭怉的成員對類C是不可訪問的 C)私有派生類不能作為基類派生子類 D)私有派生類的所有子孫類將無法繼續(xù)繼承該類的成員B01|11|1|1下列關(guān)于構(gòu)造函數(shù)說法不正確的是( )。 A)構(gòu)造函數(shù)必須與類同名 B)構(gòu)造函數(shù)可以省略不寫 C)構(gòu)造函數(shù)必須有返回值 D)在構(gòu)造函數(shù)中可以對類中的成員進(jìn)行初始化C01|13|1|1如果友元函數(shù)重載一個運(yùn)算符時,其參數(shù)表中沒有任何參數(shù)則說明該運(yùn)算符是( D )。 A)一元運(yùn)算符 B)二元運(yùn)算符C)選項(xiàng)A)和選項(xiàng)B)都可能 D)重載錯誤D01|14|1|1在重載一個運(yùn)算符時,如果其參數(shù)表中有一個參數(shù),則說明該運(yùn)算符是( D )。 A)一元成員運(yùn)算符 B)二元成員運(yùn)算符 C)一元友元運(yùn)算符 D)選項(xiàng)B)和選項(xiàng)C)都可能D01|12|1|1一個類的友元函數(shù)能夠訪問該類的( D )。 A)私有成員 B)保護(hù)成員 C)公有成員 D)所有成員D下列關(guān)于類定義的說法中,正確的是( A )。A)類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明B)類成員的缺省訪問權(quán)限是保護(hù)的C) 數(shù)據(jù)成員必須被聲明為私有的D)成員函數(shù)只能在類體外進(jìn)行定義A01|14|1|1通過運(yùn)算符重載,可以改變運(yùn)算符原有的( A )。A)操作數(shù)類型B)操作數(shù)個數(shù)C)優(yōu)先級D)結(jié)合性A01|14|1|1在C+語言中,數(shù)據(jù)封裝要解決的問題是( D )。A) 數(shù)據(jù)的規(guī)范化 B)便于數(shù)據(jù)轉(zhuǎn)換 C)避免數(shù)據(jù)丟失 D)防止不同模塊之間數(shù)據(jù)的非法訪問D01|13|1|1對類成員訪問權(quán)限的控制,是通過設(shè)置成員的訪問控制屬性實(shí)現(xiàn)的,下列不是訪問控制屬性的是( D )。A)公有類型 B)私有類型 C)保護(hù)類型 D)友元類型D01|11|1|1在類的定義中,用于為對象分配內(nèi)存空間,對類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行其他內(nèi)部管理操作的函數(shù)是( C )。A)友元函數(shù) B)虛函數(shù) C)構(gòu)造函數(shù) D) 析構(gòu)函數(shù)C01|11|1|1類的析構(gòu)函數(shù)的作用是( D )。A)一般成員函數(shù)的初始化 B)類的初始化C)對象的初始化 D)刪除類創(chuàng)建的對象D01|13|1|1下列說法正確的是( B )。A)內(nèi)聯(lián)函數(shù)在運(yùn)行時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方B) 內(nèi)聯(lián)函數(shù)在編譯時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方C)類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義D)類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義B01|12|1|1下列對派生類的描述中,錯誤的是( D )。 A)一個派生類可以作為另一個派生類的基類B) 派生類至少有一個基類C)派生類的成員除了自己的成員外,還包含了它的基類的成員D)派生類中繼承的基類成員的訪問權(quán)限到派生類保持不變D01|12|1|1運(yùn)算符的重載是對已有的運(yùn)算符賦予多重含義,因此( A )。A)可以對基本類型(如int 類型)的數(shù)據(jù),重新定義“+”運(yùn)算符的含義B) 可以改變一個已有運(yùn)算符的優(yōu)先級和操作數(shù)個數(shù)C)只能重載C+中已經(jīng)有的運(yùn)算符,不能定義新運(yùn)算符D)C+中已經(jīng)有的所有運(yùn)算符都可以重載A01|13|1|1如果類A被說明成類B的友元,則( D )。A)類A 的成員即是類B的成員 B) 類B的成員即是類A的成員 C)類A的成員函數(shù)不得訪問類B的成員 D)類B不一定是類A的友元D01|13|1|1不能作為重載函數(shù)的調(diào)用的依據(jù)是( D )。A)參數(shù)的個數(shù) B) 參數(shù)的類型C)函數(shù)的類型 D)函數(shù)的名稱D01|13|1|1在C+語言的面向?qū)ο笤O(shè)計(jì)框架中, 類 是程序的基本組成單元。類01|13|1|1繼承的方式的公有繼承、私有繼承和保護(hù)繼承三種。保護(hù)繼承01|13|1|1在用class定義一個類時,數(shù)據(jù)成員函數(shù)的默認(rèn)訪問權(quán)限是私有的 )。私有的01|13|1|1類的構(gòu)造函數(shù)是在定義對象時調(diào)用的。定義對象01|13|1|1類模板的使用實(shí)際上是將類模板實(shí)例化成一個具體的( 對象 )。對象01|13|1|1如果類B繼承了類A,則稱類A為類B的基類,類 B稱為類A 的( 派生類 )。派生類01|13|1|1如果要把返回值為void的函數(shù)A聲明為B類的友元數(shù),則應(yīng)在類B的定義中加入語句是( 12 )。02|10|1|1有如下定義: class MAint value;public:MA(int n=0)value=n;MA *ta,tb;其中MA類的對象名標(biāo)識符是 ( tb ) 。tb02|12|1|1用來派生新類的稱為 ( 基類 ),而派生出的新類稱為它的子類或派生類。 基類02|12|1|1面向?qū)ο蟮某绦蛟O(shè)計(jì)的主要特征是繼承性、封裝性和多態(tài)性。封裝性02|10|1|1向?qū)ο蟮哪P椭?,最基本的概念是對象?( 類) 。類03|14|1|1通過使用new和delete兩個運(yùn)算符進(jìn)行的分配為靜態(tài)存儲分配。( )F03|14|1|1重載的運(yùn)算符保持其原有的操作符個數(shù)、優(yōu)先級和結(jié)合性不變。( )T03|10|1|1在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為多態(tài)性 。( )F03|12|1|1可以用p.a的形式訪問派生類對象P的基類成員a,其中a是公有繼承的公有成員。( )TC+語言相對于C語言的最根本的變化是引進(jìn)了類和對象的概念。( )T03|10|1|1類的析構(gòu)函數(shù)的作用是刪除類創(chuàng)建的對象。( )T02|13|1|2動態(tài)分配內(nèi)存空間操作符”new”和( )使用時必須成對出現(xiàn)。delete02|12|1|2用以說明類中保護(hù)成員的關(guān)鍵字是( )。protected02|11|1|2對于任意一個類,析構(gòu)函數(shù)的個數(shù)最多為( )個 。102|08|1|2若有以下定義語句: Struct dataint i ;char;double f ;b;則結(jié)構(gòu)體變量占用的內(nèi)存字節(jié)數(shù)是( )。3.14*r*r03|02|1|2分號是C+語句的必要組成部分。 ( )T03|12|2|2公有派生時,基類中所有成員在公有派生類中保持各個成員的訪問權(quán)限。( )T04|12|2|2下列程序中橫線處正確的語句應(yīng)該是 。includeusing namespace std;class Base public;void fun( )cout “Base : : fun” endl;class Derived : public Basepublic:void fun( )_/顯示調(diào)用基類的函數(shù)fun( )cout “Derived : : fun” endl;004|11|2|2寫出下列程序的運(yùn)行結(jié)果 。#include class A public: A()cout1; A()cout2; ;class B:public A public: B()cout3; B()cout4; ;void main() B b; 132404|09|2|2 下列程序的執(zhí)行結(jié)果為 。includevoid mian() int n=10; int* pn=&n; int* &rn=pn; (*pn)+; coutn=nendl; (*rn)+; cout”n=”nendl;n=11 n=1205|08|2|2定義描述復(fù)數(shù)的結(jié)構(gòu)體變量,并實(shí)現(xiàn)復(fù)數(shù)的輸入和輸出.設(shè)計(jì)3個函數(shù)分別完成復(fù)數(shù)的加法、減法運(yùn)算。編寫主函數(shù)驗(yàn)證復(fù)數(shù)的運(yùn)算是否正確。#include struct compl float real; float com;compl add(compl c1,compl c2) compl t ;t.real=c1.real+c2.real;=+;return t;compl sub(compl c1,compl c2)compl t;t.real=c1.real-c2.real; =;return t; compl input(void) compl c;;return c;void output(compl c) cout復(fù)數(shù)的實(shí)部: c.real復(fù)數(shù)的虛部:endl;void main()compl c1,c2,c3,c4,c5;c1=input();c2=input()

溫馨提示

  • 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

提交評論