全國計算機(jī)等級考試無紙化真考題庫試卷二級C++(1)_第1頁
全國計算機(jī)等級考試無紙化真考題庫試卷二級C++(1)_第2頁
全國計算機(jī)等級考試無紙化真考題庫試卷二級C++(1)_第3頁
全國計算機(jī)等級考試無紙化真考題庫試卷二級C++(1)_第4頁
全國計算機(jī)等級考試無紙化真考題庫試卷二級C++(1)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、全國計算機(jī)等級考試無紙化真考題庫試卷(1)二級C+(考試時間l20分鐘,滿分100分)一、選擇題(每小題1分,共40分)(1)程序流程圖中帶有箭頭的線段表示的是( )。A)圖元關(guān)系 B)數(shù)據(jù)流 C)控制流 D)調(diào)用關(guān)系(2)結(jié)構(gòu)化程序設(shè)計的基本原則不包括( )。A)多態(tài)性 B)自頂向下 C)模塊化 D)逐步求精(3)軟件設(shè)計中模塊劃分應(yīng)遵循的準(zhǔn)則是( )。A)低內(nèi)聚低耦合 B)高內(nèi)聚低耦合 C)低內(nèi)聚高耦合 D)高內(nèi)聚高耦合(4)在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是( )。A)可行性分析報告 B)軟件需求規(guī)格說明書C)概要沒計說明書 D)集成測試計劃(5)算法的有窮性是指( )。A)算法

2、程序的運(yùn)行時間是有限的 B)算法程序所處理的數(shù)據(jù)量是有限的C)算法程序的長度是有限的 D)算法只能被有限的用戶使用(6)對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(rt一1)2的排序方法是( )。A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序(7)F列關(guān)于棧的敘述正確的是( )。A)棧按“先進(jìn)先出”組織數(shù)據(jù) B)棧按“先進(jìn)后出”組織數(shù)據(jù)C)只能在棧底插入數(shù)據(jù) D)不能刪除數(shù)據(jù)(8)在數(shù)據(jù)庫設(shè)計中,將ER圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于( )。A)需求分析階段 B)概念設(shè)計階段 C)邏輯設(shè)計階段D)物理設(shè)計階段(9)有三個關(guān)系R、S和T如下由關(guān)系R和s通過運(yùn)算得到關(guān)系T,則所使

3、用的運(yùn)算為( )。A)并 B)自然連接 C)笛卡爾積 D)交(10)設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課Sc(學(xué)號,課號,成績),則表Sc的關(guān)鍵字(鍵或碼)為( )。A)課號,成績 B)學(xué)號,成績 C)學(xué)號,課號 D)學(xué)號,姓名,成績(1I)下列語句中,錯誤的是( )。A)const int buffer:256; B)const int temp;C)const double*point;D)const double*rt=new double(55);(12)有如下程序:int x=3:dox-=2;COUX:while(!(-X

4、);執(zhí)行這個程序的輸出結(jié)果是( )。A)1 B)3 0 C)12 D)死循環(huán)(13)有如下程序:ncludeusing namespace std;int main()int*P;*P=9:cout”The value at p:” *p;return 0;編譯運(yùn)行程序?qū)⒊霈F(xiàn)的情況是( )。A)編譯時出現(xiàn)語法錯誤,不能生成可執(zhí)行文件B)運(yùn)行時一定輸出:llle value at P:9C)運(yùn)行時一定輸出:llle value at P:*9D)運(yùn)行時有可能出錯(14)if語句的語法格式可描述為:格式l:if()或格式2:if()else關(guān)于上面的語法格式,下列表述中錯誤的是( )。A)部分可以

5、是一個if語句,例如if(if(a=0)B)部分可以是一個if語句,例如if()if()C)如果在前加上邏輯非運(yùn)算符!并交換和的位置,語句功能不變D)部分可以是一個循環(huán)語句,例如if()while()(15)下列符號中,正確的c+標(biāo)識符是( )。A)enum B)2b C)f00一9 D)_32(16)下列關(guān)于c+函數(shù)的說明中,正確的是( )。A)內(nèi)聯(lián)函數(shù)就是定義在另一個函數(shù)體內(nèi)部的函數(shù)B)函數(shù)體的最后一條語句必須是return語句C)標(biāo)準(zhǔn)c+要求在調(diào)用一個函數(shù)之前,必須先聲明其原型D)編譯器會根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式(17)運(yùn)算符重載是對已有的運(yùn)算符賦予多重含義,

