<strike id="p1drw"></strike>

<rp id="p1drw"><object id="p1drw"><blockquote id="p1drw"></blockquote></object></rp>
<span id="p1drw"><p id="p1drw"><tt id="p1drw"></tt></p></span>

    1. 當前所在位置: 學問吧 > 學歷題庫 > 正文

      c++程序設計-2014年4月自考真題及答案

      2022-11-27 15:31:11 學問吧 Word文檔下載

       單選

      1. 下列關于類的權限描述錯誤的是(   )

      A.類本身的成員函數可以訪問自身的任何成員

      B.類的對象只能訪問公有成員

      C.普通函數可以不通過對象直接訪問類的公有成員

      D.一個類可以包含另一個類的對象作為成員

      正確答案

      C

      知識點名稱

       

      難易程度

      一般

      講解

      "普通函數不能訪問類的公有成員"的意思是

      int main()

      {

       widget w ;

       w.p ;//合法,這就叫做"普通函數訪問公有成員",也就是類接口

              //只有私有成員才需要通過類的公有函數來訪問

      }

      統計

      刷題次數 : 51    錯誤率 : 100%

       

      1. 只能在自身類和子類成員函數中被訪問,無法通過對象在類外訪問的成員屬于(   )

      A.private

      B.protected

      C.public

      D.publish

      正確答案

      B

      知識點名稱

      深刻理解訪問權限和賦值兼容規則

      難易程度

      簡單

      講解

      只能在自身類和子類成員函數中被訪問,無法通過對象在類外訪問的成員屬于protected。

      統計

      刷題次數 : 255    錯誤率 : 40%

       

      1. 面向對象中的“對象”是指(   )

      A.行為抽象

      B.數據抽象

      C.行為抽象和數據抽象的統一

      D.行為抽象和數據抽象的對立

      正確答案

      C

      知識點名稱

      面向過程與面向對象

      難易程度

      簡單

      講解

      結構化程序設計使用的是功能抽象,面向對象程序設計不僅能進行功能抽象,而且能進行數據抽象。“對象”實際上是功能抽象和數據抽象的統一。

      統計

      刷題次數 : 714    錯誤率 : 7%

       

      1. 在類外定義成員函數時,::運算符兩側分別連接(   )

      A.返回值類型  函數名

      B.返回值類型  類名

      C.函數名  類名

      D.類名  函數名

      正確答案

      D

      知識點名稱

      指向類成員函數的指針

      難易程度

      簡單

      講解

      在類外定義成員函數時,類名:: 函數名。

      統計

      刷題次數 : 306    錯誤率 : 0%

       

      1. 設函數int& index(int * a,int i)返回數組a中下標為i的元素,如存在整型數組int Array[]={1,2,3},在執行index(Array,2)+ +后,Array中各元素值為(   )

      A.{0,1,2}

      B.{l,1,2}

      C.{1,2,4}

      D.{0,2,3}

      正確答案

      C

      知識點名稱

      了解泛型算法應用于普通數組的方法

      難易程度

      一般

      講解

      int& index(int * a,int i)返回數組a中下標為i的元素,所以 index(Array,2)=3, index(Array,2)++=4,所以Array中各元素值為1,2,4。

      統計

      刷題次數 : 306    錯誤率 : 33%

       

      1. 類構造函數定義的位置是(   )

      A.類體內或體外

      B.只是在類體內

      C.只在類體外

      D.在類的成員函數中

      正確答案

      A

      知識點名稱

      熟練掌握定義類的方法

      難易程度

      簡單

      講解

      類構造函數定義的位置是類體內或體外。

      統計

      刷題次數 : 408    錯誤率 : 50%

       

      1. 設存在數組a,其長度為Len,下列哪項操作是將a中元素復制到數組b中(   )

      A.reverse(a+a,Len,b);

      B.sort(a,a+Len,b);

      C.find(a,a+Len,b);

      D.copy(a,a+Len,b);

      正確答案

      D

      知識點名稱

      了解string對象數組與泛型算法

      難易程度

      簡單

      講解

      復制函數用copy()。

      統計

      刷題次數 : 459    錯誤率 : 44%

       

      1. 關于對象的性質,下列描述錯誤的是:(   )

      A.同一類對象間可相互賦值

      B.可以使用對象數組

      C.對象不可以用作函數參數

      D.一個對象可以用作另一個類的成員

      正確答案

      C

      知識點名稱

      理解對象的含義

      難易程度

      簡單

      講解

      對象可以用作函數參數。

      統計

      刷題次數 : 408    錯誤率 : 75%

       

      1. 聲明一個沒有初始化參數的對象,需調用(   )

      A.指定參數構造函數

      B.拷貝構造函數

      C.初始化函數

      D.默認構造函數

      正確答案

      D

      知識點名稱

      深刻理解默認構造函數及其作用

      難易程度

      簡單

      講解

      建立一個對象時,對象的狀態是不確定的。為了使對象的狀態確定,必須對其進行正確的初始化。當沒有為一個類定義任何構造函數的情況下,編譯器會自動建立并調用一個不帶參數的默認構造函數;若程序中已經定義了有參數的構造函數,又存在需要先建立對象數組后進行賦值操作的情況,則必須為它定義一個無參數的構造函數。

      統計

      刷題次數 : 306    錯誤率 : 33%

       

      1. 下列運算符不能重載的是(   )

      A.!

      B.sizeof

      C.new

      D.delete

      正確答案

      B

      知識點名稱

       

      難易程度

      一般

      講解

      “sizeof”無法被重載是因為不少內部操作,比如指針加法,都依賴于它。

      統計

      刷題次數 : 51    錯誤率 : 100%

       

      1. 如P是一指針類型表達式,則下列表達式中不是左值表達式的是(   )

      A.P

      B.*P

      C.&P

      D.P+1

      正確答案

      D

      知識點名稱

      了解對指針使用const限定符的目的和方法

      難易程度

      簡單

      講解

      左值是指某個對象的表達式。名字“左值”來源于賦值表達式“E1=E2”,其中左運算分量“E1”必須能被計算和修改。左值表達式在賦值語句中既可以作為左操作數,也可以作為右操作數。

      統計

      刷題次數 : 714    錯誤率 : 42%

       

      1. 使用下列流格式控制符能輸出一個換行符的是(   )

      A.dec

      B.oct

      C.hex

      D.endl

      正確答案

      D

      知識點名稱

      掌握數據的簡單輸入輸出格式

      難易程度

      簡單

      講解

      endl流格式控制符能輸出一個換行符。

      統計

      刷題次數 : 561    錯誤率 : 36%

       

      1. 下列表達式,能將P聲明為常量指針的是(   )

      A.const int * P;

      B.int*const P;

      C.const int * const P

      D.int * P

      正確答案

      A

      知識點名稱

       

      難易程度

      一般

      講解

      int*constp:const離p近,說明p的指向不能變,即p開始指向哪個變量就只能指向這個變量,不能更改。

      但p指向的變量可以變。

      統計

      刷題次數 : 51    錯誤率 : 100%

       

      1. C++程序文件擴展名為(   )

      A..cpp

      B..h

      C..lib

      D..obj

      正確答案

      A

      知識點名稱

      理解C++語言與C語言的關系

      難易程度

      簡單

      講解

      .h是頭文件擴展名。

      統計

      刷題次數 : 1632    錯誤率 : 18%

       

      1. 對C++中主函數描述正確的是(   )

      A.名稱為main,可為多個

      B.名稱不限,可為多個

      C.名稱為main,必須有且只能有一個

      D.名稱不限,必須有且只能有一個

      正確答案

      C

      知識點名稱

      熟練掌握函數原型和命名空間的使用方法

      難易程度

      簡單

      講解

      主函數只能有一個。

      統計

      刷題次數 : 918    錯誤率 : 27%

       

      1. 假定有char * P="Hello";,要輸出這個字符串的地址值的正確寫法是(   )

      A.cout<< *P

      B.cout<<P

      C.cout<<&P

      D.cout<<(void *)P

      正確答案

      C

      知識點名稱

      掌握數據的簡單輸入輸出格式

      難易程度

      一般

      講解

      &p取內容。

      統計

      刷題次數 : 153    錯誤率 : 66%

       

      1. 下列描述錯誤的是(   )

      A.在沒創建對象前,靜態成員不存在

      B.靜態成員是類的成員,不是對象成員

      C.靜態成員不能是虛函數

      D.靜態成員函數不能直接訪問非靜態成員

      正確答案

      A

      知識點名稱

      靜態成員

      難易程度

      簡單

      講解

      如果類的數據成員或成員函數使用關鍵字static進行修飾,這樣的成員稱為靜態數據成員或靜態成員函數,統稱為靜態成員。除靜態數據成員的初始化之外,靜態成員遵循類的其他成員所遵循的訪問限制,雖然還沒有建立對象,但靜態成員已經存在。由于數據隱藏的需要,靜態數據成員通常被說明為私有的,而通過定義公有的靜態成員函數來訪問靜態數據成員。故選:在沒創建對象前,靜態成員不存在。

      統計

      刷題次數 : 204    錯誤率 : 25%

       

      1. 對于友元描述正確的是(   )

      A.友元是本類的成員函數

      B.友元不是本類的成員函數

      C.友元不是函數

      D.友元不能訪問本類私有成員

      正確答案

      B

      知識點名稱

      友元函數

      難易程度

      簡單

      講解

      一個類的成員函數(包括構造函數和析構函數)可以通過使用friend說明為另一個類的友元。將類0ne的成員函數func:說明為類Two的友元,因為func:是屬于類One;的,所以要使用限定符說明它的出處,即c)ne::nInS(TWo&)。0ne的對象就可以通過友元函數:rune:(Two&)訪問類TWo的所有成員。因為是訪問類T'wo,應使用Two對象的引用作為傳遞參數。故選:友元不是本類的成員函數。

      統計

      刷題次數 : 816    錯誤率 : 37%

       

      1. 一個函數功能不太復雜,但要求頻繁使用,則該函數適合作為(   )

      A.內聯函數

      B.重載函數

      C.遞歸函數

      D.嵌套函數

      正確答案

      A

      知識點名稱

      內聯函數

      難易程度

      簡單

      講解

      一個函數功能不太復雜,但要求頻繁使用,則該函數適合作為內聯函數。

      統計

      刷題次數 : 357    錯誤率 : 85%

       

      1. 下列哪種默認參數的聲明是不正確的(   )

      A.int max(int a,int b,int c,int d=0);

      B.int max(int a,int b,int c=0,int d=0);

      C.int max(int a=0,int b,int c=0,int d=0);

      D.int max(int a,int b=0,int c=0,int d=0);

      正確答案

      C

      知識點名稱

      掌握使用默認參數的方法

      難易程度

      一般

      講解

      int max(int a=0,int b,int c=0,int d=0);沒有意義,0在int類型中已經是最小的,則函數值一定是b。

      統計

      刷題次數 : 357    錯誤率 : 71%

       

      二 填空

      1. C++程序的編譯是以____為單位進行的。

      正確答案

      文件

      知識點名稱

      掌握程序的編輯、編譯和運行的基本方法

      難易程度

      簡單

      講解

      C++程序的編譯是以文件為單位進行的。

       

      1. 默認參數是在____中說明的,默認參數可以多于1個,但是必須放在參數序列的后部。

      正確答案

      函數原型

      知識點名稱

      掌握使用默認參數的方法

      難易程度

      簡單

      講解

      默認參數是在函數原型中說明的,默認參數可以多于1個,但是必須放在參數序列的后部。

       

      1. 通過C++語言中的____機制,可以從現存類中構建其子類。

      正確答案

      派生(或繼承)

      知識點名稱

      知道派生類支配基類的同名函數的含義

      難易程度

      簡單

      講解

      通過C++語言中的派生(或繼承)機制,可以從現存類中構建其子類。

       

      1. 拷貝構造函數使用____作為參數初始化創建中的對象。

      正確答案

      引用

      知識點名稱

      深刻理解復制構造函數的作用及其定義和使用方法

      難易程度

      簡單

      講解

      拷貝構造函數使用引用作為參數初始化創建中的對象。

       

      1. 基類的公有成員在通過公有派生得到的子類中訪問權限是____。

      正確答案

      公有類型

      知識點名稱

      深刻理解訪問權限和賦值兼容規則

      難易程度

      簡單

      講解

      基類的公有成員在通過公有派生得到的子類中訪問權限是公有類型。

       

      1. 要關閉一個文件輸出流對象myFile,所用的C++語句是____。

      正確答案

      myFile.close()

      知識點名稱

      默認輸入輸出格式控制

      難易程度

      一般

      講解

      myFile.close();關閉一個文件輸出流對象myFile。

       

      1. 執行代碼double pi=3.1415192; cout < < setprecision (3) < < pi;程序的輸出結果是____。

      正確答案

      3.14

      知識點名稱

      掌握數據的簡單輸入輸出格式

      難易程度

      一般

      講解

      setprecisron first(int n)的作用是設置浮點數的精度n.題中是浮點數的位數是3.即兩位小數。加上小數點占的那一位,剛好三位。

       

      1. 將對象作為函數參數,是將實參對象的____傳遞給形參對象,這種傳遞是單向的。

      正確答案

      知識點名稱

      熟練掌握傳值的使用方法

      難易程度

      簡單

      講解

      將對象作為函數參數,是將實參對象的值傳遞給形參對象。這種傳遞是單向的。

       

      1. 建立一個對象時,對象的狀態是不確定的。為了使對象的狀態確定,必須對其進行正確的____。

      正確答案

      初始化

      知識點名稱

      面向過程與面向對象

      難易程度

      簡單

      講解

      建立一個對象時,對象的狀態是不確定的。為了使對象的狀態確定,必須對其進行正確的初始化。

       

      1. C++類中的____函數在對象的生存期結束時被自動調用。

      正確答案

      析構

      知識點名稱

      深刻理解默認析構函數的作用

      難易程度

      簡單

      講解

      C++類中的析構函數在對象的生存期結束時被自動調用。

       

      1. C++語言中的整數常量有四種:十進制常量、長整型常量、八進制常量和____。

      正確答案

      十六進制常量

      知識點名稱

      掌握C++新的基本數據類型

      難易程度

      簡單

      講解

      整數常量有四種:十進制常量、長整型常量、八進制常量和十六進制常量。

       

      1. UML中對象行為之間的動態關系是通過對象行為之間的依賴關系表現的,稱之為____。

      正確答案

      消息鏈接

      知識點名稱

      認識類和對象的UML標記圖

      難易程度

      一般

      講解

      若一個對象在執行自己的操作時,需要通過消息請求另一個對象為它完成某種服務,則說第1個對象與第2個對象之間存在著消息連接。消息連接是有方向的,使用一條帶箭頭的實線表示,從消息的發送者指向消息的接收者。

       

      1. 聲明一個常成員函數Fun,其返回類型為char,第一個參數類型為int,第二個參數類型為double,函數Fun的聲明原型是____。

      正確答案

      char Fun(int,double)const;

      知識點名稱

      熟練掌握函數原型和命名空間的使用方法

      難易程度

      簡單

      講解

      其返回類型為char,第一個參數類型為int,第二個參數類型為double,故為:char Fun(int,double)const;。

       

      1. 在C++語言中,利用向量類模板定義一個具有20個int類型且初值為1的向量C,實現此操作的語句是____。

      正確答案

      vector<int>C(20,1)

      知識點名稱

      掌握定義向量列表的方法

      難易程度

      簡單

      講解

      vector<類型>類名(數目,初值)。

       

      1. 執行下列代碼:int a=123,b=321;cout<<setw(3)<<a<<b<<endl;程序輸出結果是:____。

      正確答案

      123321

      知識點名稱

      掌握數據的簡單輸入輸出格式

      難易程度

      一般

      講解

      setw(3)代表在a后面有三個位置,而321剛好,故不空格。

       

      1. 將指向對象的指針作為函數參數,形參是對象指針,實參是對象的____。

      正確答案

      地址值

      知識點名稱

      熟練掌握傳值的使用方法

      難易程度

      簡單

      講解

      將指向對象的指針作為函數參數,形參是對象指針,實參是對象的地址值。

       

      1. vector類中用于返回向量中的最后一個對象的方法是____。

      正確答案

      back()

      知識點名稱

      了解向量的數據類型

      難易程度

      一般

      講解

      在訪間向量對象的方法中,front()表示返回向量中的第一個對象,back()表示返回向量的最后一個對象。

       

      1. C++語言中動態分配內存的關鍵字是____。

      正確答案

      new

      知識點名稱

      深刻理解構造函數和運算符new的相互關系及其使用方法

      難易程度

      簡單

      講解

      C++語言中動態分配內存的關鍵字是new。

       

      1. C++類成員的訪問權限有____、公有和保護三種。

      正確答案

      私有

      知識點名稱

      深刻理解訪問權限和賦值兼容規則

      難易程度

      簡單

      講解

      C++類成員的訪問權限有私有、公有和保護三種。

       

      1. 寫出聲明一個復數對象num的語句,并使對象被初始化為單精度2.2+1.3i,此聲明語句是____。

      正確答案

      complex<float>num(2.2,1.3)

      知識點名稱

      理解使用complex對象的方法

      難易程度

      一般

      講解

      復數:complex<類型>對象名(實數,虛數)。

       

      三 改錯

      1. 下面的類定義中有一處錯誤,請用下橫線標出錯誤所在行并給出修改意見。

      #include<iostream.h>

      main( ) {

      int x=5,y=6;

      const int * p=&x;

      *p=y;

      cout<<*p<<endl;

      }

      正確答案

      *p=y;指針p所指向的為一常量,不能進行左值操作。

      知識點名稱

      了解對指針使用const限定符的目的和方法

      難易程度

      一般

      講解

      左值是指某個對象的表達式。名字“左值”來源于賦值表達式“E1=E2”,其中左運算分量“E1”必須能被計算和修改。指針p所指向的為一常量,不能進行左值操作。

       

      1. 下面的每題中有一處錯誤,請在答題紙上寫出錯誤所在行并給出修改意見

      #include<iostream.h>

          class f {

      private:T x, y;    

      public:f1(T a,T b){x=a;y=b;}

          T max( ){return(x>y)?x:y;}

          };

          main( ) {

          f a;

          a.f1(1.5,3.8);

          cout<<a.max( )<<endl;

          }

      正確答案

      T x,y;模板沒有聲明

      知識點名稱

      類模板的成分、語法及對象

      難易程度

      一般

      講解

      模板需要聲明。

       

      1. 下面的類定義中有一處錯誤,請寫出錯誤所在行并給出修改意見。#include<iostream.h>     class point{     private: float x,y;public: point( float a,float b) { x = a;y = b; }   void f( ) {x=0;y=0;}     void getx( ) { cout<< x<< endl; }void gety( ) { cout<< y<< endl; }} ;  main() { point a (3.5) ;a.getx( )}

      正確答案

      point a (3.5);沒有定義一個參數的構造函數

      知識點名稱

      熟練掌握定義構造函數的不同方法

      難易程度

      簡單

      講解

      由public: point( float a,float b)可知,沒有定義一個參數的構造函數,故錯誤。

       

      1. 下面的每題中有一處錯誤,請在答題紙上寫出錯誤所在行并給出修改意見

      #include<iostream.h>

          class f{

          private:float x,y;

          float get( ){return x+y;}

          public:f1(float a,float b){x=a;y=b;}

          };

          main( ) {

          f a;

          a.f1(1,3.8);

          cout<<a.get()<<endl;

          }

      正確答案

      cout<<a.get<<endl;get()函數為私有型

      知識點名稱

      深刻理解訪問權限和賦值兼容規則

      難易程度

      一般

      講解

      私有型函數只能在類里面調用。

       

      1. 下面的每題中有一處錯誤,請用下橫線標出錯誤所在行并給出修改意見

      #include < iostream, h >

          class testl {

             private : int x;

             public: testl ( ) { x = 2 ; }

                void set(int a){x =a;}

                void get( ) { cout << x << endl; }

             };

      class test2{

             private: int x;

            public : test2 ( ) { x = 3 ; }

               void set( int a) { x = a; }

               void get( ) { cout << x << endl; }

           };

           class test: public testl, public test2 {

            private : int x;

              public:void set( int a) { x=a; }

                 void gettest( ) {cout << x << endl; }

             };

           void main( ) {

              test a;      a. get( );

              }

      正確答案

      1. get( );get()存在二義性,使用時需要指出使用哪個基類的函數例:a.test1::get()

      知識點名稱

      知道派生類支配基類的同名函數的含義

      難易程度

      一般

      講解

      get()存在二義性,使用時需要指出使用哪個基類的函數。

       

      四 完成程序

      1. 在下面橫線處填上求兩個浮點數之差的cha函數的原型聲明、調用方法。

       class point

          {

          private:

          int m,n;

          public:

          point(int,int);

          point(point&);

          };

          point::point(int a,int b)

          {

          m=a;

      ________=b;

      }

          point::point(________)

          {

          m=t.m;

          n=t.n;

          }

      正確答案

      n;point&t

      知識點名稱

      返回引用的函數;返回對象的函數

      難易程度

      一般

      講解

      要求求兩個浮點數之差,由point(int,int);point(point&);我們需要將a賦值給m,將b賦值給n,故第一個空填n;;由point(point&)可知,調用函數用類指針,故填:point&t。

       

      1. #include  <iostream>

          using namespace std;

          class base

          {

          private:int x;

          public:base(int a){x=a;}

          int get(){return x;}

            void showbase()  {cout<<"x="<<x<<endl;}

          };

          class Derived:public base

          {private:int y;

          public:Derived(int a,int b):base(a){y=b;}

          void showderived()

             {cout<<"x="<<get()<<",y="<<y<<endl;}

          };   

          void main()

          {

          base b(3);

          Derived d(6,7);

          b.showbase();

          d.showderived();

          ________;

      b.showbase();

         ________;

      b1.showbase();

      base* pb=&bl;

      pb—>showbase();

      d.showderived();

      b.showbase();

      }

      輸出結果如下:

      x=3

      x=6,y=7

      x=6

      x=6

      x=6

      x=6,y=7

      x=6

      正確答案

      b=d;derived b1(6,7)

      知識點名稱

      指向類成員函數的指針;熟練掌握設計方程類及其成員函數的方法;熟練掌握編程實現的方法和步驟

      難易程度

      困難

      講解

      b.showbase();得到3,d.showderived();得到6,7;利用賦值兼容性規則,第一空填:b=d。b.showbase()得到6,引用Derived  b1(6,7)函數,b1.showbase()得到6,后面依次得到:6,6,7,6.

       

      1. 在下劃線處填上缺少的部分。

          #include<iostream>

          #include<fstream>

          using namespace std;

          class complex

          {

          public:

          int real;

          int imag;

          complex(int r=0,int i=0)

          {

            real=r;

            imag=i;

          }

          };

          complex operator+(________,complex& b)

          {

          int r=a.real+b.real;

          int i=a.imag+b.imag;

          return_________;

          }

          void main( )

          {

          complex x(1,2),y(3,4),z;

          z=x+y;

          cout<<z.real<<″+″<<z.imag<<″i″<<endl;

          }

      正確答案

      complex&a;complex(r,i)

      知識點名稱

      成員函數重載及默認參數;返回引用的函數;返回指針的函數

      難易程度

      困難

      講解

      由int r=a.real+b.real;int i=a.imag+b.imag;可知complex ()重載函數的兩個參數都是指針,故第一空填:complex&a;由cout<<z.real<<″+″<<z.imag<<″i″<<endl;可知,引用的都是real,imag,所以重載函數的返回值是complex(r,i),故第二個空填:complex(r,i)。

       

      1. 下面程序的運行結果如下:

          This is line1

          This is line2

          This is line3

          在下劃線處填上缺少的部分。源程序如下:

          #include  <iostream>

          #include_____

          using namespace std;

          void main()

          {

          fstream fin, fout;

          fout.open("my.txt",ios::out);

          if(!fout.is_open())

             return;

          for(int i=0;i<3;i=i+1)

             fout<<"This is line"<<i+1<<endl;

          fout.close();

          fin.open("my.txt",ios::in);

          if(! fin.is_open())

             return;

          char str[100];

          while(______)

          {

            fin.getline(str,100);

            cout<<str<<endl;

          }

          fin.close();

          }

      正確答案

      <fstream>;!fin.eof()

      知識點名稱

      文件流的概念

      難易程度

      一般

      講解

      由于用了fout.open("my.txt",ios::out);,所以要有庫文件#include  <fstream>;第二空是因為缺一個條件:當到了文件未時結束,故用:!fin.eof()。

       

      1. 在下面橫線處填上求兩個浮點數之差的cha函數的原型聲明、調用方法。

        #include <iostream>

        using namespace std;

        void main( )

        {

        float a,b;

        ________//函數cha的原型聲明

        a=12.5;

        b=6.5;

        float c=_________;    //調用函數cha

          cout<<c<<endl;

        }

        float cha(float x,float y)

        {

        float w;

        w=x-y;

        return w;

        }

      正確答案

      float cha(float,float);;cha(a,b)

      知識點名稱

      熟練掌握函數原型和命名空間的使用方法

      難易程度

      簡單

      講解

      函數cha的原型聲明float cha(float,float);調用函數cha:float c=cha(a,b)。

       

      五 程序分析

      1. #lnclude<iostream.h>

          void func( );

          void main( )

          {

          for(int i=0;i<6;i++)

          {

          func( );

          }

          }

          void func( )

          {

          int x=0;

          x ++;

          static int y=0;

          y ++;

          cout<<"x="<<x<<";y="<<y<<endl;

          }

      正確答案

      x=1;y=1

      x=1;y=2

      x=1;y=3

      x=1;y=4

      x=1;y=5

      x=1;y=6

      知識點名稱

      靜態成員

      難易程度

      一般

      講解

      x的值加1之后就不再加了,而y的值由于是靜態變量,故每次都在上一次的基礎上加1.

       

      1. 請給出下面程序的輸出結果 #include < iostream. h >    class A   {    public:    A();       void Show() ;      ~A();    private:       static int c;    };    int A::c =0;    A::A()   {       cout < < ″constructor.″ < < endl;       c+ =10;   }    void A: :Show()   {       cout< < ″c=″ < <c< <endl;   }   A::~A()   {       cout < < ″destructor. ″ < < endl;   }    void main()   {       A a,b;     a. Show();     b. Show();   }

      正確答案

      constructor.

      constructor.

      C=20

      C=20

      destructor.

      destructor.

      知識點名稱

       

      難易程度

      簡單

      講解

      類A,B均有構造函數,所以直接引用類a,b,輸出構造函數的內容;后面引用函數show()。輸出c的值,同時引用了析構函數,故輸出析構函數的內容。

       

      六 程序設計

      1. 在三角形類tri實現兩個函數,功能是輸入三個頂點坐標判斷是否構成等邊三角形

          #include<iostream.h>

          #include<math.h>

          class point { point

          private:float x,y;

          public:f(float a,float b){x=a;y=b;}

          f( ){x=0;y=0;}

          Void set(float a,float b){x=a;y=b;}

          float getx( ){return x;}

          noat gety( ){return y;}

          };

          class tri{

          point x,y,z;

          float s1,s2,s3;

          public....settri(....);∥用于輸入三個頂點坐標

          ....test(....);∥用于判斷是否構成等邊三角形

          };

      請寫出兩個函數的過程(如果需要形式參數,請給出形參類型和數量,以及返回值類型)

      正確答案

      答案見解析

      知識點名稱

      能正確使用類的對象

      難易程度

      困難

      講解

      #include<iostream>

      #include<math.h>

      using namespace std;

      class point

      {

      private:float x,y;

      public:point(float a,float b){x=a;y=b;}

          point(){x=0;y=0;}

          void set(float a,float b){x=a;y=b;}

          float getx(){return x;}

          float gety(){return y;}

      };

      class tri{

       point x,y,z;

       float s1,s2,s3;

      public:

       void settri()//用于輸出三個頂點坐標

       {

        int a,b;

        cout<<"input the firest point"<<endl;

        cin>>a>>b;

        x.set(a,b);

        cout<<"input the second point"<<endl;

        cin>>a>>b;

        y.set(a,b);

        cout<<"input the third point"<<endl;

        cin>>a>>b;

        z.set(a,b);

        cout<<"the three point's codinate is:"<<endl;

        cout<<"x:"<<x.getx()<<","<<x.gety()<<endl;

        cout<<"y:"<<y.getx()<<","<<y.gety()<<endl;

        cout<<"z:"<<z.getx()<<","<<z.gety()<<endl;

       }

          void test()//用于判斷是否構成三角形

          {

           if((x.gety()-y.gety())/(x.getx()-y.getx())!=(y.gety()-z.gety())/(y.getx()-z.getx()))

            cout<<"yes"<<endl;//平面中的三個點只要不在一條直線上就可以構成三角形,不需要三邊

           else

            cout<<"no"<<endl;

          }

      };

      void main()

      {

       tri a;

       a.settri();

       a.test();

       system("pause");

      }

      相關推薦 更多 >>

      全國2015年10月Java語言程序設計試題

      全國2015年10月Java語言程序設計試題
      全國2015年10月Java語言程序設計試題一、單項選擇題(本大題共10小題.每小題1分.共10分)?

      全國2016年4月Java語言程序設計試題及答案

      全國2016年4月Java語言程序設計試題及答案
      全國2016年4月Java語言程序設計試題一、選擇題,(本大題共10小題,每小題1分共10 分)在每小題列出的四個各選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內。錯選,多選或未選均無分。

      2022年JAVA程序設計考試試題及答案

      2022年JAVA程序設計考試試題及答案
      Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于PC、數據中心、玩耍把握臺、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社群。下面是我整理的關于JAVA考試試題及答案,歡迎參考!

      2023年4月全國自考C++程序設計模擬試卷(一)

      2023年4月全國自考C++程序設計模擬試卷(一)
      單項選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個備選項中 只有一個是符合題目要求的,請將其代碼填寫在題后的括號內。錯選、多選或未選均無 分。

      C++程序設計??继羁疹}及答案

      C++程序設計??继羁疹}及答案
      C++的流庫預定義了4個流,它們是cin、cout、clog和___。答案:(P193)cerr[解析]cin、cout、clog和cerr分別用于標準輸入、輸出、標準錯誤流(緩沖)和標準錯誤流

      c++程序設計-2014年4月自考真題及答案

      c++程序設計-2014年4月自考真題及答案
      單選下列關于類的權限描述錯誤的是( ??)A.類本身的成員函數可以訪問自身的任何成員B.類的對象只能訪問公有成員C.普通函數可以不通過對象直接訪問類的公有成員D.一個類可以包含另一個類的對象作為成員