?C++程序設(shè)計(jì)2010年1月真題試題(04737)
摘要:C++程序設(shè)計(jì)2010年1月真題試題及答案解析(04737),本試卷總共100分。
C++程序設(shè)計(jì)2010年1月真題試題及答案解析(04737)
C++程序設(shè)計(jì)2010年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.下列符號(hào)中,不屬于分隔符的是( )
A.,
B./
C.;
D.{ }
3.可替換#define PI 3.1415926的語句是( )
A.float PI 3.1415926;
B.const float PI=3.1415926;
C.const PI(3.1415926);
D.const 3.1415926;
4.布爾類型標(biāo)識(shí)符是( )
A.void
B.short
C.long
D.bool
5.下列不是C++語言的基本數(shù)據(jù)類型的是( )
A.字符類型
B.整數(shù)類型
C.邏輯類型
D.枚舉類型
6.C++允許在結(jié)構(gòu)中定義函數(shù),這些函數(shù)稱為( )
A.靜態(tài)函數(shù)
B.構(gòu)造函數(shù)
C.析構(gòu)函數(shù)
D.成員函數(shù)
7.設(shè)函數(shù)void inc(int)將形參加1,如有整型變量int i=10; 則執(zhí)行inc(i); 后,i的值為( )
A.9
B.10
C.11
D.未知
8.下列哪種默認(rèn)參數(shù)的聲明是不正確的( )
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);
9.設(shè)int &max(int &, int &)返回兩參數(shù)中較大者,如有兩整型變量int a=10; int b=15;在執(zhí)行max(a, b)++后,a,b值分別為( )
A.10,15
B.11,15
C.10,16
D.11,16
10.包含哪種語句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù)( )
A.循環(huán)
B.變量自增自減
C.if…else…
D.變量聲明
11.定義函數(shù)模板中使用的參數(shù)類型標(biāo)識(shí)符需使用下列哪組符號(hào)括起來( )
A.<>
B.""
C.( )
D.{ }
12.一個(gè)類擁有多個(gè)構(gòu)造函數(shù),則這些構(gòu)造函數(shù)間為( )
A.重載關(guān)系
B.重復(fù)關(guān)系
C.拷貝關(guān)系
D.無關(guān)系
13.對(duì)于拷貝構(gòu)造函數(shù)point:: point(point& p),下列說明正確的是( )
A.該函數(shù)只能訪問P的私有成員
B.該函數(shù)不能訪問P的公有成員
C.該函數(shù)可以訪問P的私有和公有成員
D.該函數(shù)不能訪問P的成員
14.使用delete[ ]刪除對(duì)象數(shù)組時(shí),描述正確的是( )
A.數(shù)組中各元素都調(diào)用析構(gòu)函數(shù)
B.數(shù)組中各元素都調(diào)用構(gòu)造函數(shù)
C.不調(diào)用析構(gòu)函數(shù)
D.只有首元素調(diào)用析構(gòu)函數(shù)
15.下列哪個(gè)指令屬于條件編譯指令( )
A.#elif
B.#error
C.#pragma
D.#include
16.設(shè)類Test中存在成員static int x,則下列哪種初始化方式是正確的( )
A.Test::int x=25;
B.int x=25;
C.int Test::x=25;
D.int Test x=25;
17.下列關(guān)于友元的描述錯(cuò)誤的是( )
A.成員函數(shù)不可作友元
B.類可以作友元
C.普通函數(shù)可以作友元
D.靜態(tài)函數(shù)可以作友元
18.在繼承中,派生類擁有的基類個(gè)數(shù)為( )
A.0個(gè)
B.1個(gè)
C.多個(gè)
D.至少1個(gè)
19.基類中的protected成員,通過public派生,其在派生類中的可見性為( )
A.不可訪問
B.private
C.protected
D.public
20.下列哪個(gè)不是面向?qū)ο蟮年P(guān)鍵要素( )
A.抽象性
B.結(jié)構(gòu)性
C.封裝性
D.多態(tài)性
二、填空題
(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。
11.在STL庫中用于實(shí)現(xiàn)數(shù)組內(nèi)容反轉(zhuǎn)的函數(shù)是__________。
12.若要使用C++標(biāo)準(zhǔn)類庫,需要指定相應(yīng)的命名空間,所用的語句是__________。
13.C++語言中的整數(shù)常量有4種描述類型:十進(jìn)制常量、長整型常量、八進(jìn)制常量和__________。
14.聲明一個(gè)名為a的整型引用變量所使用的語句是__________。
15.重載的運(yùn)算符仍保留原有的優(yōu)先級(jí)、__________和語法結(jié)構(gòu)。
16.執(zhí)行代碼 int b=100; cout<<hex<<b:程序的輸出結(jié)果是__________。
17.帶有純虛函數(shù)的類稱為抽象類,它只能作為__________來使用。
18.使用__________作為函數(shù)參數(shù),實(shí)參對(duì)象和形參對(duì)象代表同一對(duì)象,改變形參對(duì)象的值就是改變實(shí)參對(duì)象的值。
19.UML中對(duì)象之間的靜態(tài)關(guān)系是通過對(duì)象屬性之間的連接反映的,稱之為__________。
110.如果一個(gè)模板聲明列出多個(gè)參數(shù),則多個(gè)參數(shù)之間必須使用逗號(hào)隔開,每個(gè)參數(shù)都必須重復(fù)使用關(guān)鍵字__________。
111.C++類的構(gòu)造函數(shù)名與__________名稱一樣,且沒有返回值。
112.C++規(guī)定,當(dāng)一個(gè)成員函數(shù)被調(diào)用時(shí),系統(tǒng)自動(dòng)向它傳遞一個(gè)隱含的參數(shù),該參數(shù)是一個(gè)指向調(diào)用該函數(shù)的對(duì)象的指針,該指針被稱為__________指針。
113.聲明一個(gè)常成員函數(shù)Fun,其返回類型為char,第一個(gè)參數(shù)類型為int,第二個(gè)參數(shù)類型為double,函數(shù)Fun的聲明原型是__________。
114.C++語言中的“聚合”隱含了兩種實(shí)現(xiàn)方式,一種是__________,另一種是用一個(gè)類的對(duì)象作為一種廣義的數(shù)據(jù)類型來定義整體對(duì)象的一個(gè)屬性。
115.簡單成員函數(shù)是指聲明中不含const、__________和static關(guān)鍵字的函數(shù)。
116.在派生類中繼承的基類成員的初始化,需要由派生類的構(gòu)造函數(shù)調(diào)用基類的__________來完成。
117.在C++中,利用向量類模板定義一個(gè)具有20個(gè)int的向量,其所有元素被置為1,實(shí)現(xiàn)此操作的語句是__________。
118.vector類中用于獲取無需再次分配內(nèi)存就能容納的對(duì)象個(gè)數(shù)的方法是__________。
119.動(dòng)態(tài)聯(lián)編是程序運(yùn)行到需要的語句處才動(dòng)態(tài)確定的,這稱為__________多態(tài)性。
120.C++重載“=”運(yùn)算符的函數(shù)名是__________。
三、改錯(cuò)題
(本大題共5小題,每小題4分,共20分)下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。
21. #include<iostream.h> #define PI 3.14; void main( ) { double i; int r; cout<<″輸入圓形半徑:″; cin>>r; i=2 * PI * r; cout<<″圓形周長=″<<i<<endl; i=PI * r * r; cout<<″圓形面積=″<<i<<endl; }
22. #include <iostream.h> class A { private: int x, y; public: A(int a=0, b=1); void Show( ); }; A::A(int a, int b) { x=a; y=b; } void A::Show( ) { cout<<″x=″<<x<<endl; cout<<″y=″<<y<<endl; }
23. #include <iostream.h> class A { unsigned char var; public: A(unsigned char x){ var=x: } void print( ){ cout<<″var=″<<var; } }; void main( ) { A a(″x″); a. print( ); }
24. #include < iostream.h> class Class { public: void print(int a,int b) { cout<<″int:″<< a << endl; cout <<″int:″<< b << endl; } void print(char * a,char * b) { cout<<″string:″ <<a <<endl; cout <<″ string:″ <<b <<endl; } void print(char * a,unsigned int b){ cout <<″string:″ <<a <<endl; cout <<″int:″ <<b <<endl; } }; void main( ) { Class cls; cls.print(10,20); cls.print(′c′,1); cls.print(′x′,′y′); cls.print(″Hello!″,0); }
25. #include < iostream.h > class Class { private: int val; public: void func( int a) { val = a; } }; void main( ) { Class * cls ; cls -> func(10) ; }
四、完成程序題
(本大題共5小題,每小題4分,共20分)
31.將下面程序補(bǔ)充完整,使程序計(jì)算100以內(nèi)所有可被7整除的自然數(shù)之和。 #include <iostream.h> void main( ) { int x=1; int sum=0; while(true) { if(x>100){ __________; } if(__________){ sum=sum+x; } x++; } cout<<sum<<endl; }
32.將下面程序補(bǔ)充完整,使程序執(zhí)行結(jié)果為9。 #include <iostream.h> class Class{ public: __________{ x=a; } __________{ return x * x; } private: int x; }; void main( ) { Class a(3); cout<<a.get( )<<endl; }
33.將下面程序補(bǔ)充完整,使程序正確的初始化私有變量var及釋放資源。 class Class { private: int * var; public: Class(int num); ~Class( ); }; Class::Class(int num) { ___________; } Class::~Class( ) { ___________; }
34.將下面程序補(bǔ)充完整,使程序的輸出結(jié)果為:ClassA::PrintClassB::Print程序如下: #include<iostream.h> class Base { public: virtual void Print( ) const { cout<<″Base::Print″<<endl; } }; class ClassA:public Base { public: void Print( )const{cout<<″ClassA::Print″<<endl;} }; class ClassB:public Base { public: void Print( )const{cout<<″ClassB::Print″<<endl;} }; void Print(__________) { __________; } void main( ) { ClassA a; ClassB b; Print(a); Print(b); }
35.下列程序的運(yùn)行結(jié)果如下:x=22,y=22根據(jù)結(jié)果將程序補(bǔ)充完整。 #include <iostream.h> template <__________> void f(__________) { if(sizeof(T1)>sizeof(T2)) x=(T1)y; else y=(T2)x; } void main( ){ double x=134.2; int y=22; f(x,y); cout<<″x=″<<x<<″,y=″<<y; }
五、程序分析題
(本大題共2小題,每小題5分,共10分)
41.請(qǐng)給出下面程序的輸出結(jié)果 #include < iostream.h > class Class { public: static int var; Class( ) { var+ +; } }; int Class::var = 0; void main( ) { cout <<″Class::var =″ <<Class:: var <<endl; Class c1 ; cout < <″c1. var=″ < <c1. var < <endl; Class c2, c3 ; cout <<″c2. var =″ <<c2. var <<endl; }
42. #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( ); }
六、程序設(shè)計(jì)題
(本大題共1小題,共10分)
51.利用LOCATION類,使用繼承定義圓類CIRCLE,圓由圓心和半徑構(gòu)成。提供得到圓心坐標(biāo)和半徑的成員函數(shù)、以及計(jì)算圓的周長和面積的成員函數(shù)。在主程序中創(chuàng)建兩個(gè)圓A和B,圓心坐標(biāo)分別為(0,3)、(3,7),按如下格式輸出兩個(gè)圓的圓心坐標(biāo)、周長和面積,并計(jì)算和輸出兩個(gè)圓的圓心之間的距離。A:(x1,y1,r1),Girth=g1,Area=a1B:(x2,y2,r2),Girth=g2,Area=a2A(x1,y1),B(x2,y2),Distance=d定義LOCATION類,該類沒有“繼承”等現(xiàn)象。注意二維坐標(biāo)點(diǎn)之間的距離公式。class LOCATION{double x,y;public:virtual double getx( )const{return x;};virtual double gety( )const{return y;};virtual double dist(LOCATION &s)const;LOCATION(double x, double y):x(x), y(y){ };};double LOCATION:: dist(LOCATION &s)const{double xd=s.x-x, yd=s.y-y;return sqrt(xd*xd+yd*yd);}
延伸閱讀
- 2023年10月自考00257票據(jù)法真題
- 2023年10月自考00249國際私法真題
- 2023年10月自考00246國際經(jīng)濟(jì)法概論真題
- 2023年10月自考00245刑法學(xué)真題
- 2023年10月自考00186國際商務(wù)談判真題
- 2023年10月自考00185商品流通概論真題
自考微信公眾號(hào)
掃碼添加
自考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取