2016年計算機二級C++考試試卷及答案
選擇題(每小題1分,共40小題,共40分)
1.數據的存儲結構是指( )。
A.數據所佔的存儲空間
B.數據的邏輯結構在計算機中的存放形式
C.數據在計算機中的順序存儲方式
D.存儲在計算機外存中的數據
2.將E-R圖轉換到關係模式時,實體與實體間的聯繫可以表示成( )。
A.屬性
B.關係
C.鍵
D.域
3.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數為( )。
A.125
B.n/Z
C.n
D.n+1
4.樹是結點的集合,它的根結點的數目是( )。
A.有且只有1個
B.1或多於1
C.0或1
D.至少有2個
5.設R是一個二元關係,S是一個三元關係,則下列運算中正確的是( )。
A.R-S
B.R×S
C.R∩S
D.R∪S
6.關於結構化程序設計原則和方法的描述錯誤的是( )。
A.選用的結構只允許有一個入口和一個出口
B.複雜結構應該用嵌套的基本控制結構進行組合嵌套來實現
C.不允許使用GOTO語句
7.對關係S和R進行集合運算,結果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為( )。
A.並運算
B.交運算
C.差運算
D.積運算
8.下列敍述中正確的是( )。
A.在面向對象的程序設計中,各個對象之間具有密切的關係
B.在面向對象的程序設計中,各個對象都是公用的
C.在面向對象的程序設計中,各個對象之間相對獨立,相互依賴性小
D.上述三種説法都不對
9.結構化程序設計的三種基本結構是( )。
A.過程、子程序和分程序
B.順序、選擇和重複
C.遞歸、堆棧和隊列
D.調用、返回和轉移
10.在數據庫設計中,將E-R圖轉換為關係模式的過程屬於( )。
A.需求分析階段
B.邏輯設計階段
C.概念設計階段
D.物理設計階段
11.在C++語言中函數返回值的類型是由( )決定的。
A.調用該函數時系統臨時
rn語句中的表達式類型
C.定義該函數時所指定的函數類型
D.調用該函數時的主調函數類型
12.下列描述正確的是( )。
A.表示m>n為true或mn&&m ch語句結構中必須有default語句
語句結構中必須有else語句
D.如果至少有一個操作數為true,則包含‖運算符的表達式為true
13.使用ifstream流類定義流對象並打開磁盤文件時,文件的隱含打開方式為( )。
::in
::out
::inlios::out
D.沒有默認
14.下列各類函數中,不是類的成員函數的是( )。
A.構造函數
B.抽象類
C.派生類
D.以上都不對
15.下面關於數組的初始化正確的是( )。
str[]={’a’,’b’,’e’}
str[2]={’a’,’b’,’e’)
str[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}
str()={’a’,’b’,’C’}
16.類模板templateclassX{…},其中友元函數f對特定類型T(如int),使函數f(x)成為x模板類的友元,則其説明為( )。
ndvoidf();
ndvoidf(x);
ndvoidA::f();
ndvoidC::f(x);
17.類MyClass的定義如下:
classMyClass
{
public:
MyClass(){value=0;}
SetVariable(inti){valtic=i;}
private:
intvalue;
};
MyClass*P,my;p=&my;
則對下列語句序列正確的描述是( )。
A.語句p=&my;是把對象my賦值給指針變量P
B.語句MyClass*P,my;會調用兩次類MyClass的構造函數
C.對語句*ariable(5)的調用是正確的
D.語句P->SetVariable(5)與語句ariable(5)等價
18.下面關於break語句的描述中,不正確的是( )。
k可以用於循環體內
k語句可以在for循環語句中出現多次
k語句可以在switch語句中出現多次
k語句可用於if條件判斷語句內
19.如果表達式-x/y中的“--”和“/”是作為友元函數重載的運算符,採用運算符函數調用格式,該表達式還可表示為( )。
ator/(ator--(),y);
ator/(operator--(x),y);
ator--()ator/(y);
ator/(operator--(x));
20.已知類A有公用數據成員a,並重載了=運算符,且有Aobj2;constA*ptr=newA;,則下列語句錯誤的是( )。
->a=100;
=&obj2;
++;
2=*ptr;
21.可以用P.a的形式訪問派生類對象P的基類成員a,其中a是( )。
A.私有繼承的公有成員
B.公有繼承的私有成員
C.公有繼承的保護成員
D.公有繼承的公有成員
22.下面程序的運行結果為( )。
#include
classA
{
intnum;
public:
A(inti){num=i;)
A(A&a){num=++;}
voidprint(){cout< };
voidmain()
{
Aa(1),b(a);
t();
t();
}
A.11B.12
C.21D.22
23.設有定義charstr[80];以下不能將輸入數據firstnsecondn讀取到數組str中的語句是( )。
(str,strlen(str));
ine(str,strlen(str));
>>str;
(str,strlen(str));
24.下列程序的輸出結果為( )。
#include
classTestClass
{
public:
TestClass(){val++;}
static,intval;
};
intTestClass::val=0;
voidmain()
{
TestClasscsl;
cout< TestClasscs2;
TestClasscs3,cs4;
cout< }
A.O3
B.13
C.14
D.24
25.有以下類定義:
classMyClass
{
private:
intid;
chargender;
char*phone;
public:
MyClass():id(0),gender(’#’),phone(NULl){}
MyClass(intn0,charge=’#’,char*ph=NULL)
{id=no;gender=ge;phone=ph;}
};
下列類對象定義語句中錯誤的是( )。
assmyObj;
assmyObj(11,"13301111155");
assmyObj(12,’m’);
assmyObj(12);
26.下列是關於派生類聲明的開始部分,其中正確的是( )。