計(jì)算機(jī)二級(jí)考試C++試題
C++擅長面向?qū)ο蟪绦蛟O(shè)計(jì)的同時(shí),還可以進(jìn)行基于過程的程序設(shè)計(jì),因而C++就適應(yīng)的問題規(guī)模而論,大小由之。以下是小編整理的關(guān)于計(jì)算機(jī)二級(jí)考試C++試題,希望大家認(rèn)真閱讀!
1[單選題] 已知函數(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的定義之前
參考答案:D
參考解析:如果使用用戶自己定義的函數(shù),而該函數(shù)與調(diào)用它的函數(shù)(即主調(diào)用函數(shù))在同一程序單元中,且位置在主調(diào)用函數(shù)之后,則必須在調(diào)用此函數(shù)之前對(duì)被凋用的函數(shù)作聲明。
2[單選題]單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為
A.外模式 B.概念模式 C.內(nèi)模式 D.存儲(chǔ)模式
參考答案:A
3[單選題] 生成派生類對(duì)象時(shí),派生類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)的條件是( )。
A.無需任何條件
B.基類中顯式定義了構(gòu)造函數(shù)
C.派生類中顯式定義了構(gòu)造函數(shù)
D.派生類構(gòu)造函數(shù)明確調(diào)用了基類構(gòu)造函數(shù)
參考答案:D
參考解析:派生類的構(gòu)造函數(shù)必須通過調(diào)用基類的構(gòu)造函數(shù)來初始化基類子對(duì)象。所以,在定義派生類的構(gòu)造函數(shù)時(shí)除了對(duì)自己的數(shù)據(jù)成員進(jìn)行初始化外,還必須負(fù)責(zé)調(diào)用基類構(gòu)造函數(shù)使基類的數(shù)據(jù)成員得以初始化。
4[單選題] 下列敘述中正確的是( )。
A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的關(guān)系
B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小
D.上述三種說法都不對(duì)
參考答案:C
參考解析:面向?qū)ο蟮某绦蛟O(shè)計(jì)是用對(duì)象模擬問題領(lǐng)域中的實(shí)體,各對(duì)象之間相對(duì)獨(dú)立,相互依賴性小,通過消息來實(shí)現(xiàn)對(duì)象之間的相互聯(lián)系。
5[簡答題] 有以下兩個(gè)程序,分析它們的執(zhí)行結(jié)果有什么不同。
程序1:
#include
class Point
{
int x,y;
public:
Point(){x=y=0;}
Point(int i,int j){x=i;y=j;}
Point operator+(Point);
void disp() ( cout<<”(”<
}
Point Point::operator+(Point P)
{
this->x+=P.x; this->y+=p.y;
return *this;
}
void main()
{
Point pl(2,3),p2(3,4),p3;
cout<<”p1:”;p1.disp();
cout<<”p2:”;p2.disp();
p3=pl+p2;
cout<<”執(zhí)行p3=p1+p2后”<
cout<<”p1:”,p1.disp();
cout<<”p2:”;p2.disp();
cout<<”p3:”;p3.disp();
}
程序2:
#include
class Point{
int x,Y;
public:
Point(){x=y=O;}
Point(int i,int j){x=i,y=j;}
Point operator+(Point);
void disp f){cout<< ”(”<
}
Point Point::operator+(Point P)
{
Point s;
s.x=x+p.x; s.y=y+p.y;
return s;
}
void main()
{
Point pl(2,3),p2(3,4),p3;
cout<<”p1:”;p1.disp();
cout<<”p2:”;p2.disp();
p3=pl+p2;
cout<<”執(zhí)行p3=p1+p2后”<
cout<<”p1:”;p1.disp();
cout<<”p2:”;p2.disp();
cout<<”p3:”;p3.disp();
}
參考解析:這兩個(gè)程序中的main函數(shù)完全相同,類Point中的運(yùn)算符重載均采用成員函數(shù)方式實(shí)現(xiàn),只是程序1的運(yùn)算符重載函數(shù)使用this指針,而程序2的運(yùn)算符重載函數(shù)使用局部對(duì)象。
p3=p1+p2 等價(jià)于p3=p1.operator+(p2)。對(duì)于程序1,this指針指向p1對(duì)象,執(zhí)行this->x+=p.x;this->y十一 p.y;語句,修改p l對(duì)象的x和y成員值,執(zhí)行return*this;語句,將pl對(duì)象賦給p3。所以p1和p3兩個(gè)對(duì)象的x、Y值相同,即p3=pl+p2等價(jià)于 p1=p1+p2,p3:p1,其運(yùn)行結(jié)果如下:
p1:(2,3)
p2:(3,4)
執(zhí)行p3=pl+p2后
P1:(5,7)
p2:(3,4)
P3:(5,7)
對(duì)于程序2,執(zhí)行運(yùn)算符重載函數(shù),Point s;語句定義一個(gè)對(duì)象,s.x=x+p.x;s.y=y+p.y;語句用于修改s對(duì)象的x、Y值,ret%il~l s;語句返回該對(duì)象,賦給p3,而p1和p2對(duì)象不改變。其運(yùn)行結(jié)果如下:
p1:(2,3)
p2:(3,4)
執(zhí)行p3=pl+p2后
p1:(2,3)
p2:(3,4)
p3:(5,7)第
【計(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
2017年計(jì)算機(jī)二級(jí)考試C++考試試題及答案08-30
2017年計(jì)算機(jī)二級(jí)考試C++考試試題及答案09-27
2017計(jì)算機(jī)二級(jí)考試C++考試大綱10-14
2024年第49次計(jì)算機(jī)二級(jí)C++考試試題09-06
2017年3月計(jì)算機(jī)二級(jí)考試C++考試試題積累08-24