C++練習(xí)題(附答案)_第1頁
C++練習(xí)題(附答案)_第2頁
C++練習(xí)題(附答案)_第3頁
C++練習(xí)題(附答案)_第4頁
C++練習(xí)題(附答案)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、5.911以下關(guān)于 C+ 函數(shù)的表達中,正確的選項是A 每個函數(shù)至少要具有一個參數(shù)B 每個函數(shù)都必須返回一個值C函數(shù)在被調(diào)用之前必須先聲明D 丨函數(shù)不能自己調(diào)用自己12 以下關(guān)于類和對象的表達中,錯誤的選項是A 一個類只能有一個對象B對象是類的具體實例C類是對某一類對象的抽象D類和對象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系13在 C+ 中,用于實現(xiàn)運行時多態(tài)性的是A 丨內(nèi)聯(lián)函數(shù) B重載函數(shù)C模板函數(shù) D虛函數(shù) 14以下關(guān)于運算符重載的表達中,正確的選項是A 通過運算符重載,可以定義新的運算符B有的運算符只能作為成員函數(shù)重載C假設(shè)重載運算符+,則相應(yīng)的運算符函數(shù)名是+D重載一個二元運算符時,必須聲明兩

2、個形參 15以下關(guān)于模板的表達中,錯誤的選項是A 丨模板聲明中的第一個符號總是關(guān)鍵字templateB在模板聲明中用 括起來的部分是模板的形參表C類模板不能有數(shù)據(jù)成員D在一定條件下函數(shù)模板的實參可以省略16對于語句 coutendlx ;中的各個組成部分,以下表達中錯誤的選項是 A cout 是一個輸出流對象B endl 的作用是輸出回車換行C x 是一個變量D 稱作提取運算符17以下字符串中,正確的C+標(biāo)識符是A foo-1 B 2bC new D _256 18已知枚舉類型定義語句為:enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10; 則以下表達中錯誤

3、的選項是A 丨枚舉常量 NAME 的值為 1 B 丨枚舉常量 NUMBER 的值為 1C枚舉常量 MINUS 的值為 6 D枚舉常量 PRINT 的值為 10 19 執(zhí)行語句序列int i=0;while(i25)i+=3;couti; 輸出結(jié)果是A 24 B 25C 27 D 2820要定義一個具有 5 個元素的一維數(shù)組 vect ,并使其各元素的初值依次是 0 和 0,則以下定義語句中錯誤的選項是A int vect=30,50,-88; B int vect=30,50,-88,0,0;30 , 50 ,-88,Cint vect5=30,50,-88;Dint vect5=30,50,

4、-88,0,0;21有如下程序:#include void fun(int& x,int y)int t=x;x=y;y=t;int main()int a2=23,42; fun(a1,a0);std:couta0,a1std:endl;return 0;執(zhí)行后的輸出結(jié)果是A42,42 B23,23C23,42 D42,23 22有如下類聲明: class Foo int bar; ;則 Foo 類的成員 bar 是A 公有數(shù)據(jù)成員 B 公有成員函數(shù)C私有數(shù)據(jù)成員D私有成員函數(shù)23 有如下類聲明:class MyBASEint k;public:void set(int n)k=n;

5、int get()constreturn k;class MyDERIVED:protected MyBASEprotected:int j;public:void set(int m,int n)MyBASE:set(m);j=n;int get()constreturn MyBASE:get()+j;則類 MyDERIVED 中保護的數(shù)據(jù)成員和成員函數(shù)的個數(shù)是A 4 B 3C 2 D 124已知在一個類體中包含如下函數(shù)原型: VOLUME operator-(VOLUME)const; 于這個函數(shù)的表達中,錯誤的是A 丨這是運算符-的重載運算符函數(shù)B這個函數(shù)所重載的運算符是一個一元運算符C

6、這是一個成員函數(shù),以下關(guān)D這個函數(shù)不改變類的任何數(shù)據(jù)成員的值 25有如下函數(shù)模板定義: template T func(T x,T y) return x*x+y*y; 在以下對 func 的調(diào)用中,錯誤的選項是A func(3,5); B func(3.0,5.5);C func(3,5.5); D func(3,5.5);27在以下函數(shù)原型中,可以作為類AA 構(gòu)造函數(shù)的是A void AA(int);B int AA();C AA(int)const;D AA(int); 28以下關(guān)于 this 指針的表達中,正確的選項是A 丨任何與類相關(guān)的函數(shù)都有this 指針B類的成員函數(shù)都有this

