違法信息舉報(bào) 客服熱線:400-118-7898
廣告
?
專接本欄目測試廣告

?C++程序設(shè)計(jì)2009年1月真題試題(04737)

自考 責(zé)任編輯:彭雅倩 2019-06-24

摘要:C++程序設(shè)計(jì)2009年1月真題試題及答案解析(04737),本試卷總共100分。

C++程序設(shè)計(jì)2009年1月真題試題及答案解析(04737)

C++程序設(shè)計(jì)2009年1月真題試題及答案解析(04737),本試卷總共100分。

一、單項(xiàng)選擇題

(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無分。

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

A..cpp
B..h
C..lib
D..obj

2.在C++中使用流進(jìn)行輸入輸出,其中專用于從鍵盤進(jìn)行輸入的流是(  )

A.cerr
B.cin
C.cout
D.cfile

3.包含自定義頭文件file.h的預(yù)處理指令是(  )

A.#define
B.#include file.h
C.#define file.h
D.#include "file.h"

4.用于標(biāo)識(shí)十六進(jìn)制前綴或后綴是(  )

A.無
B.后綴L或l
C.前綴零
D.前綴0x

5.設(shè)存在整型變量int x,則下列句與其它三項(xiàng)含義不同的是(  )

A.int* p=&x;
B.int& p=x;
C.int & p=x;
D.int &p=x;

6.在定義類成員時(shí),為產(chǎn)生封裝性,則需使用哪個(gè)關(guān)鍵字(  )

A.public
B.publish
C.protected
D.private

7.設(shè)函數(shù)void swap(int&, int&)將交換兩形參的值,如兩整型變量int a=10; int b=15;則執(zhí)行swap(a, b)后,a、b值分別為(  )

A.10,10
B.10,15
C.15,10
D.15,15

8.函數(shù)默認(rèn)參數(shù)在函數(shù)原型中說明,默認(rèn)參數(shù)必須放在參數(shù)序列的(  )

A.前部
B.中部
C.后部
D.兩端

9.設(shè)存在函數(shù)int min(int, int)返回兩參數(shù)中較小值,若求15,26,47三者中最小值,下列表達(dá)式中錯(cuò)誤的是(  )

A.int m=min(min(15, 26), min(15, 47));
B.int m=min(15, 26, 47);
C.int m=min(15, min(47, 26));
D.int m =min(min(47, 26), 16);

10.下列函數(shù)不能和函數(shù)void print(char)構(gòu)成重載的是(  )

A.int print(int);
B.void print(char, char);
C.int print(char);
D.void print(int, int);

11.在下列成對(duì)的表達(dá)式中,運(yùn)算結(jié)果類型相同的一對(duì)是(  )

A.7/2和7.0/2.0
B.7/2.0和7/2
C.7.0/2和7/2
D.7.0/2.0和7.0/2

12.內(nèi)聯(lián)函數(shù)的特點(diǎn)是(  )

A.減少代碼量,加快訪問速度
B.減少代碼量,減緩訪問速度
C.增加代碼量,減緩訪問速度
D.增加代碼量,加快訪問速度

13.類的私有成員可在何處被訪問(  )

A.本類的成員函數(shù)中
B.本類及子類的成員函數(shù)中
C.通過對(duì)象名在任何位置
D.不可訪問

14.類的構(gòu)造函數(shù)在以下什么情況下會(huì)被自動(dòng)調(diào)用(  )

A.定義成員函數(shù)時(shí)
B.定義對(duì)象時(shí)
C.定義數(shù)據(jù)成員時(shí)
D.定義友元函數(shù)時(shí)

15.下列關(guān)于析構(gòu)函數(shù)描述正確的是(  )

A.可以重載
B.函數(shù)體中必須有delete語句
C.返回類型必須是void類型
D.不能指定返回類型

16.設(shè)有函數(shù)T Sum(T x, T y){return x+y;},其中T為模板類型,則下列語句中對(duì)該函數(shù)錯(cuò)誤的使用是(  )

A.Sum(1, 2);
B.Sum(3.0, 2.2);
C.Sum("A", "C");
D.Sum("A", "C");

17.下列哪個(gè)編譯指令屬于條件編譯指令(  )

A.#include
B.#define
C.#else
D.#pragma

18.關(guān)于類的靜態(tài)成員函數(shù)描述錯(cuò)誤的是(  )

A.在創(chuàng)建對(duì)象前不存在
B.不能說明為虛函數(shù)
C.不能直接訪問非靜態(tài)函數(shù)
D.不是對(duì)象的成員

19.如果類A被聲明成類B的友元,則(  )

A.類A的成員即類B的成員
B.類B的成員即類A的成員
C.類A的成員函數(shù)不得訪問類B的成員
D.類B不一定是類A的友元

20.派生類的對(duì)象可以訪問以下那種情況繼承的基類成員(  )

A.私有繼承的私有成員
B.公有繼承的私有成員
C.私有繼承的保護(hù)成員
D.公有繼承的公有成員

二、填空題

(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。

11.若使用標(biāo)準(zhǔn)輸出流把整型變量a的值輸出到屏幕上,實(shí)現(xiàn)此操作的C++語句是_________。

12.C++將數(shù)據(jù)從一個(gè)對(duì)象流向另一個(gè)對(duì)象的流動(dòng)抽象為“流”,從流中獲取數(shù)據(jù)的操作稱為_________。

13.執(zhí)行下列代碼int b=100;cout<<"Hex:"<<hex<<b;程序的輸出結(jié)果是_________。

14.靜態(tài)聯(lián)編所支持的多態(tài)性稱為_________的多態(tài)性。

15.C++程序必須有且只有一個(gè)主函數(shù),其函數(shù)名為_________。

16.寫出聲明一個(gè)復(fù)數(shù)對(duì)象的語句,并使該對(duì)象被初始化為2.2+1.3i,此聲明語句是_________。

17.若有函數(shù)定義為:int add(int m1=0, int m2=2, int m3=4){ return m1+m2+m3; }在主函數(shù)中有int s=add(1)+add(0, 1)+add(0, 1, 2);則執(zhí)行此語句后s的值為_________。

18.C++中使用_________關(guān)鍵字說明函數(shù)為內(nèi)聯(lián)函數(shù)。

19.在源程序中有宏定義:#define PI 3.14,則若不想使該宏定義影響到程序的其它地方,可以使用_________刪除該宏定義。

110.類和其它數(shù)據(jù)類型不同的是,組成這種類型的不僅可以有數(shù)據(jù),還可以有對(duì)數(shù)據(jù)進(jìn)行操作的__________。

111.有下列代碼int a=0; double b=0; cin>>a>>b;當(dāng)用鍵盤輸入1.25時(shí),b=_________。

112.對(duì)于類Point而言,其析構(gòu)函數(shù)的定義原型為_________。

113.對(duì)象成員構(gòu)造函數(shù)的調(diào)用順序取決于這些對(duì)象在類中說明的順序,與它們在成員初始化列表中給出的順序_________。

114.類的簡單成員函數(shù)是指聲明中不含_________、volatile、static關(guān)鍵字的函數(shù)。

115.與操作對(duì)象的數(shù)據(jù)類型相互獨(dú)立的算法稱為_________。

116.從一個(gè)或多個(gè)以前定義的類產(chǎn)生新類的過程稱為_________。

117.在vector類中向向量尾部插入一個(gè)對(duì)象的方法是_________。

118.C++中用于動(dòng)態(tài)創(chuàng)建對(duì)象,并返回該對(duì)象的指針的關(guān)鍵字是_________。

119.C++的流類庫預(yù)定義的與標(biāo)準(zhǔn)輸出設(shè)備相聯(lián)接的流是_________。

120.執(zhí)行下列代碼cout<<noshowpoint<<123.0;程序輸出結(jié)果是_________。

三、改錯(cuò)題

(本大題共5小題,每小題2分,共10分)下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。

21.#include<iostream.h>class f{private: float x, y;public:f(float a, float b){x=a; y=b;}float max( ){return(x<y)?x:y;};main( ){f a(1.5, 3.8);cout<<a.max()<<endl;}

22.#include<iostream.h>class test{private: int x;public: test(int a){x=a;}void set(int a){x=a;}void get( ){cout<<x<<endl;}}main( ){const test a(3);a.set(5);a.get( );}

23.#include<iostream.h>class point{private: float x, y;public: f1(float a, float b){x=a; y=b;}point( ){x=0; y=0;}void getx( ){cout<<x<<endl;void gety( ){cout<<y<<endl;};void print(point a){cout<<a.x<<endl;}main( ){point a;a.f1(3.0, 5.0);print(a);}

24.#include<iostream.h>class f{private: int x, y;public: fl(int a, int b){x=a;y=b;}void print( ){cout<<x<<y<<endl;};main( ){f a;a.f1(1.5,1.8);a.print( );}

25.#include<iostream.h>main( ){int x=6;const int*p=x;cout<<*p<<endl;}

四、完成程序題

(本大題共5小題,每小題4分,共20分)

31.完成下面程序,使其輸出10,并在退出運(yùn)行時(shí)正確釋放分配給指針的存儲(chǔ)空間。#include <iostream>using namespace std;void main( ){int  *a, *p;a=new int(10);p=_________;cout<<*p<<endl;_________}

32.#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=&b1;pb->showbase( );d.showderived( );b.showbase( );}輸出結(jié)果如下:x=3x=6,y=7x=6x=6x=6x=6,y=7x=6

33.下面程序的運(yùn)行結(jié)果如下:B::display( )C::display( )在下劃線處填上缺少的部分。源程序如下:  #include<iostream>  using namespace std;  class B  {  public:    _________display( )  {cout << "B::display( ) "<<endl;}    };    class C: public B    {    public:         __________display( ){cout<<"C::display( )"<<endl;}    };    void fun(B*p)    {    p->display( );    }    void main( )    {    B b, *pb;    C c;    pb=&b;    fun(pb);    pb=&c;    fun(pb);    }

34.下面程序的運(yùn)行結(jié)果如下:    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( );    }

35.在下劃線處填上缺少的部分。源程序如下:#include <iostream>using namespace std;___________    T fun(T x)    {    _________y;    y=x*x-T(5);    return y;    }    void main( )    {    float a=2;    cout<<fun(a);    }

五、程序分析題

(本大題共4小題,每小題5分,共20分)

41.請(qǐng)寫出myTextl.txt文本文件中的內(nèi)容#include <iostream>#include <string>using namespace std;#include<fstream>void main( ){ofstream myFile1;myFile1.open("myText1.txt");cout<<"Enter the data in Chinese format(e.g.,2008,May 25):"<<endl;string Date("2008,January 1");string Year=Date.substr(0,4);int k=Date.find(",");int i=Date.find(" ");string Month=Date.substr(k+1, i-k-1);string Day=Date.substr(i+1, 2);string NewDate=Day+" "+Month+" "+Year;myFile1<<"original date:"<<Date<<endl;myFile1<<"Converted date:"<<NewDate<<endl;myFile1.close( );}

42.給出下面程序的輸出結(jié)果#include <iostream>using namespace std;class Simple{int x, y;public:Simple( ){x=y=0;}Simple(int i, int j){x=i; y=j;}void copy(Simple&s);void setxy(int i, int j){x=i; y=j;}void print( ){cout<<"x="<<x<<",y="<<y<<endl;}};void Simple:: copy(Simple&s){x=s.x; y=s.y;}void func(Simple s1,Simple&s2){s1.setxy(30, 40);s2.setxy(70, 80);}void main( ){Simple obj1(1, 2), obj2;obj2.copy(obj1);func(obj1,obj2);obj1.print( );obj2.print( );}

43.給出下面程序的輸出結(jié)果  #include"iostream.h"  int main( )  {  int i=17;  while(i>=10)  if(--i%4==3)continue;  else  cout<<"i="<<i--<<endl;  }

44.給出下面程序的輸出結(jié)果  #include<iostream>  using namespace std;  void main( )  {  int num=300;  int &ref=num;  cout<<ref;  ref=ref-100;  cout<<" "<<num;  num=num-50;  cout<<" "<<ref<<endl;  }

六、程序設(shè)計(jì)題

(本大題共1小題,共10分)

51.定義堆棧類模板Stack(先進(jìn)后出),棧的大小由使用者確定。要求該類模板對(duì)外提供如下二種基本操作:(1)push入棧(2)pop出棧,用數(shù)組來實(shí)現(xiàn)#include<iostream>using namespace std;template<class T,int size>class Stack{  T x[size];  int current;  public:  Stack( ){current=0;}  ....push(....);  ....pop(....);};請(qǐng)寫出兩個(gè)函數(shù)的過程(如果需要形式參數(shù),請(qǐng)給出形參類型和數(shù)量,以及返回值類型)

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

自考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

資料下載
  • 00152《組織行為學(xué)》【知識(shí)集錦】

    下載
  • 00158《資產(chǎn)評(píng)估》【知識(shí)集錦】

    下載
  • 00148《國際企業(yè)管理》【知識(shí)集錦】

    下載
  • 00160《審計(jì)學(xué)》【知識(shí)集錦】

    下載