C++程序設(shè)計(jì)試題
課程代碼:04737
請(qǐng)考生按規(guī)定用筆將所有試題的答案涂、寫在答題紙上。
選擇題部分
注意事項(xiàng):
1.答題前,考生務(wù)必將自己的考試課程名稱、姓名、準(zhǔn)考證號(hào)用黑色字跡的簽字筆或鋼筆填寫在答題紙規(guī)定的位置上。
2.每小題選出答案后,用2B鉛筆把答題紙上對(duì)應(yīng)題目的答案標(biāo)號(hào)涂黑。如需改動(dòng),用橡皮擦干凈后,再選涂其他答案標(biāo)號(hào)。不能答在試題卷上。
一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其選出并將“答題
紙”的相應(yīng)代碼涂黑。錯(cuò)涂、多涂或未涂均無分。
1.下列關(guān)于類的權(quán)限描述錯(cuò)誤的是
A.類本身的成員函數(shù)可以訪問自身的任何成員
B.類的對(duì)象只能訪問公有成員
C.普通函數(shù)可以不通過對(duì)象直接訪問類的公有成員
D.一個(gè)類可以包含另一個(gè)類的對(duì)象作為成員
2.只能在自身類和子類成員函數(shù)中被訪問,無法通過對(duì)象在類外訪問的成員屬于
A.private B.protected
C.public D.publish
3.面向?qū)ο笾械摹皩?duì)象”是指
A.行為抽象 B.數(shù)據(jù)抽象
C.行為抽象和數(shù)據(jù)抽象的統(tǒng)一 D.行為抽象和數(shù)據(jù)抽象的對(duì)立
4.在類外定義成員函數(shù)時(shí),::運(yùn)算符兩側(cè)分別連接
A.返回值類型 函數(shù)名 B.返回值類型 類名
C.函數(shù)名 類名 D.類名 函數(shù)名
5.設(shè)函數(shù)int& index(int * a,int i)返回?cái)?shù)組a中下標(biāo)為i的元素,如存在整型數(shù)組int Array[]={1,2,3},在執(zhí)行index(Array,2)+ +后,Array中各元素值為
A.{0,1,2} B.{l,1,2}
C.{1,2,4} D.{0,2,3}
6.類構(gòu)造函數(shù)定義的位置是
A.類體內(nèi)或體外 B.只是在類體內(nèi)
C.只在類體外 D.在類的成員函數(shù)中
7.設(shè)存在數(shù)組a,其長度為Len,則下列哪項(xiàng)泛型算法用于在a中尋找值Value的位置
A.reverse(a,a+Len,Value); B.sort(a,a+Len,Value);
C.find(a,a+Len,Value); D.copy(a,a+Len,Value);
8.關(guān)于對(duì)象的性質(zhì),下列描述錯(cuò)誤的是:
A.同一類對(duì)象間可相互賦值 B.可以使用對(duì)象數(shù)組
C.對(duì)象不可以用作函數(shù)參數(shù) D.一個(gè)對(duì)象可以用作另一個(gè)類的成員
9.聲明一個(gè)沒有初始化參數(shù)的對(duì)象,需調(diào)用
A.指定參數(shù)構(gòu)造函數(shù) B.拷貝構(gòu)造函數(shù)
C.初始化函數(shù) D.默認(rèn)構(gòu)造函數(shù)
10.下列運(yùn)算符不能重載的是
A.! B.sizeof
C.new D.delete
11.如P是一指針類型表達(dá)式,則下列表達(dá)式中不是左值表達(dá)式的是
A.P B.*P
C.&P D.P+1
12.使用下列流格式控制符能輸出一個(gè)換行符的是
A.dec B.oct
C.hex D.endl
13.下列表達(dá)式,能將P聲明為常量指針的是
A.const int * P; B.int*const P;
C.const int * const P D.int * P
14.C++程序文件擴(kuò)展名為
A..cpp B..h
C..lib D..obj
15.對(duì)C++中主函數(shù)描述正確的是
A.名稱為main,可為多個(gè) B.名稱不限,可為多個(gè)
C.名稱為main,必須有且只能有一個(gè) D.名稱不限,必須有且只能有一個(gè)
16.假定有char * P="Hello";,要輸出這個(gè)字符串的地址值的正確寫法是
A.cout<< *P B.cout<
C.cout<<&P D.cout<<(void *)P
17.下列描述錯(cuò)誤的是
A.在沒創(chuàng)建對(duì)象前,靜態(tài)成員不存在
B.靜態(tài)成員是類的成員,不是對(duì)象成員
C.靜態(tài)成員不能是虛函數(shù)
D.靜態(tài)成員函數(shù)不能直接訪問非靜態(tài)成員
18.對(duì)于友元描述正確的是
A.友元是本類的成員函數(shù) B.友元不是本類的成員函數(shù)
C.友元不是函數(shù) D.以上皆不正確
19.一個(gè)函數(shù)功能不太復(fù)雜,但要求頻繁使用,則該函數(shù)適合作為
A.內(nèi)聯(lián)函數(shù) B.重載函數(shù)
C.遞歸函數(shù) D.嵌套函數(shù)
20.下列默認(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);
非選擇題部分
注意事項(xiàng):
用黑色字跡的簽字筆或鋼筆將答案寫在答題紙上,不能答在試題卷上。
二、填空題(本大題共20小題,每小題1分,共20分)
21.C++程序的編譯是以______為單位進(jìn)行的。
22.默認(rèn)參數(shù)是在______中說明的,默認(rèn)參數(shù)可以多于一個(gè)。
23.通過C++語言中的______機(jī)制,可以從現(xiàn)存類中構(gòu)建其子類。
24.拷貝構(gòu)造函數(shù)使用______作為參數(shù)初始化創(chuàng)建中的對(duì)象。
25.基類的公有成員在通過公有派生得到的子類中訪問權(quán)限是______。
26.要關(guān)閉一個(gè)輸出流對(duì)象myFile,所用的C++語句是______。
27.執(zhí)行下列代碼:double pi=3.1415926;cout<
29.建立一個(gè)對(duì)象時(shí),對(duì)象的狀態(tài)是不確定的。為了使對(duì)象的狀態(tài)確定,必須對(duì)其進(jìn)行正確的______。
30.C++類中的______函數(shù)在對(duì)象的生存期結(jié)束時(shí)被自動(dòng)調(diào)用。
31.C++語言中的整數(shù)常量有四種:十進(jìn)制常量、長整型常量、八進(jìn)制常量和______。
32.UML中對(duì)象之間的靜態(tài)關(guān)系是通過對(duì)象屬性之間的連接反映的,稱之為______。
33.聲明一個(gè)常成員函數(shù)Fun,返回類型為char,第一個(gè)參數(shù)類型為int,第二個(gè)參數(shù)類型為double,則該函數(shù)的聲明原型是______。
34.在C++語言中,利用向量類模板定義一個(gè)具有20個(gè)int類型且初值為1的向量C,實(shí)現(xiàn)此操作的語句是______。
35.執(zhí)行下列代碼:int a=123,b=321;cout<
38.C++語言中動(dòng)態(tài)分配內(nèi)存的關(guān)鍵字是______。
39.C++類成員的訪問權(quán)限有______、公有和保護(hù)三種。
40.寫出聲明一個(gè)復(fù)數(shù)對(duì)象num的語句,并使對(duì)象被初始化為單精度2.2+1.3i,此聲明語句是______。
三、改錯(cuò)題(本大題共5小題,每小題4分,共20分)
下面的每題中有一處錯(cuò)誤,請(qǐng)?jiān)诖痤}紙上寫出錯(cuò)誤所在行并給出修改意見
41.#include
main ( ){
int x=5,y=6;
const int *p=&x;
* p=y;
cout<<*p<
42.#include
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<}
43.#include
class point {
private:float x,y;
public:point(float a,float b){x=a;y=b;}
f( ){x=0;y=0;}
void getx( ){cout<
main( ) {
point a (3.5);
a.getx( );
}
44.#include
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<}
45.#include
class testl{
private:Int x;
public:testl( ){x=2;}
void set(int a){x=a;}
void get(){cout<
class test2{
private:int x;
public:test2( ){x=3;}
void set(int a){x=a;}
void get( ){cout<
class test:public testl,public test2.{
private:int x;
public:void set(int a){x=a;}
void gettest( ){cout<
main( ) {
test a;a.get( );
}
四、完成程序題(本大題共5小題,每小題4分,共20分)
46.完成下面類中的成員函數(shù)的定義。
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;
}
47.#include
using namespace std;
class base
{
private:int x;
public:base(int a){x=a;}
int get( ){return x;}
void showbase( ) {cout<<"x="<
class Derived:public base
{private:int y;
public:Derived(int a,int b):base(a) {y=b;}
void showderived( )
{cout<<"x="<
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=3
x=6,y=7
x=6
x=6
x=6
x=6,y=7
x=6
48.#include
#include
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<
49.下面程序的運(yùn)行結(jié)果如下:
This is line1
This is line2
This is line3
將下列程序補(bǔ)充完整,答案寫在答題紙上。源程序如下:
#include
#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"< fout.close( );
fin.open("my.txt",ios::in);
if(! fin.is_open( ))
return;
char str[100];
while(______)
{
fin.getline(str,100);
cout<
fin.close( );
}
50.求兩個(gè)浮點(diǎn)數(shù)之差的cha函數(shù)的原型聲明、調(diào)用方法。
#include
using namespace std;
void main( )
{
float a,b;
______;∥函數(shù)cha的原型聲明
a=12.5;
b=6.5;
float c=__________;∥調(diào)用函數(shù)cha
cout<
float cha(float x,float y)
{
float w;
w=x-y;
return w;
}
五、程序分析題(本大題共2小題,每小題5分,共1O分)
51.#lnclude
void func( );
void main( )
{
for(inti=0;i<6;i++)
{
func( );
}
}
void func( )
{
int x=0;
x ++;
static int y=0;
y ++;
cout<<"x="<
52.#include
class A
{
public:
A( );
void Show( );
~A( );
private:
static int c;
};
int A::c=O;
A::A( )
{
cout<<"constructor."<
}
void A::Show( )
{
cout<<"c="<
A::~A( )
{
cout<<"destrucator."<
void main( )
{
A a,b;
a.Show( );
b.Show( );
}
六、程序設(shè)計(jì)題(本大題共1小題,共10分)
53.在三角形類tri實(shí)現(xiàn)兩個(gè)函數(shù),功能是輸入三個(gè)頂點(diǎn)坐標(biāo)判斷是否構(gòu)成等邊三角形
#include
#include