<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 試題

    12月計算機二級C++上機改錯題訓練

    時間:2025-02-21 08:58:29 試題 我要投稿
    • 相關推薦

    2016年12月計算機二級C++上機改錯題訓練

      計算機二級對于很多考生來說還是比較有難度的,那么怎樣順利通過二級考試呢?這就需要大家平時多練習和找方法了。以下是百分網小編整理的2016年12月計算機二級C++上機改錯題訓練,希望對大家有幫助!

      改錯題一:

      使用VC6打開考生文件夾下的工程kt8_1,此工程包含一個源程序文件kt8_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果如下:

      f1functionofderive

      f2functionofbase

      f4functionofbase

      源程序文件kt8_1.cpp清單如下:

      #include

      classbase

      { public:

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

      voidf1(){cout<<"f1functionofbase"<

      virtualvoidf2(){cout<<"f2functionofbase"<

      virtualvoidf3(){cout<<"f3functionofbase"<

      voidf4(){cout<<"f4functionofbase"<<>

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

      classderive::publicbase

      { voidf1(){cout<<"f1functionofderive"<

      voidf2(intx){cout<<"f2functionofderive"<

      voidf4(){cout<<"f4functionofderive"<<>

      voidmain()

      { base*p;

      deriveobj2;

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

      p=obj2;

      p->f1();

      p->f2();

      p->f4(); }

      【參考答案】

      (1)將void f1(){ cout<<"f1 function of base"<

      改為:virtual void f1(){ cout<<"f1 function of base"<

      (2)將class derive::public base

      改為:class derive:public base

      (3)將p=obj2;

      改為:p=&obj2;

      【試題解析】

      (1)主要考查對虛函數的深刻理解,虛函數是動態聯編的基礎,也是實現多態性的重要方法,它可以根據不同的情況動態的選擇執行哪一個函數。在派生類中實現虛函數應該滿足與基類的同名函數完全相同,并且使用關鍵字virtual修飾,本題中由輸出結果中的f1 function of derive可知,必須將基類base的成員函數f1()定義為虛函數;

      (2)主要考查對派生類定義格式的掌握,應該使用“:”后面是繼承列表,而“::”是作用域符;

      (3)主要考查類對象的定義與使用,p是一個指針類型的變量,給它的賦值應該是一個地址,即使用取地址操作符&。

      改錯題二:

      使用VC6打開考生文件夾下的工程kt9_1,此工程包含一個源程序文件kt9_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果如下:

      4,5

      20

      源程序文件清單如下:

      #include

      classA

      { protected:

      intn,m;

      public:

      voidset(inta,intb){m=a;n=b;}

      voidshow(){cout<

      /**********found**********/ }

      classB:publicA

      { ints;

      public:

      voidset(){s=m*n;}

      voidshows(){cout<

      voidmain()

      {

      Bb;

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

      b.set();

      b.show();

      b.set(); /**********found**********/

      b.show();

      }

      【參考答案】

      (1)在“}”后添加分號

      (2)將b.set();改為:b.A::set(4,5);

      (3)將b.show();改為:b.shows();

      【試題解析】

      (1)主要考查對類定義格式的掌握,類的結尾應該使用";";

      (2)主要考查對基類與派生類函數調用關系的掌握,根據所要求的輸出結果,應該調用的函數為類A的set,而不是類B自身的set函數,應該避免調用的二義性;

      (3)主要考查對繼承與派生的理解,由所要求輸出結果可知正確:b.shows()。

    【12月計算機二級C++上機改錯題訓練】相關文章:

    2016年12月計算機二級C++上機選擇題訓練10-03

    2016年12月計算機二級C++上機練習09-28

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

    2016年9月計算機二級《C++》上機試題與解析11-14

    計算機二級C上機:程序改錯題08-26

    計算機二級《C++》上機試題及答案08-12

    2016計算機二級《C++》上機沖刺題09-05

    2016計算機二級C++上機試題及答案08-02

    2017年9月計算機二級考試C++上機操作題10-12

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人