一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

計算機二級C++考試試卷及答案

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

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

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

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

  計算機二級C++考試試卷及答案 1

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

  1.數據的存儲結構是指(  )。

  A.數據所占的存儲空間

  B.數據的邏輯結構在計算機中的存放形式

  C.數據在計算機中的順序存儲方式

  D.存儲在計算機外存中的數據

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

  A.屬性

  B.關(guān)系

  C.鍵

  D.域

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

  A.125

  B.n/Z

  C.n

  D.n+1

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

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

  B.1或多于1

  C.0或1

  D.至少有2個(gè)

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

  A.R-S

  B.R×S

  C.R∩S

  D.R∪S

  6.關(guān)于結構化程序設計原則和方法的描述錯誤的是(  )。

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

  B.復雜結構應該用嵌套的基本控制結構進(jìn)行組合嵌套來(lái)實(shí)現

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

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

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

  A.并運算

  B.交運算

  C.差運算

  D.積運算

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

  A.在面向對象的程序設計中,各個(gè)對象之間具有密切的關(guān)系

  B.在面向對象的程序設計中,各個(gè)對象都是公用的

  C.在面向對象的程序設計中,各個(gè)對象之間相對獨立,相互依賴(lài)性小

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

  9.結構化程序設計的三種基本結構是(  )。

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

  B.順序、選擇和重復

  C.遞歸、堆棧和隊列

  D.調用、返回和轉移

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

  A.需求分析階段

  B.邏輯設計階段

  C.概念設計階段

  D.物理設計階段

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

  A.調用該函數時(shí)系統臨時(shí)

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

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

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

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

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

  C.if語(yǔ)句結構中必須有else語(yǔ)句

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

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

  A.ios:in

  B.ios:out

  C.ios:inlios:out

  D.沒(méi)有默認

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

  A.構造函數

  B.抽象類(lèi)

  C.派生類(lèi)

  D.以上都不對

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

  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{…},其中友元函數f對特定類(lèi)型T(如int),使函數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;

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

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

  B.語(yǔ)句MyClassP,my;會(huì )調用兩次類(lèi)MyClass的構造函數

  C.對語(yǔ)句P.SetVariable(5)的調用是正確的

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

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

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

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

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

  D.break語(yǔ)句可用于if條件判斷語(yǔ)句內

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

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

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

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

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

  20.已知類(lèi)A有公用數據成員a,并重載了=運算符,且有Aobj2;constAptr=newA;,則下列語(yǔ)句錯誤的是(  )。

  A.ptr->a=100;

  B.ptr=&obj2;

  C.ptr++;

  D.obj2=ptr;

  21.可以用P.a的形式訪(fǎng)問(wèn)派生類(lèi)對象P的基類(lèi)成員a,其中a是(  )。

  A.私有繼承的公有成員

  B.公有繼承的私有成員

  C.公有繼承的保護成員

  D.公有繼承的公有成員

  22.下面程序的運行結果為(  )。

  #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.設有定義charstr[80];以下不能將輸入數據first\nsecond\n讀取到數組str中的語(yǔ)句是(  )。

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

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

  C.cin>>str;

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

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

  #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)對象定義語(yǔ)句中錯誤的是(  )。

  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的成員函數不得訪(fǎng)問(wèn)類(lèi)B的成員

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

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

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

  B.虛基類(lèi)的構造函數在非虛基類(lèi)之后調用

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

  D.若虛基類(lèi)由非虛基類(lèi)派生而來(lái),則仍然先調用基類(lèi)構造函數,再調用派生類(lèi)的構造函數

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

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

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

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

  D.實(shí)現運行時(shí)多態(tài)性的機制稱(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;

  }

  程序執行后的輸出結果是(  )。

  A.10,10,10

  B.10,12,14

  C.8,10,12

  D.8,12,10

  31.在下列程序的橫線(xiàn)處填上適當的內容,使程序執行后的輸出結果為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;

  }

  執行后的輸出結果是()。

  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;

  }

  執行上面程序的過(guò)程中,構造函數Demo(  )和Demo(constDem0&x)被調用的次數分別是(  )。

  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è)程序的輸出結果是(  )。

  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;

  }

  程序的輸出結果是(  )。

  A.va1=10const:va1=20

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

  C.const:va1=10val=20

  D.val=10va1=20

  36.關(guān)于函數中的<返回類(lèi)型>。下列表述中錯誤的是(  )。

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

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

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

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

  37.Sample是一個(gè)類(lèi),執行下面語(yǔ)句后,調用Sample類(lèi)的構造函數的次數是(  )。

  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中保護成員變量的個(gè)數是(  )。

  A.1

  B.2

  C.3

  D.4

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

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

  B.賦值運算符只能重載為成員函數

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

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

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

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

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

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

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

  【參考答案及解析】

  1.B!窘馕觥繑祿拇鎯Y構,又稱(chēng)為數據的物理結構,是數據的邏輯結構在計算機中的存放形式。數據的存儲結構有順序結構、鏈式結構、散列結構和索引結構等。

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

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

  4.C!窘馕觥繕(shù)具有明顯的層次關(guān)系,即樹(shù)是一種層次結構。在樹(shù)結構中,根結點(diǎn)在第一層上。當樹(shù)為非空時(shí),樹(shù)中有且只有一個(gè)根結點(diǎn),當樹(shù)為空時(shí),樹(shù)中根結點(diǎn)的數目為0。

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

  6.C!窘馕觥肯拗剖褂肎OTO語(yǔ)句是結構化程序設計的原則和方法之一,但不是絕對不允許使用GOTO語(yǔ)句。其他三項為結構化程序設計的原則。

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

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

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

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

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

  12.D!窘馕觥勘绢}主要考查C++語(yǔ)言的基本語(yǔ)法,選項A中應該為m>n‖m  13.D!窘馕觥渴褂胕fstream流類(lèi)定義流對象并打開(kāi)磁盤(pán)文件時(shí),文件沒(méi)有默認的打開(kāi)方式。其中ios:in是為輸入而打開(kāi);iso:out是為輸出而打開(kāi)。

  14.C!窘馕觥繕嬙旌瘮蛋J構造函數和拷貝構造函數等,析構函數和構造函數一樣屬于類(lèi)的特殊的成員函數。而友元函數則是為了增加類(lèi)的訪(fǎng)問(wèn)靈活性而允許其他類(lèi)的成員函數或全局函數訪(fǎng)問(wèn)類(lèi)的內部變量或成員函數的一種機制,其缺點(diǎn)是破壞了類(lèi)的封裝性。

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

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

  17.D!窘馕觥空Z(yǔ)句p=&my;是把對象my的地址值賦給指針變量P。語(yǔ)句MyClassP,my;,由于P只是一個(gè)指向對象的指針,因此定義指針P不調用構造函數,所以此語(yǔ)句只調用一次構造函數。對成員函數的引用可以通過(guò)兩種形式:指針->成員函數(形參表)或者對象名.成員函數名(形參表)。

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

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

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

  21.D!窘馕觥恐挥泄欣^承的公有成員才能被派生類(lèi)的對象直接訪(fǎng)問(wèn),其他的情況都會(huì )因為訪(fǎng)問(wèn)權限問(wèn)題產(chǎn)生錯誤。

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

  23.D!窘馕觥勘绢}考查cin流對象的幾種成員函數get,getline,read及流提取符>>的使用規則。

  24.C!窘馕觥坑芍骱瘮祄ain入手,定義TestClass類(lèi)的對象cs1,執行cs1.va1,其中va1為靜態(tài)變量,根據intTestClass:val=0;初始化,TestClass中的TestClass(){val++;}構造函數執行后,val值為1。主函數中接著(zhù)定義對象cs2,cs3,cs4。執行cout<  25.B!窘馕觥勘绢}考查構造函數的應用。對象建立用初始化列表對數據成員進(jìn)行時(shí)。列表中的參數類(lèi)型要與構造函數中形參類(lèi)型一致。B選項中第二個(gè)參數為13301111155,是字符串,而構造函數中第二個(gè)形參為char型,兩者不一致造成錯誤。

  26.D!窘馕觥柯暶髋缮(lèi)的一般形成為class派生類(lèi)名:[繼承方式]基類(lèi)名。其中繼承方式包括public、private和protected。而virtual為C++中的關(guān)鍵字,所以選項C錯。虛函數的使用方法是在基類(lèi)用virtual聲明成員函數為虛函數。

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

  28.B!窘馕觥刻摶(lèi)的引入就是為了消除二義性,其構造函數的調用仍然是按照繼承的順序進(jìn)行的,對于多個(gè)虛基類(lèi)則按它們說(shuō)明的次序調用,虛基類(lèi)的構造函數先于非虛基類(lèi)的構造函數執行。

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

  30.D!窘馕觥渴紫榷xTestClass3的對象obj,參數為10。其中TestClass3為T(mén)estClass1和TestClass2的派生類(lèi)。然后調用disp成員函數。disp中首先執行TestClassl:disp();,然后執行TestClass2:disp();,最后執行輸出語(yǔ)句cout<  31.D!窘馕觥坑芍骱瘮祄ain入手,定義了類(lèi)D對象obi。其中D為類(lèi)B和C的公有繼承,A是C的

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

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

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

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

  35.D!窘馕觥吭诮㈩(lèi)對象時(shí),構造函數的執行順序如下:執行基類(lèi)的構造函數,調用順序按照各個(gè)基類(lèi)被繼承的聲明順序;執行成員對象的構造函數,調用順序按照各個(gè)成員在類(lèi)中的聲明順序;執行自身的構造函數。根據以上總結以及題意可知答案選擇D選項。

  36.B!窘馕觥<返回類(lèi)型>又稱(chēng)函數類(lèi)型,表示一個(gè)

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

  37.D!窘馕觥繕嬙旌瘮翟趯ο蟊粍(chuàng )建時(shí)由系統自動(dòng)調用,本題共創(chuàng )建3個(gè)對象。

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

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

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

  計算機二級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);

  其輸出的結果是( )。

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

  2. 單選題:

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

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

  3. 單選題:

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

  答案:C(O 類(lèi)內)。因為私有函數只能在類(lèi)的內部被訪(fǎng)問(wèn)。

  4. 填空題:

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

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

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

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

  參考代碼:

  void fun(char s1, char s2)

  {

  int i;

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

  {

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

  {

  s2[i] = s1[i];

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

  i++;

  }

  else

  {

  s2[i] = s1[i];

  }

  }

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

  }

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

  計算機二級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);

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

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

  2. 程序改錯題示例:

  #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;

  }

  錯誤改正如下:

  第一個(gè)錯誤:`for` 循環(huán)的條件應該是 `x < 5` 而不是 `x <= 5`,因為數組的下標是從 0 開(kāi)始到 `數組長(cháng)度 1`,這里數組 `a` 和 `b` 的長(cháng)度都是 5,所以循環(huán) 5 次即可。

  第二個(gè)錯誤:輸出語(yǔ)句中的換行符應該是 `\n` 而不是 `endl`,當然這在一些編譯器中可能不會(huì )導致錯誤,但按照標準 C++ 的寫(xiě)法應該是 `\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)單應用題示例:

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

  int fun(int n)

  {

  int a[4];

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

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

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

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

  for (int i = 0; i < 4; i++) // 每位數字加 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. 綜合應用題示例:

  給出的類(lèi)定義不完整,按要求完成類(lèi)的定義,使得程序的輸出結果為 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;

  }

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

計算機二級C++考試測試卷及答案08-21

計算機二級考試C++試題及答案08-01

計算機二級考試C++試題及答案10-08

2017最新計算機二級考試C++試題及答案10-24

2017年計算機二級考試C++考試試題及答案09-24

2017年計算機二級考試C++考試試題及答案11-03

計算機二級考試C++試題06-10

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

2016計算機等級考試二級C++上機模擬試題及答案07-14

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看