6、因此( )。A)可以對基本類型(如int類型)的數(shù)據(jù),重新定義“+”運(yùn)算符的含義B)可以改變一個已有運(yùn)算符的優(yōu)先級和操作數(shù)個數(shù)C)只能重載c+中已經(jīng)有的運(yùn)算符,不能定義新運(yùn)算符D)C+中已經(jīng)有的所有運(yùn)算符都可以重載(18)下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是( )。A)內(nèi)聯(lián)函數(shù)在調(diào)用時發(fā)生控制轉(zhuǎn)移B)內(nèi)聯(lián)函數(shù)必須通過關(guān)鍵字inline來定義C)內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的 D)內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語句必須是return語句(19)下列運(yùn)算符不能重載為友元函數(shù)的是( )。 A)=()( )-B) + - + - C) = =D)+= -= *=(20)有如下程序:#includeusing n

7、amespaee std;int main()void function(double val);double val:function(val);eout”,使得程序中可以“cinobj;”的形式改變MyClass類的對象0bj中數(shù)據(jù)成員data的值,則橫線處的聲明語句應(yīng)為( )。A)friend istream& operator(istream&is,MyClass&a); B)friend istream&operator(istream&is,MyClass a);C)istream&operator(istream&is,MyClass&a);D)istream&operator(

8、istream&is,MyClass a);(23)由于常對象不能被更新,因此( )。A)通過常對象只能調(diào)用它的常成員函數(shù)B)通過常對象只能調(diào)用靜態(tài)成員函數(shù)C)常對象的成員都是常成員D)通過常對象可以調(diào)用任何不改變對象值的成員函數(shù)(24)有如下類定義:class AAim a:public:int getRef()constreturna;int getValue()constreturn a;void set(int n)consta=n;friend void show(AA aa)constcouta=a;static int g()return a;fvoid h(int b)Test

9、:b=b;private:int a;static int b;const int C;int Test:b=0:在標(biāo)注號碼的行中,能被正確編譯的是()。A)B)c)D)(32)有如下類聲明:class SAMPLE int n:public:SAMPLE(int i=0):n(i)void setValue(int nO);下列關(guān)于9etValue成員函數(shù)的定義中,正確的是()。A)SAMPLE:setValue(int nO)n=n0; B)void SAMPLE:setValue(int胡)n=n0;C)void setValue(int nO)n=n0;D)setValue(int n

10、O)n=n0;(33)有如下程序:#includeusing namespace std;class Apublic:A()cout”A”;-A()cout”-A”;class B:public AA*P;public:B()cout”B”;P=new A();-B()cout”B”;delete p;int main()B obj;return 0;執(zhí)行這個程序的輸出結(jié)果是( )。A)BAAABA B)ABABAAC)BAABAA D)ABAABA(34)有如下程序:#includeusing namespace std;class Baseprivate:void funl()constt

11、out”funl”;protected:void fun2()consttout”fun2”;public:void fun3()constcout”fhll3”;class Derived:protected Basepublic:void fhn4()constcout”filn4”;int main()Derived obj;objfunl();objfun2();objfurd();objfun4();return U:其中有語法錯誤的語句是()。A)B)C)D)(35)有如下程序:#includeusing namespace std;class Baselpublic:BaseI(

12、int d)coutd;一Basel();class Base2public:Base2(int d)toutd;Base2();class Derived:public Basel,Base2public:Derived(int a,int b,int c,int d):Basel(b),Base2(a),bl(d),b2(c)private:int bl:int b2:;int main()Derived d(1,2,3,4);return 0;執(zhí)行這個程序的輸出結(jié)果是()。A)1234B)2134C)12D)21(36)有如下程序:#includeusing namespace std;

13、class Basepublic:void funl()cout”Basen”;virtual void fun2()eout”Basen”;class Derived:public Basepublic:void funl()eout”Derived、n”;void fura()eout”Derivedn”;void f(Base&b)bfunl();bftm2();int main()Derived obj;f(obj);return 0;執(zhí)行這個程序的輸出結(jié)果是()。A)BaseB)BaseC)DerivedD)DerivedBase Derived Base Derived(37)模板

