2017年計(jì)算機(jī)二級(jí)C++考試試題
C++是C語(yǔ)言的繼承,它既可以進(jìn)行C語(yǔ)言的過(guò)程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類(lèi)型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。以下是yjbys小編收集的計(jì)算機(jī)二級(jí)C++考試試題,希望大家認(rèn)真閱讀!
一、選擇題(每小題1分,共40分)
1、有如下程序:
#inClude using namespaCe std; Class B{
publiC:
virtual void show(){Cout<<”B”;} };
Class D:publiC B{ . publiC:
void show(){Cout<<”D”;} };
void funl(B * ptr){ptr一>show();} void fUN2(B&ref){ref.show();}
voidfhIl3(B B.{b.show();} int main()
{
B b,* P=new D; D d;
funl(P); fun2(B.; fun3(D);
delete P; return 0; }
執(zhí)行這個(gè)程序的輸出結(jié)果是( )。
A.BBB
B.BBD
C.DBB
D.DBD
2、下面描述中錯(cuò)誤的是( )。
A.系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)
B.軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過(guò)程
C.數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一
D.PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具
3、已知函數(shù)FA調(diào)用函數(shù)FB,若要把這兩個(gè)函數(shù)定義在同一個(gè)文件中,則( )。
A.FA必須定義在FB之前
B.FB必須定義在FA之前
C.若FA定義在FB之后,則FA的原型必須出現(xiàn)在FB的定義之前
D.若FB定義在FA之后,則FB的原型必須出現(xiàn)在FA的定義之前
4、有如下函數(shù)定義:
void funC(int a,int&B. {a++;b++;}
若執(zhí)行代碼段:
int x=0,Y = 1; funC(X,Y);
則變量x和y的值分別是( )。
A.0和1
B.1和1
C.0和2
D.1和2
5、下面程序的輸出結(jié)果是( )。
#include
class example
{
int a;
public:
example(int B.{a=b++;}
void print(){a=a+1;eout< void print()const{cout< };
void main()
{
example x(3);
const example Y(2);
A print();
B print();
}
A.2 2
B.4 3
C.4 2
D.3 2
6、下列有關(guān)類(lèi)繼承的敘述中,錯(cuò)誤的是( )。
A.繼承可以實(shí)現(xiàn)軟件復(fù)用
B.虛基類(lèi)可以解決由多繼承產(chǎn)生的二義性問(wèn)題
C.派生類(lèi)構(gòu)造函數(shù)要負(fù)責(zé)調(diào)用基類(lèi)的構(gòu)造函數(shù)
D.派生類(lèi)沒(méi)有繼承基類(lèi)的私有成員
7、下面程序的運(yùn)行結(jié)果是( )。
#include
int fun(int a[],int n) {
int resuh=1;
for(inl i=1;i<11;1‘++)
result=result * a[i];
retum result;
} void main()
int a[3]={3,4,5}:
cout< }
A.12
B.15
C.20
D.60
8、下列敘述中正確的是( )。
A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化
D.以上說(shuō)法都不正確
9、在滿足實(shí)體完整性約束的條件下( )。
A.一個(gè)關(guān)系中應(yīng)該有一個(gè)或多個(gè)候選關(guān)鍵字
B.一個(gè)關(guān)系中只能有一個(gè)候選關(guān)鍵字
C.一個(gè)關(guān)系中必須有多個(gè)候選關(guān)鍵字
D.一個(gè)關(guān)系中可以沒(méi)有候選關(guān)鍵字
10、下面關(guān)于c+十語(yǔ)言變量的敘述錯(cuò)誤的是( )。
A.c++語(yǔ)言中變量分為aut0、static、extem和register4種存儲(chǔ)類(lèi)型
B.自動(dòng)變量和外部變量的作用域?yàn)檎麄(gè)程序
C.內(nèi)部靜態(tài)變量的作用域是定義它的函數(shù)
D.外部靜態(tài)變量的作用域是定義它的文件
11、 下面程序的運(yùn)行結(jié)果是( )。
#include void main()
{
int num=1:
int&ref=num; ref=ref+2:
cout< }
A.13
B.16
C.36
D.33
12、 有以下程序:
#include float tun(int X,int Y) {return(X+Y);} void main()
{int a=2,b=5,c=8;
cout< 程序運(yùn)行后的輸出結(jié)果是( )。
A.編譯出錯(cuò)
B.9
C.21
D.9.0
13、 下列運(yùn)算符中,不能被重載的是( )。
A.&&
B.!=
C..
D.++
14、 算法的空間復(fù)雜度是指( )。
A.算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語(yǔ)句或指令條數(shù)
D.算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)
15、 c++語(yǔ)言類(lèi)體系中,不能被派生類(lèi)繼承的有( )。
A.轉(zhuǎn)換函數(shù)
B.構(gòu)造函數(shù)
C.虛函數(shù)
D.靜態(tài)成員函數(shù)
16、 對(duì)C++編譯器區(qū)分重載函數(shù)無(wú)任何意義的信息是( )。
A.參數(shù)類(lèi)型
B.參數(shù)個(gè)數(shù)
C.返回值類(lèi)型
D.常成員函數(shù)關(guān)鍵字Const
17、 對(duì)類(lèi)成員訪問(wèn)權(quán)限的控制,是通過(guò)設(shè)置成員的訪問(wèn)控制屬性實(shí)現(xiàn)的,下列不是訪問(wèn)控制屬性的是( )。
A.公有類(lèi)型
B.私有類(lèi)型
C.保護(hù)類(lèi)型
D.友元類(lèi)型
18、 下列程序的運(yùn)行結(jié)果為( )。
#include int i=0;
class A{ public: A(){i++;}
};
void main() {
A a,b[3],*C; C=b;
cout< }
A.2
B.3
C.4
D.5
19、 以下關(guān)鍵字不能用來(lái)聲明類(lèi)的訪問(wèn)權(quán)限的是( )。
A.publiC
B.statiC
C..proteCted
D.private
20、 設(shè)有定義int a=1;float f=1.2;char C='a';,則下列表示錯(cuò)誤的是( )。
A.++a;
B.f一一;
C.c++;
D.8++;
二、基本操作題(18分)
1、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾projl下的工程projl,此工程中含有一個(gè)源程礙文件 projl.epp。其中位于每個(gè)注釋“//ERROR ****found****”之后的一行語(yǔ)句存在錯(cuò)誤。請(qǐng)改正這些錯(cuò)誤,使程序的輸出結(jié)果為:
ConstruCtor Called. The value is 10
Copy ConstruCtor Called. The value is 10
DestruCtor Called. DestruCtor Called. 注意:只修改注釋“//ERROR ****found****”的下一行語(yǔ)句,不要改動(dòng)程序中的其他內(nèi)容。
//pwjl.Cpp
#inClude ’using namespaCe std; Class MyClass{
publiC:
//ERROR**********found**********
MyClass(int i)
{value=i;Cout<<”ConstruCtor Called.” < //ERROR**********found********** MyClass(eonst MyClass P)
{
value = P.value;
eout<<”Copy ConstruCtor Called.”< }
void Print()
{Cout<<”The value is” < //ERROR**********found********* void-MyClass()
{Cout<<”DestruCtor Called.”< private:
int value;
}; int main()
{ MyChas objl
owl.Print();
MyClmss obj2(owl); obj2.Print();
retum 0;
三、簡(jiǎn)單應(yīng)用題(24分)
1、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾pr092下的工程pros2。此工程中包含一個(gè)程序文件main.cpp,其中有“部門(mén)”類(lèi)Department和“職工”類(lèi)Staff的定義,還有主函數(shù)main的定義。在主函數(shù)中定義了兩個(gè)“職工”對(duì)象,他們屬于同一部門(mén)。程序展示,當(dāng)該部門(mén)改換辦公室后,這兩個(gè)人的辦公室也同時(shí)得到改變。請(qǐng)?jiān)诔绦蛑械臋M線處填寫(xiě)適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類(lèi)定義。此程序的正確輸出結(jié)果應(yīng)為:
改換辦公室前:
職工號(hào):0789姓名:張三部門(mén):人事處辦公室:521
職工號(hào):0513姓名:李四部門(mén):人事處辦公室:521
改換辦公室后:
職工號(hào):0789姓名:張三部門(mén):人事處辦公室:311
職工號(hào):0513姓名:李四部門(mén):人事處辦公室:311
注意:只在橫線處填寫(xiě)適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。
#include
using namespace std;
class Department{ //“部門(mén)”類(lèi)
public:
Department(const char*name,const char*office){
strcpy(this一>name,nanle);
//**********found**********
}
const char*getName()const{return name;}//返回部門(mén)名稱(chēng)
//**********found**********
const char*getOffice()const{________} //返回辦公室房號(hào)
void changeOfficeTo(const char*office){ //改換為指定房號(hào)的另一個(gè)辦公室
strcpy(this一>office,office);
}
private:
char name[20];//部門(mén)名稱(chēng)
char office[20];//部門(mén)所在辦公室房號(hào)
};
class staff{//“職工”類(lèi)
public:
//**********found**********
Staff(const char*my—id,const char木my_name,Department&my_dept):——{
strcpy(this一>staff id,my_id);
strcpy(this一>name,my_name);
}
const char*getlD()const{return staff_id;}
const char*getName()consl{return name;}
Department getDepartment()const{return dept;} char staff=id[10];//職工號(hào)
char name[20];//姓名
Department&dept;//所在部門(mén)
}; void showStaff(Staff&staff){
cout<<”職工號(hào):”< cout<<”姓名:”< cout<<”部門(mén):”< cout<<”辦公室:”< int main(){
Department dept(”人事處”,”521”);
Staff Zhang(”0789”,”張三”,dept),Li(”0513”,”李四”,dept);
cout<<”改換辦公室前:”< showStaff(Zhang); showStaff(Li);
//人事處辦公室由521搬到311 //**********found********** ———————————————————————一
cout<<”改換辦公室后:”< showStaff(Zhang); showStaff(Li);
return 0; }
【計(jì)算機(jī)二級(jí)C++考試試題】相關(guān)文章:
計(jì)算機(jī)二級(jí)考試C++試題及答案09-20
計(jì)算機(jī)二級(jí)考試C++試題及答案08-14
2017最新計(jì)算機(jī)二級(jí)考試C++試題及答案08-24
全國(guó)計(jì)算機(jī)二級(jí)C++考試試題及答案10-26
2016計(jì)算機(jī)等級(jí)考試二級(jí)C++上機(jī)模擬試題11-10
2016年計(jì)算機(jī)二級(jí)考試C++試題及答案10-07
2016年計(jì)算機(jī)二級(jí)考試C++試題及答案09-22