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

    下半年計算機二級C++考前模擬試題及答案二

    時間:2025-05-09 13:45:53 試題 我要投稿

    2015下半年計算機二級C++考前模擬試題及答案(二)

      一、填空題

    2015下半年計算機二級C++考前模擬試題及答案(二)

      1.數據結構分為邏輯結構與存儲結構,線性鏈表屬于【1】。

      【參考答案】

      【1】存儲結構

      2.耦合和內聚是評價模塊獨立性的兩個主要標準,其中【2】反映了模塊內各成分之間的聯系。

      【參考答案】

      【2】內聚

      3.數據庫設計分為以下6個設計階段:需求分析階段、【3】、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。

      【參考答案】

      【3】數據庫概念設計階段

      4.面向對象的模型中,最基本的概念是對象和【4】。

      【參考答案】

      【4】類

      5.數據模型按不同應用層次分成3種類型,它們是概念數據模型、【5】和物理數據模型。

      【參考答案】

      【5】邏輯數據模型

      6.開發一個C++語言程序的步驟通常包括編輯、【6】、鏈接、運行和調試。

      【參考答案】

      【6】編譯

      7.下面程序的輸出結果為【7】。

      #include

      void main()

      {

      int num=0,i=8;

      do{

      i--;

      num++;

      }while(--i);

      cout<

      }

      【參考答案】

      【7】-4

      8.下面程序的運行結果為【8】。

      #include

      void fun(int x=0,int y=0)

      {cout<

      void main()

      {fun(5);}

      【參考答案】

      【8】50

      9.C++語言支持的兩種多態性分別是編譯時的多態性和【9】的多態性。

      【參考答案】

      【9】運行時

      10.cout.put(′A′);,還可以表示為【10】。

      【參考答案】

      【10】cout<<′A′;

      11.將以下程序寫成三目運算表達式是【11】。

      if(a>b)max=a;

      else max=b;

      【參考答案】

      【11】max=(a>b)?a:b;

      12.下面程序的功能是將字符數組a中下標值為偶數的元素從小到大排列,其他元素不變,請填空。

      #include

      #include

      void main()

      { char a[]=″clanguage″,t;

      int i,j,k;

      k=strlen(a);

      for(i=0;i<=k-2;i+=2)

      for(j=i+2;j<=k;【12】)

      if(【13】)

      { t=a[i];a[i]=a[j];a[j]=t;}

      cout<

      cout<

      【參考答案】

      【12】j+=2 【13】a[i]>=a[j]或a[i]>a[j]

      13.請定義一個函數名為A,返回值為int,沒有參數的純虛函數的定義是【14】。

      【參考答案】

      【14】virtual int A()=0;

      14.假設fin是一個文件流對象,則關閉文件的語句是【15】。

      【參考答案】

      【15】fin

      上機部分

      一、改錯題

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

      (1,2)

      5,6

      (6,9)

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

      #include

      classA{

      public:

      A(inti,intj){a=i;b=j;}

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

      voidMove(intx,inty){a+=x;b+=y}

      voidShow(){cout<<"("<

      private:

      inta,b;

      };

      classB:privateA

      {

      public:

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

      B(inti,intj,intk,intl):(i,j){x=k;y=l;}

      voidShow(){cout<

      voidfun(){Move(3,5);}

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

      voidf1(){Show();}

      private:

      intx,y;

      };

      voidmain()

      {

      Ae(1,2);

      e.Show();

      Bd(3,4,5,6);

      d.fun();

      d.Show();

      d.f1();

      }

      【參考答案】

      (1)將void Move( int x, int y) {a+=x;b+=y}

      改為:void Move( int x, int y) {a+=x;b+=y;}

      (2)將B(int i,int j,int k,int l):(i,j) {x=k;y=l;}

      改為:B(int i,int j,int k,int l):A(i,j) {x=k;y=l;}

      (3)將void f1(){Show();}

      改為:void f1(){A::Show();}

      【試題解析】

      (1)主要考查對表達式定義規則的掌握,此處缺少一個“;”,任何一個表達式都應該以分號作為結束標志;

      (2)主要考查對派生類構造函數定義的掌握,參數列表中基類的成員應使用基類構造函數初始化,因此必須向基類傳遞參數,傳遞時直接使用基類名;

      (3)主要考查對基類函數調用方法的掌握,為了調用基類的函數應該使用作用域符“::”以限定訪問的位置。

      二、簡單應用題

      請編寫一個函數intpattern_index(charsubstr[],charstr[]),該函數執行含通配符"?"的字符串的查找時,該通配符可以與任一個字符匹配成功。當子串substr在str中匹配查找成功時,返回子串substr在str中的位置,否則返回值為0。要求使用for循環實現。輸出結果如下:

      子串起始位置:5

      注意:部分源程序已存在文件kt5_2.cpp中。

      請勿修改主函數main和其他函數中的任何內容,僅在函數pattern_index的花括號中填寫若干語句。

      文件kt5_2.cpp的內容如下:

      #include

      intpattern_index(charsubstr[],charstr[])

      {

      }

      voidmain()

      {

      char*substring,*string;

      intsame;

      substring="???gram";

      string="thisprogramreturnindexofsubstring";

      same=pattern_index(substring,string);

      if(same)

      cout<<"子串起始位置:"<

      else

      cout<<"匹配不成功"<

      }

      【參考答案】

      int pattern_index(char substr[],char str[])

      {int i,j,k;

      for(i=0;str[i];i++)

      for(j=i,k=0;(str[j]==substr[k])||(substr[k]=='?');j++,k++)

      if(!substr[k+1])

      return(i);

      return(0);}

      【試題解析】

      本題主要考查使用for循環和一維數組的能力。對于復雜查找,往往使用for的多重循環。

      三、綜合應用題

      使用VC6打開考生文件夾下的工程kt5_3,此工程包含一個源程序文件kt5_3.cpp,其中定義了用于表示復數的類comp,但類comp的定義并不完整。請按要求完成下列操作,將類comp的定義補充完整。

      (1)定義comp的構造函數,函數含參數x和y,它們都是int型的數據,默認值都為0,請使用參數列表的形式分別將類數據成員a和b初始化x和y的值。請在注釋“//**1**”之后添加適當的語句。

      (2)完成類comp的成員函數input(intx,inty)的定義,將int型的參數x和y分別賦值給數據成員a和b,請在注釋“//**2**”之后添加適當的語句;

      (3)完成類comp的友元函數friendcompplus(comp&x,comp&y)的定義,該函數首先要定義一個comp類的對象c,然后將參數x和y的數據成員a與b分別相加并分別賦值給c的成員a和b,最后返回c的值,請在注釋“//**3**”之后添加適當的語句。輸出結果如下:

      10+20i

      2+3i

      result:12+23i

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

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

      #include

      classcomp

      {inta;  

      intb;

      public:

      //**1**

      friendcompplus(comp&x,comp&y);

      voidinput(intx,inty)

      {//**2**}

      voidoutput()

      {cout<

      compplus(comp&x,comp&y)

      {//**3**

      c.b=x.b+y.b;

      returnc;}

      voidmain()

      {compx(10,20),y,z;

      y.input(2,3);

      z=plus(x,y);

      x.output();

      y.output();

      cout<<"result:";

      z.output();}

      【參考答案】

      (1)comp(int x=0,int y=0):a(x),b(y){}

      (2)a=x;

      b=y;

      (3)comp c;

      c.a=x.a+y.a;

      【試題解析】

      本題主要考查類的定義和友元函數定義的。

    【下半年計算機二級C++考前模擬試題及答案二】相關文章:

    計算機二級C++模擬試題及答案09-22

    2015下半年計算機二級C++考前模擬試題及答案(三)07-23

    2015下半年計算機二級C++考前模擬試題及答案(一)07-03

    2016計算機二級C++上機模擬試題及答案07-16

    計算機二級c++試題及答案08-27

    2016年計算機二級《C++》模擬試題及答案06-11

    2016最新計算機二級VB考前模擬試題及答案07-12

    計算機二級C語言考前模擬試題及答案201607-31

    計算機二級考試C++考前沖刺試題10-13

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