• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 第49次計算機二級C++考試試題

        時間:2024-08-03 09:19:02 計算機等級 我要投稿
        • 相關推薦

        2017年第49次計算機二級C++考試試題

          計算機誕生初期,人們要使用計算機必須用機器語言或匯編語言編寫程序。下面是小編收集的關于計算機二級C++考試試題,希望大家認真閱讀!

        2017年第49次計算機二級C++考試試題

          單選題

          1). 結構化程序設計主要強調的是( )

          A.程序的規模

          B.程序的效率

          C.程序設計語言的先進性

          D.程序易讀性

          正確答案:D

          2). 下面關于C++流的敘述中,正確的是( )。

          A.cin是一個輸入流對象

          B.可以用ifstream定義一個輸出流對象

          C.執行語句序列char* y=″PQMN″;cout<

          D.執行語句序列char x[80];cin.getline(x,80);時,若輸入Happy new year,則x中的字符串是″Happy″

          正確答案:A

          答案解析:本題考查C++流的概念和I/()的格式化。cin是istream類的對象,即輸入流對象。ifstream是輸入文件流,類不能定義個輸出流對象。getline函數的功能是允許從輸入流中讀取多個字符,并且允許指定輸入終止,在讀取完成后,從讀取的內容中刪除該終止字符,所以D選項中的語句序列后x中字符串應該是Happy new year。

          3). 若已定義的函數有返回值,則以下關于該函數調用的敘述中錯誤的是( )。

          A.函數調用可以作為獨立的語句存在

          B.函數調用可以無返回值

          C.函數調用可以出現在表達式中

          D.函數調用可以作為、一個函數的形參

          正確答案:D

          答案解析:本題考查函數的調用方式。函數的形參和實參具有以下特點:①形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放分配的內存單元,因此,形參只有在函數內部有效,函數調用結束返回主調函數后則不能再使用該形參變量;②實參可以是常量、變量、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參,因此應通過預先用賦值、輸入等辦法使實參獲得確定值;③實參和形參在數量上、類型上、順序上應嚴格一致,否則會發生″類型不匹配″的錯誤;④函數調用中發生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。

          4). 設int a=10,b=11,c=12;,表達式(a+b)

          A.2

          B.0

          C.-2

          D.1

          正確答案:B

          答案解析:本題考察的是運算符的優先級,應該先計算a+b的值為21,然后與c比較大小的值為0,根據"&&"的運算規則,整個表達式的值為0。

          5). 若要對Date類中重載的加法運算符成員函數進行聲明,下列選項中正確的是( )。

          A.Data+( Data);

          B.Data operator+( Data);

          C.Data+operator( Data);

          D.operator+( Data.Data);

          正確答案:B

          答案解析:重載運算符的函數一般格式如下:函數類型operator運算符名稱(形參列表),因此選B。

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

          A.循環隊列中的元素個數隨隊頭指針與隊尾指針的變化而動態變化

          B.循環隊列中的元素個數隨隊頭指針的變化而動態變化

          C.循環隊列中的元素個數隨隊尾指針的變化而動態變化

          D.以上說法都不對

          正確答案:A

          答案解析:在循環隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置。因此,從排頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素。所以循環隊列中的元素個數與隊頭指針和隊尾指針的變化而變化,A正確。

          二、簡單應用題

          請編寫一個函數int CalcDigital(char*str),該函數可返回字符串str中數字字符(即“0”-“9”這10個數字)的個數,如字符串"olympic2008"中數字字符的個數為4。請用if條件判斷語句與for循環語句來實現該函數。

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

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

          文件kt9_2.cpp的內容如下:

          #include

          #include

          using namespace std;

          int CalcDigital(char*str);

          void main()

          {

          char *str;

          str=new char[255];

          cout<<"輸入字符串:";

          cin>>str;

          int num=CalcDigital(str);

          cout<

          }

          int CalcDigital(char*str)

          {

          }

          【參考答案】

          int CalcDigital(char *str)

          {

          if(str==NULL) return 0;

          int num_of_digital=0;

          int len=strlen(str);

          for(int i=0;i

          if(str[i]<='9' && str[i]>='0') num_of_digital++;

          return num_of_digital;

          }

          【試題解析】 本題考查對于if條件判斷語句與for循環語句的熟練使用程度。注意判斷條件(判斷是否是數字是直接比較ASCII碼)的使用。

          【該題的另一個參考答案】

          #include

          #include

          using namespace std;

          int CalcDigital(char*str);

          void main()

          {

          char *str;

          str=new char[255];

          cout<<"輸入字符串:";

          cin>>str;

          int num=CalcDigital(str);

          cout<

          }

          int CalcDigital(char*str)

          {

          int sum;

          sum=0;

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

          {

          if((str[i]>='0')&&(str[i]<='9')) sum++;

          if(str[i]==NULL)break;//這里是兩個=,如僅一個會使得str被賦值為空

          }

          return sum;

          }

          三.綜合應用題

          使用VC6打開考生文件夾下的工程kt9_3,此工程包含一個源程序文件kt9_3.cpp,其中定義了Circle類與Money類,Circle類可對半徑為r的圓進行周長與面積的計算,而Money類用于計算一圓形游泳池的造價。游泳池四周有圓形過道,過道外圍上柵欄,過道寬度為3米,根據鍵入的游泳池半徑,每米柵欄價格及每平方米過道價格,即可計算出游泳池的造價。請按要求完成下列操作,將程序補充完整。

          (1)定義符號常量PI(值為3.14159f)與WIDTH(值為3.00f),分別用于表示圓周率與過道的固定寬度。請在注釋“//**1**”之后添加適當的語句。

          (2)定義Circle類默認構造函數,把私有成員radius初始化為參數r的值。請在注釋“//**2**”之后添加適當的語句;

          (3)完成Money類默認構造函數的定義,把私有成員FencePrice(每米柵欄的價格)、ConcretePrice(每平方米過道的價格)初始化為參數f,c的值。請在注釋“//**3**”之后添加適當的語句。

          (4)完成Money類成員函數floatMoney::TotalMoney(floatfencelen,floatconarea)的定義,根據參數fencelen(柵欄的長度)和conarea(過道的面積),返回柵欄與過道的總造價。請在注釋“//**4**”之后添加適當的語句。

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

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

          #include

          using namespace std;

          //**1**

          class Circle

          {

          private:

          float radius;

          public:

          //**2**

          float Circumference(){return 2*PI*radius;}

          float Area(){return PI*radius*radius;}

          };

          class Money

          {

          private:

          float FencePrice;

          float ConcretePrice;

          public:

          Money(float f,float c);

          float TotalMoney(float fencelen,float conarea);

          };

          Money::Money(float f,float c)

          {

          //**3**

          }

          float Money::TotalMoney(float fencelen,float conarea)

          {

          //**4**

          }

          void main()

          {

          float radius,fence,concrete;

          cout.setf(ios::fixed);

          cout.setf(ios::showpoint);

          cout.precision(2);

          cout<<"Enter the radius of the pool:";

          cin>>radius;

          cout<<"Enter the Fence Price:";

          cin>>fence;

          cout<<"Enter the Concrete Price:";

          cin>>concrete;

          Circle Pool(radius);

          Circle PoolRim(radius+WIDTH);

          Money mon(fence,concrete);

          float totalmoney=mon.TotalMoney(PoolRim.Circumference(),(PoolRim.Area()-Pool.Area()));

          cout<<"The total money is RMB"<

          }}

          【參考答案】

          (1)const float PI = 3.14159f;

          const float WIDTH =3.00f;

          (2)Circle(float r):radius(r){};

          (3)FencePrice=f;

          ConcretePrice=c;

          (4)return FencePrice*fencelen+ConcretePrice*conarea;

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【第49次計算機二級C++考試試題】相關文章:

        計算機二級考試C++試題06-10

        計算機二級考試C++試題及答案08-01

        計算機二級考試C++試題及答案10-08

        2017計算機二級C++考試試題10-20

        2017最新計算機二級考試C++試題及答案10-24

        2017全國計算機二級C++考試試題06-20

        2017年計算機二級考試C++考試試題及答案09-24

        2017年計算機二級考試C++考試試題及答案11-03

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

        2017年9月計算機二級C++考試試題05-13

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲国产精品大秀在线播放 | 日本免费香蕉大道 | 宅男宅女精品视频一区二区 | 久久久久综合一区二区不卡 | 日韩国产欧美一二三区 | 午夜性爱视频久久 |

            2017年第49次計算機二級C++考試試題

              計算機誕生初期,人們要使用計算機必須用機器語言或匯編語言編寫程序。下面是小編收集的關于計算機二級C++考試試題,希望大家認真閱讀!

            2017年第49次計算機二級C++考試試題

              單選題

              1). 結構化程序設計主要強調的是( )

              A.程序的規模

              B.程序的效率

              C.程序設計語言的先進性

              D.程序易讀性

              正確答案:D

              2). 下面關于C++流的敘述中,正確的是( )。

              A.cin是一個輸入流對象

              B.可以用ifstream定義一個輸出流對象

              C.執行語句序列char* y=″PQMN″;cout<

              D.執行語句序列char x[80];cin.getline(x,80);時,若輸入Happy new year,則x中的字符串是″Happy″

              正確答案:A

              答案解析:本題考查C++流的概念和I/()的格式化。cin是istream類的對象,即輸入流對象。ifstream是輸入文件流,類不能定義個輸出流對象。getline函數的功能是允許從輸入流中讀取多個字符,并且允許指定輸入終止,在讀取完成后,從讀取的內容中刪除該終止字符,所以D選項中的語句序列后x中字符串應該是Happy new year。

              3). 若已定義的函數有返回值,則以下關于該函數調用的敘述中錯誤的是( )。

              A.函數調用可以作為獨立的語句存在

              B.函數調用可以無返回值

              C.函數調用可以出現在表達式中

              D.函數調用可以作為、一個函數的形參

              正確答案:D

              答案解析:本題考查函數的調用方式。函數的形參和實參具有以下特點:①形參變量只有在被調用時才分配內存單元,在調用結束時,即刻釋放分配的內存單元,因此,形參只有在函數內部有效,函數調用結束返回主調函數后則不能再使用該形參變量;②實參可以是常量、變量、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參,因此應通過預先用賦值、輸入等辦法使實參獲得確定值;③實參和形參在數量上、類型上、順序上應嚴格一致,否則會發生″類型不匹配″的錯誤;④函數調用中發生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。

              4). 設int a=10,b=11,c=12;,表達式(a+b)

              A.2

              B.0

              C.-2

              D.1

              正確答案:B

              答案解析:本題考察的是運算符的優先級,應該先計算a+b的值為21,然后與c比較大小的值為0,根據"&&"的運算規則,整個表達式的值為0。

              5). 若要對Date類中重載的加法運算符成員函數進行聲明,下列選項中正確的是( )。

              A.Data+( Data);

              B.Data operator+( Data);

              C.Data+operator( Data);

              D.operator+( Data.Data);

              正確答案:B

              答案解析:重載運算符的函數一般格式如下:函數類型operator運算符名稱(形參列表),因此選B。

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

              A.循環隊列中的元素個數隨隊頭指針與隊尾指針的變化而動態變化

              B.循環隊列中的元素個數隨隊頭指針的變化而動態變化

              C.循環隊列中的元素個數隨隊尾指針的變化而動態變化

              D.以上說法都不對

              正確答案:A

              答案解析:在循環隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置。因此,從排頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素。所以循環隊列中的元素個數與隊頭指針和隊尾指針的變化而變化,A正確。

              二、簡單應用題

              請編寫一個函數int CalcDigital(char*str),該函數可返回字符串str中數字字符(即“0”-“9”這10個數字)的個數,如字符串"olympic2008"中數字字符的個數為4。請用if條件判斷語句與for循環語句來實現該函數。

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

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

              文件kt9_2.cpp的內容如下:

              #include

              #include

              using namespace std;

              int CalcDigital(char*str);

              void main()

              {

              char *str;

              str=new char[255];

              cout<<"輸入字符串:";

              cin>>str;

              int num=CalcDigital(str);

              cout<

              }

              int CalcDigital(char*str)

              {

              }

              【參考答案】

              int CalcDigital(char *str)

              {

              if(str==NULL) return 0;

              int num_of_digital=0;

              int len=strlen(str);

              for(int i=0;i

              if(str[i]<='9' && str[i]>='0') num_of_digital++;

              return num_of_digital;

              }

              【試題解析】 本題考查對于if條件判斷語句與for循環語句的熟練使用程度。注意判斷條件(判斷是否是數字是直接比較ASCII碼)的使用。

              【該題的另一個參考答案】

              #include

              #include

              using namespace std;

              int CalcDigital(char*str);

              void main()

              {

              char *str;

              str=new char[255];

              cout<<"輸入字符串:";

              cin>>str;

              int num=CalcDigital(str);

              cout<

              }

              int CalcDigital(char*str)

              {

              int sum;

              sum=0;

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

              {

              if((str[i]>='0')&&(str[i]<='9')) sum++;

              if(str[i]==NULL)break;//這里是兩個=,如僅一個會使得str被賦值為空

              }

              return sum;

              }

              三.綜合應用題

              使用VC6打開考生文件夾下的工程kt9_3,此工程包含一個源程序文件kt9_3.cpp,其中定義了Circle類與Money類,Circle類可對半徑為r的圓進行周長與面積的計算,而Money類用于計算一圓形游泳池的造價。游泳池四周有圓形過道,過道外圍上柵欄,過道寬度為3米,根據鍵入的游泳池半徑,每米柵欄價格及每平方米過道價格,即可計算出游泳池的造價。請按要求完成下列操作,將程序補充完整。

              (1)定義符號常量PI(值為3.14159f)與WIDTH(值為3.00f),分別用于表示圓周率與過道的固定寬度。請在注釋“//**1**”之后添加適當的語句。

              (2)定義Circle類默認構造函數,把私有成員radius初始化為參數r的值。請在注釋“//**2**”之后添加適當的語句;

              (3)完成Money類默認構造函數的定義,把私有成員FencePrice(每米柵欄的價格)、ConcretePrice(每平方米過道的價格)初始化為參數f,c的值。請在注釋“//**3**”之后添加適當的語句。

              (4)完成Money類成員函數floatMoney::TotalMoney(floatfencelen,floatconarea)的定義,根據參數fencelen(柵欄的長度)和conarea(過道的面積),返回柵欄與過道的總造價。請在注釋“//**4**”之后添加適當的語句。

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

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

              #include

              using namespace std;

              //**1**

              class Circle

              {

              private:

              float radius;

              public:

              //**2**

              float Circumference(){return 2*PI*radius;}

              float Area(){return PI*radius*radius;}

              };

              class Money

              {

              private:

              float FencePrice;

              float ConcretePrice;

              public:

              Money(float f,float c);

              float TotalMoney(float fencelen,float conarea);

              };

              Money::Money(float f,float c)

              {

              //**3**

              }

              float Money::TotalMoney(float fencelen,float conarea)

              {

              //**4**

              }

              void main()

              {

              float radius,fence,concrete;

              cout.setf(ios::fixed);

              cout.setf(ios::showpoint);

              cout.precision(2);

              cout<<"Enter the radius of the pool:";

              cin>>radius;

              cout<<"Enter the Fence Price:";

              cin>>fence;

              cout<<"Enter the Concrete Price:";

              cin>>concrete;

              Circle Pool(radius);

              Circle PoolRim(radius+WIDTH);

              Money mon(fence,concrete);

              float totalmoney=mon.TotalMoney(PoolRim.Circumference(),(PoolRim.Area()-Pool.Area()));

              cout<<"The total money is RMB"<

              }}

              【參考答案】

              (1)const float PI = 3.14159f;

              const float WIDTH =3.00f;

              (2)Circle(float r):radius(r){};

              (3)FencePrice=f;

              ConcretePrice=c;

              (4)return FencePrice*fencelen+ConcretePrice*conarea;