一、選擇題
1.數(shù)據(jù)結構作為計算機的一門學科,主要研究數(shù)據(jù)邏輯結構、對各種數(shù)據(jù)結構進行運算,及( )
A.數(shù)據(jù)的存儲結構
B.計算方法
C.數(shù)據(jù)映象
D.邏輯存儲
【參考答案】 A
2.在計算機中,算法是指( )
A.加工方法
B.解題方案的準確而完整的描述
C.排序方法
D.查詢方法
【參考答案】 B
3.開發(fā)軟件所需高成本和產品的低質量之間有著尖銳的矛盾,這種現(xiàn)象稱做( )
A.軟件投機
B.軟件危機
C.軟件工程
D.軟件產生
【參考答案】 B
4.開發(fā)大型軟件時,產生困難的根本原因是( )
A.大系統(tǒng)的復雜性
B.人員知識不足
C.客觀世界千變萬化
D.時間緊、任務重
【參考答案】 A
5.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關系是( )
A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)
B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)
D.3者沒有明顯的包含關系
【參考答案】 B
6.下列敘述中正確的是( )
A.線性表是線性結構
B.棧與隊列是非線性結構
C.線性鏈表是非線性結構
D.二叉樹是線性結構
【參考答案】 A
7.已知數(shù)據(jù)表A中每個元素距其最終位置不遠,為節(jié)省時間,應采用的算法是( )
A.堆排序
B.直接插入排序
C.快速排序
D.直接選擇排序
【參考答案】 B
8.下列不屬于結構化分析的常用工具的是( )
A.數(shù)據(jù)流圖
B.數(shù)據(jù)字典
C.判定樹
D.PAD圖
【參考答案】 A
9.下列工具中為需求分析常用工具的是( )
A.PAD
B.PFD
C.N-S
D.DFD
【參考答案】 D
10.數(shù)據(jù)庫的故障恢復一般是由( )
A.數(shù)據(jù)流圖完成的
B.數(shù)據(jù)字典完成的
C.DBA完成的
D.PAD圖完成的
【參考答案】 C
11.關于C++與C語言關系描述中錯誤的是( )
A.C++語言是C語言的超集
B.C++語言對C語言進行了擴充
C.C++語言包含C語言的全部語法特征
D.C++語言與C語言都是面向對象的程序設計語言
【參考答案】 D
12.在C++語言中,不合法的實型數(shù)據(jù)的是( )
A.0.123
B.123e3
C.2.1e3.5
D.123.0
【參考答案】 C
13.下面有關于for循環(huán)的正確描述是( )
A.for循環(huán)只能用于循環(huán)次數(shù)已經確定的情況
B.for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達式
C.在for循環(huán)中,不能用break語句跳出循環(huán)體
D.for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來
【參考答案】 D
14.假定int類型變量占用兩個字節(jié),其有定義int x[10]={0,2,4};,則數(shù)組x在內存中所占字節(jié)數(shù)是( )
A.3
B.6
C.10 來源:www.exam8.com
D.20
【參考答案】 D
15.以下敘述正確的是( )
A.函數(shù)可以嵌套定義但不能嵌套調用
B.函數(shù)既可以嵌套調用也可以嵌套定義
C.函數(shù)既不可以嵌套定義也不可以嵌套調用
D.函數(shù)可以嵌套調用但不可以嵌套定義
【參考答案】 D
16.下面的語句中錯誤的是( )
A.int a=5;int x[a];
B.const int a=5;int x[a];
C.int n=5;int *p=new int[a];
D.const int n=5;int *p=new int[a];
【參考答案】 A
17.關于二義性的描述錯誤的是( )
A.一個子類的兩個父類中都有某個同名成員,在子類中對該成員訪問可能出現(xiàn)二義性
B.解決二義性可以用對成員名的限定法
C.父類和子類中同時出現(xiàn)同名函數(shù),也可能存在二義性
D.一個子類是從兩個父類派生出來的,而這兩個父類又有一個共同的父類,對該父類成員進行訪問時,可能出現(xiàn)二義性
【參考答案】 C
18.函數(shù)模板:template
T add(T x,T y) {return x+y;}
下列對add函數(shù)的調用不正確的是( )
A.add< >(1,2)
B.add(1,2)
C.add(1.0,2)
D.add(1.0,2.0)
【參考答案】 C
19.this指針是C++實現(xiàn)什么的一種機制?( )
A.抽象
B.封裝
C.繼承
D.重載
【參考答案】 B
20.下列程序的輸出結果是( )
#include
class Myclass{
public:Myclass(int i=0,int j=0)
{
y=j;
}
void show(){cout<<″x=″<
void show()const{cout<<″x=″<<″ ″<<″y=″<
privated:
int x;int y;
}; 考試大(www.Examda。com)
void main()
{yclass my1(3,4);
const my2(7,8);
my1.show();my2.show();}
A.x=4,y=3;x=7,y=8
B.x=3,y=4;x=7,y=8 C.x=7,y=8;x=4,y=3
D.x=8,y=7;x=7,y=8
【參考答案】 A
21.在C++語言中,打開一個文件就是將這個文件與一個什么建立關聯(lián)( )
A.流
B.類
C.結構
D.對象
【參考答案】 A
22.執(zhí)行語句for(i=1;i++<4;);,后變量i的值是( )
A.3
B.4
C.5
D.不定
【參考答案】 C
23.下列哪個是C++語言的有效標識符?( )
A._No1
B.No.1
C.12345
D.int
【參考答案】 A
24.下列程序的執(zhí)行結果為( )
#include
void main()
{int a=3,b=0;
int *p=&a;
b=+a++;
cout<<*p<<″,″<
A.3,4
B.4,3
C.3,-4
D.4,4
【參考答案】 B
25.下列選項,不正確的是( )
A.for(int a=1;a<=10;a++);
B.int a=1;
do
{a++}
while(a<=10)
C.int a=1;
D.for(int a=1;a<=10;a++)a++;
while(a<=10)
{a++}
【參考答案】 B
26.下列程序的輸出結果為( )
#include
void main()
{char *a[]={″hello″,″the″,″world″};
char **pa=a;
pa++;
cout<<*pa<
A.hello
B.the C.world
D.hellotheworld
【參考答案】 B
27.下列程序的輸出結果是( )
#include
int min(int a,int b)
{if(a
else return b;
return 0;}
void main()
{cout<
A.0
B.1
C.2
D.3
【參考答案】 B
28.對類成員訪問權限的控制,是通過設置成員的訪問控制屬性實現(xiàn)的,下列不是訪問控制屬性的是( )
A.公有類型
B.私有類型
C.保護類型
D.友元類型
【參考答案】 D
29.類的析構函數(shù)的作用是( )
A.一般成員函數(shù)的初始化
B.類的初始化
C.對象的初始化
D.刪除類創(chuàng)建的對象
【參考答案】 D
30.下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )
A.靜態(tài)數(shù)據(jù)成員可以在類體內進行初始化
B.靜態(tài)數(shù)據(jù)成員不可以被類的對象調用
C.靜態(tài)數(shù)據(jù)成員不能受private控制符的作用
D.靜態(tài)數(shù)據(jù)成員可以直接用類名調用
【參考答案】 D
31.在公有派生情況下,有關派生類對象和基類對象的關系,下列敘述不正確的是( )
A.派生類的對象可以賦給基類的對象
B.派生類的對象可以初始化基類的引用
C.派生類的對象可以直接訪問基類中的成員
D.派生類的對象的地址可以賦給指向基類的指針
【參考答案】 C
32.下列關于虛基類的描述,錯誤的是( )
A.設置虛基類的目的是為了消除二義性
B.虛基類的構造函數(shù)在非虛基類之后調用
C.若同一層中包含多個虛基類,這些基類的構造函數(shù)按它們說明的次序調用
D.若虛基類由非虛基類派生而來,則仍然先調用基類構造函數(shù),再調用派生類的構造函數(shù)
【參考答案】 B
33.下列運算符中,在C++語言中不能重載的是( )
A.*
B.>=
C.::
D./
【參考答案】 C
34.下列程序的運行結果是( )
#include
class A
{ int a;
public:
A() {a=0;}
A(int aa)
{a=aa;
cout<
void main()
{A x,y(2),z(3);
cout<
A.00
B.23
C.34
D.25
【參考答案】 B
35.判斷char型變量c是否為小寫字母的正確表達式是( )
A.′a′<=c<=′z′
B.(c>+A)&&(c<=z)
C.(′a′>=c)||(′z′<=c)
D.(c>=′a′)&&(c<=′z′)
【參考答案】 D
二、填空題
1.長度為 n 的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【1】。
【參考答案】
【1】n/2
2.類是一個支持集成的抽象數(shù)據(jù)類型,而對象的類的【2】。
【參考答案】
【2】實例
3.當數(shù)據(jù)的物理結構(存儲結構、存取方式等)改變時,不影響數(shù)據(jù)庫的邏輯結構,從而不致引起應用程序的變化,這是指數(shù)據(jù)的【3】。
【參考答案】
【3】物理獨立性
4.若串 s =″MathTypes″,則其子串的數(shù)目是【4】。
【參考答案】
【4】46
5.關系數(shù)據(jù)庫的關系演算語言是以【5】為基礎的DML語言。
【參考答案】
【5】謂詞演算
6.程序
#include″inostream.h″
void main()
{int i=10;
int j=5;
cout<
的結果為【6】。
【參考答案】
【6】15
7.語句int *i;i=new int[10];,釋放指針i的語句是【7】。
【參考答案】
【7】delete[]I
8.在C++語言中每個類都有一個【8】指針,該指針指向正在調用成員函數(shù)的對象。
【參考答案】
【8】this
9.程序的結果為【9】。
#include ″iostream.h″
template
T total(T *data)
{ T s=0;
while( *data)
{s+=*data++;}
return s; }
int main()
{ int x[]={2,4,6,8,0,12,14,16,18};
cout<
return 0;
cout<
【參考答案】
【9】20
10.一個C++語言程序的開發(fā)步驟通常包括編輯、【10】、鏈接、運行和調試。
【參考答案】
【10】編譯
11.下面程序的運行結果是【11】和【12】。
#include
#define N 10
#define s(x)x*x
#define f(x)(x*x)
void main()
{ int i1,i2;
i1=1000/s(N);i2=1000/f(N);
cout<
【參考答案】
【11】1000 【12】10
12.【13】是實現(xiàn)C++語言編譯時多態(tài)性的機制,【14】是實現(xiàn)C++語言運行時多態(tài)性的要制。
【參考答案】
【13】靜態(tài)聯(lián)編或靜態(tài)綁定 【14】動態(tài)聯(lián)編或動態(tài)綁定
13.以下程序的輸出結果是【15】。
#include
void main()
{ int a=0;
a+=(a=8);
cout<
【參考答案】
【15】16
1.數(shù)據(jù)結構作為計算機的一門學科,主要研究數(shù)據(jù)邏輯結構、對各種數(shù)據(jù)結構進行運算,及( )
A.數(shù)據(jù)的存儲結構
B.計算方法
C.數(shù)據(jù)映象
D.邏輯存儲
【參考答案】 A
2.在計算機中,算法是指( )
A.加工方法
B.解題方案的準確而完整的描述
C.排序方法
D.查詢方法
【參考答案】 B
3.開發(fā)軟件所需高成本和產品的低質量之間有著尖銳的矛盾,這種現(xiàn)象稱做( )
A.軟件投機
B.軟件危機
C.軟件工程
D.軟件產生
【參考答案】 B
4.開發(fā)大型軟件時,產生困難的根本原因是( )
A.大系統(tǒng)的復雜性
B.人員知識不足
C.客觀世界千變萬化
D.時間緊、任務重
【參考答案】 A
5.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關系是( )
A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)
B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)
D.3者沒有明顯的包含關系
【參考答案】 B
6.下列敘述中正確的是( )
A.線性表是線性結構
B.棧與隊列是非線性結構
C.線性鏈表是非線性結構
D.二叉樹是線性結構
【參考答案】 A
7.已知數(shù)據(jù)表A中每個元素距其最終位置不遠,為節(jié)省時間,應采用的算法是( )
A.堆排序
B.直接插入排序
C.快速排序
D.直接選擇排序
【參考答案】 B
8.下列不屬于結構化分析的常用工具的是( )
A.數(shù)據(jù)流圖
B.數(shù)據(jù)字典
C.判定樹
D.PAD圖
【參考答案】 A
9.下列工具中為需求分析常用工具的是( )
A.PAD
B.PFD
C.N-S
D.DFD
【參考答案】 D
10.數(shù)據(jù)庫的故障恢復一般是由( )
A.數(shù)據(jù)流圖完成的
B.數(shù)據(jù)字典完成的
C.DBA完成的
D.PAD圖完成的
【參考答案】 C
11.關于C++與C語言關系描述中錯誤的是( )
A.C++語言是C語言的超集
B.C++語言對C語言進行了擴充
C.C++語言包含C語言的全部語法特征
D.C++語言與C語言都是面向對象的程序設計語言
【參考答案】 D
12.在C++語言中,不合法的實型數(shù)據(jù)的是( )
A.0.123
B.123e3
C.2.1e3.5
D.123.0
【參考答案】 C
13.下面有關于for循環(huán)的正確描述是( )
A.for循環(huán)只能用于循環(huán)次數(shù)已經確定的情況
B.for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達式
C.在for循環(huán)中,不能用break語句跳出循環(huán)體
D.for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來
【參考答案】 D
14.假定int類型變量占用兩個字節(jié),其有定義int x[10]={0,2,4};,則數(shù)組x在內存中所占字節(jié)數(shù)是( )
A.3
B.6
C.10 來源:www.exam8.com
D.20
【參考答案】 D
15.以下敘述正確的是( )
A.函數(shù)可以嵌套定義但不能嵌套調用
B.函數(shù)既可以嵌套調用也可以嵌套定義
C.函數(shù)既不可以嵌套定義也不可以嵌套調用
D.函數(shù)可以嵌套調用但不可以嵌套定義
【參考答案】 D
16.下面的語句中錯誤的是( )
A.int a=5;int x[a];
B.const int a=5;int x[a];
C.int n=5;int *p=new int[a];
D.const int n=5;int *p=new int[a];
【參考答案】 A
17.關于二義性的描述錯誤的是( )
A.一個子類的兩個父類中都有某個同名成員,在子類中對該成員訪問可能出現(xiàn)二義性
B.解決二義性可以用對成員名的限定法
C.父類和子類中同時出現(xiàn)同名函數(shù),也可能存在二義性
D.一個子類是從兩個父類派生出來的,而這兩個父類又有一個共同的父類,對該父類成員進行訪問時,可能出現(xiàn)二義性
【參考答案】 C
18.函數(shù)模板:template
T add(T x,T y) {return x+y;}
下列對add函數(shù)的調用不正確的是( )
A.add< >(1,2)
B.add(1,2)
C.add(1.0,2)
D.add(1.0,2.0)
【參考答案】 C
19.this指針是C++實現(xiàn)什么的一種機制?( )
A.抽象
B.封裝
C.繼承
D.重載
【參考答案】 B
20.下列程序的輸出結果是( )
#include
class Myclass{
public:Myclass(int i=0,int j=0)
{
y=j;
}
void show(){cout<<″x=″<
void show()const{cout<<″x=″<<″ ″<<″y=″<
privated:
int x;int y;
}; 考試大(www.Examda。com)
void main()
{yclass my1(3,4);
const my2(7,8);
my1.show();my2.show();}
A.x=4,y=3;x=7,y=8
B.x=3,y=4;x=7,y=8 C.x=7,y=8;x=4,y=3
D.x=8,y=7;x=7,y=8
【參考答案】 A
21.在C++語言中,打開一個文件就是將這個文件與一個什么建立關聯(lián)( )
A.流
B.類
C.結構
D.對象
【參考答案】 A
22.執(zhí)行語句for(i=1;i++<4;);,后變量i的值是( )
A.3
B.4
C.5
D.不定
【參考答案】 C
23.下列哪個是C++語言的有效標識符?( )
A._No1
B.No.1
C.12345
D.int
【參考答案】 A
24.下列程序的執(zhí)行結果為( )
#include
void main()
{int a=3,b=0;
int *p=&a;
b=+a++;
cout<<*p<<″,″<
A.3,4
B.4,3
C.3,-4
D.4,4
【參考答案】 B
25.下列選項,不正確的是( )
A.for(int a=1;a<=10;a++);
B.int a=1;
do
{a++}
while(a<=10)
C.int a=1;
D.for(int a=1;a<=10;a++)a++;
while(a<=10)
{a++}
【參考答案】 B
26.下列程序的輸出結果為( )
#include
void main()
{char *a[]={″hello″,″the″,″world″};
char **pa=a;
pa++;
cout<<*pa<
A.hello
B.the C.world
D.hellotheworld
【參考答案】 B
27.下列程序的輸出結果是( )
#include
int min(int a,int b)
{if(a
else return b;
return 0;}
void main()
{cout<
A.0
B.1
C.2
D.3
【參考答案】 B
28.對類成員訪問權限的控制,是通過設置成員的訪問控制屬性實現(xiàn)的,下列不是訪問控制屬性的是( )
A.公有類型
B.私有類型
C.保護類型
D.友元類型
【參考答案】 D
29.類的析構函數(shù)的作用是( )
A.一般成員函數(shù)的初始化
B.類的初始化
C.對象的初始化
D.刪除類創(chuàng)建的對象
【參考答案】 D
30.下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )
A.靜態(tài)數(shù)據(jù)成員可以在類體內進行初始化
B.靜態(tài)數(shù)據(jù)成員不可以被類的對象調用
C.靜態(tài)數(shù)據(jù)成員不能受private控制符的作用
D.靜態(tài)數(shù)據(jù)成員可以直接用類名調用
【參考答案】 D
31.在公有派生情況下,有關派生類對象和基類對象的關系,下列敘述不正確的是( )
A.派生類的對象可以賦給基類的對象
B.派生類的對象可以初始化基類的引用
C.派生類的對象可以直接訪問基類中的成員
D.派生類的對象的地址可以賦給指向基類的指針
【參考答案】 C
32.下列關于虛基類的描述,錯誤的是( )
A.設置虛基類的目的是為了消除二義性
B.虛基類的構造函數(shù)在非虛基類之后調用
C.若同一層中包含多個虛基類,這些基類的構造函數(shù)按它們說明的次序調用
D.若虛基類由非虛基類派生而來,則仍然先調用基類構造函數(shù),再調用派生類的構造函數(shù)
【參考答案】 B
33.下列運算符中,在C++語言中不能重載的是( )
A.*
B.>=
C.::
D./
【參考答案】 C
34.下列程序的運行結果是( )
#include
class A
{ int a;
public:
A() {a=0;}
A(int aa)
{a=aa;
cout<
void main()
{A x,y(2),z(3);
cout<
A.00
B.23
C.34
D.25
【參考答案】 B
35.判斷char型變量c是否為小寫字母的正確表達式是( )
A.′a′<=c<=′z′
B.(c>+A)&&(c<=z)
C.(′a′>=c)||(′z′<=c)
D.(c>=′a′)&&(c<=′z′)
【參考答案】 D
二、填空題
1.長度為 n 的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【1】。
【參考答案】
【1】n/2
2.類是一個支持集成的抽象數(shù)據(jù)類型,而對象的類的【2】。
【參考答案】
【2】實例
3.當數(shù)據(jù)的物理結構(存儲結構、存取方式等)改變時,不影響數(shù)據(jù)庫的邏輯結構,從而不致引起應用程序的變化,這是指數(shù)據(jù)的【3】。
【參考答案】
【3】物理獨立性
4.若串 s =″MathTypes″,則其子串的數(shù)目是【4】。
【參考答案】
【4】46
5.關系數(shù)據(jù)庫的關系演算語言是以【5】為基礎的DML語言。
【參考答案】
【5】謂詞演算
6.程序
#include″inostream.h″
void main()
{int i=10;
int j=5;
cout<
的結果為【6】。
【參考答案】
【6】15
7.語句int *i;i=new int[10];,釋放指針i的語句是【7】。
【參考答案】
【7】delete[]I
8.在C++語言中每個類都有一個【8】指針,該指針指向正在調用成員函數(shù)的對象。
【參考答案】
【8】this
9.程序的結果為【9】。
#include ″iostream.h″
template
T total(T *data)
{ T s=0;
while( *data)
{s+=*data++;}
return s; }
int main()
{ int x[]={2,4,6,8,0,12,14,16,18};
cout<
return 0;
cout<
【參考答案】
【9】20
10.一個C++語言程序的開發(fā)步驟通常包括編輯、【10】、鏈接、運行和調試。
【參考答案】
【10】編譯
11.下面程序的運行結果是【11】和【12】。
#include
#define N 10
#define s(x)x*x
#define f(x)(x*x)
void main()
{ int i1,i2;
i1=1000/s(N);i2=1000/f(N);
cout<
【參考答案】
【11】1000 【12】10
12.【13】是實現(xiàn)C++語言編譯時多態(tài)性的機制,【14】是實現(xiàn)C++語言運行時多態(tài)性的要制。
【參考答案】
【13】靜態(tài)聯(lián)編或靜態(tài)綁定 【14】動態(tài)聯(lián)編或動態(tài)綁定
13.以下程序的輸出結果是【15】。
#include
void main()
{ int a=0;
a+=(a=8);
cout<
【參考答案】
【15】16

