?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)將其代碼填寫(xiě)在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。
1.在C++中,頭文件擴(kuò)展名為( )
A..cpp
B..h
C..lib
D..obj
2.下列符號(hào)中,不屬于分隔符的是( )
A.,
B./
C.;
D.{ }
3.可替換#define PI 3.1415926的語(yǔ)句是( )
A.float PI 3.1415926;
B.const float PI=3.1415926;
C.const PI(3.1415926);
D.const 3.1415926;
4.布爾類(lèi)型標(biāo)識(shí)符是( )
A.void
B.short
C.long
D.bool
5.下列不是C++語(yǔ)言的基本數(shù)據(jù)類(lèi)型的是( )
A.字符類(lèi)型
B.整數(shù)類(lèi)型
C.邏輯類(lèi)型
D.枚舉類(lèi)型
6.C++允許在結(jié)構(gòu)中定義函數(shù),這些函數(shù)稱(chēng)為( )
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.包含哪種語(yǔ)句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù)( )
A.循環(huán)
B.變量自增自減
C.if…else…
D.變量聲明
11.定義函數(shù)模板中使用的參數(shù)類(lèi)型標(biāo)識(shí)符需使用下列哪組符號(hào)括起來(lái)( )
A.<>
B.""
C.( )
D.{ }
12.一個(gè)類(lèi)擁有多個(gè)構(gòu)造函數(shù),則這些構(gòu)造函數(shù)間為( )
A.重載關(guān)系
B.重復(fù)關(guān)系
C.拷貝關(guān)系
D.無(wú)關(guān)系
13.對(duì)于拷貝構(gòu)造函數(shù)point:: point(point& p),下列說(shuō)明正確的是( )
A.該函數(shù)只能訪問(wèn)P的私有成員
B.該函數(shù)不能訪問(wèn)P的公有成員
C.該函數(shù)可以訪問(wèn)P的私有和公有成員
D.該函數(shù)不能訪問(wèn)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è)類(lèi)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.類(lèi)可以作友元
C.普通函數(shù)可以作友元
D.靜態(tài)函數(shù)可以作友元
18.在繼承中,派生類(lèi)擁有的基類(lèi)個(gè)數(shù)為( )
A.0個(gè)
B.1個(gè)
C.多個(gè)
D.至少1個(gè)
19.基類(lèi)中的protected成員,通過(guò)public派生,其在派生類(lèi)中的可見(jiàn)性為( )
A.不可訪問(wèn)
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ò)填、不填均無(wú)分。
11.在STL庫(kù)中用于實(shí)現(xiàn)數(shù)組內(nèi)容反轉(zhuǎn)的函數(shù)是__________。
12.若要使用C++標(biāo)準(zhǔn)類(lèi)庫(kù),需要指定相應(yīng)的命名空間,所用的語(yǔ)句是__________。
13.C++語(yǔ)言中的整數(shù)常量有4種描述類(lèi)型:十進(jìn)制常量、長(zhǎng)整型常量、八進(jìn)制常量和__________。
14.聲明一個(gè)名為a的整型引用變量所使用的語(yǔ)句是__________。
15.重載的運(yùn)算符仍保留原有的優(yōu)先級(jí)、__________和語(yǔ)法結(jié)構(gòu)。
16.執(zhí)行代碼 int b=100; cout<<hex<<b:程序的輸出結(jié)果是__________。
17.帶有純虛函數(shù)的類(lèi)稱(chēng)為抽象類(lèi),它只能作為_(kāi)_________來(lái)使用。
18.使用__________作為函數(shù)參數(shù),實(shí)參對(duì)象和形參對(duì)象代表同一對(duì)象,改變形參對(duì)象的值就是改變實(shí)參對(duì)象的值。
19.UML中對(duì)象之間的靜態(tài)關(guān)系是通過(guò)對(duì)象屬性之間的連接反映的,稱(chēng)之為_(kāi)_________。
110.如果一個(gè)模板聲明列出多個(gè)參數(shù),則多個(gè)參數(shù)之間必須使用逗號(hào)隔開(kāi),每個(gè)參數(shù)都必須重復(fù)使用關(guān)鍵字__________。
111.C++類(lèi)的構(gòu)造函數(shù)名與__________名稱(chēng)一樣,且沒(méi)有返回值。
112.C++規(guī)定,當(dāng)一個(gè)成員函數(shù)被調(diào)用時(shí),系統(tǒng)自動(dòng)向它傳遞一個(gè)隱含的參數(shù),該參數(shù)是一個(gè)指向調(diào)用該函數(shù)的對(duì)象的指針,該指針被稱(chēng)為_(kāi)_________指針。
113.聲明一個(gè)常成員函數(shù)Fun,其返回類(lèi)型為char,第一個(gè)參數(shù)類(lèi)型為int,第二個(gè)參數(shù)類(lèi)型為double,函數(shù)Fun的聲明原型是__________。
114.C++語(yǔ)言中的“聚合”隱含了兩種實(shí)現(xiàn)方式,一種是__________,另一種是用一個(gè)類(lèi)的對(duì)象作為一種廣義的數(shù)據(jù)類(lèi)型來(lái)定義整體對(duì)象的一個(gè)屬性。
115.簡(jiǎn)單成員函數(shù)是指聲明中不含const、__________和static關(guān)鍵字的函數(shù)。
116.在派生類(lèi)中繼承的基類(lèi)成員的初始化,需要由派生類(lèi)的構(gòu)造函數(shù)調(diào)用基類(lèi)的__________來(lái)完成。
117.在C++中,利用向量類(lèi)模板定義一個(gè)具有20個(gè)int的向量,其所有元素被置為1,實(shí)現(xiàn)此操作的語(yǔ)句是__________。
118.vector類(lèi)中用于獲取無(wú)需再次分配內(nèi)存就能容納的對(duì)象個(gè)數(shù)的方法是__________。
119.動(dòng)態(tài)聯(lián)編是程序運(yùn)行到需要的語(yǔ)句處才動(dòng)態(tài)確定的,這稱(chēng)為_(kāi)_________多態(tài)性。
120.C++重載“=”運(yùn)算符的函數(shù)名是__________。
三、改錯(cuò)題
(本大題共5小題,每小題4分,共20分)下面的類(lèi)定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見(jiàn)。
21. #include<iostream.h> #define PI 3.14; void main( ) { double i; int r; cout<<″輸入圓形半徑:″; cin>>r; i=2 * PI * r; cout<<″圓形周長(zhǎng)=″<<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以?xún)?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類(lèi),使用繼承定義圓類(lèi)CIRCLE,圓由圓心和半徑構(gòu)成。提供得到圓心坐標(biāo)和半徑的成員函數(shù)、以及計(jì)算圓的周長(zhǎng)和面積的成員函數(shù)。在主程序中創(chuàng)建兩個(gè)圓A和B,圓心坐標(biāo)分別為(0,3)、(3,7),按如下格式輸出兩個(gè)圓的圓心坐標(biāo)、周長(zhǎng)和面積,并計(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類(lèi),該類(lèi)沒(méi)有“繼承”等現(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);}
延伸閱讀
- 考前自救指南:希賽自考題庫(kù)快速提分
- 自考專(zhuān)屬刷題工具,刷題即提分!
- 最后9天,自考?xì)v年真題應(yīng)該怎么刷?
- 自考備考一站式服務(wù):希賽自考題庫(kù)APP
- 0基礎(chǔ)逆襲秘籍:希賽全套自考學(xué)習(xí)包(含智能題庫(kù))
- 避開(kāi)備考誤區(qū)!用希賽自考APP快速提分!

自考微信公眾號(hào)

掃碼添加
自考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取