亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

報名

9月計算機二級《C++》試題與解析

時間:2024-07-31 15:10:29 報名 我要投稿
  • 相關推薦

2017年9月計算機二級《C++》試題與解析

  1下列有關內(nèi)聯(lián)函數(shù)的敘述中,正確的是( )。

2017年9月計算機二級《C++》試題與解析

  A.內(nèi)聯(lián)函數(shù)在調(diào)用時發(fā)生控制轉(zhuǎn)移

  B.內(nèi)聯(lián)函數(shù)必須通過關鍵字inline來定義

  C.內(nèi)聯(lián)函數(shù)是通過編譯器來實現(xiàn)的

  D.內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語句必須是return語句

  參考答案:C

  參考解析:一般函數(shù)進行調(diào)用時,要將程序執(zhí)行權轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時,是將調(diào)用表達式用內(nèi)聯(lián)函數(shù)體來替換,所以在調(diào)用時不發(fā)生控制轉(zhuǎn)移。在類內(nèi)部實現(xiàn)的函數(shù)都是內(nèi)聯(lián)函數(shù),可以不用inline定義;只有函數(shù)外部定義的內(nèi)聯(lián)函數(shù)才必須加關鍵字inline。編譯系統(tǒng)并非對內(nèi)聯(lián)函數(shù)必須使用內(nèi)聯(lián),而且根據(jù)具體情況決定。內(nèi)聯(lián)函數(shù)不是必須要有返回值的。

  2語句int*P=&k;定義了指針P,與這個語句等效的語句序列是( )。

  A.int* p;P=&k;B.int * P;P=k;C.int * p;* P=&k;D.int * p;* P=k;

  參考答案:A

  參考解析:本題考查指針和地址,題目中定義了一個指向變量k的一個指針p,那么與題目中等效的表達式A選項,即先定義一個指向整型的指針,然后指向k的地址。

  3有如下程序:

  #include

  using namespace std;

  class A

  {

  public:

  A(){cout<<”A”;}

  -A(){cout<<”-A”;}

  };

  class B:public A

  {

  A*P;

  public:

  B(){cout<<”B”;P=new A();}

  -B(){cout<<”~B”;delete p;}

  };

  int main()

  {

  B obj;

  return 0;

  }

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

  A.BAA~A~B~AB.ABA~B~A~AC.BAA~B~A~AD.ABA~A~B~A

  參考答案:B

  參考解析:本題考查派生類的構造函數(shù)和析構函數(shù),在定義一個派生類的對象時,先調(diào)用基類的構造函數(shù),然后再執(zhí)行派生類的構造函數(shù)。對象釋放時,先執(zhí)行派生類的析構函數(shù),再執(zhí)行基類的析構函數(shù)。所以本題答案為B。

  4有如下類定義:

  class AA

  {

  im 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{cout<

  };

  其中四個函數(shù)的定義中正確的是(  )。

  A.①B.②C.③D.④

  參考答案:B

  參考解析:本題考查常成員函數(shù),常成員函數(shù)只能引用本類中的數(shù)據(jù)成員,而不能修改它。所以本題答案為B。

  5若要對Data類中重載的加法運算符成員函數(shù)進行聲明,下列選項中正確的是( )。

  A.Data+(DatA.;B.Data operator+(DatA.;C.Data+operator(DatA.;D.operator+(Data,DatA.;

  參考答案:B

  參考解析:根據(jù)重載加法運算符的格式,只有B選項正確。

  6有如下數(shù)組聲明:int num[10];,下標值引用錯誤的是( )。

  A.num[10]B.num[5]C.num[3]D.hum[o]

  參考答案:A

  參考解析:數(shù)組定義中的數(shù)字指的是數(shù)組的大小,而下標是從0開始的,所以本題中數(shù)組的最后一個元素是num[9]。

  7將前綴運算符“--”重載為非成員函數(shù),下列原型中能正確用于類中說明的是(  )。

  A.DeCr&operator--(int);B.DeCr operator--(DeCr&,int);C.friend DeCr&operator--(DeCr&);D.friend DeCr operator--(DeCr&,int);

  參考答案:C

  參考解析:把“--”運算符重載為非成員(友元)函數(shù)格式:friend<返回類型>operator--()是前綴的格式;friend<返回類型>operator--(int)是后綴的格式。當然也可以有參數(shù)如題中C選項所示。

  8如果派生類以proteCted方式繼承基類,則原基類的proteCted成員和publiC成員在派生類中的訪問屬性分別是( )。

  A.publiC和publiCB.publiC和proteCtedC.proteCted和publiCD.proteCted和proteCted

  參考答案:D

  參考解析:本題考查保護繼承中派生類對基類的訪問屬性,在受保護繼承中,基類的公用成員和保護成員在派生類中成了保護成員,其私有成員仍為基類私有,所以本題答案為D。

  9在函數(shù)中,可以用aut0、extem、register和static這四個關鍵字中的一個來說明變量的存儲類型,如果不說明存儲類型,則默認的存儲類型是(  )。

  A.autoB.externC.registerD.static

  參考答案:A

  參考解析:變量的存儲方法分為靜態(tài)存儲和動態(tài)存儲兩大類,包含4種:自動的(auto)、靜態(tài)的(static)、寄存器的(register)、外部的(extem)。變量如果沒有說明存儲類型,那么默認就是aut0。

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

  #include

  int rain(iltl a,int B)

  {

  if(a

  else retum b;

  retum 0;

  }

  void main()

  {

  eout<

  }

  A.0B.1C.2D.3

  參考答案:B

  參考解析:本題考查的是函數(shù)的調(diào)用,第一次調(diào)用min(2,3),因為2<3,所以返回值為2,第二次調(diào)用min(1,2),因為l<2,所以返回1。

  11在黑盒測試方法中,設計測試用例的主要根據(jù)是( )。

  A.程序內(nèi)部邏輯B.程序外部功能C.程序數(shù)據(jù)結(jié)構D.程序流程圖

  參考答案:B

  參考解析:黑盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進行測試和驗證,黑盒測試完全不考慮程序內(nèi)部的邏輯結(jié)構和內(nèi)部特性,只根據(jù)程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能說明,所以本題選擇B。

  12在面向?qū)ο蠓椒ㄖ校粚儆?ldquo;對象”基本特點的是(  )。

  A.一致性B.分類性C.多態(tài)性D.標識唯一性

  參考答案:A

  參考解析:對象有如下一些基本特點:標識唯一性、分類性、多態(tài)性、封裝性、模塊獨立性好。所以選擇A。

  13有以下程序:

  #include

  void fun(int a,int b,int C.

  { a=456,b=567,c=678;}

  void main()

  {

  int X=10,Y=20,Z=30;

  fun(X,Y,z);

  aout<

  }

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

  A.30,20,10B.10,20,30C.456,567,678D.678,567,456

  參考答案:B

  參考解析:本題考查函數(shù)中變量的作用范圍,在主函數(shù)中給變餐x、Y、Z賦值,然后將其作為實參傳遞給了函數(shù)fun(),雖然在函數(shù)fun()中改變了這3個變量的值,但只是同名的局部變量,不影響函數(shù)中變量的值,所以在調(diào)用函數(shù)fun()結(jié)束后,主函數(shù)3個變量的值未改變。

  14對類的構造函數(shù)和析構函數(shù)描述正確的是( )。

  A.構造函數(shù)可以重載,析構函數(shù)不能重載

  B.構造函數(shù)不能重載,析構函數(shù)可以重載

  C.構造函數(shù)可以重載,析構函數(shù)也可以重載

  D.構造函數(shù)不能重載,析構函數(shù)也不能重裁

  參考答案:A

  參考解析:一個類中只能定義一個析構函數(shù),否則會造成對同…對象的多次刪除;而構造函數(shù)可以根據(jù)不同的參數(shù)個數(shù)和類型進行多次重載。

  15通過運算符重載,可以改變運算符原有的(  )。

  A.操作數(shù)類型B.操作數(shù)個數(shù)C.優(yōu)先級D.結(jié)合性

  參考答案:A

  參考解析:重載運算符的規(guī)則如下:①c++不允許用戶自己定義新的運算符,只能對已有的C++運算符進行重載;②C++不能重載的運算符只有5個;③重載不能改變運算符運算對象的個數(shù);④重載不能改變運算符的優(yōu)先級和結(jié)合性;⑤重載運算符的函數(shù)不能有默認的參數(shù);⑥重載的運算符必須和用戶定義的自定義類型的對象一起使用,至少應有一個是類對象,即不允許參數(shù)全部是c++的標準類型。故本題答案為A。

  16下列關于c++流的描述中,錯誤的是(  )。

  A.cout>>’A’表達式可輸出字符A

  B.eof()函數(shù)可以檢測是否到達文件尾

  C.對磁盤文件進行流操作時,必須包含頭文件fstream

  D.以ios_base::0ut模式打開的文件不存在時,將自動建立一個新文件

  參考答案:A

  參考解析:本題考查c++流,想要輸出字符“A”,則應該是cout<<“A”,所以本題答案為A。

  17耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是(  )。

  A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨立性

  B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性

  C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度

  D.內(nèi)聚性是指模塊間互相連接的緊密程度

  參考答案:B

  參考解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性,所以A錯誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度,所以C與D錯誤。

  18若有如下類聲明:

  Class MyClass{ publiC:

  MyClass(  ){Cout<<1;} };

  執(zhí)行下列語句

  MyClass a,b[2],*p[2]; 程序的輸出結(jié)果是(  )。

  A.11B.111C.1111D.11111

  參考答案:B

  參考解析:本題考查默認構造函數(shù)和帶參數(shù)的構造函數(shù),題目中定義一一個對象a以及對象數(shù)組b[2],共執(zhí)行3次構造函數(shù),對象指針不調(diào)用構造函數(shù)。所以本題答案為B。


更多計算機二級《C++》相關試題分享:

1.2017年9月計算機二級《C++》試題與解析

2.2017年3月計算機二級C++考前練習題及答案

3.2017年3月計算機二級C++備考習題及答案

4.C++備考二級考試練習試題2017

5.C++備考二級考試練習試題2017

6.2017年3月計算機二級C++考前復習題及答案

7.2017年3月計算機二級C++練習題及答案

8.2017年計算機二級C++提分訓練題

9.2017年計算機二級C++考試知識鞏固題

10.全國計算機二級《C++》精選試題及答案2017

  19下列函數(shù)模板的定義中,合法的是(  )。

  A.templateT abs(T X){return x<07-x:X;}

  B.template ClassT abs(T x){return x<07-X:x;}

  C.template Tabs(T X){return x<07-x:X;}

  D.template T abs(T x){return X<0?-X:x;}

  參考答案:A

  參考解析:本題考查模板函數(shù)的基本概念.根據(jù)模板函數(shù)的定義,所以答案為A。

  20有如下程序:

  #include

  using namespace std;

  class Base{

  int x:

  public:

  Base(int n=0):x(n){cout<

  int getX()const{return x;}

  };

  cjass Derived:public Base{

  int Y:.

  J;;Iublic:

  Derived(int m,int n):y(m),Base(n){cout<

  Derived(int m):Y(m){cout<

  };

  int main()

  {

  Derived dl(3),d2(5,7);

  retum 0;

  }

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

  A.375B.357C.0375D.0557

  參考答案:C

  參考解析:本題考查派生類的構造函數(shù)和析構函數(shù),在定義一個派生類的對象時,先調(diào)用基類的構造函數(shù),然后再執(zhí)行派生類的構造函數(shù),對象釋放時,先執(zhí)行派生類的析構函數(shù)。再執(zhí)行基類的析構函數(shù)。本題中定義了一個對象d1,先執(zhí)行基類的構造函數(shù)輸出0,再執(zhí)行派生類的構造函數(shù)輸出3,然后定義了一個對象d2(5,7),其中需要調(diào)用基類的構造函數(shù)輸出7.最后輸出5,所以答案為c。

  21關于在調(diào)用模板函數(shù)時模板實參的使用,下列表述中正確的是(  )。

  A.對于虛擬類型參數(shù)所對應的模板實參,如果能從模板函數(shù)的實參中獲得相同的信息,則都可以省略

  B.對于虛擬類型參數(shù)所對應的模板實參,如果它們是參數(shù)表中的最后的若干個參數(shù),則都可以省略

  C.對于虛擬類型參數(shù)所對應的模板實參,若能夠省略則必須省略

  D.對于常規(guī)參數(shù)所對應的模板實參,任何情況下都不能省略

  參考答案:D

  參考解析:在調(diào)用一個模板函數(shù)時,編譯系統(tǒng)需要足夠的信息來判別每個虛擬類型參數(shù)所對應的實際類型,可以從兩個不同的渠道獲得這樣的信息:從模板實參表(用“<>”括起來的參數(shù)表)或從模板函數(shù)實參表(用“()”括起來的參數(shù)表)。如果從后者獲得的信息已經(jīng)能夠判定其中部分或全部虛擬類型參數(shù)所對應的實際參數(shù),而且它們又正好是參數(shù)表中最后的若干參數(shù),則模板實參表中的那幾個參數(shù)可以省。如果模板實參表中的實參都被省了,則空表“<>”也可以不要,因此選項D錯誤。反之,對于某個模板實參,如果從模板函數(shù)的實參表中無法獲得同樣的信息,就不能省;或者雖然能夠獲得同樣的信息,但在它后面還有其他不能省的實參,則其自身還是不能省。

  22有如下程序段:

  int i=0,J=1;

  int&r=i;//①

  r=j;//②

  int*P=&i;//⑧

  *P=&r;//④

  其中會產(chǎn)生編譯錯誤的語句是(  )。

  A.④B.③C.②D.①

  參考答案:A

  參考解析:本題考查指針和引用。①為引用,使用正確;④中&r表示一一個地址,而* P已經(jīng)是一個值了,不能將一個指針賦值給一個值,所以編譯錯誤。

  23有如下程序:

  #include

  using namespace std;

  class Obj{

  static int i;

  public:

  Obj(){i++;}

  一Obj(){i一一;}

  static int getVal(){return i;}

  };

  int Obj::i=0:

  void f(){Obj ob2;cout<

  int main(){

  Obj obl;

  f();

  Obj}ob3=new Obj;cout< p=""><>

  delete ob3;cout<

  return 0;

  }

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

  A.232B.231C.222D.221

  參考答案:D

  參考解析:本題考查構造函數(shù)和析構函數(shù)的調(diào)用順序,調(diào)用順序為先構造的后析構,后構造的先析構。本題中先定義了一個對象ob1,會執(zhí)行構造函數(shù),那么i就變?yōu)榱薼;再執(zhí)行函數(shù)f后,由于又定義了一個對象ob2,所以再次執(zhí)行構造函數(shù),i就變?yōu)榱?,輸出了2。函數(shù)執(zhí)行完后執(zhí)行析構函數(shù),i變?yōu)榱?,然后又定義了對象指針,i變?yōu)榱?。釋放ob3后,i變?yōu)榱?,所以答案為D。

  24有如下類定義:

  class MyBase{

  int k;

  public:

  MyBase(int n=O):k(n)}}

  int value()eonst{return k;}

  };

  class MyDerived:MyBase{

  intj;

  public:

  MyDerived(int i):j(i)}}

  int getK()const{return k;}

  int getJ()const{return j;}

  };

  編譯時發(fā)現(xiàn)有一處語法錯誤,對這個錯誤最準確的描述是(  )。

  A.函數(shù)9etK試圖訪問基類的私有成員變量k

  B.在類MyDerived的定義中,基類名MyBase前缺少關鍵字public、protected或private

  C.類MyDerived缺少一個無參的構造函數(shù)

  D.類MyDerived的構造函數(shù)沒有對基類數(shù)據(jù)成員k進行初始化

  參考答案:A

  參考解析:默認繼承方式為私有繼承,私有繼承將基類的公用成員和保護成員都變?yōu)閞私有成員,基類的私有成員依然屬于基類私有,派生類不能訪問基類的私有成員。所以A選項正確。

  25下列關于虛基類的描述,錯誤的是( )。

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

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

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

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

  參考答案:B

  參考解析:虛基類的引入就是為j-消除。二義性,其構造函數(shù)的調(diào)用仍然是按照繼承的順序進行的,對于多個虛基類則按它們說明的次序調(diào)用,虛基類的構造函數(shù)先于非虛基類的構造函數(shù)執(zhí)行。

  26在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數(shù)是(  )。

  A.O(n)B.O(n2)C.O(1092n)D.0(n1092n)

  參考答案:C

  參考解析:當有序線性表為順序存儲時才能用:二分法查找?梢宰C明的是對于長度為n的有序線性表,在最壞情況下,二分法查找只需要比較l092n次,而順序查找需要比較n次。

  27在軟件開發(fā)中,需求分析階段可以使用的工具是(  )。

  A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

  參考答案:B

  參考解析:在需求分析階段可以使用的工具有數(shù)據(jù)流圖DFD圖,數(shù)據(jù)字典DD,判定樹與判定表,所以選擇B。

  28有如下類聲明:

  class Base{

  protected:

  int amount;

  public:

  Base(int n=0):amount(n){}

  int getAmount()const{retum amount;}

  };

  class Derived:public Base{

  protected:

  int value;

  public:

  Derived(int m,int n):value(m),Base(n){}

  int getData()const{return value+amount;}

  }:

  已知x是一個Derived對象,則下列表達式中正確的是( )。

  A.x.value+X.getAmount()B.x.getData()一x.getAmount()C.x.getData()一x.amountD.x.value+X.amount

  參考答案:B

  參考解析:本題考查公有繼承中派生類對象對基類的訪問屬性。在公有繼承中,派生類對象只能訪問基類的公有成員,而不能}方問基類的保護成員和私有成員。題中x是派生類的對象,只能訪問基類中公有的Base()和getAmount()成員,而不能訪問保護類型的amount成員,故選項C、D錯誤。而類對象對類成員的訪問也存在類似的情況,即類對象只能訪問類的公有成員,而value是Derived的保護成員,所以A選項也錯誤。故答案為B。

  29下面描述中,不屬于軟件危機表現(xiàn)的是( )。

  A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高

  參考答案:A

  參考解析:軟件危機主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進度無法控制;軟件質(zhì)撼難以保證;軟件不可維護或維護程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應用需求的增長。所以選擇A。

  30有如下程序:

  #inClude using namespaCe std: Class CD{

  publiC:

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

  Char name[80]; };

  int main(){

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

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

  A.CCCCB.CCCC.CCD.C

  參考答案:B

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


更多計算機二級《C++》相關試題分享:

1.2017年9月計算機二級《C++》試題與解析

2.2017年3月計算機二級C++考前練習題及答案

3.2017年3月計算機二級C++備考習題及答案

4.C++備考二級考試練習試題2017

5.C++備考二級考試練習試題2017

6.2017年3月計算機二級C++考前復習題及答案

7.2017年3月計算機二級C++練習題及答案

8.2017年計算機二級C++提分訓練題

9.2017年計算機二級C++考試知識鞏固題

10.全國計算機二級《C++》精選試題及答案2017

【9月計算機二級《C++》試題與解析】相關文章:

2016年9月計算機二級《C++》機考試題及答案08-11

2017年3月計算機二級《C++》鞏固試題及答案07-20

2017年3月計算機二級《C++》鞏固試題及答案06-29

2016年9月計算機二級VB考前測試題與解析07-20

計算機二級C++模擬試題及答案09-22

計算機二級C++程序題及答案解析10-25

2016年9月計算機二級《C++》上機題庫及答案09-01

9月計算機等級考試二級Java試題10-29

9月計算機二級MSOffice全真模擬試題及答案06-11

2016年9月計算機二級《MSOffice》試題與答案08-30