一、選擇題
在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)最簡單的交換排序方法是
A)快速排序
B)選擇排序
C)堆排序
D)冒泡排序
(2)棧通常采用的兩種存儲結(jié)構(gòu)是
A)線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)
B)散列方式和索引方式
C)鏈表存儲結(jié)構(gòu)和數(shù)組
D)線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
(3)線性表的順序存儲結(jié)構(gòu)和線性表的鏈式存儲結(jié)構(gòu)分別是
A)順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
B)隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
C)隨機存取的存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu)
D)任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)
(4)完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例的測試方法是
A)黑箱測試法
B)白箱測試法
C)錯誤推測法
D)安裝測試法
(5)在結(jié)構(gòu)化設(shè)計方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示
A)模塊之間的調(diào)用關(guān)系
B)程序的組成成分
C)控制程序的執(zhí)行順序
D)數(shù)據(jù)的流向
(6)下列選項中,不屬于模塊間耦合的是
A)數(shù)據(jù)耦合
B)同構(gòu)耦合
C)異構(gòu)耦合
D)公用耦合
(7)一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為
A)對應(yīng)關(guān)系
B)單一關(guān)系
C)一元關(guān)系
D)二元關(guān)系
(8)為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是
A)高級語言
B)數(shù)據(jù)描述語言(DDL)
C)數(shù)據(jù)操縱語言(DML)
D)匯編語言
(9)相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和
A)可重用性差
B)安全性差
C)非持久性
D)冗余性
(10)需求分析階段的任務(wù)是確定
A)軟件開發(fā)方法
B)軟件開發(fā)工具
C)軟件開發(fā)費用
D)軟件系統(tǒng)功能
?。?1)以下哪個特征不是面向?qū)ο笏枷胫械闹饕卣鳎?BR> A)多態(tài)
B)繼承
C)封裝
D)垃圾回收
(12)以下哪個不是C++語言中的有效標(biāo)識符?
A)34a
B)_AB
C)A_B
D)A25
(13)C++中運算符優(yōu)先級由高到低排列正確的是
A):: ++ + ||
B)< * || ,
C)sizeof % + ::
D), && new sizeof
(14)下面程序的運行結(jié)果是
#include"iostream.h"
#define sum(a,b)a*b
void main()
{ int x;
x=sum(1+2,3);
cout< }
A)0
B)9
C)7
D)5
(15)以下for語句中不是死循環(huán)的是
A)for(int i=0;i<1;++i);
B)for(int i=0;;++i);
C)for(int i=1;i>0;++i);
D)for( ; ; );
(16)關(guān)于continue語句敘述不正確的是
A)continue語句用于循環(huán)體中,結(jié)束循環(huán)
B)continue語句用于循環(huán)體中,它使執(zhí)行流跳出循環(huán)體中尚未執(zhí)行的語句,并進行下一循環(huán)判斷
C)continue可以用于if語句中
D)continue語句不能代替break語句
(17)以下定義數(shù)組中錯誤的是
A)int a[10];
B)int a[2][20];
C)int a[20][ ];
D)int a[];
(18)下面程序的執(zhí)行結(jié)果是
#include"iostream.h"
void main()
{ int *p,r;
p = new int;
*p = 20;
r=sizeof(*p);
cout< delete p;
}
A)程序錯誤
B)內(nèi)存為20地址的大小
C)20
D)4
(19)下面程序錯誤的語句是
#include "iostream.h"
① void main()
② {
③ int A = 0;
④ int & B;
⑤ B = A;
⑥ cout << B;
⑦ cout << A;
⑧ }
A)②
B)③
C)④
D)⑥
(20)下列程序的輸出結(jié)果是
#include "iostream"
using namespace std;
int Max( int a, int b )
{
if( a > b)
return a;
else
return b;
}
void main()
{
int m, n;
m =10,n=5;
int max = Max( m, n );
cout << max << endl;
}
A)10
B)程序有誤
C)1
D)0
?。?1)函數(shù)int test( int a , int b=1, int c = 0),下列調(diào)用不合法的個數(shù)是
test( 0 );test( 0, 0 );test( );test( 0, 0, 0 );
A)0
B)1
C)2
D)3
(22)C++語言中類定義中默認的訪問權(quán)限是
A)public
B)protected
C)private
D)default
(23)C++語言中關(guān)于構(gòu)造函數(shù)的說法正確的是
A)構(gòu)造函數(shù)的函數(shù)名不必和類名相同
B)構(gòu)造函數(shù)只能每一個
C)每個類必定有構(gòu)造函數(shù)
D)構(gòu)造函數(shù)必有返回值
(24)關(guān)于構(gòu)造函數(shù)A()的拷貝構(gòu)造函數(shù)正確的是
A)A( A *B );
B)A( A B );
C)A( A & B );
D)A( A );
(25)下面程序的執(zhí)行結(jié)果為
#include "iostream"
using namespace std;
class A
{
int a;
public:
void Seta( int x ){ a = x;}
void Display_a(){ cout << a << endl; }
};
class B
{
int b;
public:
void Setb( int x ){ b = x;}
void Dispaly_b(){ cout << b << endl; }
};
class C : public A, private B
{
private:
int c;
public:
void Setc( int x, int y, int z )
{ c = z; Seta( x ); Setb( y ); }
void Display_c(){ cout << c << endl; }
};
① void main()
② {
③ C cc;
④ cc.Seta( 1 );
⑤ cc.Display_a();
⑥ cc.Setc( 2, 2, 3 );
⑦ cc.Dispaly_b();
⑧ cc.Display_c();
}
A)輸出為223
B)有錯誤在第5行
C)輸出為123
D)有錯誤在第7行
(26)虛函數(shù)必須是類的
A)成員函數(shù)
B)友元函數(shù)
C)構(gòu)造函數(shù)
D)析構(gòu)函數(shù)
(27)多態(tài)性指的是
A)以任何方式調(diào)用一個虛函數(shù)
B)以任何方式調(diào)用一個純虛函數(shù)
C)借助于指向?qū)ο蟮幕愔羔樆蛞谜{(diào)用一個虛函數(shù)
D)借助于指向?qū)ο蟮幕愔羔樆蛞谜{(diào)用一個純虛函數(shù)
(28)不能重載的運算符是
A)new
B)sizeof
C).*
D)++
(29)只能作為成員函數(shù)重載的是
A)=
B)++
C)*
D)new
(30)關(guān)于模板下列說法不正確的是
A)用類模板定義一個對象時,不能省略實參
B)類模板只能有虛擬類型參數(shù)
C)類模板本身在編譯中不會生成任何代碼
D)類模板的成員函數(shù)都是模板函數(shù)
?。?1)語句cout << setprecision (2)<< 1024.4567;的輸出結(jié)果為
A)1024.4567
B)1024
C)1024.45
D)1e+003
(32)下面程序的結(jié)果為
#include"iostream.h"
void change( int a, int b )
{
int temp;
temp = a;
a = b;
b = temp;
}
void main()
{
int m, n;
m = 8;
n = 9;
change( m, n );
cout << m << " " << n << endl;
}
A)8 9
B)9 8
C)程序有錯誤
D)9 9
(33)下面程序的結(jié)果是
#include "iostream.h"
void main()
{
char *str;
str = "test!";
cout << str[5];
}
A)程序錯誤
B)!
C)′\0′
D)為空字符
(34)下面程序輸出的結(jié)果為
#include "iostream.h"
class A
{
public:
A(){ cout << "CLASS A" << endl; }
~A(){}
};
class B : public A
{
public:
B(){ cout << "CLASS B" << endl; }
~B(){}
};
void main()
{
A *p;
p = new B;
B *q;
q = new B;
}
A)CLASS A
CLASS B
B)CLASS A
CLASS B
CLASS B
C)CLASS A
CLASS B
CLASS A
CLASS B
D)CLASS A
CLASS B
CLASS B
CLASS B
(35)C++語言函數(shù)中不能由系統(tǒng)自動生成的是
A)析構(gòu)函數(shù)
B)構(gòu)造函數(shù)
C)內(nèi)聯(lián)函數(shù)
D)拷貝構(gòu)造函數(shù)
二、填空題
請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。
(1)棧和隊列通常采用的存儲結(jié)構(gòu)是 1 。
(2)在程序設(shè)計階段應(yīng)該采取 2 和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,進而用某種程序設(shè)計語言寫成程序。
(3)軟件結(jié)構(gòu)是以 3 為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
(4)數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨立性,數(shù)據(jù)獨立性包括物理獨立性和 4 兩個含義。
(5)數(shù)據(jù)庫保護分為安全性控制、 5 、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
(6) 6 是C++語言程序的入口。
(7)程序
#include"iostream.h"
void main()
{
int i = 10;
int j = 5;
cout << j + i++ < }
的結(jié)果為 7 。
(8)C++語言的基本控制結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和 8 。
(9)語句int *i; i = new int[10]; ,釋放指針i的語句是 9 。
(10)函數(shù)重載要求重載的函數(shù)必須有和原函數(shù)一樣的 10 。
(11)在C++語言中每個類都有一個 11 指針,該指針指向正在調(diào)用成員函數(shù)的對象。
(12)設(shè)置虛基類的目的是 12 ,通過 13 表示虛基類。
(13)程序的結(jié)果為 14 。
#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 << total(x);
return 0;
cout<
(14)語句cout << ′\n′ 還可表示為 15 。
一、選擇題
(1)D
【命題目的】讓考生加深對各種排序方法特點的了解。
【解題要點】冒泡排序是一種最簡單的交換類排序方法,它是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。
【錯解分析】交換排序方法有冒泡排序和快速排序,顯然選項B)和選項C)錯誤,冒泡排序比較簡單,其算法也容易理解,但快速排序本身較為復(fù)雜,且采用了遞歸調(diào)用,其算法理解也稍難。
【考點鏈接】插入排序、選擇排序、歸并排序、基數(shù)排序等排序方法的特點。
(2)A
【命題目的】考查棧的存儲結(jié)構(gòu)的基本知識。
【解題要點】和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。
【考點鏈接】這3種運算方法在各種存儲結(jié)構(gòu)中的應(yīng)用。
(3)B
【命題目的】考查有關(guān)線性表存儲結(jié)構(gòu)的基本知識。
【解題要點】順序存儲結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(i-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈式存儲結(jié)構(gòu),要對某結(jié)點進行存取,都得從鏈的頭指針指向的結(jié)點開始,這是一種順序存取的存儲結(jié)構(gòu)。
【考點鏈接】順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)的定義和性質(zhì),兩種存儲結(jié)構(gòu)的操作方法。
(4)A
【命題目的】讓考生熟練掌握常用的測試方法及其概念。
【解題要點】黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)功能導(dǎo)出測試用例。
【錯解分析】白箱測試是根據(jù)對程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測試用例,白箱測試也稱為邏輯覆蓋測試,故選項B)不正確;錯誤推測法只是黑箱測試所使用的一種具體的方法,故選項C)不正確;安裝測試是測試層次中的一種,它屬于高級測試,故選項D)不正確。
【考點鏈接】常用的黑箱測試方法及其定義,白箱測試用例的準則。
(5)A
【命題目的】讓考生對常用的軟件結(jié)構(gòu)設(shè)計工具要有較深入的了解。
【解題要點】常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC-Structure Chart),也稱程序結(jié)構(gòu)圖。其中,矩形內(nèi)用于注明模塊的功能和名字;箭頭表示模塊間的調(diào)用關(guān)系,帶實心圓的箭頭表示傳遞的是控制信息,帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
【考點鏈接】根據(jù)結(jié)構(gòu)圖設(shè)計思想,了解結(jié)構(gòu)圖構(gòu)成的基本形式。
(6)C
【命題目的】本題主要考查了模塊間耦合的類型。
【解題要點】模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項C),沒有這種耦合方式。
【考點鏈接】評價模塊獨立性的主要標(biāo)準,以及對它們的定義和分類。
(7)C
【命題目的】使學(xué)生加深對關(guān)系模型數(shù)據(jù)庫基礎(chǔ)知識的記憶。
【解題要點】在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個具有N個屬性的關(guān)系稱為N元關(guān)系。
【考點鏈接】各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點。
(8)C
【命題目的】考查考生對數(shù)據(jù)庫基本知識的了解。
【解題要點】DBMS提供數(shù)據(jù)操縱語言(DML)實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的操作,數(shù)據(jù)操縱語言(DML)是用戶(包括應(yīng)用程序)與數(shù)據(jù)庫系統(tǒng)的接口。數(shù)據(jù)操縱語言通常包括檢索和更新功能。
【考點鏈接】程序模塊中語言處理部分的分類,各子類的定義及其功能。
(9)D
【命題目的】讓考生了解文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的區(qū)別。
【解題要點】文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。
【考點鏈接】文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。
(10)D
【命題目的】考查考生對需求分析的內(nèi)容的了解。
【解題要點】需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。。
【錯解分析】選項A)軟件開發(fā)方法是在總體設(shè)計階段完成的任務(wù);選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務(wù);選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務(wù)。
【考點鏈接】需求分析的任務(wù)和它的6種方法。
(11)D
【命題目的】考查面向?qū)ο笳Z言的基本思想。
【解題要點】面向?qū)ο笳Z言的基本特性是封裝,繼承和多態(tài)。
【錯解分析】垃圾回收是Java的主要特點。
【考點鏈接】要掌握面向?qū)ο蟮膬?yōu)點。
(12)A
【命題目的】考查C++語言標(biāo)識符規(guī)則。
【解題要點】在C++語言中,標(biāo)識符只能由數(shù)字,字母,下劃線組成,并且第一個字符不能是數(shù)字。
【錯解分析】選項A)是以數(shù)字開始的。
【考點鏈接】關(guān)鍵字不能用作標(biāo)識符。
(13)A
【命題目的】考查C++運算符的優(yōu)先級。
【解題要點】運算符的優(yōu)先級是::,其次是[ ],( ),等,然后是++,--,再低還有->*,*,+,<<,>>,=。
【考點鏈接】逗號的優(yōu)先級最低。
(14)C
【命題目的】考查宏定義的簡單運用。
【解題要點】理解宏定義,sum(a,b)a*b中a為1+2,b為3,故sum(1+2,3)=1+2*3,即宏定義的替換過程是原樣替換。
【錯解分析】選項B)的計算方法是(1+2)* 3 = 9是錯誤的,注意,不要隨意的加括號。
【考點鏈接】宏定義與函數(shù)的區(qū)別。
(15)A
【命題目的】考查循環(huán)語句for的使用。
【解題要點】for循環(huán)的一般格式為for ( 初始化部分; 終止條件判斷部分; 迭代部分){ 循環(huán)體;}
說明如下:for循環(huán)開始時,首先執(zhí)行初始化操作,然后判斷終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語句,最后執(zhí)行迭代部分。完成一次循環(huán)后,重新判斷終止條件。
【錯解分析】在for語句中,如果省略了終止條件判斷部分,并且在語句中沒有break,或者是終止條件判斷部分始終沒有終止,都將出現(xiàn)死循環(huán)。
【考點鏈接】for循環(huán)語句可由while循環(huán)語句來代替。
(16)A
【命題目的】考查continue語句的運用。
【解題要點】continue是跳出了本次循環(huán)中尚未執(zhí)行的語句,重新執(zhí)行循環(huán),但沒有終止循環(huán)。
【考點鏈接】注意break,continue和goto語句的用法和區(qū)別。
(17)C
【命題目的】考查數(shù)組的定義方法。
【解題要點】二維數(shù)面的二維不能省略。
【考點鏈接】數(shù)組的下標(biāo)是從零開始的。
(18)D
【命題目的】考查指針和運算符sizeof的運用。
【解題要點】理解sizeof的用法,它可以運算出各種數(shù)據(jù)類型所占內(nèi)存空間的多少。
【錯解分析】選項C)中是指針p所指向的內(nèi)存地址中內(nèi)容是20。
【考點鏈接】在用完申請后的內(nèi)存應(yīng)立刻釋放。
(19)C
【命題目的】考查引用的用法。
【解題要點】引用必須在第一時間進行賦值,int & B沒有在第一時間賦值故錯誤。
【考點鏈接】引用的方式,引用和指針應(yīng)用的比較。
(20)A
【命題目的】考查return語句的用法和函數(shù)的調(diào)用。
【解題要點】本題函數(shù)Max的功能是求出兩個整數(shù)中的較大者,并且通return語句返回。
【考點鏈接】return語句的用法,注意return的條件。
(21)C
【命題目的】考查函數(shù)含有默認參數(shù)時的調(diào)用方法。
【解題要點】如果一個函數(shù)中有多個參數(shù),則默認參數(shù)應(yīng)從右到左逐個定義。
【錯解分析】選項C)沒有給a傳遞任何的參數(shù),所以是錯誤的。
【考點鏈接】函數(shù)含有默認參數(shù)時的調(diào)用方式。
(22)C
【命題目的】考查類的概念。
【解題要點】C++語言中類定義中默認的類的訪問權(quán)限是private。
【錯解分析】C++語言中沒有default權(quán)限。
【考點鏈接】結(jié)構(gòu)體默認的訪問權(quán)限是public,注意它們之間的區(qū)別。
(23)C
【命題目的】考查構(gòu)造函數(shù)的概念。
【解題要點】構(gòu)造函數(shù)的函數(shù)名必須和類名相同;構(gòu)造函數(shù)可以有一個,也可以有多個;構(gòu)造函數(shù)沒有返回值。
【考點鏈接】構(gòu)造函數(shù)可以被重載。
(24)C
【命題目的】考查拷貝構(gòu)造函數(shù)的方法。
【解題要點】固定的一種拷貝方式就是<類名>:<類名>const<類名>&<引用對象名>
【考點鏈接】如果一個類中沒有聲明,拷貝構(gòu)造函數(shù),編譯器會自動生成一個如上述形成的僅有的拷貝構(gòu)造函數(shù)。
(25)D
【命題目的】考查類的繼承方法。
【解題要點】private繼承不能調(diào)用Display_b函數(shù),public繼承可以調(diào)用基類中非private成員。
【考點鏈接】類的繼承方式public,protected和private的區(qū)別。
(26)A
【命題目的】考查虛函數(shù)的基本概念。
【解題要點】虛函數(shù)只能是類的成員函數(shù),不能是構(gòu)造函數(shù)或析構(gòu)函數(shù)。
【考點鏈接】虛函數(shù)可以是另一個類的友元函數(shù)。
(27)C
【命題目的】考查多態(tài)性的基本概念。
【解題要點】多態(tài)性主要是指借助于指向?qū)ο蟮幕愔羔樆蛞谜{(diào)用一個虛函數(shù)。
【考點鏈接】注意多態(tài)和重載的關(guān)系和應(yīng)用。
(28)C
【命題目的】運算符重載的概念考查。
【解題要點】C++語言規(guī)定.*運算符是不能被重載的。
【考點鏈接】還有.,->*,::,?:這幾個運算符不能重載。
(29)A
【命題目的】關(guān)于重載概念的考查。
【解題要點】C++語言規(guī)定"="運算符只能作為成員函數(shù)重載。
(30)B
【命題目的】模板概念的考查。
【解題要點】類模板可以有虛擬類型參數(shù)。
【考點鏈接】模板及其周邊概念和模板的實現(xiàn)。
(31)D
【命題目的】setprecision()函數(shù)的考查。
【解題要點】setprecision()函數(shù)為設(shè)置小數(shù)位數(shù)。
【考點鏈接】C++ 中I/O流各種函數(shù)的使用例如:setw(),setfill()。
(32)A
【命題目的】考查交換兩整數(shù)的方法。
【解題要點】兩數(shù)只在函數(shù)change內(nèi)被使用,函數(shù)調(diào)用完后該內(nèi)存被釋放,因此沒有交換兩數(shù)。
【考點鏈接】交換兩個數(shù)的方法簡單說有兩種一是使用指針,二是用引用。
(33)D
【命題目的】考查字符串的應(yīng)用和′\0′的輸出。
【解題要點】′\0′輸出為不顯示,只代表一個字符串的結(jié)束。
【考點鏈接】C++語言中各種字符轉(zhuǎn)義序列的意義和應(yīng)用。
(34)C
【命題目的】考查類的繼承和實例化。
【解題要點】每實例化一個類就要調(diào)用其構(gòu)造函數(shù),結(jié)束運行該實例后調(diào)用析構(gòu)函數(shù)。
【考點鏈接】類的實例化和構(gòu)造函數(shù)、析構(gòu)函數(shù)的調(diào)用方式和何時調(diào)用。
(35)C
【命題目的】考查一個類中由系統(tǒng)自動生成的函數(shù)。
【解題要點】一個類中由系統(tǒng)自動生成的函數(shù)有構(gòu)造函數(shù),析構(gòu)函數(shù),拷貝構(gòu)造函數(shù)。
【錯解分析】內(nèi)聯(lián)函數(shù)只能由用戶自己定義。
【考點鏈接】類能自動生成的函數(shù),尤其注意構(gòu)造函數(shù)和析構(gòu)函數(shù),還有拷貝構(gòu)造函數(shù)。
二、填空題
(1)鏈式存儲和順序存儲
【命題目的】考查考生對數(shù)據(jù)結(jié)構(gòu)基本知識的了解。
【解題要點】棧和隊列都屬于線性表,它們一般采用順序存儲結(jié)構(gòu),也可以對它們采用鏈式存儲結(jié)構(gòu)。
【考點鏈接】棧、數(shù)組、表采用的存儲結(jié)構(gòu),各種存儲結(jié)構(gòu)的定義和區(qū)別。
(2)自頂而下
【命題目的】讓考生對程序設(shè)計有較深入的了解。
【考點鏈接】系統(tǒng)設(shè)計其他階段的內(nèi)容。
(3)模塊
【命題目的】考查考生對軟件結(jié)構(gòu)的了解。
【解題要點】采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計也容易閱讀和理解,模塊化使得軟件容易測試和調(diào)試,因而有利于提高軟件的可靠性,也有利于軟件的組織管理,大型程序可由不同的程序員編寫不同的模塊,并且可以進一步分配技術(shù)熟練的程序員編寫困難的部分。
【考點鏈接】軟件結(jié)構(gòu)的定義,模塊操作其他的所有特點。
(4)邏輯獨立性
【命題目的】考查考生對數(shù)據(jù)庫基本知識(數(shù)據(jù)獨立性)的了解。
【解題要點】數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩個含義。
【考點鏈接】在人工管理階段,文件系統(tǒng)階段和數(shù)據(jù)庫管理階段中數(shù)據(jù)獨立性的特點。
(5)完整性控制
【命題目的】考查考生對數(shù)據(jù)庫基本知識的了解。
【解題要點】安全性控制:防止未經(jīng)授權(quán)的用戶有意或無意存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)被泄露、更改或破壞;完整性控制:保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)造成錯誤的操作;并發(fā)控制:正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作,防止錯誤發(fā)生;恢復(fù):當(dāng)數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時,使數(shù)據(jù)庫能恢復(fù)到正確的狀態(tài)。
【考點鏈接】數(shù)據(jù)庫的其他用途,如數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)管理等。
(6)main()函數(shù)
【命題目的】考查C++語言的基本概念。
【解題要點】main()是C++語言的入口函數(shù)。
【考點鏈接】main()函數(shù)可以放在程序的任何位置
(7)15
【命題目的】考查++運算符的用法。
【解題要點】i++為先做與i有關(guān)的運算后,i自加1,而++i是先給i加1再進行與i有關(guān)的操作
【考點鏈接】各種運算符的應(yīng)用,注意++,--。
(8)循環(huán)結(jié)構(gòu)
【解題要點】C++語言3種基本結(jié)構(gòu)就是順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)。
(9)delete[]i;
【命題目的】new和delete的用法。
【解題要點】申請內(nèi)存空間時用new,釋放內(nèi)存空間用delete。
【考點鏈接】new和delete的運用和malloc,free的運用。
(10)函數(shù)名
【命題目的】重載函數(shù)的具體要求。
【解題要點】重載函數(shù)的函數(shù)名應(yīng)和原函數(shù)一致。
【考點鏈接】重載函數(shù)的方式方法,重載函數(shù)的參數(shù),重載函數(shù)的返回值。
(11)this
【命題目的】this指針的基本概念。
【解題要點】C++語言中this指針是類自帶的一個指針,它指向正在調(diào)用成員函數(shù)的對象。
【考點鏈接】C++類的基本概念,this指針概念。
(12)解決二義性問題~用關(guān)鍵字virtual
【命題目的】考查二義性的概念和解決方法。
【解題要點】解決二義性的兩個基本方法一是用域名進行限制,二是用虛基類的方法。
【考點鏈接】C++語言中解決二義性的方法。
(13)20
【命題目的】模板函數(shù)的運用。
【解題要點】要理解*data的含意。
(14)cout << endl;
【命題目的】考查"\n"和endl的意義。
【解題要點】"\n"表示換行,endl也可表示換行。
【考點鏈接】endl和"\n"可以通用。
在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)最簡單的交換排序方法是
A)快速排序
B)選擇排序
C)堆排序
D)冒泡排序
(2)棧通常采用的兩種存儲結(jié)構(gòu)是
A)線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)
B)散列方式和索引方式
C)鏈表存儲結(jié)構(gòu)和數(shù)組
D)線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
(3)線性表的順序存儲結(jié)構(gòu)和線性表的鏈式存儲結(jié)構(gòu)分別是
A)順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
B)隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
C)隨機存取的存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu)
D)任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)
(4)完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例的測試方法是
A)黑箱測試法
B)白箱測試法
C)錯誤推測法
D)安裝測試法
(5)在結(jié)構(gòu)化設(shè)計方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示
A)模塊之間的調(diào)用關(guān)系
B)程序的組成成分
C)控制程序的執(zhí)行順序
D)數(shù)據(jù)的流向
(6)下列選項中,不屬于模塊間耦合的是
A)數(shù)據(jù)耦合
B)同構(gòu)耦合
C)異構(gòu)耦合
D)公用耦合
(7)一個關(guān)系中屬性個數(shù)為1時,稱此關(guān)系為
A)對應(yīng)關(guān)系
B)單一關(guān)系
C)一元關(guān)系
D)二元關(guān)系
(8)為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是
A)高級語言
B)數(shù)據(jù)描述語言(DDL)
C)數(shù)據(jù)操縱語言(DML)
D)匯編語言
(9)相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和
A)可重用性差
B)安全性差
C)非持久性
D)冗余性
(10)需求分析階段的任務(wù)是確定
A)軟件開發(fā)方法
B)軟件開發(fā)工具
C)軟件開發(fā)費用
D)軟件系統(tǒng)功能
?。?1)以下哪個特征不是面向?qū)ο笏枷胫械闹饕卣鳎?BR> A)多態(tài)
B)繼承
C)封裝
D)垃圾回收
(12)以下哪個不是C++語言中的有效標(biāo)識符?
A)34a
B)_AB
C)A_B
D)A25
(13)C++中運算符優(yōu)先級由高到低排列正確的是
A):: ++ + ||
B)< * || ,
C)sizeof % + ::
D), && new sizeof
(14)下面程序的運行結(jié)果是
#include"iostream.h"
#define sum(a,b)a*b
void main()
{ int x;
x=sum(1+2,3);
cout< }
A)0
B)9
C)7
D)5
(15)以下for語句中不是死循環(huán)的是
A)for(int i=0;i<1;++i);
B)for(int i=0;;++i);
C)for(int i=1;i>0;++i);
D)for( ; ; );
(16)關(guān)于continue語句敘述不正確的是
A)continue語句用于循環(huán)體中,結(jié)束循環(huán)
B)continue語句用于循環(huán)體中,它使執(zhí)行流跳出循環(huán)體中尚未執(zhí)行的語句,并進行下一循環(huán)判斷
C)continue可以用于if語句中
D)continue語句不能代替break語句
(17)以下定義數(shù)組中錯誤的是
A)int a[10];
B)int a[2][20];
C)int a[20][ ];
D)int a[];
(18)下面程序的執(zhí)行結(jié)果是
#include"iostream.h"
void main()
{ int *p,r;
p = new int;
*p = 20;
r=sizeof(*p);
cout< delete p;
}
A)程序錯誤
B)內(nèi)存為20地址的大小
C)20
D)4
(19)下面程序錯誤的語句是
#include "iostream.h"
① void main()
② {
③ int A = 0;
④ int & B;
⑤ B = A;
⑥ cout << B;
⑦ cout << A;
⑧ }
A)②
B)③
C)④
D)⑥
(20)下列程序的輸出結(jié)果是
#include "iostream"
using namespace std;
int Max( int a, int b )
{
if( a > b)
return a;
else
return b;
}
void main()
{
int m, n;
m =10,n=5;
int max = Max( m, n );
cout << max << endl;
}
A)10
B)程序有誤
C)1
D)0
?。?1)函數(shù)int test( int a , int b=1, int c = 0),下列調(diào)用不合法的個數(shù)是
test( 0 );test( 0, 0 );test( );test( 0, 0, 0 );
A)0
B)1
C)2
D)3
(22)C++語言中類定義中默認的訪問權(quán)限是
A)public
B)protected
C)private
D)default
(23)C++語言中關(guān)于構(gòu)造函數(shù)的說法正確的是
A)構(gòu)造函數(shù)的函數(shù)名不必和類名相同
B)構(gòu)造函數(shù)只能每一個
C)每個類必定有構(gòu)造函數(shù)
D)構(gòu)造函數(shù)必有返回值
(24)關(guān)于構(gòu)造函數(shù)A()的拷貝構(gòu)造函數(shù)正確的是
A)A( A *B );
B)A( A B );
C)A( A & B );
D)A( A );
(25)下面程序的執(zhí)行結(jié)果為
#include "iostream"
using namespace std;
class A
{
int a;
public:
void Seta( int x ){ a = x;}
void Display_a(){ cout << a << endl; }
};
class B
{
int b;
public:
void Setb( int x ){ b = x;}
void Dispaly_b(){ cout << b << endl; }
};
class C : public A, private B
{
private:
int c;
public:
void Setc( int x, int y, int z )
{ c = z; Seta( x ); Setb( y ); }
void Display_c(){ cout << c << endl; }
};
① void main()
② {
③ C cc;
④ cc.Seta( 1 );
⑤ cc.Display_a();
⑥ cc.Setc( 2, 2, 3 );
⑦ cc.Dispaly_b();
⑧ cc.Display_c();
}
A)輸出為223
B)有錯誤在第5行
C)輸出為123
D)有錯誤在第7行
(26)虛函數(shù)必須是類的
A)成員函數(shù)
B)友元函數(shù)
C)構(gòu)造函數(shù)
D)析構(gòu)函數(shù)
(27)多態(tài)性指的是
A)以任何方式調(diào)用一個虛函數(shù)
B)以任何方式調(diào)用一個純虛函數(shù)
C)借助于指向?qū)ο蟮幕愔羔樆蛞谜{(diào)用一個虛函數(shù)
D)借助于指向?qū)ο蟮幕愔羔樆蛞谜{(diào)用一個純虛函數(shù)
(28)不能重載的運算符是
A)new
B)sizeof
C).*
D)++
(29)只能作為成員函數(shù)重載的是
A)=
B)++
C)*
D)new
(30)關(guān)于模板下列說法不正確的是
A)用類模板定義一個對象時,不能省略實參
B)類模板只能有虛擬類型參數(shù)
C)類模板本身在編譯中不會生成任何代碼
D)類模板的成員函數(shù)都是模板函數(shù)
?。?1)語句cout << setprecision (2)<< 1024.4567;的輸出結(jié)果為
A)1024.4567
B)1024
C)1024.45
D)1e+003
(32)下面程序的結(jié)果為
#include"iostream.h"
void change( int a, int b )
{
int temp;
temp = a;
a = b;
b = temp;
}
void main()
{
int m, n;
m = 8;
n = 9;
change( m, n );
cout << m << " " << n << endl;
}
A)8 9
B)9 8
C)程序有錯誤
D)9 9
(33)下面程序的結(jié)果是
#include "iostream.h"
void main()
{
char *str;
str = "test!";
cout << str[5];
}
A)程序錯誤
B)!
C)′\0′
D)為空字符
(34)下面程序輸出的結(jié)果為
#include "iostream.h"
class A
{
public:
A(){ cout << "CLASS A" << endl; }
~A(){}
};
class B : public A
{
public:
B(){ cout << "CLASS B" << endl; }
~B(){}
};
void main()
{
A *p;
p = new B;
B *q;
q = new B;
}
A)CLASS A
CLASS B
B)CLASS A
CLASS B
CLASS B
C)CLASS A
CLASS B
CLASS A
CLASS B
D)CLASS A
CLASS B
CLASS B
CLASS B
(35)C++語言函數(shù)中不能由系統(tǒng)自動生成的是
A)析構(gòu)函數(shù)
B)構(gòu)造函數(shù)
C)內(nèi)聯(lián)函數(shù)
D)拷貝構(gòu)造函數(shù)
二、填空題
請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。
(1)棧和隊列通常采用的存儲結(jié)構(gòu)是 1 。
(2)在程序設(shè)計階段應(yīng)該采取 2 和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,進而用某種程序設(shè)計語言寫成程序。
(3)軟件結(jié)構(gòu)是以 3 為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
(4)數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨立性,數(shù)據(jù)獨立性包括物理獨立性和 4 兩個含義。
(5)數(shù)據(jù)庫保護分為安全性控制、 5 、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
(6) 6 是C++語言程序的入口。
(7)程序
#include"iostream.h"
void main()
{
int i = 10;
int j = 5;
cout << j + i++ < }
的結(jié)果為 7 。
(8)C++語言的基本控制結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和 8 。
(9)語句int *i; i = new int[10]; ,釋放指針i的語句是 9 。
(10)函數(shù)重載要求重載的函數(shù)必須有和原函數(shù)一樣的 10 。
(11)在C++語言中每個類都有一個 11 指針,該指針指向正在調(diào)用成員函數(shù)的對象。
(12)設(shè)置虛基類的目的是 12 ,通過 13 表示虛基類。
(13)程序的結(jié)果為 14 。
#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 << total(x);
return 0;
cout<
(14)語句cout << ′\n′ 還可表示為 15 。
一、選擇題
(1)D
【命題目的】讓考生加深對各種排序方法特點的了解。
【解題要點】冒泡排序是一種最簡單的交換類排序方法,它是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。
【錯解分析】交換排序方法有冒泡排序和快速排序,顯然選項B)和選項C)錯誤,冒泡排序比較簡單,其算法也容易理解,但快速排序本身較為復(fù)雜,且采用了遞歸調(diào)用,其算法理解也稍難。
【考點鏈接】插入排序、選擇排序、歸并排序、基數(shù)排序等排序方法的特點。
(2)A
【命題目的】考查棧的存儲結(jié)構(gòu)的基本知識。
【解題要點】和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。
【考點鏈接】這3種運算方法在各種存儲結(jié)構(gòu)中的應(yīng)用。
(3)B
【命題目的】考查有關(guān)線性表存儲結(jié)構(gòu)的基本知識。
【解題要點】順序存儲結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(i-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈式存儲結(jié)構(gòu),要對某結(jié)點進行存取,都得從鏈的頭指針指向的結(jié)點開始,這是一種順序存取的存儲結(jié)構(gòu)。
【考點鏈接】順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)的定義和性質(zhì),兩種存儲結(jié)構(gòu)的操作方法。
(4)A
【命題目的】讓考生熟練掌握常用的測試方法及其概念。
【解題要點】黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)功能導(dǎo)出測試用例。
【錯解分析】白箱測試是根據(jù)對程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測試用例,白箱測試也稱為邏輯覆蓋測試,故選項B)不正確;錯誤推測法只是黑箱測試所使用的一種具體的方法,故選項C)不正確;安裝測試是測試層次中的一種,它屬于高級測試,故選項D)不正確。
【考點鏈接】常用的黑箱測試方法及其定義,白箱測試用例的準則。
(5)A
【命題目的】讓考生對常用的軟件結(jié)構(gòu)設(shè)計工具要有較深入的了解。
【解題要點】常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC-Structure Chart),也稱程序結(jié)構(gòu)圖。其中,矩形內(nèi)用于注明模塊的功能和名字;箭頭表示模塊間的調(diào)用關(guān)系,帶實心圓的箭頭表示傳遞的是控制信息,帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
【考點鏈接】根據(jù)結(jié)構(gòu)圖設(shè)計思想,了解結(jié)構(gòu)圖構(gòu)成的基本形式。
(6)C
【命題目的】本題主要考查了模塊間耦合的類型。
【解題要點】模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項C),沒有這種耦合方式。
【考點鏈接】評價模塊獨立性的主要標(biāo)準,以及對它們的定義和分類。
(7)C
【命題目的】使學(xué)生加深對關(guān)系模型數(shù)據(jù)庫基礎(chǔ)知識的記憶。
【解題要點】在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個具有N個屬性的關(guān)系稱為N元關(guān)系。
【考點鏈接】各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點。
(8)C
【命題目的】考查考生對數(shù)據(jù)庫基本知識的了解。
【解題要點】DBMS提供數(shù)據(jù)操縱語言(DML)實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的操作,數(shù)據(jù)操縱語言(DML)是用戶(包括應(yīng)用程序)與數(shù)據(jù)庫系統(tǒng)的接口。數(shù)據(jù)操縱語言通常包括檢索和更新功能。
【考點鏈接】程序模塊中語言處理部分的分類,各子類的定義及其功能。
(9)D
【命題目的】讓考生了解文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的區(qū)別。
【解題要點】文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。
【考點鏈接】文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。
(10)D
【命題目的】考查考生對需求分析的內(nèi)容的了解。
【解題要點】需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。。
【錯解分析】選項A)軟件開發(fā)方法是在總體設(shè)計階段完成的任務(wù);選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務(wù);選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務(wù)。
【考點鏈接】需求分析的任務(wù)和它的6種方法。
(11)D
【命題目的】考查面向?qū)ο笳Z言的基本思想。
【解題要點】面向?qū)ο笳Z言的基本特性是封裝,繼承和多態(tài)。
【錯解分析】垃圾回收是Java的主要特點。
【考點鏈接】要掌握面向?qū)ο蟮膬?yōu)點。
(12)A
【命題目的】考查C++語言標(biāo)識符規(guī)則。
【解題要點】在C++語言中,標(biāo)識符只能由數(shù)字,字母,下劃線組成,并且第一個字符不能是數(shù)字。
【錯解分析】選項A)是以數(shù)字開始的。
【考點鏈接】關(guān)鍵字不能用作標(biāo)識符。
(13)A
【命題目的】考查C++運算符的優(yōu)先級。
【解題要點】運算符的優(yōu)先級是::,其次是[ ],( ),等,然后是++,--,再低還有->*,*,+,<<,>>,=。
【考點鏈接】逗號的優(yōu)先級最低。
(14)C
【命題目的】考查宏定義的簡單運用。
【解題要點】理解宏定義,sum(a,b)a*b中a為1+2,b為3,故sum(1+2,3)=1+2*3,即宏定義的替換過程是原樣替換。
【錯解分析】選項B)的計算方法是(1+2)* 3 = 9是錯誤的,注意,不要隨意的加括號。
【考點鏈接】宏定義與函數(shù)的區(qū)別。
(15)A
【命題目的】考查循環(huán)語句for的使用。
【解題要點】for循環(huán)的一般格式為for ( 初始化部分; 終止條件判斷部分; 迭代部分){ 循環(huán)體;}
說明如下:for循環(huán)開始時,首先執(zhí)行初始化操作,然后判斷終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語句,最后執(zhí)行迭代部分。完成一次循環(huán)后,重新判斷終止條件。
【錯解分析】在for語句中,如果省略了終止條件判斷部分,并且在語句中沒有break,或者是終止條件判斷部分始終沒有終止,都將出現(xiàn)死循環(huán)。
【考點鏈接】for循環(huán)語句可由while循環(huán)語句來代替。
(16)A
【命題目的】考查continue語句的運用。
【解題要點】continue是跳出了本次循環(huán)中尚未執(zhí)行的語句,重新執(zhí)行循環(huán),但沒有終止循環(huán)。
【考點鏈接】注意break,continue和goto語句的用法和區(qū)別。
(17)C
【命題目的】考查數(shù)組的定義方法。
【解題要點】二維數(shù)面的二維不能省略。
【考點鏈接】數(shù)組的下標(biāo)是從零開始的。
(18)D
【命題目的】考查指針和運算符sizeof的運用。
【解題要點】理解sizeof的用法,它可以運算出各種數(shù)據(jù)類型所占內(nèi)存空間的多少。
【錯解分析】選項C)中是指針p所指向的內(nèi)存地址中內(nèi)容是20。
【考點鏈接】在用完申請后的內(nèi)存應(yīng)立刻釋放。
(19)C
【命題目的】考查引用的用法。
【解題要點】引用必須在第一時間進行賦值,int & B沒有在第一時間賦值故錯誤。
【考點鏈接】引用的方式,引用和指針應(yīng)用的比較。
(20)A
【命題目的】考查return語句的用法和函數(shù)的調(diào)用。
【解題要點】本題函數(shù)Max的功能是求出兩個整數(shù)中的較大者,并且通return語句返回。
【考點鏈接】return語句的用法,注意return的條件。
(21)C
【命題目的】考查函數(shù)含有默認參數(shù)時的調(diào)用方法。
【解題要點】如果一個函數(shù)中有多個參數(shù),則默認參數(shù)應(yīng)從右到左逐個定義。
【錯解分析】選項C)沒有給a傳遞任何的參數(shù),所以是錯誤的。
【考點鏈接】函數(shù)含有默認參數(shù)時的調(diào)用方式。
(22)C
【命題目的】考查類的概念。
【解題要點】C++語言中類定義中默認的類的訪問權(quán)限是private。
【錯解分析】C++語言中沒有default權(quán)限。
【考點鏈接】結(jié)構(gòu)體默認的訪問權(quán)限是public,注意它們之間的區(qū)別。
(23)C
【命題目的】考查構(gòu)造函數(shù)的概念。
【解題要點】構(gòu)造函數(shù)的函數(shù)名必須和類名相同;構(gòu)造函數(shù)可以有一個,也可以有多個;構(gòu)造函數(shù)沒有返回值。
【考點鏈接】構(gòu)造函數(shù)可以被重載。
(24)C
【命題目的】考查拷貝構(gòu)造函數(shù)的方法。
【解題要點】固定的一種拷貝方式就是<類名>:<類名>const<類名>&<引用對象名>
【考點鏈接】如果一個類中沒有聲明,拷貝構(gòu)造函數(shù),編譯器會自動生成一個如上述形成的僅有的拷貝構(gòu)造函數(shù)。
(25)D
【命題目的】考查類的繼承方法。
【解題要點】private繼承不能調(diào)用Display_b函數(shù),public繼承可以調(diào)用基類中非private成員。
【考點鏈接】類的繼承方式public,protected和private的區(qū)別。
(26)A
【命題目的】考查虛函數(shù)的基本概念。
【解題要點】虛函數(shù)只能是類的成員函數(shù),不能是構(gòu)造函數(shù)或析構(gòu)函數(shù)。
【考點鏈接】虛函數(shù)可以是另一個類的友元函數(shù)。
(27)C
【命題目的】考查多態(tài)性的基本概念。
【解題要點】多態(tài)性主要是指借助于指向?qū)ο蟮幕愔羔樆蛞谜{(diào)用一個虛函數(shù)。
【考點鏈接】注意多態(tài)和重載的關(guān)系和應(yīng)用。
(28)C
【命題目的】運算符重載的概念考查。
【解題要點】C++語言規(guī)定.*運算符是不能被重載的。
【考點鏈接】還有.,->*,::,?:這幾個運算符不能重載。
(29)A
【命題目的】關(guān)于重載概念的考查。
【解題要點】C++語言規(guī)定"="運算符只能作為成員函數(shù)重載。
(30)B
【命題目的】模板概念的考查。
【解題要點】類模板可以有虛擬類型參數(shù)。
【考點鏈接】模板及其周邊概念和模板的實現(xiàn)。
(31)D
【命題目的】setprecision()函數(shù)的考查。
【解題要點】setprecision()函數(shù)為設(shè)置小數(shù)位數(shù)。
【考點鏈接】C++ 中I/O流各種函數(shù)的使用例如:setw(),setfill()。
(32)A
【命題目的】考查交換兩整數(shù)的方法。
【解題要點】兩數(shù)只在函數(shù)change內(nèi)被使用,函數(shù)調(diào)用完后該內(nèi)存被釋放,因此沒有交換兩數(shù)。
【考點鏈接】交換兩個數(shù)的方法簡單說有兩種一是使用指針,二是用引用。
(33)D
【命題目的】考查字符串的應(yīng)用和′\0′的輸出。
【解題要點】′\0′輸出為不顯示,只代表一個字符串的結(jié)束。
【考點鏈接】C++語言中各種字符轉(zhuǎn)義序列的意義和應(yīng)用。
(34)C
【命題目的】考查類的繼承和實例化。
【解題要點】每實例化一個類就要調(diào)用其構(gòu)造函數(shù),結(jié)束運行該實例后調(diào)用析構(gòu)函數(shù)。
【考點鏈接】類的實例化和構(gòu)造函數(shù)、析構(gòu)函數(shù)的調(diào)用方式和何時調(diào)用。
(35)C
【命題目的】考查一個類中由系統(tǒng)自動生成的函數(shù)。
【解題要點】一個類中由系統(tǒng)自動生成的函數(shù)有構(gòu)造函數(shù),析構(gòu)函數(shù),拷貝構(gòu)造函數(shù)。
【錯解分析】內(nèi)聯(lián)函數(shù)只能由用戶自己定義。
【考點鏈接】類能自動生成的函數(shù),尤其注意構(gòu)造函數(shù)和析構(gòu)函數(shù),還有拷貝構(gòu)造函數(shù)。
二、填空題
(1)鏈式存儲和順序存儲
【命題目的】考查考生對數(shù)據(jù)結(jié)構(gòu)基本知識的了解。
【解題要點】棧和隊列都屬于線性表,它們一般采用順序存儲結(jié)構(gòu),也可以對它們采用鏈式存儲結(jié)構(gòu)。
【考點鏈接】棧、數(shù)組、表采用的存儲結(jié)構(gòu),各種存儲結(jié)構(gòu)的定義和區(qū)別。
(2)自頂而下
【命題目的】讓考生對程序設(shè)計有較深入的了解。
【考點鏈接】系統(tǒng)設(shè)計其他階段的內(nèi)容。
(3)模塊
【命題目的】考查考生對軟件結(jié)構(gòu)的了解。
【解題要點】采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計也容易閱讀和理解,模塊化使得軟件容易測試和調(diào)試,因而有利于提高軟件的可靠性,也有利于軟件的組織管理,大型程序可由不同的程序員編寫不同的模塊,并且可以進一步分配技術(shù)熟練的程序員編寫困難的部分。
【考點鏈接】軟件結(jié)構(gòu)的定義,模塊操作其他的所有特點。
(4)邏輯獨立性
【命題目的】考查考生對數(shù)據(jù)庫基本知識(數(shù)據(jù)獨立性)的了解。
【解題要點】數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩個含義。
【考點鏈接】在人工管理階段,文件系統(tǒng)階段和數(shù)據(jù)庫管理階段中數(shù)據(jù)獨立性的特點。
(5)完整性控制
【命題目的】考查考生對數(shù)據(jù)庫基本知識的了解。
【解題要點】安全性控制:防止未經(jīng)授權(quán)的用戶有意或無意存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)被泄露、更改或破壞;完整性控制:保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)造成錯誤的操作;并發(fā)控制:正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作,防止錯誤發(fā)生;恢復(fù):當(dāng)數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時,使數(shù)據(jù)庫能恢復(fù)到正確的狀態(tài)。
【考點鏈接】數(shù)據(jù)庫的其他用途,如數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)管理等。
(6)main()函數(shù)
【命題目的】考查C++語言的基本概念。
【解題要點】main()是C++語言的入口函數(shù)。
【考點鏈接】main()函數(shù)可以放在程序的任何位置
(7)15
【命題目的】考查++運算符的用法。
【解題要點】i++為先做與i有關(guān)的運算后,i自加1,而++i是先給i加1再進行與i有關(guān)的操作
【考點鏈接】各種運算符的應(yīng)用,注意++,--。
(8)循環(huán)結(jié)構(gòu)
【解題要點】C++語言3種基本結(jié)構(gòu)就是順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)。
(9)delete[]i;
【命題目的】new和delete的用法。
【解題要點】申請內(nèi)存空間時用new,釋放內(nèi)存空間用delete。
【考點鏈接】new和delete的運用和malloc,free的運用。
(10)函數(shù)名
【命題目的】重載函數(shù)的具體要求。
【解題要點】重載函數(shù)的函數(shù)名應(yīng)和原函數(shù)一致。
【考點鏈接】重載函數(shù)的方式方法,重載函數(shù)的參數(shù),重載函數(shù)的返回值。
(11)this
【命題目的】this指針的基本概念。
【解題要點】C++語言中this指針是類自帶的一個指針,它指向正在調(diào)用成員函數(shù)的對象。
【考點鏈接】C++類的基本概念,this指針概念。
(12)解決二義性問題~用關(guān)鍵字virtual
【命題目的】考查二義性的概念和解決方法。
【解題要點】解決二義性的兩個基本方法一是用域名進行限制,二是用虛基類的方法。
【考點鏈接】C++語言中解決二義性的方法。
(13)20
【命題目的】模板函數(shù)的運用。
【解題要點】要理解*data的含意。
(14)cout << endl;
【命題目的】考查"\n"和endl的意義。
【解題要點】"\n"表示換行,endl也可表示換行。
【考點鏈接】endl和"\n"可以通用。