14、對類型的參數(shù)化提供了很好的支持,因此()。A)類模板的主要作用是生成抽象類B)類模板實(shí)例化時,編譯器將根據(jù)給出的模板實(shí)參生成一個類C)在類模板中的數(shù)據(jù)成員都具有同樣類型D)類模板中的成員函數(shù)都沒有返回值(38)有如下函數(shù)模板:templateT east(U u)i return u;其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對模板函數(shù)cast的調(diào)用中正確的是()。A)cast(i);B)cast(i);C)east(i);D)east(i);(39)要建立文件流并打開當(dāng)前目錄下的文件6ledat用于輸入,下列語句中錯誤的是()。A)ifstream fin=ffstre

15、amopen(”filedat”);B)ifstream*fin=new ifstream(”filedat”);C)ifstream fin;finopen(”filedat”);D)ifstream*fin=new ifstream();fin-open(”filedat”);(40)當(dāng)使用ifstream流類定義一個流對象并打開一個磁盤文件時,文件的默認(rèn)打開方式為()。A)iosbase:inB)iosbase:in l ios base:0utC)los base;:0utD)ios_base:in&ios_base:0ut二、基本操作題(共l8分)請使用VC6或使用【答題】菜單打開考

16、生文件夾projl下的工程projl,該工程含有一個源程序文件pn,jlcpp。其中位于每個注釋“ERROR 木水found水木”之后的一行語句存在錯誤。請改正這些錯誤,使程序的輸出結(jié)果為:The value is l0注意:只修改注釋“ERROR * found*”的下一行語句,不要改動程序中的其他內(nèi)容。pmjlcpp#includeusing namespace std;class MyClassint value;public:ERROR*found*void MyClass(int val):value(val)int GetValue()constreturn value;void

17、SetValue(int val);ERROR*found*inline void SetValue(int val)value=val;int main()MyClass obj(O);objSetValue(10);ERROR*found*下列語句功能是輸出obj的成員value的值tout”The value is”objvalueendl:return 0;三、簡單應(yīng)用題(共24分)請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,此工程包含有一個源程序文件proj2cpp,其中定義了Stack類和ArrayStack類。Stack是一個用于表示數(shù)據(jù)結(jié)構(gòu)“?!钡?/p>

18、類,棧中的元素是字符型數(shù)據(jù)。Stack為抽象類,它只定義了棧的用戶接口,如下所示:公有成員函數(shù) 功能push 入棧:在棧頂位置添加一個元素pop 退棧:取出并返回棧頂元素ArrayStack是Stack的派生類,它實(shí)現(xiàn)了Stack定義的接口。ArrayStack內(nèi)部使用動態(tài)分配的字符數(shù)組作為棧元素的存儲空間。數(shù)據(jù)成員maxSize表示的是棧的最大容量,top用于記錄棧頂?shù)奈恢?。成員函數(shù)push和pop分別實(shí)現(xiàn)具體的入棧和退棧操作。請在程序中的橫線處填寫適當(dāng)?shù)拇a,然后刪除橫線,以實(shí)現(xiàn)上述功能。此程序的正確輸出結(jié)果應(yīng)為:a,b,CC,b,a注意:只在指定位置編寫適當(dāng)代碼,不要改動程序中的其他內(nèi)容

19、,也不要刪除或移動“*料found*”。proj2cpp#includeusing namespacc std;class Stackpublic:virtual void push(char C)=0;virtual char pop()=0;class ArrayStack:public Stackchar*P;int maxSizc;int top;public:ArravStack(int s)top=0;maxSize=s:*found*P=_;ArrayStack()*found*_;void push(char c)if(top=maxSize)cerr”O(jiān)verflow! n”

20、:return;*found*_;top+:char pop()if(top=0)cerr”Underflow!、n”;return0;Top-;*found*_;void f(Stack&sRef)char ch=a,b,c;coutch0”,”ch1”,”ch2endl;sRefpush(oh0);sRefpush(ch1);sRefpush(ch2);coutsRefpoP()”,”;coutsRefpoP()”,”;coutsRefpoP()endl;int main()ArrayStack as(10);f(as):return 0:四、綜合應(yīng)用題(共l8分)請使用VC6或使用【答題