7、 指針C類的友元函數(shù)都有this 指針D類的非靜態(tài)成員函數(shù)才有this 指針29 有如下程序:#include using namespace std; class Testpublic:Test() n+=2; Test() n-=3; static int getNum() return n; private:static int n;int Test:n=1;int main()Test* p=new Test; delete p; coutn=Test:getNum()endl; return 0;執(zhí)行后的輸出結(jié)果是 A n=0 B n=l C n=2 D n=3 30有如下程序: #

8、include using namespace std; class A public:A()coutA; classBpublic:B()coutB; classC:public AB b; public:C()coutC; int main() C obj; return 0; 執(zhí)行后的輸出結(jié)果是A CBA B BAC CACB D ABC 31有如下類聲明: class XAint x;public:XA(int n)x=n; class XB:public XAint y;public:XB(int a,int b); 在構(gòu)造函數(shù) XB 的以下定義中,正確的選項是A) XB:XB(in

9、t a,int b):x(a),y(b)BXB:XB(int a,int b):XA(a),y(b)C XB:XB(int a,int b):x(a),XB(b)D XB:XB(int a,int b):XA(a),XB(b) 32 有如下程序: #include using namespace std;class BASE public:BASE()coutBASE;class DERIVED:public BASE public:DERIVED()coutDERIVED; int main()DERIVED x;return 0; 執(zhí)行后的輸出結(jié)果是A BASE B DERIVEDC BA

10、SEDERIVED D DERIVEDBASE 33在表達式 x+y*z 中, +是作為成員函數(shù)重載的運算符, 運算符。以下表達中正確的*是作為非成員函數(shù)重載的A operator+ 有兩個參數(shù),Boperator*有兩個參數(shù),Coperator* 有一個參數(shù), D operator+ 有一個參數(shù),34下面關(guān)于 C* *流的表達中,正確的選項是A cin 是一個輸入流對象B 可以用 ifstream 定義一個輸出流對象C執(zhí)行語句序列char *y=PQMN; couty; 將輸出字符串PQMN的地址D執(zhí)行語句序列char x80;ci n.getl in e(x,80);時,假設(shè)鍵入Happy

11、 new year則 x 中的字符串是 Happy 35有如下程序: #include using namespace std;class AAint n;public:AA(int k):n(k)int get()return n;int get()constreturn n*1;int main()AA a(5);const AA b(6);couta.get()b.get();return 0;執(zhí)行后的輸出結(jié)果是A 55 B 57C 75 D 776以下函數(shù)的功能是判斷字符串str 是否對稱,對稱則返回true,否則返回false。請在橫線處填上適當(dāng)內(nèi)容,實現(xiàn)該函數(shù)。bool fun(c

12、har *str)int i=0,j=0;while(strj) _ ;for(j-;ij & stri=strj;i*,j-);return i _ j; 7執(zhí)行語句序列 int x=l0,&r=x; coutx-rendl;輸出結(jié)果為 _。 8以下程序的輸出結(jié)果為Object id=0Object id=l請將程序補充完整。#include using namespace std;class Pointoperator* 有兩個參數(shù)operator* 有一個參數(shù)operator*有兩個參數(shù)operator*有一個參數(shù)public:Point(int xx=0,int yy=

13、0) X=xx;Y=yy;countP+;Point()countP-;int GetX()return X;int GetY()return Y;static void GetC()coutObject id = cou ntPe ndl;private:int X,Y;static int countP;_ /靜態(tài)數(shù)據(jù)成員的初始化int main()Point:GetC();Point A(4,5);A.GetC();return 0; 9非成員函數(shù)應(yīng)聲明為類的 _ 函數(shù)才能訪問這個類的 private 成員。 10派生類中的成員不能直接訪問基類中的 _ 成員。 11以下程序的輸出結(jié)果為2

