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

試題

全國計算機二級考試C++真題

時間:2024-09-20 10:25:32 歐敏 試題 我要投稿

全國計算機二級考試C++真題

  無論是身處學校還是步入社會,我們需要用到試題的情況非常的多,試題是命題者按照一定的考核目的編寫出來的。你所了解的試題是什么樣的呢?以下是小編為大家收集的全國計算機二級考試C++真題,歡迎大家分享。

全國計算機二級考試C++真題

  全國計算機二級考試C++真題1

  一、選擇題

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

  A)棧是“先進先出”的線性表

  B)隊列是“先進后出”的線性表

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

  D)有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈式存儲結(jié)構(gòu)

  (2)支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是

  A)棧

  B)樹

  C)隊列

  D)二叉樹

  (3)某二叉樹有5個度為z的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是

  A)10

  B)8

  C)6

  D)4

  (4)下列排序方法中,最壞情況下比較次數(shù)最少的是

  A)冒泡排序

  B)簡單選擇排序

  C)直接插入排序

  D)堆排序

  (5)軟件按功能可以分為: 應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是

  A)編譯程序

  B)操作系統(tǒng)

  C)教務(wù)管理系統(tǒng)

  D)匯編程序

  (6)下面敘述中錯誤的是

  A)軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤

  B)對被調(diào)試的程序進行“錯誤定位”是程序調(diào)試的必要步驟

  C)程序調(diào)試通常也稱為Debug

  D)軟件測試應(yīng)嚴格執(zhí)行測試計劃,排除測試的隨意性

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

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

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

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

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

  (8)數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是

  A)數(shù)據(jù)庫設(shè)計

  B)數(shù)據(jù)庫系統(tǒng)設(shè)計

  C)數(shù)據(jù)庫維護

  D)數(shù)據(jù)庫管理員培訓

  (9)有如下程序:

  using namespace std;

  class ONE{

  int c;

  public:

  ONE():c(0){cout<<1;}

  ONE(int n):c (n){cout<<2;}

  };

  class TWO{

  ONE onel;

  ONE one2;

  public:

  TWO(int m):one2(m){cout<<3;}

  };

  int main()t

  TWO t(4)

  return 0

  }

  運行時的輸出結(jié)果是

  A)3

  B)23

  C)123

  D)213

  (10)將E-R圖轉(zhuǎn)換為關(guān)系模式時,實體和聯(lián)系都可以表示為

  A)屬性

  B)鍵

  C)關(guān)系

  D)域

  (11)對C++編譯器區(qū)分重載函數(shù)無任何意義的信息是

  A)參數(shù)類型

  B)參數(shù)個數(shù)

  C)返回值類型

  D)常成員函數(shù)關(guān)鍵字coast

  (12)有如下類定義和變量定義:

  class A{

  publie:

  A(){data=0;}

  ~A(){}

  int GetData ( ) coast { return data;}

  void SetData(int n) {data=n;}

  private:

  int data;

  };

  ccnst A a;

  A b;

  下列函數(shù)調(diào)用中錯誤的是

  A)a .GetData();

  B)a .SetData(10);

  C)b .GetData();

  D)b .SetData(10);

  (13)有如下類定義和變量定義:

  class Parents{

  public:

  int publicuata;

  private:

  int privateData;

  };

  class ChildA:public Parents{/*類體略*/};

  class ChildB:private Parents{/*類體略*/);

  ChildA a;

  ChildBb;

  下列語句中正確的是

  A)cout< B)cout< C)cout< D)cout<

  (14)運算符重載時不需要保持的性質(zhì)是

  A)操作數(shù)個數(shù)

  B)操作數(shù)類型

  C)優(yōu)先級

  D)結(jié)合性

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

  A)從模板實參表和從模板函數(shù)實參表獲得信息矛盾時,以模板實參的信息為準

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

  C)虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時,不能省略模板實參

  D)模板參數(shù)表不能為空

  (16)要建立文件流并打開當前目錄下的文件file.dat用于輸入,下列語句中錯誤的是

  A)ifstream fin=ifstream.open(“file.dat”);

  B)ifstream*fir.=new ifstream(“file.dat”);

  C)ifstream fin; fin.open(“file.dat”);

  D)ifstream *fin=new ifstream( );fin一>open(“file.dat”);

  (17)下列描述中,不屬于面向?qū)ο笏枷胫饕卣鞯氖?/p>

  A)封裝性

  B)跨平臺性

  C)繼承性

  D)多態(tài)性

  (18)有如下程序段:

  Tnt i=4;int j=l;

  int main(){

  int i=8,j=i;

  cout< }

  運行時的輸出結(jié)果是

  A)44

  B)41

  C)88

  D)81

  (19)有如下程序段:

  int i=5;

  while(int i=0){cout《*;i--;}

  運行時輸出“*”的個數(shù)是

  A)0

  B)1

  C)5

  D)無窮

  (20)己知有數(shù)組定義

  char a[3][4];

  下列表達式中錯誤的是

  A)a[2]=“WIN”

  B)strcpy(a[2],“WIN”)

  C)a [2][3]=W

  D)a[0][1]=a[0][1]

  (21)已知函數(shù)fun的原型為

  int fun(int,int,int);

  下列重載函數(shù)原型中錯誤的是

  A)char fun(int,int);

  B)double fun(int,int,double);

  C)int fun(int,char*);

  D)float fun (int, int, int);

  (22)建立一個類對象時,系統(tǒng)自動調(diào)用

  A)析構(gòu)函數(shù)

  B)構(gòu)造函數(shù)

  C)靜態(tài)函數(shù)

  D)友元函數(shù)

  (23)通過派生類的對象可直接訪問其

  A)公有繼承基類的公有成員

  B)公有繼承基類的私有成員

  C)私有繼承基類的公有成員

  D)私有繼承基類的私有成員

  (24)己知表達式++a中的“++”是作為成員函數(shù)重載的運算符,則與十+a等效的運算符函數(shù)調(diào)用形式為

  A)a .orerator++(1)

  B)operator++(a)

  C)operator++(a,l)

  D)a.operator++( )

  (25)在定義一個類模板時,模板形參表是用一對括號括起來的,所采用的括號是

  A)( )

  B)[ ]

  C)< >

  D){ }

  (26)當使用ifstream流類定義一個流對象并打開一個磁盤文件時,文件的默認打開方式為

  A)ios_base::in

  B)ios_base::in|ios_base::out

  C)ios_base::out

  D)ios_base::in&ios_base::out

  (27)有如下程序:

  using namespace std;

  class XCD{

  char* a;

  int b;

  public:

  XCD(char* aa, int bb){

  a=new char[strlen(aa)+1];

  strcpty(a,aa);

  b=bb;

  }

  Char* Geta (){return a;)

  int Getb(){ return b;}

  };

  int main(){

  char *pl=“abcd”,*p2=“weirong”;

  int dl=6, d2=8;

  XCD x(pl,dl),Y(p2,d2);

  cout< return 0;

  }

  運行時的輸出結(jié)果是

  A)12

  B)16

  C)14

  D)11

  (28)有如下程序:

  using namespace std;

  class XCF{

  int a;

  public:

  XCF(int aa=0):a (aa){cout<<“1”;}

  XCF(XCF& x){a=x .a; cout<<“2”;)

  ~XCF(){cout< int Geta(){return a;}

  };

  int main(){

  XCF dl(5),d7 (dl);

  XCF *pd=new XCF(8);

  cout

   pd;

  return 0;

  }

  運行時的輸出結(jié)果是

  A)121SS88

  B)12188SS

  C)12185

  D)128512

  (29)已知類MyClass聲明如下:

  class MyClass{

  int n;

  public;

  MyClass(int k):n(k){}

  int getValue()const{return n;}

  };

  在下列數(shù)組定義中正確的是

  A)MyClass x1[2];

  B)MyClass x2[2]={new MyClass(1),new MyClass(2)};

  C)MyClass *x3[2];

  D)MyClass *x4[2]={MyClass(1),MyClass(2)};

  (30)有如下程序:

  using namespace std;

  class AA{

  lilt k;

  protected:

  int n;

  void setK(int k){ this->k=k;}

  public:

  void setN(int n){ this->n=n;}

  };

  class BB: public }{/*類體略*/};

  int main(){

  BB x_ ; //1

  x .n=1; //2

  x.setN (2); //3

  x.k=3; //4

  x .setK(4);

  return 0;

  }

  在標注號碼的四條語句中正確的是

  A)1

  B)2

  C)3

  D)4

  (31)有如下類定義:

  class XX{

  int xx;

  public:

  XX():xx(0){cout<< A;}

  XX(int n):xx ( n){tout<< B;}

  };

  Class YY:public XX{

  Int yy;

  public:

  YY():yy ( 0){cout+yy;}

  YY(int n):XX(n+1),yy(n){cout< YY (int m, int n):XX (m),yy(n){cout< };

  下列選項中,輸出結(jié)果為A0的語句是

  A)YY y1(0,0);

  B)YY y2(1);

  C)YY y3(0);

  D)YY y4;

  (32)有如下程序:

  Using namespace std;

  class A{

  public:

  virtual void f(){cout+1;}

  void g(){cout<<2;}

  };

  class B:public A{

  public:

  virtual void f(){cout<<3;}

  void g(){ecut<<4;}

  };

  void show(A &a){a.f();a.g( );}

  int main(){

  B b;

  show(b);

  return 0;

  }

  運行時的輸出結(jié)果是

  A)12

  B)34

  C)14

  D)32

  (33)有如下程序:

  using namespace std;

  class Pair{

  int m;

  int n;

  public:

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

  boot operator >(pair p)const; //須在類體外給出定義

  };

  int main(){

  Pair Al(3,4),p2(4,3);p3(4,5);

  Cout<<(pl>p2)<<(p2>P1)<<(p2>p3)<<(p3>p2);

  return 0;

  }

  運算符函數(shù)。operator>的功能是比較兩個Pair對象的大小,當左邊對象大時,返回true,否則返回false。比較規(guī)則是首先比較兩對象的m成員,m大者為大;當m相等時比較n,n大者為大。程序輸出0101,下列對運算符重載函數(shù)的正確定義是

  A)bool Pair::operator>(Pair p)const

  {if (m!=p.m) return m>p.m; return n>p.n;}

  B)bool Pair:;operator>(Pair p)

  {if (m!=p.m) return m>p.m; return n>p.n;}

  C)bool Pair::operator>(Pair p)const

  {if (m>p.m) return true; return n>p.n;}

  D)bool Pair:;operator>(Pair p)

  {if (m>p.m) return true; return n>p.n;}

  (34)假定下列語句都是程序運行后首次執(zhí)行的輸出語句,其中輸出結(jié)果與另外三條語句不同的語句是

  A)cout< B)cout< C)cout<<123< D)cout<

  二、填空題

  (1)假設(shè)用一個長度為50的數(shù)組(數(shù)組元索的下標從0到49)作為棧的存化空間,棧底指針bottom指間棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數(shù)組下標),則棧中具有【1】個元素。

  (2)軟件測試可分為白盒測試和黑盒測試。基本路徑測試屬于【2】測試。

  (3)符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和【3】。

  (4)數(shù)據(jù)庫系統(tǒng)的核心是【4】。

  (5)在E-K圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯(lián)系的是【5】框。

  (6)有如下程序段:

  int x=1,Y=2,z=3;

  x=x^z;

  y=y^z;

  z=x^y;

  cout< 執(zhí)行這個程序段的輸出是【6】。

  (7)有如下程序段:

  fer(int i=1; i<=50;i++){

  if(i%3 != 0)

  continue;

  else

  if(i%5!=0)

  continue;

  tout< }

  執(zhí)行這個程序段的輸出是【7】。

  (8)有如下程序段:

  Char c [20]=“examination”;

  c[4]=0;

  cout< 執(zhí)行這個程序段的輸出是【8】。

  (9)下面的函數(shù)利用遞歸實現(xiàn)了求1+2+3+……+n的功能:

  int sum(int n){

  if(n==0)

  return 0;

  else

  return n+sum(n-1);

  }

  在執(zhí)行sum(10)的過程中,遞歸調(diào)用sum函數(shù)的次數(shù)是【9】。

  (10)非成員函數(shù)應(yīng)該聲明為類【10】函數(shù)才能訪問該類的私有成員。

  (11)有如下程序:

  using namespace std;

  class Monitor{

  public:

  Monitor(char t):type (t){}

  void print( ) const

  {cout<<“The type of monitor is”< private:

  char type;

  };

  class Computer{

  public:

  Computer(int i,char c): 【11】{}

  void Print()const

  {cout<<“The computer is”< private:

  int id;

  Monitor mon;

  };

  const Computer myComputer(101,B‘);

  myComputer .Print();

  return 0;

  }

  請將程序補充完整,使程序在運行時輸出:

  The computer is 101

  The type of monitor i.s 8

  (12)有如下程序:

  using namespace std

  class Animal{

  public:

  virtual char* getType()const { return “Animal”;}

  virtual char* getVoice()const { return “Voice”;}

  };

  Class Dog : public Animal {

  public:

  char* getType ( ) const {return “Dog”;}

  char* getVoice ( ) const {return “Woof”}

  };

  void type(Animal& a) {cout< void speak(Animal a) {cout< int main( ) {

  Dog d; type (d);cout<<“ speak”;speak(d);cout< return 0;

  }

  運行時的輸出結(jié)果是【12】。

  (13)補充完整下面的類定義:

  const double PI=3 .14;

  class Circle{ //圓形物體的抽象基類

  protected:

  double r; //半徑

  public:

  Circle(double radius=0):r(radius){}

  【13】;//計算圓形物體表面積的純虛函數(shù)聲明

  };

  class Cylinder:public Circle { //圓柱體類

  double h; //高度

  public:

  Cylindr(double radius=0, doubli height=0):

  Circle(radius),h (height){}

  Virtual double Area() { //計算圓柱體的表面積

  return 2*PI*r*(r+h);

  }

  };

  (14)補充完整下面的類定義:

  class XCH{

  char* a;

  public:

  XCH(char* as) { //構(gòu)造函數(shù)

  a=new char[strlen(aa)+1];

  strcpy(a,aa);

  }

  XCH& operator=(const XCH& x) //重載賦值函數(shù)

  Delele []a;

  A=new char[strlen(x.a)+l];

  strcpy(a, x .a)

  【14】;

  }

  ~XCH() { []a;}

  };

  (15)補充完整下面的模板定義:

  template //Type為類型參數(shù)

  class Xtwo{ //由兩個Type類型的數(shù)據(jù)成員構(gòu)成的模板類

  Type a;

  Type b;

  public:

  Xtwe(Type aa=0, Type bb=0):a(aa),b(bb){}

  int Ccmpare (){//比較a和b的大小

  if (a>b)returm 1;

  else if(a==b) return 0;

  else return -1;

  }

  Type Snm() {return a+b;} //返回a和b之和

  Type Mult(); //函數(shù)聲明,返回a和b之乘積

 。;

  Template

  【15】:Mult(){return a*b;} //Mult 函數(shù)的類外定義

  全國計算機二級考試C++真題2

  一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)

 。1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是

  A.循環(huán)隊列

  B.帶鏈隊列

  C.二叉樹

  D.帶鏈棧

 。2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進后出”原則存取數(shù)據(jù)的是

  A.循環(huán)隊列

  B.棧

  C.隊列

  D.二叉樹

 。3)對于循環(huán)隊列,下列敘述中正確的是

  A.隊頭指針是固定不變的

  B.隊頭指針一定大于隊尾指針

  C.隊頭指針一定小于隊尾指針

  D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針

 。4)算法的空間復(fù)雜度是指

  A.算法在執(zhí)行過程中所需要的計算機存儲空間

  B.算法所處理的數(shù)據(jù)量

  C.算法程序中的語句或指令條數(shù)

  D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)

 。5)軟件設(shè)計中劃分模塊的一個準則是

  A.低內(nèi)聚低耦合

  B.高內(nèi)聚低耦合

  C.低內(nèi)聚高耦合

  D. 高內(nèi)聚高耦合

 。6)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是

  A.可封裝.

  B. 自頂向下

  C.模塊化

  D. 逐步求精

 。7)軟件詳細設(shè)計產(chǎn)生的圖如下:

  該圖是

  A.N-S圖

  B.PAD圖

  C.程序流程圖

  D. E-R圖

 。8)數(shù)據(jù)庫管理系統(tǒng)是

  A.操作系統(tǒng)的一部分

  B.在操作系統(tǒng)支持下的系統(tǒng)軟件

  C.一種編譯系統(tǒng)

  D. 一種操作系統(tǒng)

 。9)在E-R圖中,用來表示實體聯(lián)系的圖形是

  A.橢圓圖

  B.矩形

  C.菱形

  D. 三角形

  (10)有三個關(guān)系R,S和T如下:

  其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為

  A.選擇

  B.投影

  C.交

  D.并

 。11)以下敘述中正確的是

  A.程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試

  B.程序設(shè)計的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)

  C.程序設(shè)計的任務(wù)就是確定所用算法

  D.以上三種說法都不完整

  (12)以下選項中,能用作用戶標識符的是

  A.void

  B.8_8

  C._0_

  D.unsigned

  (13)閱讀以下程序

  main()

  { int case; float printF;

  printf(“請輸入2個數(shù):”);

  scanf(“%d %f”,&case,&pjrintF);

  printf(“%d %f ”,case,printF);

  }

  該程序編譯時產(chǎn)生錯誤,其出錯原因是

  A.定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標識符

  B.定義語句出錯,printF不能用作用戶自定義標識符

  C.定義語句無錯,scanf不能作為輸入函數(shù)使用

  D.定義語句無錯,printf不能輸出case的值

 。14)表達式:(int)((double)9/2)-(9)%2的值是

  A.0

  B.3

  C.4

  D.5

 。15)若有定義語句:int x=10;,則表達式x-=x+x的值為

  A.-20

  B.-10

  C.0

  D.10

 。16)有以下程序

  main()

  { int a=1,b=0;

  printf(“%d,”,b=a+b);

  printf(“%d ”,a=2*b);

  }

  程序運行后的輸出結(jié)果是

  A.0,0

  B.1,0

  C.3,2

  D.1,2

  (17)設(shè)有定義:int a=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是

  A.if(a>B. c=a,a=b,b=c;

  B.if(a>B. {c=a,a=b,b=c;}

  C.if(a>B. c=a;a=b;b=c;

  D.if(a>B. {c=a;a=b;b=c;}

 。18)有以下程序

  main()

  { int c=0,k;

  for (k=1;k<3;k++)

  switch (k)

  { default: c+=k

  case 2: c++;break;

  case 4: c+=2;break;

  }

  printf(“%d ”,C.;

  }

  程序運行后的輸出結(jié)果是

  A.3

  B.5

  C.7

  D.9

  (19)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是

  A.if((a>b)&&(b>C.) k=1;

  else k=0;

  B.if((a>b)||(b>C. k=1;

  else k=0;

  C.if(a<=B. k=0;

  else if(b<=C.k=1;

  D.if(a>B. k=1;

  else if(b>C.k=1;

  else k=0;

  20)有以下程序

  main()

  { char s[]={“012xy”};int i,n=0;

  for(i=0;s[i]!=0;i++)

  if(s[i]>=’a’&&s[i]<=’z’) n++;

  printf(“%d ”,n);

  }

  程序運行后的輸出結(jié)果是

  A.0

  B.2

  C.3

  D.5

 。21)有以下程序

  main()

  { int n=2,k=0;

  while(k++&&n++>2);

  printf(“%d %d ”,k,n);

  }

  程序運行后的輸出結(jié)果是

  A.0 2

  B.1 3

  C.5 7

  D.1 2

  (22)有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是

  A.char a=’a’;

  B.char a=’ ’;

  C.char a=’aa’;

  D.char a=’x2d’;

  (23)有以下程序

  main()

  { char c1,c2;

  c1=’A’+’8’-‘4’;

  c2=’A’+’8’-‘5’;

  printf(“%c,%d ”,c1,c2);

  }

  已知字母A的ASCII碼為65,程序運行后的輸出結(jié)果是

  A.E,68

  B.D,69

  C.E,D

  D.輸出無定值

 。24)有以下程序

  void fun(int p)

  { int d=2;

  p=d++; printf(“%d”,p);}

  main()

  { int a=1;

  fun(a); printf(“%d ”,a);}

  程序運行后的輸出結(jié)果是

  A.32

  B.12

  C.21

  D.22

 。25)以下函數(shù)findmax擬實現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯導致不能實現(xiàn)預(yù)定功能

  #define MIN -2147483647

  int findmax (int x[],int n)

  { int i,max;

  for(i=0;i

  { max=MIN;

  if(max

  return max;

  }

  造成錯誤的原因是

  A.定義語句int i,max;中max未賦初值

  B.賦值語句max=MIN;中,不應(yīng)給max賦MIN值

  C.語句if(max

  D.賦值語句max=MIN;放錯了位置

 。26)有以下程序

  main()

  { int m=1,n=2,*p=&m,*q=&n,*r;

  r=p;p=q;q=r;

  printf(“%d,%d,%d,%d ”,m,n,*p,*q);

  }

  程序運行后的輸出結(jié)果是

  A.1,2,1,2

  B.1,2,2,1

  C.2,1,2,1

  D.2,1,1,2

 。27)若有定義語句:int a[4][10],*p,*q[4];且0≤i<4,則錯誤的賦值是

  A.p=a

  B.q[i]=a[i]

  C.p=a[i]

  D.p=&a[2][1]

 。28)有以下程序

  main()

  { char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];

  printf(“%d,”,strlen(p));printf(“%s ”,p);

  }

  程序運行后的輸出結(jié)果是

  A.9,One*World

  B.9,One*Dream

  C.10,One*Dream

  D.10,One*World

  (29)有以下程序

  main()

  { int a[ ]={2,3,5,4},i;

  for(i=0;i<4;i++)

  switch(i%2)

  { case 0:switch(a[i]%2)

  {case 0:a[i]++;break;

  case 1:a[i]--;

  }break;

  case 1:a[i[=0;

  }

  for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“ ”);

  }

  A.3 3 4 4

  B.2 0 5 0

  C.3 0 4 0

  D.0 3 0 4

 。30)有以下程序

  main()

  { char a[10]=”abcd”;

  printf(“%d,%d ”,strlen(a),sizeof(a));

  }

  程序運行后的輸出結(jié)果是

  A.7,4

  B.4,10

  C.8,8

  D.10,10

  (31)下面是有關(guān)C語言字符數(shù)組的描述,其中錯誤的是

  A.不可以用賦值語句給字符數(shù)組名賦字符串

  B.可以用輸入語句把字符串整體輸入給字符數(shù)組

  C.字符數(shù)組中的內(nèi)容不一定是字符串

  D.字符數(shù)組只能存放字符串

  (32)下列函數(shù)的功能是

  fun(char * a,char * b)

  { while((*b=*a)!=’’) {a++,b++;} }

  A.將a所指字符串賦給b所指空間

  B.使指針b指向a所指字符串

  C.將a所指字符串和b所指字符串進行比較

  D.檢查a和b所指字符串中是否有’’

 。33)設(shè)有以下函數(shù)

  void fun(int n,char * s) {……}

  則下面對函數(shù)指針的定義和賦值均是正確的是

  A.void (*pf)(); pf=fun;

  B.viod *pf(); pf=fun;

  C.void *pf(); *pf=fun;

  D.void (*pf)(int,char);pf=&fun;

 。34)有以下程序

  int f(int n);

  main()

  { int a=3,s;

  s=f(a);s=s+f(a);printf(“%d ”,s);

  }

  int f(int n)

  { static int a=1;

  n+=a++;

  return n;

  }

  程序運行以后的輸出結(jié)果是

  A.7

  B.8

  C.9

  D.10

  (35)有以下程序

  #define f(x) x*x*x

  main()

  { int a=3,s,t;

  s=f(a+1);t=f((a+1));

  printf(“%d,%d ’,s,t);

  }

  程序運行后的輸出結(jié)果是

  A.10,64

  B.10,10

  C.64,10

  D.64,64

 。36)下面結(jié)構(gòu)體的定義語句中,錯誤的是

  A.struct ord {int x;int y;int z;}; struct ord a;

  B.struct ord {int x;int y;int z;} struct ord a;

  C.struct ord {int x;int y;int z;} a;

  D.struct {int x;int y;int z;} a;

 。37)設(shè)有定義:char *c;,以下選項中能夠使字符型指針c正確指向一個字符串的是

  A.char str[ ]=”string”;c=str;

  B.scanf(“%s”,C.;

  C.c=get);

  D.*c=”string”;

  (38)有以下程序

  struct A

  { int a; char b[10]; double c;};

  struct A f(struct A t);

  main()

  { struct A a={1001,”ZhangDa”,1098.0};

  a=f(a);jprintf(“%d,%s,%6.1f ”,a.a,a.b,a.C.;

  }

  struct A f(struct A t)

  ( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )

  程序運行后的輸出結(jié)果是

  A.1001,ZhangDa,1098.0

  B.1001,ZhangDa,1202.0

  C.1001,ChangRong,1098.0

  D.1001,ChangRong,1202.0

 。39)若有以下程序段

  int r=8;

  printf(“%d ”,r>>1);

  輸出結(jié)果是

  A.16

  B.8

  C.4

  D.2

 。40)下列關(guān)于C語言文件的敘述中正確的是

  A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件

  B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件

  C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件

  D.文件由字符序列組成,其類型只能是文本文件

  二、填空題(每空2分,共30分)

 。1)某二叉樹有5個度為2的結(jié)點以及3個度為1的結(jié)點,則該二叉樹中共有【1】 個結(jié)點。

  (2)程序流程圖中的菱形框表示的是 【2】 。

 。3)軟件開發(fā)過程主要分為需求分析、設(shè)計、編碼與測試四個階段,其中 【3】 階段產(chǎn)生“軟件需求規(guī)格說明書。

 。4)在數(shù)據(jù)庫技術(shù)中,實體集之間的聯(lián)系可以是一對一或一對多或多對多的,那么“學生”和“可選課程”的聯(lián)系為 【4】 。

 。5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是 【5】 。

 。6)若有定義語句:int a=5;,則表達式:a++的值是 【6】 。

 。7)若有語句double x=17;int y;,當執(zhí)行y=(int)(x/5)%2;之后y的值為 【7】 。

  (8)以下程序運行后的輸出結(jié)果是 【8】 。

  #include

  main()

  { int x=20;

  printf(“%d”,0

  printf(“%d ”,0

 。9)以下程序運行后的輸出結(jié)果是 【9】 。

  #include

  main()

  { int a=1,b=7;

  do {

  b=b/2;a+=b;

  } while (b>1);

  printf(“%d ”,a);}

 。10)有以下程序

  #include

  main()

  { int f,f1,f2,i;

  f1=0;f2=1;

  printf(“%d %d”,f1,f2);

  for(i=3;i<=5;i++)

  { f=f1+f2; printf(“%d”,f);

  f1=f2; f2=f;

  }

  printf(“ ”);

  }

  程序運行后的輸出結(jié)果是 【10】 。

 。11)有以下程序

  #include

  int a=5;

  void fun(int b)

  { int a=10;

  a+=b;printf(“%d”,a);

  }

  main()

  { int c=20;

  fun(c);a+=c;printf(“%d ”,a);

  }

  程序運行后的輸出結(jié)果是 【11】 。

 。12)設(shè)有定義:

  struct person

  { int ID;char name[12];}p;

  請將scanf(“%d”, 【12】 );語句補充完整,使其能夠為結(jié)構(gòu)體變量p的成員ID正確讀入數(shù)據(jù)。

 。13)有以下程序

  #include

  main()

  { char a[20]=”How are you?”,b[20];

  scanf(“%s”,b);printf(“%s %s ”,a,b);

  }

  程序運行時從鍵盤輸入:How are you?<回車>

  則輸出結(jié)果為 【13】 。

  (14)有以下程序

  #include

  typedef struct

  { int num;double s}REC;

  void fun1( REC x ){x.num=23;x.s=88.5;}

  main()

  { REC a={16,90.0 };

  fun1(a);

  printf(“%d ”,a.num);

  }

  程序運行后的輸出結(jié)果是 【14】 。

 。15)有以下程序

  #include

  fun(int x)

  { if(x/2>0) run(x/2);

  printf(“%d ”,x);

  }

  main()

  { fun(6);printf(“ ”); }

  程序運行后的輸出結(jié)果是 【15】 。

  全國計算機二級考試C++真題3

  單選題

  1). 如果進棧序列為e1、e2、e3、e4,則可能的出棧序列是( )。

  A.e3、e1、e4、e2

  B.e2、e4、e3、el1

  C.e3、e4、e1、e2

  D.任意順序

  正確答案:B

  答案解析:根據(jù)棧先進后出的特點可知el肯定是最后出棧的,因此正確答案為選項B。

  2). 對于重載的運算符>>,它是一個( )

  A.用于輸入的友元函數(shù)

  B.用于輸入的成員函數(shù)

  C.用于輸出的友元函數(shù)

  D.用于輸出的成員函數(shù)

  正確答案:A

  3). NULL是指

  A.0

  B.空格

  C.未知的值或無任何值

  D.空字符串

  正確答案:C

  答案解析:此題屬于記憶性的題目,NULL是指未知的值或無任何值。

  4). 用鏈表表示線性表的優(yōu)點是( )

  A.便于隨機存取

  B.花費的存儲空間較順序存儲少

  C.便于插入和刪除操作

  D.數(shù)據(jù)元素的物理順序與邏輯順序相同

  正確答案:C

  5). 結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是( )

  A.程序的規(guī)模

  B.程序的效率

  C.程序設(shè)計語言的先進性

  D.程序易讀性

  正確答案:D

  6). 下面關(guān)于C++流的敘述中,正確的是( )。

  A.cin是一個輸入流對象

  B.可以用ifstream定義一個輸出流對象

  C.執(zhí)行語句序列char* y=″PQMN″;cout<

  D.執(zhí)行語句序列char x[80];cin.getline(x,80);時,若輸入Happy new year,則x中的字符串是″Happy″

  正確答案:A

  答案解析:本題考查C++流的概念和I/()的格式化。cin是istream類的對象,即輸入流對象。ifstream是輸入文件流,類不能定義個輸出流對象。getline函數(shù)的功能是允許從輸入流中讀取多個字符,并且允許指定輸入終止,在讀取完成后,從讀取的內(nèi)容中刪除該終止字符,所以D選項中的語句序列后x中字符串應(yīng)該是Happy new year。

【全國計算機二級考試C++真題】相關(guān)文章:

上半年全國計算機二級C++考試真題03-21

2010下半年全國計算機二級C++考試真題03-07

2007年3月全國計算機等級考試二級C++筆試真題03-28

2006上半年全國計算機二級C++筆試真題11-17

2005年上半年全國計算機二級C++筆試真題03-02

全國計算機二級MS Office考試真題及答案06-19

2007年3月全國計算機等級考試二級C++筆試真題參考答案03-28

全國計算機二級考試《C語言》真題練習及答案09-20

全國計算機二級考試《C++》筆試樣卷06-12