首頁 - 網(wǎng)校 - 萬題庫 - 美好明天 - 直播 - 導(dǎo)航
您現(xiàn)在的位置: 考試吧 > 計算機等級考試 > 計算機二級考試 > C加加 > 模擬試題 > 正文

2018年12月計算機二級C++考試沖刺試題及答案(1)

來源:考試吧 2018-12-3 16:11:10 要考試,上考試吧! 萬題庫
“2018年12月計算機二級C++考試沖刺試題及答案(1)”供考生參考。更多計算機等級考試模擬試題等信息請訪問考試吧計算機等級考試網(wǎng)。
第 1 頁:沖刺試題
第 2 頁:參考答案

  點擊查看:2018年12月計算機二級C++考試沖刺試題及答案匯總

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

  1.數(shù)據(jù)的存儲結(jié)構(gòu)是指(  )。

  A.數(shù)據(jù)所占的存儲空間

  B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式

  C.數(shù)據(jù)在計算機中的順序存儲方式

  D.存儲在計算機外存中的數(shù)據(jù)

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

  A.屬性

  B.關(guān)系

  C.鍵

  D.域

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

  A.125

  B.n/Z

  C.n

  D.n+1

  4.樹是結(jié)點的集合,它的根結(jié)點的數(shù)目是(  )。

  A.有且只有1個

  B.1或多于1

  C.0或1

  D.至少有2個

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

  A.R-S

  B.R×S

  C.R∩S

  D.R∪S

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

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

  B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實現(xiàn)

  C.不允許使用GOTO語句

  D.語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

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

  A.并運算

  B.交運算

  C.差運算

  D.積運算

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

  A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的關(guān)系

  B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的

  C.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間相對獨立,相互依賴性小

  D.上述三種說法都不對

  9.結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是(  )。

  A.過程、子程序和分程序

  B.順序、選擇和重復(fù)

  C.遞歸、堆棧和隊列

  D.調(diào)用、返回和轉(zhuǎn)移

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

  A.需求分析階段

  B.邏輯設(shè)計階段

  C.概念設(shè)計階段

  D.物理設(shè)計階段

  11.在C++語言中函數(shù)返回值的類型是由(  )決定的。

  A.調(diào)用該函數(shù)時系統(tǒng)臨時

  B.return語句中的表達(dá)式類型

  C.定義該函數(shù)時所指定的函數(shù)類型

  D.調(diào)用該函數(shù)時的主調(diào)函數(shù)類型

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

  A.表示m>n為true或mn&&m  B.switch語句結(jié)構(gòu)中必須有default語句

  C.if語句結(jié)構(gòu)中必須有else語句

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

  13.使用ifstream流類定義流對象并打開磁盤文件時,文件的隱含打開方式為(  )。

  A.ios::in

  B.ios::out

  C.ios::inlios::out

  D.沒有默認(rèn)

  14.下列各類函數(shù)中,不是類的成員函數(shù)的是(  )。

  A.構(gòu)造函數(shù)

  B.抽象類

  C.派生類

  D.以上都不對

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

  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.類模板templateclassX{…},其中友元函數(shù)f對特定類型T(如int),使函數(shù)f(x)成為x模板類的友元,則其說明為(  )。

  A.friendvoidf();

  B.friendvoidf(x);

  C.friendvoidA::f();

  D.friendvoidC::f(x);

  17.類MyClass的定義如下:

  classMyClass

  {

  public:

  MyClass(){value=0;}

  SetVariable(inti){valtic=i;}

  private:

  intvalue;

  };

  MyClass*P,my;p=&my;

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

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

  B.語句MyClass*P,my;會調(diào)用兩次類MyClass的構(gòu)造函數(shù)

  C.對語句*P.SetVariable(5)的調(diào)用是正確的

  D.語句P->SetVariable(5)與語句my.SetVariable(5)等價

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

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

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

  C.break語句可以在switch語句中出現(xiàn)多次

  D.break語句可用于if條件判斷語句內(nèi)

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

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

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

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

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

  20.已知類A有公用數(shù)據(jù)成員a,并重載了=運算符,且有Aobj2;constA*ptr=newA;,則下列語句錯誤的是(  )。

  A.ptr->a=100;

  B.ptr=&obj2;

  C.ptr++;

  D.obj2=*ptr;

  21.可以用P.a的形式訪問派生類對象P的基類成員a,其中a是(  )。

  A.私有繼承的公有成員

  B.公有繼承的私有成員

  C.公有繼承的保護(hù)成員

  D.公有繼承的公有成員

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

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

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

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

  C.cin>>str;

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

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

  #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.有以下類定義:

  classMyClass

  {

  private:

  intid;

  chargender;

  char*phone;

  public:

  MyClass():id(0),gender(’#’),phone(NULl){}

  MyClass(intn0,charge=’#’,char*ph=NULL)

  {id=no;gender=ge;phone=ph;}

  };

  下列類對象定義語句中錯誤的是(  )。

  A.MyClassmyObj;

  B.MyClassmyObj(11,"13301111155");

  C.MyClassmyObj(12,’m’);

  D.MyClassmyObj(12);

  26.下列是關(guān)于派生類聲明的開始部分,其中正確的是(  )。

  A.classvirtualB:publicA

  B.virtualclassB:publicA

  C.classB:publicAvirtual

  D.classB:virtualpublicA

  27.如果類A被說明成類B的友元,則(  )。

  A.類A的成員即類B的成員

  B.類B的成員即類A的成員

  C.類A的成員函數(shù)不得訪問類B的成員

  D.類B不一定是類A的友元

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

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

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

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

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

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

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

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

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

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

  }

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

  A.10,10,10

  B.10,12,14

  C.8,10,12

  D.8,12,10

  31.在下列程序的橫線處填上適當(dāng)?shù)膬?nèi)容,使程序執(zhí)行后的輸出結(jié)果為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;

  }

  執(zhí)行后的輸出結(jié)果是()。

  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;

  }

  執(zhí)行上面程序的過程中,構(gòu)造函數(shù)Demo(  )和Demo(constDem0&x)被調(diào)用的次數(shù)分別是(  )。

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

  delete[]p;

  return();

  }

  這個程序的輸出結(jié)果是(  )。

  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;

  }

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

  A.va1=10const:va1=20

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

  C.const:va1=10val=20

  D.val=10va1=20

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

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

  B.<返回類型>中有可能包含自定義標(biāo)識符

  C.<返回類型>中衣可能包含字符*

  D.<返回類型>中可能包含[]

  37.Sample是一個類,執(zhí)行下面語句后,調(diào)用Sample類的構(gòu)造函數(shù)的次數(shù)是(  )。

  Samplea[2],*p=newSample;

  A.0

  B.1

  C.2

  D.3

  38.有如下兩個類定義:

  classXX{

  private:

  doublex1;

  protected:

  doublex2;

  public:

  doublex3;

  };

  claseYY:protectedXX{

  private:

  doubley1;

  protected;

  doubley2;

  public:

  doubley3;

  };

  在類YY中保護(hù)成員變量的個數(shù)是(  )。

  A.1

  B.2

  C.3

  D.4

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

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

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

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

  D.重載類型轉(zhuǎn)換運算符時不需要聲明返回類型

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

  A.類模板的成員函數(shù)都是模板函數(shù)

  B.可以為類模板參數(shù)設(shè)置默認(rèn)值

  C.類模板描述了一組類

  D.類模板中只允許有一個類型參數(shù)

  二、程序改錯題(18分)

  使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有錯,請改正其中的錯誤,使程序正常運行,并使程序輸出的結(jié)果為

  TC1

  TC2

  注意:不要改動main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯誤的語句在//******error******的下面。

  試題程序:

  #include

  #include  structTCO

  {

  //********error********

  virtualvoidfun();

  };

  classTCl:publicTCO

  {

  voidfun()

  {

  cout<<"TCl"<  }

  };

  classTC2:publicTCO

  {

  voidfun()

  {

  cout<<"TC2"<  }

  };

  voidmain()

  {

  TCO"P;

  TClobj1;

  TC2obj2;

  //********error********

  p=*obj1;

  p->fun();

  //********error********

  p=*obj2;

  p->fun();

  return;

  }

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

  使用VC++6.0打開考生交件夾下的源程序文件2.cpp。閱讀下列函數(shù)說明和代碼,完成空出部分程序。函數(shù)fun(intN[4])的功能是用4個數(shù)字,組成互不相同且無重復(fù)數(shù)字的3位數(shù),并將滿足所有條件的數(shù)字輸出到屏幕,

  并且每輸出一個3位數(shù)就換一行。

  程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、0。組成所有的排列后再去掉不滿足條件的排列。如果判定第一個數(shù)字是0,則也去掉。

  試題程序:

  #include

  voidfun(intN[4])

  {

  }

  intmain()

  intN[4]={1,2,3,0};

  fun(N):

  return0;

  }

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

  使用VC++6.0打開考生文件夾下的源程序文件3.cpp。其中定義的類不完整,按要求完成下列操作,將類的定義補充完整。

  (1)基類People完成打印功能,定義其中的打印函數(shù)為

  虛函數(shù),請在注釋1后添加適當(dāng)?shù)恼Z句。

  (2)類Boy繼承于People,在構(gòu)造函數(shù)中設(shè)置性別為1,

  請在注釋2后添加適當(dāng)?shù)恼Z句。

  (3)類Girl繼承于People,在構(gòu)造函數(shù)中設(shè)置性別為0,請在注釋3后添加適當(dāng)?shù)恼Z句。

  (4)實現(xiàn)函數(shù)fun,用于傳遞不同的類型,打印出性別,請在注釋4后添加適當(dāng)?shù)恼Z句。

  輸出的內(nèi)容如下:

  Sex=Boy

  Sex=Girl

  注意:除在指定位暨添加語句之外,請不要改動程序中的其他內(nèi)容。

  試題程序:

  #include

  classPeople

  {

  public:

  //********1********

  voidprint(){}

  intsex;

  };

  classBoy:publicPeople

  {

  publiC:

  Boy()

  {

  //********2********}

  voidprint()

  {

  cout<<"Boy"<  }

  };

  classGirl:publicPeople

  {

  public:

  Girl()

  {

  //********3********}

  voidprint()

  {

  cout<<"Girl"<  }

  };

  //********4********{

  cout<<"Sex=";

  p.print();

  }

  intmain()

  {

  Boym:

  fun(m);

  Girln:

  fun(n);

  return0;

  }

掃描/長按二維碼幫助考試通關(guān)
2018年等考報考資訊
2018等考各科通關(guān)技巧
2018各科最新預(yù)測試卷
2018等考各科備考資料

微信搜索"考試吧"了解更多考試資訊、下載備考資料

  相關(guān)推薦:

  2018年12月全國計算機等級考試必做試題匯總

  2018年全國計算機等級考試必做試題匯總(各科目)

  各地2018年12月全國計算機等考準(zhǔn)考證打印時間匯總

  2018年全國計算機等級考試復(fù)習(xí)知識點匯總(各科目)

  2018全國計算機等級考試備考經(jīng)驗及應(yīng)試技巧匯總

0
收藏該文章
0
收藏該文章
文章搜索
萬題庫小程序
萬題庫小程序
·章節(jié)視頻 ·章節(jié)練習(xí)
·免費真題 ·?荚囶}
微信掃碼,立即獲!
掃碼免費使用
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。
在線模擬試題
考證通關(guān)殺器
考試最新資訊
學(xué)
一次通關(guān)技巧