<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            試題

            9月計算機二級C++練習題及答案

            時間:2025-04-30 12:49:09 試題 我要投稿

            2015年9月計算機二級C++練習題及答案

              一、填空題

              1.用樹結構表示實體類型及實體間聯系的數據模型稱為【1】。

              【參考答案】

              【1】層次模型

              2.數據流圖的類型有【2】和事務型。

              【參考答案】

              【2】變換型

              3.在最壞情況下,堆排序需要比較的次數為【3】。

              【參考答案】

              【3】O(nlog2n)

              4.軟件開發環境是全面支持軟件開發全過程的【4】集合。

              【參考答案】

              【4】軟件工具

              5.冒泡排序算法在最好的情況下的元素交換次數為【5】。

              【參考答案】

              【5】0

              6.C++語言標識符是以字母或【6】開頭的,由字母,數字和下劃線組成的字符串。

              【參考答案】

              【6】下劃線

              7.mystrlen函數的功能是計算str所指字符串的長度,并作為函數值返回,請填空。

              int mystrlen(char *str)

              { int i;

              for(i=0;【7】!=′\0′;i++);

              return(i);}

              【參考答案】

              【7】*(str+i)或str[i]

              8.如果一個類中定義了成員對象,則該類的對象和成員對象先被初始化的是【8】。

              【參考答案】

              【8】類的成員對象

              9.C++在重載運算符中,如用成員函數重載一元運算符參數表中需要【9】個參數,如用友元函數重載一元運算符參數表中需要【10】個參數。

              【參考答案】

              【9】0 【10】1

              10. 假設int a=1,b=2;,則表達式(++a/b)*b--的值為【11】。

              【參考答案】

              【11】2

              11.C++語句const char *const p=″hello″;,所定義的指針p和它所指的內容都不能被【12】。

              【參考答案】

              【12】改變

              12.對于下面定義的類MyClass,請在函數f()中添加對象成員把n的值修改為50。

              class MyClass

              {

              public:

              MyClass(int x){n=x;}

              void SetNum(int nl){n=nl;}

              private:

              int n;

              };

              int f()

              {

              MyClass *ptr=new MyClass(45);

              【13】

              }

              【參考答案】

              【13】ptr->SetNum(50);

              13.表達式operator+(x,y)還可以表示為【14】。

              【參考答案】

              【14】x+y

              14.通過使用new和delete兩個運算符進行的分配為【15】存儲分配。

              【參考答案】

              【15】動態

              上機部分

              一、改錯題

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

              1:

              weight:5

              age:0

              2:

              weight:7

              age:9

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

              #include

              classanimal

              {

              public:

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

              friendvoidsetvalue(animal&,int);

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

              viodprint();

              protected:

              intitsweight;

              intitsage;

              };

              voidanimal::print()

              {

              cout<<"weight:"<

              cout<<"age:"<

              }

              voidsetvalue(animal&ta,inttw)

              {

              ta.itsweight=tw; www.Examda.CoM

              ta.itsage=0;

              }

              voidsetvalue(animal&ta,inttw,inttn)

              {

              ta.itsweight=tw;

              ta.itsage=tn;

              }

              voidmain()

              {/****************found*******************/

              animalpeppy

              setvalue(peppy,5);

              cout<<"1:"<

              peppy.print();

              setvalue(peppy,7,9);

              cout<<"2:"<

              peppy.print();}

              【參考答案】

              (1)添加友元函數的聲明

              friend void setvalue(animal&,int,int);

              (2)將viod print();改為:void print();

              (3)將animal peppy改為:animal peppy;

              【試題解析】

              (1)主要考查對成員函數定義規則的掌握,成員函數必須先聲明再使用,即使是友元函數也不例外;

              (2)主要考查對關鍵字的掌握,空類型應用void;

              (3)主要考查對變量定義的掌握,該處缺少“;”。

              二、簡單應用題

              請編寫一個函數intSeqSearch(intlist[],intstart,intn,intkey),該函數從start開始,在大小為n的數組list中查找key值,返回最先找到的key值的位置,如果沒有找到則返回-1。請使用for循環實現。

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

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

              文件kt4_2.cpp的內容如下:

              #include

              intSeqSearch(intlist[],intstart,intn,intkey)

              {

              }

              voidmain()

              {

              intA[10];

              intkey,count=0,pos;

              cout<<"Enteralistof10integers:";

              for(pos=0;pos<10;pos++)

              {

              cin>>A[pos];

              }

              cout<<"Enterakey:";

              cin>>key;

              pos=0;

              while((pos=SeqSearch(A,pos,10,key))!=-1)

              {

              count++;

              pos++;

              }

              cout<

              }

              【參考答案】

              int SeqSearch(int list[], int start, int n, int key)

              {

              for(int i=start;i

              {

              if(list[i]==key)

              {

              return i;

              }

              }

              return -1;

              }

              【試題解析】

              本題考查的是考生使用for和if等基本控制結構的綜合水平,查找一個數組中的指定元素并返回序號是一個基本操作,注意一維數組的實參格式。

              三、綜合應用題

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

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

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

              (3)完成類vector的友元函數frienddoubleMultiply(vector&x,vector&y)的定義,先定義double型的臨時變量c,然后將參數對象x和對象y的數據成員a與b分別相乘再相加后賦值給c,最后返回c的值,將請在注釋“//**3**”之后添加適當的語句。輸出結果如下:

              (10,20)

              (2,3)

              80

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

              源程序如下:

              #include

              classvector

              {

              inta;

              intb;

              public: 

              //**1**

              voidinput(intx,inty)

              {//**2**}

              voidoutput()

              {cout<<'('<

              frienddoubleMultiply(vector&x,vector&y);

              };

              doubleMultiply(vector&x,vector&y)

              {

              //**3**

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

              returnc;

              }

              voidmain()

              {

              vectorx(10,20),y;

              doubled;

              y.input(2,3);

              d=Multiply(x,y);

              x.output();

              y.output();

              cout<

              }

              【參考答案】

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

              (2)a=x; b=y;

              (3)double c;

              【試題解析】

              本題主要考查類的定義和友元函數定義,其中(1)中的參數列表形式和(3)中對象訪問成員使用“.”操作符。

            【9月計算機二級C++練習題及答案】相關文章:

            2016年9月計算機二級《C++》練習題及答案03-06

            2017年9月計算機二級C++強化練習題及答案04-28

            2015年9月計算機二級C++精選練習題(附答案)12-07

            2016年12月計算機二級C++練習題及答案05-30

            2017年3月計算機二級C++練習題及答案04-27

            2017年3月計算機二級《C++》單選練習題及答案07-24

            2017年12月計算機二級C++考前練習題及答案07-20

            2017年9月計算機二級《C++》強化練習題04-13

            2017年9月計算機二級C++強化試題及答案07-10

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看