- 相關推薦
2015年9月全國計算機二級考試C++筆試模擬題及答案(五)
一、填空題
1.在面向對象方法中,類之間共享屬性和操作的機制稱為【1】。
【參考答案】
1.【1】繼承
2.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于【2】的聯(lián)系。
【參考答案】
2.【2】一對多(或1:N)
3.Jackson結構化程序設計方法是英國的M.Jackson提出的,它是一種面向【3】的設計方法。
【參考答案】
3.【3】數(shù)據(jù)結構
4.軟件設計模塊化的目的是【4】。
【參考答案】
【4】降低復雜性
5.在樹結構中,樹根結點沒有【5】。
【參考答案】
【5】前件
6.C++中封裝性、繼承性和【6】是面向對象思想的主要特征。
【參考答案】
【6】 多態(tài)性
7.下列for語句的循環(huán)次數(shù)為【7】。
for(int a=0,b=1;b&&a<5;a++);
【參考答案】
【7】5
8.C++程序是從【8】函數(shù)開始執(zhí)行的。
【參考答案】
【8】main
9.派生類構造函數(shù)的執(zhí)行順序是先執(zhí)行【9】的構造函數(shù),然后執(zhí)行成員對象的構造函數(shù),最后執(zhí)行【10】的構造函數(shù)。
【參考答案】
9.【9】基類 【10】派生類
10.C++語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個注釋以【11】作為開始和結束的標記。
【參考答案】
【11】/**/
11.用以下語句調用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡?/p>
st=(char*)【12】;
【參考答案】
【12】malloc(11)或malloc(sizeof(char)*11)
12.下列程序在構造函數(shù)和析構函數(shù)中申請和釋放類的數(shù)據(jù)成員int *a,申請時使用形參b初始化a,請?zhí)羁铡?/p>
class A
{
public:
A(int b);
~A();
private:
int *a;
};
A::(int b)
{【13】;}
A::~A()
{【14】;}
【參考答案】
12.【13】a=new int(b) 【14】delete a
13.將x+y*z中的“+”用成員函數(shù)重載,“*”用友元函數(shù)重載應寫為【15】。
【參考答案】
【15】x.operator+(operator *(y,z))
二、改錯題
使用VC6打開考生文件夾下的工程kt1_1,此工程包含一個源程序文件kt1_1.cpp,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結果為:
Whichact(aorb)?b
act1
act2
Bact3
Bact4
Bend
源程序文件kt1_1.cpp清單如下:
#include
classA
{public:
virtualvoidact1(){cout<<"act1\n";act2();}
voidact2(){cout<<"act2\n";act3();}
voidact3(){cout<<"Aact3\n";act4();}
virtualvoidact4{cout<<"Aact4\n";act5();}
voidact5(){cout<<"Aend\n";}
};
classB:publicA
{
voidact3(){cout<<"Bact3\n";act4();}
voidact4(){cout<<"Bact4\n";act5();}
voidact5(){cout<<"Bend\n";}
};
voidmain(void)
{
charc;
A*a;
cout<<"Whichact(aorb)?";
cin<
if(c=='a')
a=newA;
else
a=newB;
a->act1();
deletea;
【參考答案】
(1)將void act3(){cout<<"Aact3\n";act4();}
改為:virtual void act3(){cout<<"Aact3\n";act4();}
(2)將virtual void act4{cout<<"Aact4\n";act5();}
改為:virtual void act4(){cout<<"Aact4\n";act5();}
(3)將cin<
改為:cin>>c;
【試題解析】
(1)主要考查對虛函數(shù)使用規(guī)則的理解,要實現(xiàn)對函數(shù)act3的動態(tài)聯(lián)編應該使用虛函數(shù),這樣在本題中對于函數(shù)的調用才能實現(xiàn)根據(jù)不同對象調用不同函數(shù);
(2)主要考查對函數(shù)定義的掌握,雖然參數(shù)表為空,但括號是不能省略的;
(3)主要考查是否會使用流輸入操作,本題中使用的是流輸出符。
三、簡單應用題
請編寫一個函數(shù)voidfun(charss[]),該函數(shù)將字符串ss翻轉,如ss為“123abc”則翻轉后為“cba321”。注意:用數(shù)組方式及for循環(huán)來實現(xiàn)該函數(shù)。
注意:部分源程序已存在文件kt1_2.cpp中。
請勿修改主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填寫若干語句。
文件kt1_2.cpp的內容如下:
#include
#include
voidfun(charss[]);
【參考答案】
(1)將void act3(){cout <<"Aact3\n";act4();}
改為:virtual void act3(){cout <<"Aact3\n";act4();}
(2)將virtual void act4{cout <<"Aact4\n";act5();}
改為:virtual void act4(){cout <<"Aact4\n";act5();}
(3)將cin <
改為:cin >>c;
【試題解析】
(1)主要考查對虛函數(shù)使用規(guī)則的理解,要實現(xiàn)對函數(shù)act3的動態(tài)聯(lián)編應該使用虛函數(shù),這樣在本題中對于函數(shù)的調用才能實現(xiàn)根據(jù)不同對象調用不同函數(shù);
(2)主要考查對函數(shù)定義的掌握,雖然參數(shù)表為空,但括號是不能省略的;
(3)主要考查是否會使用流輸入操作,本題中使用的是流輸出符。
四、綜合應用題
使用VC6打開考生文件夾下的工程test1_3,此工程包含一個源程序文件kt1_3.cpp,其中定義了類Cat,但類Cat的定義并不完整。請按要求完成下列操作,將類Cat的定義補充完整。
(1)定義類Cat的保護數(shù)據(jù)成員itsAge用于表示年齡,它是int型的數(shù)據(jù)。請在注釋“//**1**”之后添加適當?shù)恼Z句。
(2)完成成員函數(shù)GetAge()的類外定義,返回成員的itsAge值,請在注釋“//**2**”之后添加適當?shù)恼Z句。
(3)完成成員函數(shù)SetAge(intage)的類外定義,把數(shù)據(jù)成員itsAge賦值為參數(shù)age的值,請在注釋“//**3**”之后添加適當?shù)恼Z句。
(4)完成成員函數(shù)Meow的類外定義,使其輸出字符串“meow.”到屏幕上。請在注釋“//**4**”之后添加適當?shù)恼Z句。
輸出結果如下:
meow.
kittyisacatwhois5yearsold.
meow.
注意:除在指定位置添加語句之外,請不要改動程序中的其他內容。
源程序如下:
#include
classCat
{
public:
intGetAge();
voidSetAge(intage);
voidMeow();
protected:
//**1**
};
intCat::GetAge()
{
//**2**
}
voidCat::SetAge(intage)
{
//**3**
}
voidCat::Meow()
{
//**4**
}
voidmain()
{
Catkitty;
kitty.Meow();
kitty.SetAge(5);
cout<<"kittyisacatwhois";
cout<
cout<<"yearsold.\n";
kitty.Meow();
}
【參考答案】
(1)int itsAge;
(2)return itsAge;
(3)itsAge=age;
(4)cout<<"meow.\n";
【試題解析】
本題主要考查類的定義和成員函數(shù)的定義的深刻理解。
【9月全國計算機二級考試C++筆試模擬題及答案五】相關文章:
全國計算機二級考試《C++》筆試樣卷06-12
計算機二級C++模擬題及答案03-17
全國計算機等級考試二級C++筆試真題10-11
全國計算機二級考試C++鞏固試題與答案03-01
2017計算機二級C++模擬題及答案12-02