14、,請將程序補充完整。#include using namespace std;class Basepublic:_void fun()cout1;class Derived:public Basepublic:void fun()coutfun();delete p;return 0; 12 請將以下類定義補充完整。class Basepublic: void fun()coutBase:funendl;class Derived:public Basepublic:void fun()_ /顯式調(diào)用基類的 fun 函數(shù) coutDerived:fun= 8 int Point:countP=

15、0 ; 9友元 10 私有或 private 11 virtual 12 Base:fun( );6.411以下關(guān)于 C+ 函數(shù)的說明中,正確的選項是A 丨內(nèi)聯(lián)函數(shù)就是定義在另一個函數(shù)體內(nèi)部的函數(shù)B 函數(shù)體的最后一條語句必須是 return 語句C標(biāo)準(zhǔn) C+要求在調(diào)用一個函數(shù)之前,必須先聲明其原型D編譯器會根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式13 以下關(guān)于虛函數(shù)的說明中,正確的選項是A 丨從虛基類繼承的函數(shù)都是虛函數(shù)B虛函數(shù)不得是靜態(tài)成員函數(shù)C只能通過指針或引用調(diào)用虛函數(shù)D抽象類中的成員函數(shù)都是虛函數(shù) 14運算符重載是對已有的運算符賦予多重含義,因此A 丨可以對基本類型如 in

16、t 類型的數(shù)據(jù),重新定義“ +”運算符的含義 B可以改變一個已有運算符的優(yōu)先級和操作數(shù)個數(shù)C只能重載 C+中已經(jīng)有的運算符,不能定義新運算符DC+中已經(jīng)有的所有運算符都可以重載15模板對類型的參數(shù)化提供了很好的支持,因此A 丨類模板的主要作用是生成抽象類B類模板實例化時,編譯器將根據(jù)給出的模板實參生成一個類C在類模板中的數(shù)據(jù)成員都具有同樣類型D類模板中的成員函數(shù)都沒有返回值18以下語句中,錯誤的選項是A const int buffer=256; B const int temp;C const double *point; D const double *rt=new double(5.5)

17、; 20 有如下程序:#include using namespace std;int main()int *p;*p = 9;cout The value at p: *p;return 0;編譯運行程序?qū)⒊霈F(xiàn)的情況是A)編譯時出現(xiàn)語法錯誤,不能生成可執(zhí)行文件B)運行時一定輸出:The value at p:9C運行時一定輸出:The value at p:*9D運行時有可能出錯21 有如下程序:#includeusing namespace std;int main()void function(double val);double val;function(val);coutval;re

18、turn 0;void function(double val)val = 3;編譯運行這個程序?qū)⒊霈F(xiàn)的情況是A 丨編譯出錯,無法運行B輸出:3C輸出:3.0 D輸出一個不確定的數(shù)22 有如下類定義:class AAint a;public:int getRef()const return &a; /int getValue()const return a; / void set(int n)const a=n; /friend void show(AA aa)const couta; / ; 其中的四個函數(shù)定義中正確的選項是A 丨B 丨CD 丨23 有如下程序: #include u

19、sing namespace std;class Basepublic:void fun() coutBase:funendl; ;class Derived : public Basepublic: void fun()coutDerived:funfun(); D fun();24 下面是重載為非成員函數(shù)的運算符函數(shù)原型,其中錯誤的選項是A Fraction operator + (Fraction, Fraction); B Fraction operator - (Fraction);CFraction& operator = (Fraction&, Fraction)

20、;D Fraction& operator += (Fraction&, Fraction);25有如下函數(shù)模板: template T cast(U u) return u; 其功能是將 U 類型數(shù)據(jù)轉(zhuǎn)換為 T 類型數(shù)據(jù)。已知 i 為 int 型變量,以下對模板函數(shù) cast 的調(diào)用中正確的選項是A cast(i); B cast(i);C cast(i); D cast(i); 26假設(shè)磁盤上已存在某個文本文件,其全路徑文件名為d:ncretest.txt ,以下語句中不能打開該文件的是A ifstream file(d:ncretest.txt);B ifstream f

