射精一区欧美专区|国产精品66xx|亚洲视频一区导航|日韩欧美人妻精品中文|超碰婷婷xxnx|日韩无码综合激情|特级黄片一区二区|四虎日韩成人A√|久久精品内谢片|亚洲成a人无码电影

您現(xiàn)在的位置:首頁(yè) > IT認(rèn)證 > 練習(xí)中心 >

3月計(jì)算機(jī)等級(jí)考試二級(jí)C++筆試試題


  一、選擇題

 。1)下列關(guān)于棧敘述正確的是

  A)棧頂元素最先能被刪除    

  B)棧頂元素最后才能被刪除

  C)棧底元素永遠(yuǎn)不能被刪除  

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

  (2)下列敘述中正確的是

  A)有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)

  B)只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)

  C)循環(huán)鏈表是非線性結(jié)構(gòu)

  D)雙向鏈表是非線性結(jié)構(gòu)

 。3)某二叉樹(shù)共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二叉樹(shù)的深度為(假設(shè)根結(jié)點(diǎn)在第1層)

  A)3         

  B)4         

  C)6         

  D)7

 。4)在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是

  A)軟件集成測(cè)試計(jì)劃        

  B)軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)

  C)用戶手冊(cè)                

  D)軟件需求規(guī)格說(shuō)明書(shū)

  (5)結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括

  A)順序結(jié)構(gòu)                

  B)GOTO跳轉(zhuǎn)

  C)選擇(分支)結(jié)構(gòu)        

  D)重復(fù)(循環(huán))結(jié)構(gòu)

 。6)下面描述中錯(cuò)誤的是

  A)系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)

  B)軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過(guò)程

  C)數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一

  D)PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具

  (7)負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是

  A)數(shù)據(jù)定義語(yǔ)言

  B)數(shù)據(jù)管理語(yǔ)言

  C)數(shù)據(jù)操縱語(yǔ)言

  D)數(shù)據(jù)控制語(yǔ)言

 。8)一個(gè)教師可講授多門課程,一門課程可由多個(gè)教師講授。則實(shí)體教師和課程間的聯(lián)系是

  A)1:1聯(lián)系   

  B)1:m聯(lián)系

  C)m:1聯(lián)系   

  D)m:n聯(lián)系

 。9)有三個(gè)關(guān)系R、S和T如下:

  則由關(guān)系R和S得到關(guān)系T的操作是

  A)自然連接  

  B)交        

  C)除         

  D)并

 。10)定義無(wú)符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是

  A)-369      

  B)369       

  C)0.369      

  D)整數(shù)集合{1,2,3,4,5}

 。11)為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡(jiǎn)單的函數(shù)定義為

  A)內(nèi)聯(lián)函數(shù)  

  B)重載函數(shù)  

  C)遞歸函數(shù)   

  D)函數(shù)模板

 。12)若AA為一個(gè)類,a為該類的非靜態(tài)數(shù)據(jù)成員,在該類的一個(gè)成員函數(shù)定義中訪問(wèn)a時(shí),其書(shū)寫(xiě)格式為

  A)a         

  B)AA.a      

  C)a()        

  D)AA::a()

 。13)當(dāng)派生類從一個(gè)基類保護(hù)繼承時(shí),基類中的一些成員在派生類中成為保護(hù)成員,這些成員在基類中原有的訪問(wèn)屬性是

  A)任何      

  B)公有或保護(hù)

  C)保護(hù)或私有

  D)私有

 。14)若要對(duì)Data類中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項(xiàng)中正確的是

  A)Data+(Data);

  B)Data operator+(Data);

  C)Data+operator(Data);

  D)operator+(Data,Data);

  (15)下列關(guān)于函數(shù)模板的描述中,正確的是

  A)函數(shù)模板是一個(gè)實(shí)例函數(shù)

  B)使用函數(shù)模板定義的函數(shù)沒(méi)有返回類型

  C)函數(shù)模板的類型參數(shù)與函數(shù)的參數(shù)相同

  D)通過(guò)使用不同的類型參數(shù),可以從函數(shù)模板得到不同的實(shí)例函數(shù)

 。16) C++系統(tǒng)預(yù)定義了4個(gè)用于標(biāo)準(zhǔn)數(shù)據(jù)流的對(duì)象,下列選項(xiàng)中不屬于此類對(duì)象的是

  A)cout      

  B)cin       

  C)cerr      

  D)cset

 。17)Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是

  A)cpp       

  B)exe       

  C)obj        

  D)lik

 。18)字符串“a+b=12nt”的長(zhǎng)度為

  A)12        

  B)10        

  C)8          

  D)6

 。19)有如下程序:

  #include

  using namespace std;

  int main(){

  int f,f1=0,f2=1;

  for(int i=3;i<=6;i++){

  f=f1+f2;

  f1=f2;f2=f;

  }

  cout<  return 0;

  }

  運(yùn)行時(shí)的輸出結(jié)果是

  A)2         

  B)3         

  C)5          

  D)8

   (20)有如下程序:

  #include

  using namespace std;

  int main(){

  int a[6]={23,15,64,33,40,58};

  int s1,s2;

  s1=s2=a[0];

  for(int* p=a+1;p  if(s1>*p) s1=*p;

  if(s2<*p) s2=*p;

  }

  cout<  return 0;

  }

  運(yùn)行時(shí)的輸出結(jié)果是

  A)23        

  B)58        

  C)64         

  D)79

  (21)有如下程序:

  #include

  using namespace std;

  void f1(int& x,int& y) {int z=x; x=y; y=z;}

  void f2(int x;int y)   {int z=x; x=y; y=z;}

  int main(){

  int x=10,y=26;

  f1(x,y);

  f2(x,y);

  cout<  return 0;

  }

  運(yùn)行時(shí)的輸出結(jié)果是

  A)10        

  B)16        

  C)26         

   D)36

   (22)有如下程序:

   #include

   using namespace std;

   class XA{

   int a;

   public:

   static int b;

   XA(int aa):a(aa) {b++;}

   ~XA(){}

   int get(){return a;}

   };

   int XA::b=0;

   int main(){

   XA d1(2),d2(3);

   cout<<:b+endl;>   return 0;

   }

   運(yùn)行時(shí)的輸出結(jié)果是

   A)5         

   B)6         

   C)7          

  D)8

 。23)有如下程序:

  #include

  using namespace std;

  class Point{

  int x,y;

  public:

  Point(int x1=0,int y1=0):x(x1),y(y1){}

  int get(){return x+y;}

  };

  class Circle{

  Point center;

  int radius;

  public:

  Circle(int cx,int cy,int r):center(cx,cy),raaius(r){}

  int get(){return center.get()+radius;}

  };

  int main(){

  Circle c(3,4,5);

  cout<  return 0;

  }

  運(yùn)行時(shí)的輸出結(jié)果是

  A)5         

  B)7         

  C)9          

  D)12

  (24)若要對(duì)類BigNumber中重載的類型轉(zhuǎn)換運(yùn)算符long進(jìn)行聲明,下列選項(xiàng)中正確的是

  A)operator long() const;

  B)operator long(BigNumber);

  C)long operator long() const;

  D)long operator long(BigNumber);

 。25)有如下函數(shù)模板定義:

  template

  T1 FUN(T2 n){return n*5.0;}

  若要求以int型數(shù)據(jù)9作為函數(shù)實(shí)參調(diào)用該模板,并返回一個(gè)double型數(shù)據(jù),則該調(diào)用應(yīng)表示為

  A)FUN(9)                  

  B)FUN<9>

  C)FUN(9)          

  D)FUN<9>(double)

 。26)下列語(yǔ)句都是程序運(yùn)行時(shí)的第1條輸出語(yǔ)句,其中一條語(yǔ)句的輸出效果與其他三條語(yǔ)句不同,該語(yǔ)句是

  A)cout<  B)cout<  C)cout<  D)cout< 。27)下列關(guān)于析構(gòu)函數(shù)的描述中,錯(cuò)誤的是

  A)析構(gòu)函數(shù)可以重載

  B)析構(gòu)函數(shù)由系統(tǒng)自動(dòng)調(diào)用

  C)每個(gè)對(duì)象的析構(gòu)函數(shù)只被調(diào)用一次

  D)每個(gè)類都有析構(gòu)函數(shù)

 。28)下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是

  A)構(gòu)造函數(shù)名與類名相同     

  B)構(gòu)造函數(shù)可以有返回值

  C)構(gòu)造函數(shù)可以重載         

  D)每個(gè)類都有構(gòu)造函數(shù)

 。29)若PAT是一個(gè)類,則程序運(yùn)行時(shí),語(yǔ)句“PAT(*ad)[3];”調(diào)用PAT的構(gòu)造函數(shù)的次數(shù)是

  A)0         

  B)1         

  C)2          

  D)3

 。30)下列描述中,錯(cuò)誤的是

  A)公有繼承時(shí)基類中的公有成員在派生類中仍是公有成員

  B)公有繼承時(shí)基類中的保護(hù)成員在派生類中仍是保護(hù)成員

  C)保護(hù)繼承時(shí)基類中的公有成員在派生類中仍是公有成員

  D)保護(hù)繼承時(shí)基類中的保護(hù)成員在派生類中仍是保護(hù)成員

  (31)生成派生類對(duì)象時(shí),派生類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)的條件是

  A)無(wú)需任何條件

  B)基類中顯式定義了構(gòu)造函數(shù)

  C)派生類中顯式定義了構(gòu)造函數(shù)

  D)派生類構(gòu)造函數(shù)明確調(diào)用了基類構(gòu)造函數(shù)

  (32)下列關(guān)于派生類和基類的描述中,正確的是

  A)派生類成員函數(shù)只能訪問(wèn)基類的公有成員

  B)派生類成員函數(shù)只能訪問(wèn)基類的公有和保護(hù)成員

  C)派生類成員函數(shù)可以訪問(wèn)基類的所有成員

  D)派生類對(duì)基類的默認(rèn)繼承方式是公有繼承

 。33)有如下類模板定義:

  template

  class BigNumber{

  long n;

  public:

  BigNumber(T i):n(i){}

  BigNumber operator+(BigNumber b){

  return BigNumber(n+b.n);

  }

  };

  己知b1、b2是BigNumber的兩個(gè)對(duì)象,則下列表達(dá)式中錯(cuò)誤的是

  A)bl+b2     

  B)b1+3      

  C)3+b1       

  D)3+3

 。34)下列關(guān)于文件流的描述中,正確的是

  A)文件流只能完成針對(duì)磁盤文件的輸入輸出

  B)建立一個(gè)文件流對(duì)象時(shí),必須同時(shí)打開(kāi)一個(gè)文件

  C)若輸入流要打開(kāi)的文件不存在,將建立一個(gè)新文件

  D)若輸出流要打開(kāi)的文件不存在,將建立一個(gè)新文件

 。35)有如下程序:

  #include

  using namespace std;

  class Pair{

  int m,n;

  public:

  Pair(int j,int k):m(j),n(k){}

  int get() {return m;}

  int get() const {return m+n;}

  };

  int main(){

  Pair a(3,5);

  const Pair b(3,5);

  cout+a.get()<  return 0;

  }

  運(yùn)行時(shí)的輸出結(jié)果是

  A)33        

  B)38        

  C)83         

  D)88

  二、填空題

 。1)有序線性表能進(jìn)行二分查找的前提是該線性表必須是 【1】 存儲(chǔ)的。

 。2)一棵二叉樹(shù)的中序遍歷結(jié)果為DBEAFC,前序遍歷結(jié)果為ABDECF。則后序遍歷結(jié)果為 【2】 。

 。3)對(duì)軟件設(shè)計(jì)的最小單位(模塊或程序單元)進(jìn)行的測(cè)試通常稱為 【3】 測(cè)試。

  (4)實(shí)體完整性約束要求關(guān)系數(shù)據(jù)庫(kù)中元組的 【4】 屬性值不能為空。

 。5)在關(guān)系A(chǔ)(S,SN,D)和關(guān)系B(D,CN,NM)中,A的主關(guān)鍵字是S,B的主關(guān)鍵字是D,則稱 【5】 是關(guān)系A(chǔ)的外碼。

 。6)若有定義語(yǔ)句“int x=10,y=20,z=20;”,則表達(dá)式x>z&&y==z的值為 【6】 。

 。7)有如下語(yǔ)句序列:

  int x=-10;while(++x){ }

  運(yùn)行時(shí)while循環(huán)體的執(zhí)行次數(shù)為 【7】 。

 。8)有如下語(yǔ)句序列:

  int arr[2][2]={{9,8},{7,6}};

  int *p=arr[0]+1; cout<<*p<  運(yùn)行時(shí)的輸出結(jié)果是 【8】 。

 。9)函數(shù)fun的功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù),請(qǐng)將函數(shù)補(bǔ)充完整。

  int fun(char *str){

  int num=0;

  while(*str){

  num*=10;

  num+= 【9】 ;

  str++;

  }

  return num;

  }

 。10)若要將函數(shù)“void FriFun();”聲明為類MyClass的友元函數(shù),則應(yīng)在類MyClass的定義中加入語(yǔ)句 【10】 。

 。11)下列程序的輸出結(jié)果為012,請(qǐng)根據(jù)注釋將橫線處的缺失部分補(bǔ)充完整。

  #include

  using namespace std;

  class Test{

  public:

  Test(int a) {data=a;}

  ~Test() {}

  void print(){cout<  private:

  int data;

  };

  int main(){

  Test t[3]={ 【11】 };//對(duì)有3個(gè)元素的Test類對(duì)象數(shù)組t初始化t[i].print();

  for(int i=0;i<3;i++)

  return 0;

  }

 。12)請(qǐng)?jiān)跈M線處填寫(xiě)派生類Derived的繼承方式,使得程序的輸出結(jié)果為Base。

  #include

  using namespace std;

  class Base{

  public:

  void print(){cout<<"Base";}

  };

  class Derived: 【12】 Base{};

  int main(){

  Derived d;

  d.print();

  return 0;

  }

  (13)下列程序的輸出結(jié)果為1 2.3 2 4.6,請(qǐng)將橫線處的缺失部分補(bǔ)充完整。

  #include

  using namespace std;

  class Base{

  public:

  Base(int a):idata(a){}

  void print(){cout<  private:

  int idata;

  };

  class Derived:public Base{

  public:

  Derived(int a;double b): 【13】 ,ddata(b){}

  void print(){Base::print();cout<  private:

  double ddata;

  };

  int main(){

  Derived dl(1,2.3),d2(2,4.6);

  d1.print();

  d2.print();

  return 0;

  }

 。14)下列程序的輸出結(jié)果為-5/8 -3/4,請(qǐng)將橫線處的缺失部分補(bǔ)充完整。

  #include

  using namespace std;

  class Fraction{ //“分?jǐn)?shù)”類

  public:

  Fraction(double a,double b):num(a),den(b){}

  ~Fraction(){}

  //重載取負(fù)運(yùn)算符“-”,返回一個(gè)分?jǐn)?shù)對(duì)象,其分子是原來(lái)分子的相反數(shù)。

  Fraction operator-(){

  【14】

  return f;

  }

  void print(){ cout<  private:

  double num; //分子

  double den; //分母

  };

  int main(){

  Fraction f1(5;8),f2(3,4);

  (-f1).print();(-f2).print();

  return 0;

  }

 。15)函數(shù)Min的功能是返回具有n個(gè)元素的數(shù)組array中的最小值。請(qǐng)將橫線處的缺失部分補(bǔ)充完整,使得程序的輸出結(jié)果為1.24。

  #include

  using namespace std;

  template

  T Min(T* array,int n){

  T min=array[0];

  for(int i=1;i  if(array[i]  return min;

  }

  int main(){

  double arr[8]={5.2,48.45,41.01,42,51.2,1.24,14.12,42};

  cout<< 【15】 ;

  return 0;

  }

更新時(shí)間2022-09-16 09:59:09【至頂部↑】
聯(lián)系我們 | 郵件: | 客服熱線電話:4008816886(QQ同號(hào)) | 

付款方式留言簿投訴中心網(wǎng)站糾錯(cuò)二維碼手機(jī)版

電話:
付款方式   |   給我留言   |   我要糾錯(cuò)   |   聯(lián)系我們