1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 計(jì)算機(jī)二級(jí)C++考試試卷及答案

        時(shí)間:2024-10-03 11:45:36 計(jì)算機(jī)等級(jí) 我要投稿

        2016年計(jì)算機(jī)二級(jí)C++考試試卷及答案

          選擇題(每小題1分,共40小題,共40分)

        2016年計(jì)算機(jī)二級(jí)C++考試試卷及答案

          1.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指(  )。

          A.數(shù)據(jù)所占的存儲(chǔ)空間

          B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式

          C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

          D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

          2.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與實(shí)體間的聯(lián)系可以表示成(  )。

          A.屬性

          B.關(guān)系

          C.鍵

          D.域

          3.對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為(  )。

          A.125

          B.n/Z

          C.n

          D.n+1

          4.樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)的數(shù)目是(  )。

          A.有且只有1個(gè)

          B.1或多于1

          C.0或1

          D.至少有2個(gè)

          5.設(shè)R是一個(gè)二元關(guān)系,S是一個(gè)三元關(guān)系,則下列運(yùn)算中正確的是(  )。

          A.R-S

          B.R×S

          C.R∩S

          D.R∪S

          6.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述錯(cuò)誤的是(  )。

          A.選用的結(jié)構(gòu)只允許有一個(gè)入口和一個(gè)出口

          B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)

          C.不允許使用GOTO語句

          D.語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

          7.對關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為(  )。

          A.并運(yùn)算

          B.交運(yùn)算

          C.差運(yùn)算

          D.積運(yùn)算

          8.下列敘述中正確的是(  )。

          A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對象之間具有密切的關(guān)系

          B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對象都是公用的

          C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對象之間相對獨(dú)立,相互依賴性小

          D.上述三種說法都不對

          9.結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)是(  )。

          A.過程、子程序和分程序

          B.順序、選擇和重復(fù)

          C.遞歸、堆棧和隊(duì)列

          D.調(diào)用、返回和轉(zhuǎn)移

          10.在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換為關(guān)系模式的過程屬于(  )。

          A.需求分析階段

          B.邏輯設(shè)計(jì)階段

          C.概念設(shè)計(jì)階段

          D.物理設(shè)計(jì)階段

          11.在C++語言中函數(shù)返回值的類型是由(  )決定的。

          A.調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)

          B.return語句中的表達(dá)式類型

          C.定義該函數(shù)時(shí)所指定的函數(shù)類型

          D.調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型

          12.下列描述正確的是(  )。

          A.表示m>n為true或mn&&m  B.switch語句結(jié)構(gòu)中必須有default語句

          C.if語句結(jié)構(gòu)中必須有else語句

          D.如果至少有一個(gè)操作數(shù)為true,則包含‖運(yùn)算符的表達(dá)式為true

          13.使用ifstream流類定義流對象并打開磁盤文件時(shí),文件的隱含打開方式為(  )。

          A.ios::in

          B.ios::out

          C.ios::inlios::out

          D.沒有默認(rèn)

          14.下列各類函數(shù)中,不是類的成員函數(shù)的是(  )。

          A.構(gòu)造函數(shù)

          B.抽象類

          C.派生類

          D.以上都不對

          15.下面關(guān)于數(shù)組的初始化正確的是(  )。

          A.charstr[]={’a’,’b’,’e’}

          B.charstr[2]={’a’,’b’,’e’)

          C.charstr[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}

          D.charstr()={’a’,’b’,’C’}

          16.類模板templateclassX{…},其中友元函數(shù)f對特定類型T(如int),使函數(shù)f(x)成為x模板類的友元,則其說明為(  )。

          A.friendvoidf();

          B.friendvoidf(x);

          C.friendvoidA::f();

          D.friendvoidC::f(x);

          17.類MyClass的定義如下:

          classMyClass

          {

          public:

          MyClass(){value=0;}

          SetVariable(inti){valtic=i;}

          private:

          intvalue;

          };

          MyClass*P,my;p=&my;

          則對下列語句序列正確的描述是(  )。

          A.語句p=&my;是把對象my賦值給指針變量P

          B.語句MyClass*P,my;會(huì)調(diào)用兩次類MyClass的構(gòu)造函數(shù)

          C.對語句*P.SetVariable(5)的調(diào)用是正確的

          D.語句P->SetVariable(5)與語句my.SetVariable(5)等價(jià)

          18.下面關(guān)于break語句的描述中,不正確的是(  )。

          A.break可以用于循環(huán)體內(nèi)

          B.break語句可以在for循環(huán)語句中出現(xiàn)多次

          C.break語句可以在switch語句中出現(xiàn)多次

          D.break語句可用于if條件判斷語句內(nèi)

          19.如果表達(dá)式-x/y中的“--”和“/”是作為友元函數(shù)重載的運(yùn)算符,采用運(yùn)算符函數(shù)調(diào)用格式,該表達(dá)式還可表示為(  )。

          A.operator/(x.operator--(),y);

          B.operator/(operator--(x),y);

          C.X.operator--().operator/(y);

          D.y.operator/(operator--(x));

          20.已知類A有公用數(shù)據(jù)成員a,并重載了=運(yùn)算符,且有Aobj2;constA*ptr=newA;,則下列語句錯(cuò)誤的是(  )。

          A.ptr->a=100;

          B.ptr=&obj2;

          C.ptr++;

          D.obj2=*ptr;

          21.可以用P.a的形式訪問派生類對象P的基類成員a,其中a是(  )。

          A.私有繼承的公有成員

          B.公有繼承的私有成員

          C.公有繼承的保護(hù)成員

          D.公有繼承的公有成員

          22.下面程序的運(yùn)行結(jié)果為(  )。

          #include

          classA

          {

          intnum;

          public:

          A(inti){num=i;)

          A(A&a){num=a.num++;}

          voidprint(){cout<  };

          voidmain()

          {

          Aa(1),b(a);

          a.print();

          b.print();

          }

          A.11B.12

          C.21D.22

          23.設(shè)有定義charstr[80];以下不能將輸入數(shù)據(jù)first\nsecond\n讀取到數(shù)組str中的語句是(  )。

          A.cin.get(str,strlen(str));

          B.cin.getline(str,strlen(str));

          C.cin>>str;

          D.cin.read(str,strlen(str));

          24.下列程序的輸出結(jié)果為(  )。

          #include

          classTestClass

          {

          public:

          TestClass(){val++;}

          static,intval;

          };

          intTestClass::val=0;

          voidmain()

          {

          TestClasscsl;

          cout<  TestClasscs2;

          TestClasscs3,cs4;

          cout<  }

          A.O3

          B.13

          C.14

          D.24

          25.有以下類定義:

          classMyClass

          {

          private:

          intid;

          chargender;

          char*phone;

          public:

          MyClass():id(0),gender(’#’),phone(NULl){}

          MyClass(intn0,charge=’#’,char*ph=NULL)

          {id=no;gender=ge;phone=ph;}

          };

          下列類對象定義語句中錯(cuò)誤的是(  )。

          A.MyClassmyObj;

          B.MyClassmyObj(11,"13301111155");

          C.MyClassmyObj(12,’m’);

          D.MyClassmyObj(12);

          26.下列是關(guān)于派生類聲明的開始部分,其中正確的是(  )。

          A.classvirtualB:publicA

          B.virtualclassB:publicA

          C.classB:publicAvirtual

          D.classB:virtualpublicA

          27.如果類A被說明成類B的友元,則(  )。

          A.類A的成員即類B的成員

          B.類B的成員即類A的成員

          C.類A的成員函數(shù)不得訪問類B的成員

          D.類B不一定是類A的友元

          28.下列關(guān)于虛基類的描述,錯(cuò)誤的是(  )。

          A.設(shè)置虛基類的目的是為了消除二義性

          B.虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用

          C.若同一層中包含多個(gè)虛基類,這些虛基類的構(gòu)造函數(shù)按它們說明的次序調(diào)用

          D.若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)

          29.下列關(guān)于多態(tài)性的描述,錯(cuò)誤的是(  )。

          A.C++語言中的多態(tài)性分為編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性

          B.編譯時(shí)的多態(tài)性可通過函數(shù)重載實(shí)現(xiàn)

          C.運(yùn)行時(shí)的多態(tài)性可通過模板和虛函數(shù)實(shí)現(xiàn)

          D.實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的機(jī)制稱為動(dòng)態(tài)綁定

          30.若有如下程序:

          #include

          usingnamespacestd;

          classTestClassl

          {

          private:

          inta;

          public:

          TestClassl(inti)

          {

          a=i:

          }

          voiddisp(  )

          {

          cout<  }

          };

          classTestClass2

          {

          private:

          intb:

          public:

          TestClass2(intj)

          {

          b=j;

          }

          voiddisp()

          {

          cout<  }

          };

          classTestClass3:publicTestClass2,publicTestClassl

          {

          private:

          intc;

          public:

          TestClass3(intk):TestClass1(k-2),TestClass2(k+2)

          {

          c=k:

          }

          voiddisp()

          {

          TestClasssl::disp();

          TestClasss2::disp();

          cout<  }

          };

          intmain()

          {

          TestClass30bj(10);

          obj.disp();

          return0;

          }

          程序執(zhí)行后的輸出結(jié)果是(  )。

          A.10,10,10

          B.10,12,14

          C.8,10,12

          D.8,12,10

          31.在下列程序的橫線處填上適當(dāng)?shù)膬?nèi)容,使程序執(zhí)行后的輸出結(jié)果為ABCD(  )。

          #include

          usingnamespacestd;

          classA

          {

          public:A(){cout<<’A’;}

          };

          classB:

          {

          public:B(){cout<<’B’;}

          };

          classC:virtualpublicA

          {

          public:C(){cout<<’C’;}

          };

          classD:publicB,publicD

          {

          public:D(){cout<<’D’;}

          };

          voidmain(){D04;}

          A.publicA

          B.privateA

          C.protectedA

          D.virtualpublicA

          32.有如下程序:

          #include

          usingnamespacestd;

          classAA{

          intn;

          public:

          AA(intk):n(k){}

          intget(){returnn;}

          intget()const{returnn+1;}

          };

          intmain()

          {

          AAa(5);

          constAAb(6);

          cout<  return0;

          }

          執(zhí)行后的輸出結(jié)果是()。

          A.55

          B.57

          C.75

          D.77

          33.有如下程序:

          #include

          usingnamespacestd;

          classDemo

          {

          public:

          Demo(){cout<<"defaultconstructor\n";}

          Demo(constDemo&x){cont<<"copyconstruc-

          tor\n";}

          };

          DemouserCode(Demob){Democ(b);returnC;}

          intmain()

          {

          Demoa;d;

          cout<<"callinguserCode()\n";

          d=userCode(a):

          return0;

          }

          執(zhí)行上面程序的過程中,構(gòu)造函數(shù)Demo(  )和Demo(constDem0&x)被調(diào)用的次數(shù)分別是(  )。

          A.1和1

          B.1和2

          C.2和3

          D.2和4

          34.有如下程序:

          #include

          usingnamespacestd;

          classDA{

          intk;

          public:

          DA(intx=1):k(x){}

          ~DA(){cout<  };

          intmain(){

          DAd[]={DA(3),DA(3),DA(3));

          DA+p=newDA[2];

          delete[]p;

          return();

          }

          這個(gè)程序的輸出結(jié)果是(  )。

          A.111

          B.333

          C.11333

          D.11133

          35.有如下程序:

          #include

          usingnamespacestd;

          classMyClass{

          public:

          MyClass(intx):val(x){}

          voidPrint()const{cout<<"const:val="<<  voidPrint(){cout<<"val="<  private:

          intval;

          };

          intmain(){

          constMyClassobj1(10);

          MyClassobj2(20);

          obj1.Print();

          obj2.Print();

          return0;

          }

          程序的輸出結(jié)果是(  )。

          A.va1=10const:va1=20

          B.const:va1=10const:va1=20

          C.const:va1=10val=20

          D.val=10va1=20

          36.關(guān)于函數(shù)中的<返回類型>。下列表述中錯(cuò)誤的是(  )。

          A.<返回類型>中有可能包含關(guān)鍵字int

          B.<返回類型>中有可能包含自定義標(biāo)識(shí)符

          C.<返回類型>中衣可能包含字符*

          D.<返回類型>中可能包含[]

          37.Sample是一個(gè)類,執(zhí)行下面語句后,調(diào)用Sample類的構(gòu)造函數(shù)的次數(shù)是(  )。

          Samplea[2],*p=newSample;

          A.0

          B.1

          C.2

          D.3

          38.有如下兩個(gè)類定義:

          classXX{

          private:

          doublex1;

          protected:

          doublex2;

          public:

          doublex3;

          };

          claseYY:protectedXX{

          private:

          doubley1;

          protected;

          doubley2;

          public:

          doubley3;

          };

          在類YY中保護(hù)成員變量的個(gè)數(shù)是(  )。

          A.1

          B.2

          C.3

          D.4

          39.下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是(  )。

          A.可以通過運(yùn)算符重載在C++中創(chuàng)建新的運(yùn)算符

          B.賦值運(yùn)算符只能重載為成員函數(shù)

          C.運(yùn)算符函數(shù)重載為類的成員函數(shù)時(shí),第一操作參數(shù)就是該類對象

          D.重載類型轉(zhuǎn)換運(yùn)算符時(shí)不需要聲明返回類型

          40.下列關(guān)于類模板的描述中,錯(cuò)誤的是(  )。

          A.類模板的成員函數(shù)都是模板函數(shù)

          B.可以為類模板參數(shù)設(shè)置默認(rèn)值

          C.類模板描述了一組類

          D.類模板中只允許有一個(gè)類型參數(shù)

          【參考答案及解析】

          1.B!窘馕觥繑(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

          2.B!窘馕觥繉-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式是數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作。從E—R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體和聯(lián)系都可以表示成關(guān)系。

          3.C!窘馕觥繉性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。

          4.C。【解析】樹具有明顯的層次關(guān)系,即樹是一種層次結(jié)構(gòu)。在樹結(jié)構(gòu)中,根結(jié)點(diǎn)在第一層上。當(dāng)樹為非空時(shí),樹中有且只有一個(gè)根結(jié)點(diǎn),當(dāng)樹為空時(shí),樹中根結(jié)點(diǎn)的數(shù)目為0。

          5.B!窘馕觥筷P(guān)系的交(∩)、并(∪)和差(-)運(yùn)算要求兩個(gè)關(guān)系是同元的,顯然作為二元的R和三元的S只能做笛卡兒積運(yùn)算。

          6.C!窘馕觥肯拗剖褂肎OTO語句是結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一,但不是絕對不允許使用GOTO語句。其他三項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。

          7.A!窘馕觥筷P(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,其中包含兩個(gè)關(guān)系中的所有元組。

          8.C!窘馕觥棵嫦?qū)ο蟮某绦蛟O(shè)計(jì)是用對象模擬問題領(lǐng)域中的實(shí)體,各對象之間相對獨(dú)立,相互依賴性小,通過消息來實(shí)現(xiàn)對象之間的相互聯(lián)系。

          9.B!窘馕觥砍绦虻娜N基本控制結(jié)構(gòu)包括順序、選擇和重復(fù)(循環(huán)),這三種結(jié)構(gòu)足以表達(dá)出各種其他形式的結(jié)構(gòu)。

          10.B!窘馕觥繑(shù)據(jù)庫設(shè)計(jì)階段主要包括需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。其中邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換為關(guān)系模式。

          11.C!窘馕觥亢瘮(shù)類型決定了函數(shù)返回值的類型。函數(shù)值返回類型可以由編譯器自動(dòng)完成類型轉(zhuǎn)換。在函數(shù)有返回值的調(diào)用中,編譯器將return后面的表達(dá)式的類型強(qiáng)制轉(zhuǎn)換為該函數(shù)定義時(shí)指定的返回值類型。

          12.D。【解析】本題主要考查C++語言的基本語法,選項(xiàng)A中應(yīng)該為m>n‖m  13.D!窘馕觥渴褂胕fstream流類定義流對象并打開磁盤文件時(shí),文件沒有默認(rèn)的打開方式。其中ios::in是為輸入而打開;iso::out是為輸出而打開。

          14.C!窘馕觥繕(gòu)造函數(shù)包括默認(rèn)構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)等,析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣屬于類的特殊的成員函數(shù)。而友元函數(shù)則是為了增加類的訪問靈活性而允許其他類的成員函數(shù)或全局函數(shù)訪問類的內(nèi)部變量或成員函數(shù)的一種機(jī)制,其缺點(diǎn)是破壞了類的封裝性。

          15.A!窘馕觥勘绢}考查的是字符數(shù)組的初始化。選項(xiàng)B中用三個(gè)元素初始化大小為2的數(shù)組,越界了;選項(xiàng)C中應(yīng)該是2行3列的數(shù)組,題中使用3行2列初始化;選項(xiàng)D中數(shù)組應(yīng)用方括號(hào)。

          16.B!窘馕觥柯暶饕粋(gè)函數(shù)模板的格式template<模板形參表聲明>函數(shù)聲明。調(diào)用模板函數(shù)時(shí),如果與模板實(shí)參中最后的若干個(gè)參數(shù)有關(guān)的信息可以從模板函數(shù)的實(shí)參中獲得,則相關(guān)的模板實(shí)參可以省略。

          17.D!窘馕觥空Z句p=&my;是把對象my的地址值賦給指針變量P。語句MyClass*P,my;,由于P只是一個(gè)指向?qū)ο蟮闹羔槪虼硕x指針P不調(diào)用構(gòu)造函數(shù),所以此語句只調(diào)用一次構(gòu)造函數(shù)。對成員函數(shù)的引用可以通過兩種形式:指針->成員函數(shù)(形參表)或者對象名.成員函數(shù)名(形參表)。

          18.D!窘馕觥勘绢}考查break語句的使用。break可以結(jié)束switch語句和for循環(huán)語旬,但是不能使用在條件判斷語句內(nèi)。

          19.B!窘馕觥勘绢}考核運(yùn)算符的重載。假定已經(jīng)作為某個(gè)類的成員函數(shù)重載了二元運(yùn)算符+,且c1、c2都是該類的對象,則c1.operator+(c2)與c1+c2含義相同。如果+作為該類的非成員函數(shù)重載,則operator+(c1,c2)與c1+c2含義相同。同理,運(yùn)算符“/”作為友元函數(shù)重載,則(--x)/y與表達(dá)式operator/((…x),y)相同。前綴運(yùn)算符“--”作為友元函數(shù)重載,則--x與operator--(x)相同,所以組合起來是operator/(operator--(x),y);,即B選項(xiàng)。

          20.A。【解析】本題考查const修飾符的作用。注意,const位置不同,其修飾的部分也是不同的。本題中const修飾的是ptr所指的對象本身,所以,ptr可以重新指向新的對象,而ptr->a則無法被更新。

          21.D!窘馕觥恐挥泄欣^承的公有成員才能被派生類的對象直接訪問,其他的情況都會(huì)因?yàn)樵L問權(quán)限問題產(chǎn)生錯(cuò)誤。

          22.C!窘馕觥勘绢}考查考生對拷貝構(gòu)造函數(shù)的掌握。因?yàn)?+運(yùn)算是右結(jié)合的,所以在使用a對b賦值時(shí),b的hum變?yōu)?,而a的num變?yōu)?(先賦值再自加)。

          23.D。【解析】本題考查cin流對象的幾種成員函數(shù)get,getline,read及流提取符>>的使用規(guī)則。

          24.C。【解析】由主函數(shù)main入手,定義TestClass類的對象cs1,執(zhí)行cs1.va1,其中va1為靜態(tài)變量,根據(jù)intTestClass::val=0;初始化,TestClass中的TestClass(){val++;}構(gòu)造函數(shù)執(zhí)行后,val值為1。主函數(shù)中接著定義對象cs2,cs3,cs4。執(zhí)行cout<  25.B。【解析】本題考查構(gòu)造函數(shù)的應(yīng)用。對象建立用初始化列表對數(shù)據(jù)成員進(jìn)行時(shí)。列表中的參數(shù)類型要與構(gòu)造函數(shù)中形參類型一致。B選項(xiàng)中第二個(gè)參數(shù)為13301111155,是字符串,而構(gòu)造函數(shù)中第二個(gè)形參為char型,兩者不一致造成錯(cuò)誤。

          26.D!窘馕觥柯暶髋缮惖囊话阈纬蔀閏lass派生類名:[繼承方式]基類名。其中繼承方式包括public、private和protected。而virtual為C++中的關(guān)鍵字,所以選項(xiàng)C錯(cuò)。虛函數(shù)的使用方法是在基類用virtual聲明成員函數(shù)為虛函數(shù)。

          27.D!窘馕觥勘绢}考查的是友元類的定義:類A為類B的友元類,則類A的所有成員函數(shù)都是類B的友元函數(shù),但反之則不一定成立。

          28.B!窘馕觥刻摶惖囊刖褪菫榱讼x性,其構(gòu)造函數(shù)的調(diào)用仍然是按照繼承的順序進(jìn)行的,對于多個(gè)虛基類則按它們說明的次序調(diào)用,虛基類的構(gòu)造函數(shù)先于非虛基類的構(gòu)造函數(shù)執(zhí)行。

          29.C!窘馕觥烤幾g時(shí)的多態(tài)性是通過函數(shù)重載和模板體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過虛函數(shù)體現(xiàn)的。

          30.D!窘馕觥渴紫榷xTestClass3的對象obj,參數(shù)為10。其中TestClass3為TestClass1和TestClass2的派生類。然后調(diào)用disp成員函數(shù)。disp中首先執(zhí)行TestClassl::disp();,然后執(zhí)行TestClass2::disp();,最后執(zhí)行輸出語句cout<  31.D。【解析】由主函數(shù)main入手,定義了類D對象obi。其中D為類B和C的公有繼承,A是C的

          虛基類。題目中要求的輸出結(jié)果為ABCD,依次為類A、類B、類C、類D中構(gòu)造函數(shù)的輸出語句。為了保證基類通過多條路徑被派生類繼承,即保證A只被繼承一次,輸出一個(gè)A,所以不但需要聲明A為C的虛基類,同樣也要聲明A為B的虛基類。

          32.B!窘馕觥克^函數(shù)重載,是指同一個(gè)函數(shù)名可以對應(yīng)著多個(gè)函數(shù)的實(shí)現(xiàn),類AA中定義了兩個(gè)9et()函數(shù),一個(gè)為普通成員函數(shù),另一個(gè)為常成員函數(shù)。一般對象a既可以調(diào)用普通成員函數(shù)get,也可以調(diào)用常成員函數(shù)get,但是由于常成員函數(shù)不能更新對象的數(shù)據(jù)成員,所以題中通過對象a調(diào)用的函數(shù)為普通成員函數(shù)get(),返回值為5。常對象b只能調(diào)用常成員函數(shù),所以題中通過對象b調(diào)用的函數(shù)為常成員函數(shù)get(),返回值為7。

          33.C!窘馕觥亢瘮(shù)Demo()為構(gòu)造函數(shù),而Demo(constDemo&x)為復(fù)制構(gòu)造函數(shù)。C++在創(chuàng)建一個(gè)對象時(shí),會(huì)自動(dòng)調(diào)用類的構(gòu)造函數(shù),所以語句"Demoa,d;"將調(diào)用函數(shù)Demo()2次。當(dāng)一個(gè)對象作為實(shí)參傳遞給函數(shù)時(shí)為初始化形參,要調(diào)用拷貝構(gòu)造函數(shù);在函數(shù)返回一個(gè)對象時(shí)調(diào)用拷貝構(gòu)造函數(shù)。由此可知語句d=userCode(a);調(diào)用拷貝構(gòu)造函數(shù)3次。

          34.C!窘馕觥勘绢}考查的是析構(gòu)函數(shù)和對象的生存期。在主函數(shù)中,首先定義了一個(gè)DA類對象數(shù)組d,從初始化列表中可以看出,它包含三個(gè)對象;然后通過new運(yùn)算符動(dòng)態(tài)創(chuàng)建了一個(gè)DA類的對象數(shù)組,并將首地址賦給DA類指針P;接著通過delete[]運(yùn)算符銷毀指針P所指向的數(shù)組,故此時(shí)會(huì)輸出11。最后函數(shù)結(jié)束,銷毀前面定義的對象數(shù)組d,會(huì)輸出333。故最后的輸出結(jié)果是11333。

          35.D!窘馕觥吭诮㈩悓ο髸r(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被繼承的聲明順序;執(zhí)行成員對象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員在類中的聲明順序;執(zhí)行自身的構(gòu)造函數(shù)。根據(jù)以上總結(jié)以及題意可知答案選擇D選項(xiàng)。

          36.B!窘馕觥<返回類型>又稱函數(shù)類型,表示一個(gè)

          函數(shù)所計(jì)算(或運(yùn)行)的結(jié)果值類型,這里的類型可以是預(yù)定義類型(如int)、復(fù)合類型(如double*)、用戶定義類型(如枚舉類),若返回值只做更新(或設(shè)置)等操作,則該函數(shù)返回類型為void類型,函數(shù)類型和內(nèi)置數(shù)組不能作為返回類型,但類類型和容器類型可以被直接返回。

          37.D。【解析】構(gòu)造函數(shù)在對象被創(chuàng)建時(shí)由系統(tǒng)自動(dòng)調(diào)用,本題共創(chuàng)建3個(gè)對象。

          38.C!窘馕觥颗缮悘幕惐Wo(hù)繼承classYY:pro-tectedXX時(shí),基類的公有成員在派生類中變?yōu)楸Wo(hù)成員,基類的保護(hù)成員在派生類中仍然是保護(hù)成員;本題中YY本身有一個(gè)保護(hù)成員y2,再加上基類XX的x2和x3,故選C。

          39.A!窘馕觥窟\(yùn)算符的重載是針對C++中原有運(yùn)算符進(jìn)行的,不能通過重載創(chuàng)造新的運(yùn)算符。

          40.D!窘馕觥款惸0迨且幌盗邢嚓P(guān)類的模板,類成員組成相同,成員函數(shù)的源代碼形式相同,所不同的是所針對的類型。類模板的成員函數(shù)都是模板函數(shù),在用類模板定義對象時(shí),由于沒有像函數(shù)實(shí)參表這樣的額外信息渠道,因此無法按函數(shù)模板的方式省略模板實(shí)參。但可以為類模板的參數(shù)設(shè)置默認(rèn)值。由此可知應(yīng)選D。

        【計(jì)算機(jī)二級(jí)C++考試試卷及答案】相關(guān)文章:

        計(jì)算機(jī)二級(jí)C++考試測試卷及答案02-27

        計(jì)算機(jī)二級(jí)考試C++試題及答案03-27

        計(jì)算機(jī)二級(jí)考試C++試題03-09

        計(jì)算機(jī)等級(jí)考試二級(jí)筆試卷(含答案)01-24

        2016計(jì)算機(jī)等級(jí)考試二級(jí)C++上機(jī)模擬試題及答案03-08

        2016最新計(jì)算機(jī)二級(jí)C++上機(jī)試題及答案03-03

        2017計(jì)算機(jī)二級(jí)C++考試試題03-05

        2017年9月計(jì)算機(jī)二級(jí)C++考試模擬試題及答案03-05

        計(jì)算機(jī)二級(jí)考試答案10-24

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>