<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 計(jì)算機(jī)二級(jí)C++考試試卷及答案

    時(shí)間:2024-11-16 13:49:36 飛宇 計(jì)算機(jī)等級(jí) 我要投稿

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

      從小學(xué)、初中、高中到大學(xué)乃至工作,我們都經(jīng)常看到試卷的身影,在各領(lǐng)域中,只要有考核要求,就會(huì)有試卷,試卷是命題者按照一定的考核目的編寫(xiě)出來(lái)的。你知道什么樣的試卷才算得上好試卷嗎?下面是小編為大家收集的2016年計(jì)算機(jī)二級(jí)C++考試試卷及答案,希望對(duì)大家有所幫助。

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

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

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

      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.對(duì)長(zhǎng)度為n的線(xiàn)性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為(  )。

      A.125

      B.n/Z

      C.n

      D.n+1

      4.樹(shù)是結(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)行組合嵌套來(lái)實(shí)現(xiàn)

      C.不允許使用GOTO語(yǔ)句

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

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

      A.并運(yùn)算

      B.交運(yùn)算

      C.差運(yùn)算

      D.積運(yùn)算

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

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

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

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

      D.上述三種說(shuō)法都不對(duì)

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

      A.過(guò)程、子程序和分程序

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

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

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

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

      A.需求分析階段

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

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

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

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

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

      B.return語(yǔ)句中的表達(dá)式類(lèi)型

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

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

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

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

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

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

      13.使用ifstream流類(lèi)定義流對(duì)象并打開(kāi)磁盤(pán)文件時(shí),文件的隱含打開(kāi)方式為(  )。

      A.ios:in

      B.ios:out

      C.ios:inlios:out

      D.沒(méi)有默認(rèn)

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

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

      B.抽象類(lèi)

      C.派生類(lèi)

      D.以上都不對(duì)

      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.類(lèi)模板templateclassX{…},其中友元函數(shù)f對(duì)特定類(lèi)型T(如int),使函數(shù)f(x)成為x模板類(lèi)的友元,則其說(shuō)明為(  )。

      A.friendvoidf();

      B.friendvoidf(x);

      C.friendvoidA:f();

      D.friendvoidC:f(x);

      17.類(lèi)MyClass的定義如下:

      classMyClass

      {

      public:

      MyClass(){value=0;}

      SetVariable(inti){valtic=i;}

      private:

      intvalue;

      };

      MyClassP,my;p=&my;

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

      A.語(yǔ)句p=&my;是把對(duì)象my賦值給指針變量P

      B.語(yǔ)句MyClassP,my;會(huì)調(diào)用兩次類(lèi)MyClass的構(gòu)造函數(shù)

      C.對(duì)語(yǔ)句P.SetVariable(5)的調(diào)用是正確的

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

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

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

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

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

      D.break語(yǔ)句可用于if條件判斷語(yǔ)句內(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.已知類(lèi)A有公用數(shù)據(jù)成員a,并重載了=運(yùn)算符,且有Aobj2;constAptr=newA;,則下列語(yǔ)句錯(cuò)誤的是(  )。

      A.ptr->a=100;

      B.ptr=&obj2;

      C.ptr++;

      D.obj2=ptr;

      21.可以用P.a的形式訪問(wèn)派生類(lèi)對(duì)象P的基類(lèi)成員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中的語(yǔ)句是(  )。

      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.有以下類(lèi)定義:

      classMyClass

      {

      private:

      intid;

      chargender;

      charphone;

      public:

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

      MyClass(intn0,charge=’#’,charph=NULL)

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

      };

      下列類(lèi)對(duì)象定義語(yǔ)句中錯(cuò)誤的是(  )。

      A.MyClassmyObj;

      B.MyClassmyObj(11,"13301111155");

      C.MyClassmyObj(12,’m’);

      D.MyClassmyObj(12);

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

      A.classvirtualB:publicA

      B.virtualclassB:publicA

      C.classB:publicAvirtual

      D.classB:virtualpublicA

      27.如果類(lèi)A被說(shuō)明成類(lèi)B的友元,則(  )。

      A.類(lèi)A的成員即類(lèi)B的成員

      B.類(lèi)B的成員即類(lèi)A的成員

      C.類(lèi)A的成員函數(shù)不得訪問(wèn)類(lèi)B的成員

      D.類(lèi)B不一定是類(lèi)A的友元

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

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

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

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

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

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

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

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

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

      D.實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的機(jī)制稱(chēng)為動(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.在下列程序的橫線(xiàn)處填上適當(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í)行上面程序的過(guò)程中,構(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];

      []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ù)中的<返回類(lèi)型>。下列表述中錯(cuò)誤的是(  )。

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

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

      C.<返回類(lèi)型>中衣可能包含字符

      D.<返回類(lèi)型>中可能包含[]

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

      Samplea[2],p=newSample;

      A.0

      B.1

      C.2

      D.3

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

      classXX{

      private:

      doublex1;

      protected:

      doublex2;

      public:

      doublex3;

      };

      claseYY:protectedXX{

      private:

      doubley1;

      protected;

      doubley2;

      public:

      doubley3;

      };

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

      A.1

      B.2

      C.3

      D.4

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

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

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

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

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

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

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

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

      C.類(lèi)模板描述了一組類(lèi)

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

      【參考答案及解析】

      1.B。【解析】數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱(chēng)為數(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。【解析】將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的主要工作。從E—R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體和聯(lián)系都可以表示成關(guān)系。

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

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

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

      6.C。【解析】限制使用GOTO語(yǔ)句是結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一,但不是絕對(duì)不允許使用GOTO語(yǔ)句。其他三項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。

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

      8.C。【解析】面向?qū)ο蟮某绦蛟O(shè)計(jì)是用對(duì)象模擬問(wèn)題領(lǐng)域中的實(shí)體,各對(duì)象之間相對(duì)獨(dú)立,相互依賴(lài)性小,通過(guò)消息來(lái)實(shí)現(xiàn)對(duì)象之間的相互聯(lián)系。

      9.B。【解析】程序的三種基本控制結(jié)構(gòu)包括順序、選擇和重復(fù)(循環(huán)),這三種結(jié)構(gòu)足以表達(dá)出各種其他形式的結(jié)構(gòu)。

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

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

      12.D。【解析】本題主要考查C++語(yǔ)言的基本語(yǔ)法,選項(xiàng)A中應(yīng)該為m>n‖m  13.D。【解析】使用ifstream流類(lèi)定義流對(duì)象并打開(kāi)磁盤(pán)文件時(shí),文件沒(méi)有默認(rèn)的打開(kāi)方式。其中ios:in是為輸入而打開(kāi);iso:out是為輸出而打開(kāi)。

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

      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。【解析】語(yǔ)句p=&my;是把對(duì)象my的地址值賦給指針變量P。語(yǔ)句MyClassP,my;,由于P只是一個(gè)指向?qū)ο蟮闹羔槪虼硕x指針P不調(diào)用構(gòu)造函數(shù),所以此語(yǔ)句只調(diào)用一次構(gòu)造函數(shù)。對(duì)成員函數(shù)的引用可以通過(guò)兩種形式:指針->成員函數(shù)(形參表)或者對(duì)象名.成員函數(shù)名(形參表)。

      18.D。【解析】本題考查break語(yǔ)句的使用。break可以結(jié)束switch語(yǔ)句和for循環(huán)語(yǔ)旬,但是不能使用在條件判斷語(yǔ)句內(nèi)。

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

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

      21.D。【解析】只有公有繼承的公有成員才能被派生類(lèi)的對(duì)象直接訪問(wèn),其他的情況都會(huì)因?yàn)樵L問(wèn)權(quán)限問(wèn)題產(chǎn)生錯(cuò)誤。

      22.C。【解析】本題考查考生對(duì)拷貝構(gòu)造函數(shù)的掌握。因?yàn)?+運(yùn)算是右結(jié)合的,所以在使用a對(duì)b賦值時(shí),b的hum變?yōu)?,而a的num變?yōu)?(先賦值再自加)。

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

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

      26.D。【解析】聲明派生類(lèi)的一般形成為class派生類(lèi)名:[繼承方式]基類(lèi)名。其中繼承方式包括public、private和protected。而virtual為C++中的關(guān)鍵字,所以選項(xiàng)C錯(cuò)。虛函數(shù)的使用方法是在基類(lèi)用virtual聲明成員函數(shù)為虛函數(shù)。

      27.D。【解析】本題考查的是友元類(lèi)的定義:類(lèi)A為類(lèi)B的友元類(lèi),則類(lèi)A的所有成員函數(shù)都是類(lèi)B的友元函數(shù),但反之則不一定成立。

      28.B。【解析】虛基類(lèi)的引入就是為了消除二義性,其構(gòu)造函數(shù)的調(diào)用仍然是按照繼承的順序進(jìn)行的,對(duì)于多個(gè)虛基類(lèi)則按它們說(shuō)明的次序調(diào)用,虛基類(lèi)的構(gòu)造函數(shù)先于非虛基類(lèi)的構(gòu)造函數(shù)執(zhí)行。

      29.C。【解析】編譯時(shí)的多態(tài)性是通過(guò)函數(shù)重載和模板體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過(guò)虛函數(shù)體現(xiàn)的。

      30.D。【解析】首先定義TestClass3的對(duì)象obj,參數(shù)為10。其中TestClass3為T(mén)estClass1和TestClass2的派生類(lèi)。然后調(diào)用disp成員函數(shù)。disp中首先執(zhí)行TestClassl:disp();,然后執(zhí)行TestClass2:disp();,最后執(zhí)行輸出語(yǔ)句cout<  31.D。【解析】由主函數(shù)main入手,定義了類(lèi)D對(duì)象obi。其中D為類(lèi)B和C的公有繼承,A是C的

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

      32.B。【解析】所謂函數(shù)重載,是指同一個(gè)函數(shù)名可以對(duì)應(yīng)著多個(gè)函數(shù)的實(shí)現(xiàn),類(lèi)AA中定義了兩個(gè)9et()函數(shù),一個(gè)為普通成員函數(shù),另一個(gè)為常成員函數(shù)。一般對(duì)象a既可以調(diào)用普通成員函數(shù)get,也可以調(diào)用常成員函數(shù)get,但是由于常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,所以題中通過(guò)對(duì)象a調(diào)用的函數(shù)為普通成員函數(shù)get(),返回值為5。常對(duì)象b只能調(diào)用常成員函數(shù),所以題中通過(guò)對(duì)象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è)對(duì)象時(shí),會(huì)自動(dòng)調(diào)用類(lèi)的構(gòu)造函數(shù),所以語(yǔ)句"Demoa,d;"將調(diào)用函數(shù)Demo()2次。當(dāng)一個(gè)對(duì)象作為實(shí)參傳遞給函數(shù)時(shí)為初始化形參,要調(diào)用拷貝構(gòu)造函數(shù);在函數(shù)返回一個(gè)對(duì)象時(shí)調(diào)用拷貝構(gòu)造函數(shù)。由此可知語(yǔ)句d=userCode(a);調(diào)用拷貝構(gòu)造函數(shù)3次。

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

      35.D。【解析】在建立類(lèi)對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類(lèi)被繼承的聲明順序;執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員在類(lèi)中的聲明順序;執(zhí)行自身的構(gòu)造函數(shù)。根據(jù)以上總結(jié)以及題意可知答案選擇D選項(xiàng)。

      36.B。【解析】<返回類(lèi)型>又稱(chēng)函數(shù)類(lèi)型,表示一個(gè)

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

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

      38.C。【解析】派生類(lèi)從基類(lèi)保護(hù)繼承classYY:pro-tectedXX時(shí),基類(lèi)的公有成員在派生類(lèi)中變?yōu)楸Wo(hù)成員,基類(lèi)的保護(hù)成員在派生類(lèi)中仍然是保護(hù)成員;本題中YY本身有一個(gè)保護(hù)成員y2,再加上基類(lèi)XX的x2和x3,故選C。

      39.A。【解析】運(yùn)算符的重載是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不能通過(guò)重載創(chuàng)造新的運(yùn)算符。

      40.D。【解析】類(lèi)模板是一系列相關(guān)類(lèi)的模板,類(lèi)成員組成相同,成員函數(shù)的源代碼形式相同,所不同的是所針對(duì)的類(lèi)型。類(lèi)模板的成員函數(shù)都是模板函數(shù),在用類(lèi)模板定義對(duì)象時(shí),由于沒(méi)有像函數(shù)實(shí)參表這樣的額外信息渠道,因此無(wú)法按函數(shù)模板的方式省略模板實(shí)參。但可以為類(lèi)模板的參數(shù)設(shè)置默認(rèn)值。由此可知應(yīng)選D。

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

      1. 單選題:

      若變量已正確定義,有下列程序段:

      int a = 3, b = 5, c = 7;

      if (a > b) a = b; c = a;

      if (c!= a) c = b;

      printf("%d, %d, %d\n", a, b, c);

      其輸出的結(jié)果是( )。

      答案:B(3,5,3)。解析:第一個(gè)`if`條件`a>b`不成立,故不執(zhí)行`a=b`,接著執(zhí)行`c=a`,把`a`的值賦給`c`后,此時(shí)第二個(gè)`if`條件不成立,故不執(zhí)行其后語(yǔ)句,最終`c`的值為 3。

      2. 單選題:

      與語(yǔ)句`cout << endl;`功能相同的是( )。

      答案:D(`cout << \0;`)。解析:題干表示的是回車(chē)換行,選項(xiàng) A(`cout << \n;`)、B(`cout << \12;`)、C(`cout << \xA;`)都表示回車(chē)換行,而選項(xiàng) D 的`\0`是字符串的結(jié)尾標(biāo)志,但在輸出流中也可起到類(lèi)似換行的效果(雖然用法不太常規(guī))。

      3. 單選題:

      類(lèi) O 定義了私有函數(shù) F1。P 和 Q 為 O 的派生類(lèi),定義為`class P: protected O{…};class Q: public O{…}`。( )可以訪問(wèn) F1。

      答案:C(O 類(lèi)內(nèi))。因?yàn)樗接泻瘮?shù)只能在類(lèi)的內(nèi)部被訪問(wèn)。

      4. 填空題:

      運(yùn)算符重載仍然保持其原來(lái)的優(yōu)先級(jí)、______和______。

      答案:結(jié)合性、語(yǔ)法結(jié)構(gòu)。解析:運(yùn)算符重載不能改變操作數(shù)的個(gè)數(shù)、運(yùn)算符的優(yōu)先級(jí)、運(yùn)算符的結(jié)合性和運(yùn)算符的語(yǔ)法結(jié)構(gòu)。

      5. 簡(jiǎn)單應(yīng)用題:

      使用 VC++6.0 打開(kāi)考生文件夾下的源程序文件 2.cpp。完成函數(shù)`fun(chars1, chars2)`的空出部分。函數(shù)`fun(chars1, chars2)`的.功能是將在字符串`s1`中下標(biāo)為偶數(shù)的字符,緊隨其后重復(fù)出現(xiàn)一次,放在一個(gè)新串`s2`中,`s2`中字符按原字符串中字符的順序排列。(注意 0 為偶數(shù))例如:當(dāng)`s1`中的字符串為“abcdef”時(shí),`s2`中的字符串應(yīng)為“aaccee”。

      參考代碼:

      void fun(char s1, char s2)

      {

      int i;

      for (i = 0; s1[i]!= \0; i++) // 循環(huán)判斷每一個(gè)字符

      {

      if (i % 2 == 0) // 判斷字符串中下標(biāo)為偶數(shù)位置

      {

      s2[i] = s1[i];

      s2[i + 1] = s1[i];

      i++;

      }

      else

      {

      s2[i] = s1[i];

      }

      }

      s2[i] = \0; // 新串添加尾符

      }

      6. 綜合應(yīng)用題:此類(lèi)題目通常需要根據(jù)具體的需求對(duì)類(lèi)的定義進(jìn)行補(bǔ)充完善等操作,具體的題目會(huì)有不同的要求和解答思路,比如增加靜態(tài)私有變量、完成靜態(tài)函數(shù)的定義等。

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

      1. 單選題部分示例:

      若變量已正確定義,有下列程序段:

      int a = 3, b = 5, c = 7;

      if (a > b) a = b; c = a;

      if (c!= a) c = b;

      printf("%d, %d, %d\n", a, b, c);

      其輸出的結(jié)果是:3, 5, 3。因?yàn)榈谝粋(gè) `if` 條件 `a>b` 不成立,所以不執(zhí)行 `a=b`,接著執(zhí)行 `c=a`,此時(shí) `c` 的值為 3,第二個(gè) `if` 條件也不成立,所以 `c` 的值保持為 3。

      決定 C++語(yǔ)言中函數(shù)的返回值類(lèi)型的是:在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類(lèi)型。

      2. 程序改錯(cuò)題示例:

      #include

      using namespace std;

      int main()

      {

      int p, a(5) = {1, 2, 3, 4, 5};

      double q, b(5) = {5.0, 4.0, 3.0, 2.0, 1.0};

      int x;

      p = a;

      q = b;

      //error

      for (x = 0; x <= 5; x++)

      //error

      cout << (p + x) << \t << (q + x) << endl;

      return 0;

      }

      錯(cuò)誤改正如下:

      第一個(gè)錯(cuò)誤:`for` 循環(huán)的條件應(yīng)該是 `x < 5` 而不是 `x <= 5`,因?yàn)閿?shù)組的下標(biāo)是從 0 開(kāi)始到 `數(shù)組長(zhǎng)度 1`,這里數(shù)組 `a` 和 `b` 的長(zhǎng)度都是 5,所以循環(huán) 5 次即可。

      第二個(gè)錯(cuò)誤:輸出語(yǔ)句中的換行符應(yīng)該是 `\n` 而不是 `endl`,當(dāng)然這在一些編譯器中可能不會(huì)導(dǎo)致錯(cuò)誤,但按照標(biāo)準(zhǔn) C++ 的寫(xiě)法應(yīng)該是 `\n`。修改后的.代碼如下:

      #include

      using namespace std;

      int main()

      {

      int p, a(5) = {1, 2, 3, 4, 5};

      double q, b(5) = {5.0, 4.0, 3.0, 2.0, 1.0};

      int x;

      p = a;

      q = b;

      for (x = 0; x < 5; x++)

      cout << (p + x) << \t << (q + x) << \n;

      return 0;

      }

      3. 簡(jiǎn)單應(yīng)用題示例:

      編寫(xiě)函數(shù) `fun(int n)`,實(shí)現(xiàn)對(duì)一個(gè) 4 位長(zhǎng)的整數(shù)的加密,加密方法是用每位數(shù)字加上 3 然后除以 9 的余數(shù)代替該數(shù)字,再將第 1 位和第 4 位交換,第 2 位和第 3 位交換,然后返回得到的密碼。

      int fun(int n)

      {

      int a[4];

      a[0] = n % 10; // 取整型 n 的第 1 位數(shù)字

      a[1] = n % 100 / 10; // 取整型 n 的第 2 位數(shù)字

      a[2] = n % 1000 / 100; // 取整型 n 的第 3 位數(shù)字

      a[3] = n / 1000; // 取整型 n 的第 4 位數(shù)字

      for (int i = 0; i < 4; i++) // 每位數(shù)字加 3,取余

      {

      a[i] += 3;

      a[i] %= 9;

      }

      int t = a[0];

      a[0] = a[3];

      a[3] = t;

      t = a[1];

      a[1] = a[2];

      a[2] = t;

      return a[3] 1000 + a[2] 100 + a[1] 10 + a[0];

      }

      4. 綜合應(yīng)用題示例:

      給出的類(lèi)定義不完整,按要求完成類(lèi)的定義,使得程序的輸出結(jié)果為 21。

      #include

      class tc

      {

      private:

      //1

      static int num;

      int own;

      public:

      tc(int i)

      {

      own = i;

      }

      //2

      static int get(tc obj)

      {

      return num + obj->own;

      }

      };

      //3

      int tc::num = 10;

      int main()

      {

      tc obj(11);

      //4

      std::cout << tc::get(&obj) << std::endl;

      return 0;

      }

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

    計(jì)算機(jī)二級(jí)C++考試測(cè)試卷及答案08-21

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

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

    2017最新計(jì)算機(jī)二級(jí)考試C++試題及答案10-24

    2017年計(jì)算機(jī)二級(jí)考試C++考試試題及答案09-24

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

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

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

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

    主站蜘蛛池模板: 国产精品极品| 老司机67194精品线观看| 一本一本久久aa综合精品| 青青草原综合久久大伊人精品| 亚洲AV无码精品无码麻豆| 国产精品成人小电影在线观看| 精品久久久久久久久午夜福利| 亚洲国产精品成人午夜在线观看| 国产成人毛片亚洲精品| 国产精品久久久久9999| 亚洲av永久无码精品秋霞电影影院| 国产亚洲精品影视在线产品 | 无码精品人妻一区二区三区影院 | 99久久www免费人成精品| 91精品国产高清91久久久久久| 亚洲AV日韩精品久久久久| 日韩精品无码免费视频| 国产乱人伦偷精品视频免观看| 久久精品草草草| 国产成人精品高清在线观看99| 国产亚洲精品无码成人| 久久精品黄AA片一区二区三区| 久久久精品国产亚洲成人满18免费网站 | 国产一成人精品福利网站| 国产精品色内内在线播放| 欧洲精品99毛片免费高清观看 | 精品国产一区二区三区在线观看| 99热热久久这里只有精品68| 久久er热视频在这里精品| 国产精品福利在线播放| 国产精品久久亚洲不卡动漫| 国产91精品一区二区麻豆网站| 成人精品视频99在线观看免费 | 欧美日韩精品一区二区三区不卡 | 国产欧美日韩综合精品二区| 国产中文在线亚洲精品官网| 精品久久久久中文字幕一区| 久久亚洲精品无码观看不卡| 日韩精品一区二区三区在线观看| 亚洲国产综合精品一区在线播放 | 日韩精品在线播放|