21、ile(d:ncretest.txt);C ifstream file; file.open(d:ncretest.txt); D ifstream* pFile = new ifstream(d:ncretest.txt);27有如下類定義: class Foopublic:Foo(int v) : value(v) / Foo() / private:Foo() / int value = 0; / ;其中存在語法錯誤的行是A 丨B 丨CD 丨28 有如下類定義:class Pointint x_, y_;public:Point(): x_(0), y_(0) Point(int x,

22、int y =0): x_(x), y_(y) ;假設(shè)執(zhí)行語句Point a(2), b3, *c4;則 Point 類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是A 2 次 B 3 次C 4 次 D 5 次29 有如下類定義:class Testpublic:Test() a = 0; c = 0; / int f(int a) const this-a = a; / static int g () return a; / void h(int b) Test:b = b; ;/ private:int a;static int b;const int c;int Test:b = 0;在標(biāo)注號碼的行中,能被正

23、確編譯的是A 丨B 丨CD 丨30 有如下程序:#include using namespace std;class Apublic:A() cout A; A() cout A; ;class B : public AA* p;public:B() cout B; p = new A(); B() cout B; delete p; ;int main()B obj;return 0;執(zhí)行這個程序的輸出結(jié)果是A BAAABA B ABABAA C BAABAA D ABA ABA32 有如下程序:#include using namespace std;class Basepublic:vo

24、id fun1() cout Basen; virtual void fun2() cout Basen; ;class Derived : public Basepublic:void fun1() cout Derivedn; void fun2() cout Derivedn; ;void f(Base& b) b.fun1(); b.fun2(); int main()Derived obj;f(obj);return 0;執(zhí)行這個程序的輸出結(jié)果是A BBase BaseBase DerivedC DDerived DerivedBase Derived33有如下程序:#inc

25、lude using namespace std;class Complexdouble re, im;public:Complex(double r, double i) : re(r), im(i) double real() const return re; double image()const return im; Complex& operator += (Complex a)re += a.re;im += a.im;return *this;ostream& operator (ostream& s, const Complex& z)retur

26、n s(z.real(),z.image();int main()Complex x(1,-2), y(2,3);cout (x+=y) endl; return 0;執(zhí)行這個程序的輸出結(jié)果是A(1,-2) B (2,3)C(3,5) D (3,1) 35有如下類聲明: class SAMPLEint n;public:SAMPLE(int i=0):n(i)void setValue(int n0);以下關(guān)于 getValue 成員函數(shù)的實現(xiàn)中,正確的選項是A ) SAMPLE:setValue(int n0) n=n0;B void SAMPLE:setValue(int n0) n=n0

27、;C void setValue(int n0) n=n0;D (int n0) n=n0; 6有一種只在循環(huán)語句或 switch 語句中使用的流程控制語句,表示該語句的關(guān)鍵字是 7程序中有如下語句for(int i=0; i5; i+) cout*(p+i),;能夠依次輸出 int 型一維數(shù)組 DATA 的前 5 個元素。由此可知,變量 p 的定義及初始化 語句是 。8假設(shè)下面程序運行時輸出結(jié)果為1,A,10.12,B,3.5請將程序補充完整。#include using namespace std;int main()void test(int, char, double _ );test

28、(1, A, 10.1 );test(2, B);return 0;void test(int a, char b, double c)couta,b,cendl;9有如下類聲明: class MyClassint i;private: int j;protected: int k;public: int m, n; ;其中,私有成員的數(shù)量為 _。10有如下程序:#include using namespace std;class Conchar ID;public:Con(): ID(A) cout1; Con(char ID): ID(ID) cout2;Con(Con& c):

29、ID(c.getID() cout3; char getID()const return ID;void show(Con c) coutc.getID(); int main()Con c1;show(c1);Con c2(B);show(c2);return 0;執(zhí)行上面程序的輸出是 _。11有如下程序:#include using namespace std; class ONEpublic:virtual void f() cout 1; ;class TWO : public ONEpublic:TWO() cout 2; ;class THREE : public TWOpublic:virtual void f() TWO:f(); cout f(); return 0;執(zhí)行上面程序的輸出是 _ 。12有如下程序:#include using namespace std;class PARENT

溫馨提示

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

評論

0/150

提交評論