21、】菜單打開考生目錄proj3下的工程文件proj3,此工程中包含一個源程序文件proj3cpp,補(bǔ)充編制c+程序proj3cpp,其功能是讀取文本文件indat中的全部內(nèi)容,將文本存放到doc類的對象myDoc中。然后將myDoc中的字符序列反轉(zhuǎn),并輸出到文件outdat中。文件indat的長度不大于1000字節(jié)。要求:補(bǔ)充編制的內(nèi)容寫在“*”與“*”兩行之間。實(shí)現(xiàn)將myDoc中的字符序列反轉(zhuǎn),并將反轉(zhuǎn)后的序列在屏幕上輸出。不得修改程序的其他部分。注意:程序最后已將結(jié)果輸出到文件0utdat中,輸出函數(shù)writeToFile已經(jīng)給出并且調(diào)用。proj3cpp#include#include#i

22、ncludeusing namespace std;class docprivate:char*sir;文本字符串首地址int length;文本字符個數(shù)public:構(gòu)造函數(shù),讀取文件內(nèi)容,用于初始化新對象,filename是文件名字符串首地址doc(char*filename);void reverse();將字符序列反轉(zhuǎn)一doc();void writeToFile(char*filename); doc:doc(charfilename)ifstream myFile(filename);int len=1001,tmp;atr=new char1en;length=0;while(t

23、rap=myFileget()!=EOF) str1ength+=trap; str1ength=0;myFileclose();void doc:reverse()將數(shù)組atr中的length個字符中的第一個字符與最后一個字符交換,第二個字符與倒數(shù)第二個字符交換*333*666*doc:doe()deletestr;void doc:writeToFile(char*filename)Ofstream outFile(filename);outFile”不能重載為類的友元函數(shù)。所以本題答案為A。(20)D 【解析】本題考查函數(shù)調(diào)用及傳值方式傳遞參數(shù),執(zhí)行函數(shù)function時,并沒有將3的值

24、傳回來,而val又沒有初始化,所以會輸出一個不確定的值,D選項(xiàng)正確。(21)c 【解析】本題考查四種運(yùn)算符作為非成員函數(shù)的重載的使用方法,根據(jù)重載規(guī)則,本題答案為c,c項(xiàng)正確原型為:Fraction operator=(Fraction)。(22)A 【解析】本題考查重載流運(yùn)算符“”,根據(jù)重載規(guī)則,本題答案為A。(23)A 【解析】本題考查常對象的基本知識,常對象只能調(diào)用它的常成員函數(shù),而不能調(diào)用非const函數(shù),常對象的成員函數(shù)不一定都是常成員函數(shù),只需保證其數(shù)據(jù)成員是常數(shù)據(jù)成員即可。所以本題選A。(24)B 【解析】本題考查常成員函數(shù),常成員函數(shù)只能引用本類中的數(shù)據(jù)成員,而不能修改它。所以

25、本題答案為B。(25)D 【解析】this作用域是在類內(nèi)部,當(dāng)在類的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員時,編譯器會自動將對象本身的地址作為一個隱含參數(shù)傳遞給函數(shù)。另外,全局函數(shù)和靜態(tài)函數(shù)都不能使用this指針。所以答案為D。(26)B 【解析】在某基類中聲明為virtual并在一個或多個派生類中被重新定義的成員函數(shù)一虛函數(shù)必須是基類的非靜態(tài)成員函數(shù),其訪問權(quán)限可以是protected或public。如果一個類包含了純虛函數(shù),稱此類為抽象類。所以本題答案為B。(27)D 【解析】本題考查派生類與基類的關(guān)系,派生類可以有多個直接基類,而派生類有三種繼承方式,在私有繼承中,派生類的成員并不能訪問基類

26、的成員。如果基類中定義了缺省構(gòu)造函數(shù)或根本沒有定義任何一一個構(gòu)造函數(shù)時,在派生類構(gòu)造函數(shù)的定義中可以省略對基類構(gòu)造函數(shù)的調(diào)用。所以本題答案為D。(28)A 【解析】本題考查公用繼承對基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問屬性,其私有成員仍為基類私有。所以在本題中,在類外引用成員函數(shù)時,派生對象只能引用基類的公用成員函數(shù)fun1,故本題答案為A。(29)D 【解析】本題考查對象的初始化,類的數(shù)據(jù)成員是不能在聲明類時初始化的,所以本題答案為D。(30)C 【解析】本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù),題目中定義一個對象a(2)以及對象數(shù)組b3,共執(zhí)行4

