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

試題

計算機二級《C++》上機練習(xí)題

時間:2024-06-09 04:01:12 試題 我要投稿
  • 相關(guān)推薦

2016計算機二級《C++》上機練習(xí)題

  2016年全國計算機等級考試時間為3月26日-29日,為了幫助大家順利通過計算機二級考試,下面百分網(wǎng)小編為大家?guī)?016計算機二級《C++》基礎(chǔ)練習(xí)(含答案),供大家參考學(xué)習(xí),預(yù)?忌鷤淇汲晒!

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

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

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

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

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

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

  2、 Tilil程序的運行結(jié)果是( )。

  #include void main()

  {

  int i=1:

  while(i<=8)

  if(++i%3 1=2)continue: else eout< }

  A.25

  B.36

  C.258

  D.369

  3、下列關(guān)于線性鏈表的敘述中,正確的是( )。

  A.各數(shù)據(jù)結(jié)點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致

  B.各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)

  C.進行插入與刪除時,不需要移動表中的元素

  D.以上說法均不正確

  4、對于一個類定義,下列敘述中錯誤的是( )。

  A.如果沒有定義拷貝構(gòu)造函數(shù),編譯器將生成一個拷貝構(gòu)造函數(shù)

  B.如果沒有定義缺省的構(gòu)造函數(shù),編譯器一定將生成一個缺省的構(gòu)造函數(shù)

  C.如果沒有定義構(gòu)造函數(shù),編譯器將生成一個缺省的構(gòu)造函數(shù)和一個拷貝構(gòu)造函數(shù)

  D.如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會生成任何構(gòu)造函數(shù)

  5、為了使類中的某個成員不能被類的對象通過成員操作符訪問,則不能把該成員的訪問權(quán)限定義為( )。

  A.public

  B.protected

  C.private

  D.static

  6、下列關(guān)于運算符函數(shù)的描述中,錯誤的是( )。

  A.運算符函數(shù)的名稱總是以operator為前綴

  B.運算符函數(shù)的參數(shù)可以是對象

  C.運算符函數(shù)只能定義為類的成員函數(shù)

  D.在表達式中使用重載的運算符相當(dāng)予調(diào)用運算符重載函數(shù)

  7、 一個棧的初始狀態(tài)為空,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是(  )。

  A.12345ABCDE

  B.EDCBA54321

  C.ABCDEl2345

  D.5432lEDCBA

  8、在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是(  )。

  A.人工管理階段

  B.文件系統(tǒng)階段

  C.數(shù)據(jù)庫系統(tǒng)階段

  D.三個階段相同

  9、下面程序的運行結(jié)果為( )。

  #include

  void main() {

  char a=’3’: switch(8)

  {

  case '3':cout<<”3”:

  case '2':cout<<”2”;break; default:cout<<”l”;

  }

  }

  A.3

  B.321

  C.31

  D.32

  10、數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是( )。

  A.內(nèi)模式

  B.概念模式

  C.外模式

  D.設(shè)計模式

  11、一棵二叉樹共有25個結(jié)點,其中5個是葉子結(jié)點,則度為1的結(jié)點數(shù)為( )。

  A.16

  B.10

  C.6

  D.4

  12、 下列( )是C++語言的有效標識符。

  A.Nol

  B.N0.1

  C.12345

  D.int

  13、 下列關(guān)于運算符重載的敘述中,錯誤的是( )。

  A.有的運算符可以作為非成員函數(shù)重載

  B.所有的運算符都可以通過重載而被賦予新的含義

  C.不得為重載的運算符函數(shù)的參數(shù)設(shè)置默認值

  D.有的運算符只能作為成員函數(shù)重載

  14、 F列關(guān)于棧的敘述正確的是( )。

  A.棧按“先進先出”組織數(shù)據(jù)

  B.棧按“先進后出”組織數(shù)據(jù)

  C.只能在棧底插入數(shù)據(jù)

  D.不能刪除數(shù)據(jù)

  15、 軟件生命周期中的活動不包括( )。

  A.市場調(diào)研

  B.需求分析

  C.軟件測試

  D.軟件維護

  16、 下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )。

  A.靜態(tài)數(shù)據(jù)成員是類的所有對象共享的數(shù)據(jù)

  B.類的每個對象都有自己的靜態(tài)數(shù)據(jù)成員

  C.類的不同對象有不同的靜態(tài)數(shù)據(jù)成員值

  D.靜態(tài)數(shù)據(jù)成員不能通過類的對象調(diào)用

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

  A.編譯程序

  B.操作系統(tǒng)

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

  D.匯編程序

  18、下面敘述中錯誤的是(  )。

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

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

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

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

  19、 層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是( )。

  A.己錄長度

  B.文件的大小

  C.聯(lián)系的復(fù)雜程度

  D.數(shù)據(jù)之間的聯(lián)系方式

  20、 下面程序的運行結(jié)果為( )。

  #include void swap(int&a,int B. int temp;

  temp=a++: a=b:

  b=temp;

  }

  void main()

  {

  im a=2,b=3; swap(a,B.;

  eout< }

  A.2,3

  B.3,2

  C.2,2

  D.3,3

  21、 有如下程序:

  #inClude using namespaCe std; Class MyClass{

  publiC:

  MyClass(int X):val(X){}

  void Print()Const}tout<<”Const:val=”< private:

  int val; };

  int main(){

  Const MyClass objl(10); MyClass obj2(20);

  objl.Print(); obj2.Print(); retum 0;

  }

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

  A.val=10 Const:val=20

  B.Const:val=10 Const:val=20

  C.Const:val=10 val=20

  D.val=10 val=20

  22、 一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員與實體計算機之間 的聯(lián)系是( )。

  A.一對一

  B.一對多

  C.多對多

  D.多對一

  23、下列程序的運行結(jié)果是( )。

  #include class Loeation{

  private:

  int X,Y;

  public: void init(int=0,int=0);

  void valueX(int val){X=val;} int valueX(){returnx;}

  void valueY(int val){Y=val;} int valueY(){return Y;}};

  void Location::init(int initX,int initY) {X=initX;

  Y=initY4}

  void main(X

  {Location A,B;

  A.init();

  B.value X(5);

  cout< B.value Y(4);

  eout< }

  A.5

  0

  6

  4

  B.0

  0

  6

  4

  C.5

  0

  6

  2

  D.0

  0

  6

  2

  24、 下面程序的運行結(jié)果為( )。

  #include class A

  static int n;

  public:

  A(){n=1;}

  A(int num){n=hum;} void print(){cout< int A::n=2;

  void main() {

  A a,b(3); a.print(); b.print();

  cout

  B.13

  C.23

  D.33

  25、 負責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是( )。

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

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

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

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

  26、 已知枚舉類型聲明語句為:

  enum COl,OR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};

  則下列說法中錯誤的是( )。

  A.枚舉常量YELLOW的值為1

  B.枚舉常量RED的值為6

  C.枚舉常量BLACK的值為10

  D.枚舉常量WHITE的值為1

  27、 有如下程序:

  #include

  using namespace std;

  class Base

  {

  public:

  void funl(){cout<<”Base\n”;}

  virtual void fun2(){eout<<”Base\n”;}

  };

  class Derived:public Base{

  public:

  void funl(){eout<<”Derived、n”;}

  void fura(){eout<.<”Derived\n”;}

  };

  void f(Base&B.}b.funl();b.ftm2();}

  int main()

  {

  Derived obj;

  f(obj);

  return 0;

  }

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

  A.Base

  Base

  B.Base

  Derived

  C.Derived

  Base

  D.Derived

  Derived

  28、有如下類聲明:

  class SAMPLE

  {

  int n:

  public:

  SAMPLE(int i=0):n(i){}

  void setValue(int nO);

  };

  下列關(guān)于9etValue成員函數(shù)的定義中,正確的是(  )。

  A.SAMPLE::setValue(int nO){n=n0;}

  B.void SAMPLE::setValue(int胡){n=n0;

  C.void setValue(int nO){n=n0;}

  D.setValue(int nO){n=n0;}

  29、 下列關(guān)于c++函數(shù)的說明中,正確的是( )。

  A.內(nèi)聯(lián)函數(shù)就是定義在另一個函數(shù)體內(nèi)部的函數(shù)

  B.函數(shù)體的最后一條語句必須是return語句

  C.標準c++要求在調(diào)用一個函數(shù)之前,必須先聲明其原型

  D.編譯器會根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式

  30、 有如下程序:

  #inClude using namespaCe std; Class MusiC{

  publiC:

  void setTitle(Char*str){strCpy(title,str);} proteCted:

  Char type[10]; private:

  Char title[20];

  Class Jazz:publiC MusiC{ publiC:

  void set(Char*str){

  strCpy(type,”Jazz'’);//① strCpy(title,str);//②

  } }; 下列敘述中正確的是(  )。

  A.程序編譯正確

  B.程序編譯時語句①出錯

  C.程序編譯時語句②出錯

  D.程序編譯時語句①和②都出錯

  31、 在公有繼承的情況下,允許派生類直接訪問的基類成員包括(  )。

  A.公有成員

  B.公有成員和保護成員

  C.公有成員、保護成員和私有成員

  D.保護成員

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

  由關(guān)系R和S通過運算得到關(guān)系T,則所使用的運算為(  )。

  A.笛卡爾積

  B.交

  C.并

  D.自然連接

  33、有如下類定義:

  class MyClass

  {

  public:

  private:

  ______________________________________

  int data;

  };

  若要為MyClass類重載流輸入運算符“>>”,使得程序中可以“cin>>obj;”的形式改變MyClass類的對象0bj中數(shù)據(jù)成員data的值,則橫線處的聲明語句應(yīng)為( )。

  A.friend istream& operator>>(istream&is,MyClass&A.;

  B.friend istream&operator>>(istream&is,MyClass A.;

  C.istream&operator>>(istream&is,MyClass&A.;

  D.istream&operator>>(istream&is,MyClass A.;

  34、 有如下程序:

  #inClude using namespaCe std; Class Sample{

  friend long fun(Sample S); publiC:

  Sample(10ng A.{x=a;} private:

  long X;

  }; long fun(Sample S){

  if(S.x<2)return l;

  return S.X*fun(Sample(s.x-1)); }

  int main(  ) {

  int sum=0;

  for(int i=0;i<6;i++) {sum+=fun(Sample(i));}

  Cout< }

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

  A.120

  B.16

  C.154

  D.34

  35、 有如下程序:

  #inClude using namespaCe std; Class Book{

  publiC:

  Book(Char*t=””){strCpy(title,t);}

  private:

  Char titlel40]; };

  Class Novel:publiC Book{ publiC:

  Novel(Char*t=””):Book(t){}

  Char*Category(  )Const{return”文學(xué)”;} };

  int main(  ){ Book * pb; pb=new Novel(  );

  Cout< return 0; }

  若程序運行時輸出結(jié)果是“文學(xué)”,則橫線處缺失的語句是(  )。

  A.Char*Category(  );

  B.Char*Category(  )Const;

  C.virtual Char*Category(  )Const;

  D.virtual Char*Category(  )Const=0;

  36、 有如下頭變件:

  int f1()

  StatiCintf2( ); Class MA

  publiC: intf3();

  1statiC int f4();

  };

  在所描述的函數(shù)中,具有隱含的this指針的是( )。

  A.fl

  B.f2

  C.B

  D.f4

  37、下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )。

  A.靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進行初始化

  B.靜態(tài)數(shù)據(jù)成員不可以被類的對象調(diào)用

  C.靜態(tài)數(shù)據(jù)成員不能受private控制符的作用

  D.靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用

  38、 設(shè)int a=10,b=11,C=12;,表達式(a+B.A.2

  B.0

  C.-2

  D.1

  39、 下列說法正確的是( )。

  A.內(nèi)聯(lián)函數(shù)在運行時是將該函數(shù)的目標代碼插入每個調(diào)用該函數(shù)的地方

  B.內(nèi)聯(lián)函數(shù)在編譯時是將該函數(shù)的目標代碼插入每個調(diào)用該函數(shù)的地方

  C.類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義

  D.類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義

  40、 下面對于友元函數(shù)描述正確的是( )。

  A.友元函數(shù)的實現(xiàn)必須在類的內(nèi)部定義

  B.友元函數(shù)是類的成員函數(shù)

  C.友元函數(shù)破壞了類的封裝性和隱藏性

  D.友元函數(shù)不能訪問類的私有成員

  二、基本操作題(18分)

  41、請使用VC6或使用【答題】菜單打開考生文件夾projl下的工程projl,此工程中含有一個源程礙文件 projl.epp。其中位于每個注釋“//ERROR ****found****”之后的一行語句存在錯誤。請改正這些錯誤,使程序的輸出結(jié)果為:

  ConstruCtor Called. The value is 10

  Copy ConstruCtor Called. The value is 10

  DestruCtor Called. DestruCtor Called. 注意:只修改注釋“//ERROR ****found****”的下一行語句,不要改動程序中的其他內(nèi)容。

  //pwjl.Cpp

  #inClude ’using namespaCe std; Class MyClass{

  publiC:

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

  MyClass(int i)

  {value=i;Cout<<”ConstruCtor Called.” < //ERROR**********found********** MyClass(eonst MyClass P)

  {

  value = P.value;

  eout<<”Copy ConstruCtor Called.”< }

  void Print()

  {Cout<<”The value is” < //ERROR**********found********* void-MyClass()

  {Cout<<”DestruCtor Called.”< private:

  int value;

  }; int main()

  { MyChas objl

  owl.Print();

  MyClmss obj2(owl); obj2.Print();

  retum 0;

  三、簡單應(yīng)用題(24分)

  42、請使用VC6或使用【答題】菜單打開考生文件夾pr092下的工程pros2。此工程中包含一個程序文件main.cpp,其中有“部門”類Department和“職工”類Staff的定義,還有主函數(shù)main的定義。在主函數(shù)中定義了兩個“職工”對象,他們屬于同一部門。程序展示,當(dāng)該部門改換辦公室后,這兩個人的辦公室也同時得到改變。請在程序中的橫線處填寫適當(dāng)?shù)拇a并刪除橫線,以實現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:

  改換辦公室前:

  職工號:0789姓名:張三部門:人事處辦公室:521

  職工號:0513姓名:李四部門:人事處辦公室:521

  改換辦公室后:

  職工號:0789姓名:張三部門:人事處辦公室:311

  職工號:0513姓名:李四部門:人事處辦公室:311

  注意:只在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//****found****”。

  #include

  using namespace std;

  class Department{ //“部門”類

  public:

  Department(const char*name,const char*office){

  strcpy(this一>name,nanle);

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

  }

  const char*getName()const{return name;}//返回部門名稱

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

  const char*getOffice()const{________} //返回辦公室房號

  void changeOfficeTo(const char*office){ //改換為指定房號的另一個辦公室

  strcpy(this一>office,office);

  }

  private:

  char name[20];//部門名稱

  char office[20];//部門所在辦公室房號

  };

  class staff{//“職工”類

  public:

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

  Staff(const char*my—id,const char木my_name,Department&my_dept):——{

  strcpy(this一>staff id,my_id);

  strcpy(this一>name,my_name);

  }

  const char*getlD()const{return staff_id;}

  const char*getName()consl{return name;}

  Department getDepartment()const{return dept;} char staff=id[10];//職工號

  char name[20];//姓名

  Department&dept;//所在部門

  }; void showStaff(Staff&staff){

  cout<<”職工號:”< cout<<”姓名:”< cout<<”部門:”< cout<<”辦公室:”< int main(){

  Department dept(”人事處”,”521”);

  Staff Zhang(”0789”,”張三”,dept),Li(”0513”,”李四”,dept);

  cout<<”改換辦公室前:”< showStaff(Zhang); showStaff(Li);

  //人事處辦公室由521搬到311 //**********found********** ———————————————————————一

  cout<<”改換辦公室后:”< showStaff(Zhang); showStaff(Li);

  return 0; }

  四、綜合應(yīng)用題(18分)

  43、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中包含了類IntegerSet和主函數(shù)main的定義。一個IntegerSet對象就是一個整數(shù)的集合,其中包含0個或多個無重復(fù)的整數(shù);為了便于進行集合操作,這些整數(shù)按升序存放在成員數(shù)組elem的前若干單元中。成員函數(shù)add的作用是將一個元素添加到集合中(如果集合中不存在該元素),成員函數(shù)remove從集合中刪除指定的元素(如果集合中存在該元素)。請編寫成員函數(shù)remove。在main函數(shù)中給出了一組測試數(shù)據(jù),此時程序的正確輸出結(jié)果應(yīng)為:

  2 3 4 5 27 28 31 66 75

  2 3 4 5 6 27 28 31 56 75

  2 3 4 5 6 19 27 28 31 66 75

  3 4 5 6 19 27 28 31 66 75

  3 4 5 6 19 27 28 31 66 75

  要求:

  補充編制的內(nèi)容寫在“//***********333***********”與“//***********666***********”之間,不得修改程序的其他部分。

  注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。

  //IntegorSet.h

  #ifndef INTEGERSET

  #define INTEGERSET

  #include

  using namespace std;

  const int MAXELEMENTS=100;

  //集合最多可擁有的元素個數(shù)

  class IntegerSet{

  int elem[MAXELEMENTS];

  //用于存放集合元素的數(shù)組

  int counter; //用于記錄集合中元素個數(shù)的計數(shù)器

  puhlic:

  IntegerSet():counter(0){}

  //創(chuàng)建一個空集合

  IntegerSet(int data[],int size);

  //利用數(shù)組提供的數(shù)據(jù)創(chuàng)建一個整數(shù)集合

  void add(int element);

  //添加一個元素到集合中

  void remeve(int element);

  //刪除集合中指定的元素

  int getCount()const{return counter;}

  //返回集合中元素的個數(shù)

  int getElement(int i)const{retum elem[i];}//返回集合中指定的元素

  void show()const;

  };

  void WriteToFile(char*);

  #endif

  //main.cpp

  #include”IntegerSet.h”

  #include

  IntegerSet::IntegerSet(int data[],int size):counter(0){

  for(int i=0;i add(data[i]);

  }

  }

  void IntegerSet::add(int element){

  int j;

  //從后往前尋找第一個小于等于element的元素

  for(j=counter;j>0;j-)

  if(element>=elem[j一1])break;

  //如果找到的是等于element的元素,說明要添加的元素已經(jīng)存在,直接返回

  if(j>0)

  if(element==elem[j-1])return;

  //如果找到的是小于element的元素,j就是要添加的位置

  //該元素及其后面的元素依次后移,騰出插入位置

  for(int k=counter;k>j;k一)

  elem[k]=elem[k一1];

  elem[j]=element;//將element插入到該位置

  counter++; //計數(shù)器加l

  }

  void IntegerSet::remove(int element){

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

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

  void IntegerSet::show()const{

  for(int i=0;i cout< cout< }

  int main(){

  int d[]={5,28,2,4,5,3,2,75,27,66,31};

  IntegerSet S(d,11);S.show();

  S.add(6); s.show();

  S.add(19); S.show();

  S.remove(2); s.show();

  S.add(4); S.show();

  writeToFile(””);

  return 0;

  }

【計算機二級《C++》上機練習(xí)題】相關(guān)文章:

全國計算機二級《C++》上機試題及答案03-28

2017計算機二級C++考前練習(xí)題03-30

2017計算機二級C++強化練習(xí)題03-30

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

2016計算機二級考試C++練習(xí)題及答案03-16

2017計算機二級C++基礎(chǔ)練習(xí)題及答案12-05

2017計算機二級C++考前練習(xí)題及答案03-20

2017計算機二級C++備考練習(xí)題及答案12-05

全國計算機二級C++考試輔導(dǎo)練習(xí)題03-19