欧美一级a看免费观看,一本在线视频在线观看,国产偷自拍对白在线视频,精品欧美一区二区在线观看

    1. <dfn id="ktbui"><var id="ktbui"></var></dfn>
    2. 您當前位置: 唯學網 » 計算機等級考試培訓 » 備考試題專題 »

      計算機二級考試C++考前測試題及答案(4)

      計算機二級考試C++考前測試題及答案(4)

      唯學網 • 教育培訓

      2016-7-4 13:44

      計算機等級

      唯學網 • 中國教育電子商務平臺

      加入收藏

      31有如下程序:

      #inClude using namespaCe std: Class CD{

      publiC:

      ~CD(){Cout<<’C’:} private:

      Char name[80]; };

      int main(){

      CD a,*b,d[2]; return 0;

      執(zhí)行這個程序的輸出結果是( )。

      A.CCCCB.CCCC.CCD.C

      參考答案:B

      參考解析:本題考查類的析構函數.題目中定義了類的一個對象a,對象指針*b,對象數組d[2],當程序執(zhí)行完后,析構函數執(zhí)行了3次,輸出“CCC”,對象指針不會執(zhí)行析構函數。所以本題答案為8。

      32類的析構函數是在( )調用的。

      A.類創(chuàng)建時B.創(chuàng)建對象時C.刪除對象時D.不自動調用

      參考答案:C

      參考解析:析構函數可以被函數調用,也可以被系統(tǒng)調用:函數體內的對象在函數結束時調用析構函數和使用delete釋放對象所占用的資源。

      33下列關于多態(tài)性的描述,錯誤的是( )。

      A.c++語言中的多態(tài)性分為編譯時的多態(tài)性和運行時的多態(tài)性

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

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

      D.實現(xiàn)運行時多態(tài)性的機制稱為動態(tài)綁定

      參考答案:C

      參考解析:編譯時的多態(tài)性是通過函數重載和模板體實現(xiàn)的,運行時的多態(tài)性是通過虛函數體實現(xiàn)的。

      34下列有關類成員的敘述中,正確的是( )。

      A.友元函數是類的成員函數

      B.類成員的默認訪問權限是私有的

      C.類成員函數必須聲明為公有的

      D.類的靜態(tài)數據成員不能是常成員

      參考答案:B

      參考解析:友元函數是指某些雖然不是類成員卻能訪問類的所有成員的函數,故友元函數不足類的成員函數。類成員的默認訪問權限是私有的,類的成員函數¨r以是3種權限中的一種,靜態(tài)數據成員可以為常成員。故本題答案為8。

      35有如下程序:

      #inClude

      using namespaCe std; ClaSS A{

      publiC:

      A(int i){x=i;}

      void dispa(  ){Cout<

      int x; };

      Class B:publiC A{ publiC:

      B(int i):A(i+10){x=i;}

      vold dispb(  ){dispa(  );Cout<

      int x; };

      int main(  )} B b(2); b.dispb(  );

      return 0; }

      執(zhí)行這個程序的輸出結果是(  )。

      A.10,2B.12,10C.12,2D.2,2

      參考答案:C

      參考解析:本題考查派生類的構造函數和基類的構造函數。本題中類B繼承類A,定義了·個類B的對象并初始化b(2),此時會執(zhí)行類B的構造函數,執(zhí)行的結果是繼承類A中的私有成員賦值了12,給類B自身的數據成員x賦值了2,執(zhí)行b.dispb()后,輸出類A的私有成員x,輸出類B自身的數據成員,所以答案為C。

      36執(zhí)行下列語句段后,輸出字符“*”的個數是( )。

      for(int i=50;i>1;i一=2) tout<<’*’:

      A.24B.25C.26D.50

      參考答案:B

      參考解析:本題考查for循環(huán)語句,題目中每執(zhí)行完循環(huán)體后,i都會減2,那么只有50到2之間的偶數才能輸出“*”,所以總共輸出25次。

      37有如下類定義:

      Class AA{ int a: PubliC: AA(int n=O):a(n){}

      };

      Class BB:publiC AA{ publiC:

      BB(int n)

      };

      其中橫線處的缺失部分是(  )。

      A.:a(n){}B.:AA(n){}C.{a(n);}D.{a=n;}

      參考答案:B

      參考解析:本題考查公用繼承對基類成員的訪問屬性。公用繼承中,基類的公用成員和保護成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有,本題中若要給派生類繼承下來基類的私有成員賦值,那么只能調用基類的成員函數來對它賦值,成員變量默認的訪問權限為私有,即a為私有變量。所以本題答案為B。

      38判斷char型變量c是否為小寫字母的正確表達式是( )。

      A.’a’<=c<=’z’B.(c>=A.&&(c<=z)C.(’a’>=C.||(’z’<=C.D.(c>=’a’)&&(c<=,z,)

      參考答案:D

      參考解析:字符型數據在計算機內部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的。大寫字母A~z是從65~90,小寫字母a~z是從97~122。所以只要變量c大于等于a并月小于等于z就能保證其為小寫字母。

      39決定c++語言中函數的返回值類型的是( )。

      A.return語句中的表達式類型

      B.調用該函數時系統(tǒng)隨機產生的類型

      C.調用該函數時的主調用函數類型

      D.在定義該函數時所指定的數據類型

      參考答案:D

      參考解析:c++語言中,在定義該函數時所指定的數據類瓔決定函數的返回值類型。

      40設int a=1,b=2;,則(a++)+b和a+++b這兩個表達式的值分別為( )。

      A.3,3B.3,4C.4,3D.4,4

      參考答案:A

      參考解析:單目的++運算優(yōu)先級高于雙目的+運算,不過++的結合性是自右向左的,而+是自左向右的,所以上面的兩個表達式都是先計算a+b的值之后,a再自加1。

      41請使用VC6或使用【答題】菜單打開考生文件夾projl下的工程projl。程序中位于每個“//ERROR****found料****之后的一行語句有錯誤,請加以改正。改正后程序的輸出結果應為:

      Name:Smith Age:21 ID:99999 CourseNum:12

      Record:970

      注意:只修改每個“//ERROR****found****”下的那一行,不要改動程序中的其他內容。

      #include

      using namespace std;

      class Studentlnfo

      {

      protected:

      //ERROR********************found****************

      char Name;

      int Age;

      int ID:

      int CourseNum;

      float Record;

      public:

      Studentlnfo(char*name,int Age,int ID,int coumeNum,float record);

      //ERROR ********************found********************

      void~Studentlnfo(){}

      float AverageRecord(){

      return Record/CourseNum;

      }

      void show()const{

      cout<<”Name:”<

      <<”CourseNum:”<

      }

      };

      //ERROR ******************found**************

      StudentInfo StudentInfo(char*Name,int Age,int ID,int CourseNum,float Record)

      {

      Name=name;

      Age=age;

      this一>ID=ID:

      CourseNum=courseNum:

      Record=record;

      }

      int main()

      {

      Studentlnfo st(’’Smith”,21,99999,12,970);

      st.show();

      return 0;

      }

      參考解析:

      (1)char*Name;

      (2)~Studentlnfo(){}

      (3)Studentlnf0::Studentlnfo(char*name,int age,,int ID,int eourseNum,float record)

      三、簡單應用題(24分)

      42請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,其中定義了vehiele類,并派生出motorcar類和bicycle類。然后以motorcar和bicycle作為基類,再派生出motorcycle類。要求將Vehicle作為虛基類,避免二義性問題。請在程序中的橫線處填寫適當的代碼并刪除橫線,以實現(xiàn)上述類定義。此程序的正確輸出結果應為:

      80

      150

      100

      1

      注意:只能在橫線處填寫適當的代碼,不要改動程序中的其他內容,也不要刪除或移動“//****found****”。

      #include

      class vehicle

      {

      private:

      int MaxSpeed;

      int Weight;

      public:

      //*************found************

      vehicle(int maxspeed,int weight):——

      ~vehicle(){};

      int getMaxSpeed(){return MaxSpeed;}

      int getWeight(){retum Weight;}

      };

      //****************found************

      class bicycle:——public vehicle

      {

      private:

      int Height;

      public:

      bicycle(int maxspeed,int weight,int height):vehicle(maxspeed,weight),Height(height){}

      int getHeight(){retum Height;};

      };

      //*******************found**************

      class motorcar:——public vehicle

      {

      private:

      int SeatNum;

      public:

      motorcar(int maxspeed。int weight,int seatnum):vehicle(maxspeed,weight),SeatNum(seatnum){}

      int getSeatNum(){return SeatNum;};

      };

      //*****************found***************

      class motorcycle:——

      {

      public:

      motorcycle(int maxspeed,int weight,int height):vehicle(maxspeed,weight),bicycle(maxspeed,weight,

      height),motorcar(maxspeed,weight,1){}

      };

      void main()

      {

      motorcycle a(80,150,100);

      cout<

      cout<

      cout<

      cout<

      }

      參考解析:

      (1)MaxSpeed(maxspeed),Weight(weight){f;

      (2)virtual

      (3)virtua1

      (4)public bicycle,public motorcar

      四、綜合應用題(18分)

      43請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程文件proj3。本題創(chuàng)建一個小型字符串類,字符串長度不超過l00。程序文件包括pmj3.h、proj3.cpp、writeToFile.obj。補充完成重載賦值運算符函數,完成深復制功能。

      屏幕上輸出的正確結果應該是:

      Hello!

      Happy new year!

      補充編制的內容寫在“//**********333**********”與“//**********666**********”兩行之間。

      不得修改程序的其他部分。

      注意:

      程序最后調用writeToFil。函數,使用另一組不同的測試數據,將不同的運行結果輸出到文件0ut•dat中。

      輸出函數writeToFile已經編譯為obj文件。

      //proj3.h

      #include

      #include

      using namespace std;

      class MiniString

      {

      pubhc:

      friend。8tream&operator<<(oatream&output,const MiniString&s)//重載流插入運算符

      { output<

      friend istream&operator>>(istream&input,MiniString&8)//重載流提取運算符

      { char temp[100];//用于輸入的臨時數組

      temp[0]=’\0’://初始為空字符串

      input>>setw(100)>>temp;

      int inLen=strlen(temp);//輸入字符串長度

      if(inLen!=0)

      }

      s.1ength=inLen;//賦長度

      if(s.sPtr!=0)delete[]s.sPtr;//避免內存泄漏

      s.sPtr=Hew char[s.1ength+1];

      strcpy(s.sPtr,temp);//如果8不是空指針,則復制內容

      }

      else s.sPtr[0]=’\0’;//如果s是空指針,則為空字符串

      retum input;

      }

      void modString(const char}string2)//更改字符串內容

      {

      if(strin92 1=0)//如果strin92不是空指針,則復制內容

      {

      if(strlen(strin92)!=length)

      {

      length=strlen(strin92);

      delete[]sPtr;

      sPtr=new char[1ength+1];//分配內存

      }

      strcpy(sPtr,strin92);

      }

      else sPtr[0]=’\0’;//如果string2是空指針,則為空字符串

      }

      MiniString&operator=f const MiniString&otherString);

      MiniString(corot char*s=""):lengtll((s!=0)?strlen(s):0)//構造函數

      {

      sPtT=0:

      if(1ength[=0)

      setString(S);

      }

      ~MiniString()//析構函數

      {delete[]sPtr;}

      private:

      int length;//字符串長度

      char*sPtr;//指向字符串起始位置

      void setString(const char*string2)//輔助函數

      {

      sPtr=Dew char[str|en(string2)+1];//分配內存

      if(stnIl92!=0)strcpy(sPtr,string2);//如果string2不是空指針,則復制內容

      else slur[0]='\0';//如果string2是空指針,則為空字符串

      }

      };

      //pwj3.cpp

      #'include

      #include

      using namespace std;

      #include”proj3.h”

      MiniString&MiniStrin9::0perator=(const MiniString&otherString)

      {//重載賦值運算符函數。提示:可以調用輔助函數setString

      //*************333**********

      //*************666**********

      }

      int main()

      {

      MiniSu'ing strl(”Heuo!”),str2;

      void writeToFile(const char*);

      sir2=strl;//使用重載的賦值運算符

      str2.modString("Happy new year!");

      cout<

      cout<

      writeToFile("");

      return 0;

      }

      參考解析:

      length=otherString.1ength; //把對象字符串0therString的長度賦值給變量length setString(otherString.sPtr); //調用函數setstring,實現(xiàn)給類變量sptr分配空間,以及逐個把對象0therstring字符串的值復制到sptr中 return}this: //返回被賦值的對象

      以上內容是關于2016年計算機二級考試C++考前測試題及答案的介紹,由唯學網計算機等級考試欄目小編提供,因此考生如若獲知更多關于考試資訊、復習指導等內容,請隨時關注唯學網,小編會在第一時間為考生發(fā)布相關的報道。

      0% (0)
      0% (10)
      已有條評論