27、次構(gòu)造函數(shù),對象指針不調(diào)用構(gòu)造函數(shù)。所以本題答案為c。(31)D 【解析】只能通過構(gòu)造函數(shù)的參數(shù)初始化列表對常數(shù)據(jù)成員進(jìn)行初始化,本題中常數(shù)據(jù)成員為C。通過默認(rèn)構(gòu)造函數(shù)初始化c,所以不正確。常成員函數(shù)只能引用本類中數(shù)據(jù)成員,而不能修改它,所以不正確。靜態(tài)成員函數(shù)由于沒有this指針,所以不能訪問本類中的非靜態(tài)成員,所以錯誤。(32)B 【解析】本題考查在類外定義類的成員函數(shù),需要使用作用域限定符“:”,屬于基礎(chǔ)知識,本題答案為8。(33)B 【解析】本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個派生類的對象時,先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù)。對象釋放時,先執(zhí)行派生類的析構(gòu)函數(shù)

28、,再執(zhí)行基類的析構(gòu)函數(shù)。所以本題答案為B。(34)B 【解析】本題考查保護(hù)繼承中派生類對基類的訪問屬性,受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,保護(hù)基類的所有成員在派生類中都被保護(hù)起來,在類外不能訪問,所以錯誤。(35)D 【解析】本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個派生類的對象時,先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù),對象釋放時,先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義一個派生類對象時,分別調(diào)用基類的構(gòu)造函數(shù),所以分別輸出21。(36)B 【解析】在某基類中聲明為virtual并在一個或多個派生類中被重新定義

29、的成員函數(shù),本題中定義r一個派生類對象0bi,執(zhí)行f函數(shù)后,將派生類對象0bj轉(zhuǎn)化為基類對象,由于fun1不是虛函數(shù),所以輸出基類的fun1;而fun2是虛函數(shù),所以輸出派生類的fun2,所以本題答案為8。(37)B 【解析】本題考查類模板的基本概念。類模板的定義和聲明都以關(guān)鍵字template開頭。關(guān)鍵字后面是一個用逗號分隔的模板參數(shù)表,用尖括號“”括起來,這個表被稱為類模板的模板參數(shù)表。類模板是類的抽象,類是類模板的實(shí)例。類模板使類中的一些數(shù)據(jù)成員和成員函數(shù)的參數(shù)或返回值可以取任意的數(shù)據(jù)類型。所以B選項(xiàng)正確。(38)D 【解析】本題考查函數(shù)模板的基本運(yùn)用,屬于基礎(chǔ)知識。函數(shù)模板實(shí)際上是建立

30、一個通用函數(shù),其函數(shù)類型和形參類型不具體指定,用一個虛擬的類型代表,這個通用函數(shù)就是函數(shù)模板。函數(shù)模板可以設(shè)定默認(rèn)參數(shù),這樣在調(diào)用模板函數(shù)時就可以省略實(shí)參,函數(shù)模板的實(shí)例就是一個函數(shù)的定義。所以本題答案為D。(39)A 【解析】本題考查對文件流輸入的操作,可以調(diào)用文件流的成員函數(shù)pen,一般形式如下:文件流對象0pen(磁盤文件名,輸入/輸出方式)。根據(jù)以上格式,可以判斷A選項(xiàng)錯誤。(40)A 【解析】本題考查對文件輸入流的操作,ifstream流類為輸入流類,默認(rèn)的文件輸入流扣開方式為ios:in。故答案為A。二、基本操作題【參考答案】(1)MyClass(int val):value(val)(2)void MyClass:SetValue(int val)value=val;(3)cout“”The value is”“objGetValue()“end1;【考點(diǎn)分析】本題主要考查MyClass類、構(gòu)造函數(shù)、成員函數(shù)及成員函數(shù)的調(diào)用?!窘忸}思路】(1)考查構(gòu)造函數(shù),定義構(gòu)造函數(shù)時不能使用void,直接使用MyClass(int val)即可。(2)主要考查成員函數(shù)定義,類的成員函數(shù)定義時要使用前綴MyClass,而inline是內(nèi)聯(lián)函數(shù)的關(guān)鍵字,在此是錯誤的,應(yīng)該刪掉inline并在函數(shù)名前加上前綴MyClass,即voidMyClass:SetValue(in

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論