




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
眼家二級(C++)筆試模擬試卷第1套
一、公共基礎(chǔ)選擇題(本題共70題,每題7.0分,共
10分。)
1、循環(huán)鏈表的主要優(yōu)點(diǎn)是
A、不再需要頭指針了
B、從表中任一結(jié)點(diǎn)出發(fā)都能訪問到整個(gè)鏈表
C、在進(jìn)行插入、刪除運(yùn)算時(shí),能更好的保證鏈表不斷開
D、已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易的找到它的直接前件
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:循環(huán)鏈表就是將單向鏈表中最后一個(gè)結(jié)點(diǎn)的指針指向頭結(jié)點(diǎn),使整個(gè)
鏈表構(gòu)成一個(gè)環(huán)形,這樣的結(jié)構(gòu)使得從表中的任一結(jié)點(diǎn)出發(fā)都能訪問到整個(gè)鏈表。
2、棧底至棧頂依次存放元素A、B、C、D,在笫五個(gè)元素E入棧前,棧中元素可
以出棧,則出棧序列可能是
A、ABCED
B、DCBEA
C、DBCEA
D、CDABE
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:棧操作原則上“后進(jìn)先出”,棧底至棧頂依次存放元素A、B、C、D,
則表明這4個(gè)元素中D是最后進(jìn)棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一
定是先出D,再出C,最后出A。
3、n個(gè)頂點(diǎn)的強(qiáng)連通圖的邊數(shù)至少有
A^n-1
B、n(n-l)
C、n
D^n+1
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:在有向圖中,若任意兩個(gè)頂點(diǎn)都連通,則稱該圖是強(qiáng)連通圖,這樣的
有向圖的形狀是環(huán)狀,因而至少應(yīng)有n條邊。
4、在結(jié)構(gòu)化程序設(shè)計(jì)思想提出之前,在程序設(shè)計(jì)中曾強(qiáng)調(diào)程序的效率。與程序的
效率相比,人們更重視程序的
A、安全性
B、一致性
C、nJ理解性
D、合理性
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序具有明顯的優(yōu)點(diǎn)。其一,程序易于
理解、使用和維護(hù);其二,提交了編程工作的效率,降低了軟件開發(fā)成本。其中,
人們更重視前者。
5、模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)則是模塊
的
A、抽象和信息隱蔽
B、局部化和封裝化
C、內(nèi)聚性和耦合性
D、激活機(jī)制和控制方法
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:模塊的獨(dú)立程序是評價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)
立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)。
6、軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成
A、定義、開發(fā)、運(yùn)行維護(hù)
B、設(shè)計(jì)階段、編程階段、測試階段
C、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試
D、需求分析、功能定義、系統(tǒng)設(shè)計(jì)
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱
為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。
7、在軟件工程中,白箱測試法可用于測試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是
A、路徑的集合
B、循環(huán)的集合
C、目標(biāo)的集合
D、地址的集合
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:軟件的白盒測試方法是把測試對象看做一個(gè)打開的盒子,它允許測試
人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序所有邏輯
路徑進(jìn)行測試。
8、在數(shù)據(jù)管理技術(shù)發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)廢系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫系統(tǒng)
具有
A、特定的數(shù)據(jù)模型
B、數(shù)據(jù)無冗余
C、數(shù)據(jù)可共享
D、專門的數(shù)據(jù)管理軟件
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:在文件系統(tǒng)中,相互獨(dú)立的記錄其內(nèi)部結(jié)構(gòu)的最簡單形式是等長同格
式記錄的集合,易造成存儲空間大量浪費(fèi),不方便使用。而在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)
是結(jié)構(gòu)化的,這種結(jié)構(gòu)化要求在描述數(shù)據(jù)時(shí)不僅描述數(shù)據(jù)本身,還要描述數(shù)據(jù)間的
關(guān)系,這正是通過采用特定的數(shù)據(jù)模型來實(shí)現(xiàn)的。
9、數(shù)據(jù)庫設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是
A、概念設(shè)計(jì)和邏輯設(shè)計(jì)
B、模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)
C、內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)
D、結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:數(shù)據(jù)庫設(shè)計(jì)包括數(shù)據(jù)庫概念設(shè)計(jì)和數(shù)據(jù)庫邏輯設(shè)計(jì)兩個(gè)方面的設(shè)計(jì)內(nèi)
容。
10、實(shí)體是信息世界中廣泛使用的一個(gè)術(shù)語,它用于表示
A、有生命的事物
B、無生命的事物
C、實(shí)際存在的事物
D、一切事物
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:實(shí)體是客觀存在且可以相互區(qū)別的事物。實(shí)體可以是具體的對象,如
一個(gè)學(xué)生,也可以是一個(gè)抽象的事件,如一次出門旅游等。因此,實(shí)體既可以是有
生命的事物,也可以是無生命的事物,但它必須是客觀存在的,而且可以相互區(qū)
別。
二、選擇題(本題共25題,每題1.0分,共25分。)
11、面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括
A、繼承性
B、功能分解.,逐步求精
C、封裝性和信息隱藏
D、多態(tài)性
標(biāo)準(zhǔn)答案:2
知識點(diǎn)露析:面向?qū)ο蟪绦蛟O(shè)計(jì)的主要特征是繼承性,封裝性和信息隱藏,多態(tài)
性。
12、C++語言是以哪種語言為基礎(chǔ)逐漸發(fā)展演變而成的一種程序設(shè)計(jì)語言
A、ASP
B、C
C、VB
D、0
標(biāo)準(zhǔn)答案:4
知識之解析:本題考查簡單的if…else語句。先執(zhí)行條件if(aVB,顯然不成立,則
執(zhí)行else語句。
17、有以卜程序#include<string.h>#include<iostream.h>voidmain()
{char*p="abcdc\Ofghjik\O";cout<<strlen(p);J程序運(yùn)行后的輸出結(jié)果是
A、12
B、15
C、6
D、5
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:C++語言規(guī)定了一個(gè)字符串結(jié)束標(biāo)志,以字符、(T代表,在遇到、0'
時(shí),表示字符串結(jié)束,由它前面的字符組成字符串。
18、若有說明語句chara[]="Itismine1';char*p=nItismine";則以下不正確的敘述
是
A、a+1表示的是字符t的地址
B、p指向另外的字符串時(shí),字符串的長度不受限制
C、p變量中存放的地址值可以改變
D、a中只能存放10個(gè)字符
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:本題考查字符串?dāng)?shù)組和指針的引用方式。在C++語言中,系統(tǒng)在每
個(gè)字符串或數(shù)組的最后自動(dòng)加入一個(gè)字符'\0',作為字符的結(jié)束標(biāo)志,在本題中,
charismine”;所表示的a字符串實(shí)際含有11個(gè)字符。
19、以下程序的運(yùn)行結(jié)果是#include<iostream.h>voidsub(intx,inty,int*z){*z=y-
x;}voidmain(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);cout<<
a<<',"<<b<<V<<c<<en
A、5,2,3
B、-5,-12,-7
C、-5,-12,-17
D、5,-2,-7
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:在C++語言中,調(diào)用函數(shù)不可能改變實(shí)參指針變量的值,但可以改
變實(shí)參指針變量所指變量的值。了解了實(shí)參指針變量的改變情況,本題只剩下簡單
的“加減法”了。
20、下列程序是用來判斷數(shù)組中特定元素的位置所在,則輸出結(jié)果為#由4代0<
conio.h>#include<iostream.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0:i
A、7,431
B、6
C、980
D、6,980
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:本題中直接使用指針變量k,但在使用時(shí)要注意對k的指針運(yùn)算,此
外,一開始應(yīng)認(rèn)為*k的值為數(shù)組中的某一下標(biāo)值,即*k=0。
21>執(zhí)行下列程序段,結(jié)果是#includeViostream.h>voidmain(){intx=40;char
y='C';intn;n=(x&0xff)&&(y>,B,);cout<<n:)
A、0
B、1
C、2
D、3
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:按位與運(yùn)算符是雙目運(yùn)算符。其功能是參與運(yùn)算的兩數(shù)各對應(yīng)的
二進(jìn)位相與。只有對應(yīng)的兩個(gè)二進(jìn)位均為1時(shí),結(jié)果位才為1,否則為0。參與運(yùn)
算的數(shù)以補(bǔ)碼方式出現(xiàn)。邏輯與運(yùn)算符“&&”需要兩邊的結(jié)果都為1時(shí),其結(jié)吳才
為lo
22、關(guān)于this指針的說明不正確的是
A、不能在程序中修改this指針
B、this指針可以給其他指針賦值,但不能修改Ihis指針
C、靜態(tài)成員函數(shù)中沒有this指針
D、this指針可以被賦值
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:C++的this指針是系統(tǒng)默認(rèn)產(chǎn)生的一個(gè)指針,它是const的,所以是
不能夠被改變,不能夠被賦值的。
23、卜面程序的結(jié)果是#includeViostream.h>classA{public:A(){cout<<
"construtA"<<endl:)virtual-A(){cout<<,'destructA"<<endl:}};classB:
publicA{};classC:publicA{);c
A、constructAdestructA
B、constructAconstructAdestructAdestructA
C、constructAconstructAconstructAdestructAdestructAdestructA
D、constructAonstructAconstructAconstructAdestructAdestructAdestructA
destructA
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:類D繼承了類C和類B,所以在構(gòu)造的時(shí)候分別構(gòu)造類B和類C。
24、關(guān)于虛函數(shù)下面說的正確的是
A、若在重定義虛函數(shù)時(shí)使用了virtual,則該重定義函數(shù)還是虛函數(shù)
B、虛函數(shù)不能聲明為友元
C、子類必須重定義父類的虛函數(shù)
D、虛函數(shù)不能是static的
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:虛函數(shù)一定不能定義為靜態(tài)的。虛函數(shù)可以聲明為友元,子類也不是
必須重定義父類的虛函數(shù),若在重定義虛函數(shù)時(shí)使用了virtual,則該重定義函數(shù)不
一定還是虛函數(shù)。
25、如果表達(dá)式++x/y中,++是作為友元函數(shù)重載的,/是作為成員函數(shù)重載的,則
該表達(dá)式還可為
A、(operator++(x)).operator/(y)
B、(operator++(0)).operator/(y)
C、operator/((operator++(x,0)),y)
D、operator/((operator+4-(0)),y)
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:C++中用成員函數(shù)重載++x為:x.operator++(),用友元函數(shù)重載十+x
為:operator++(x),用成員函數(shù)重載x/y為:x.operator/(y),用友元函數(shù)重載x/y
為:opcrator/(x,y)。
26、要想使23.78965421的輸出為23.7887應(yīng)用的語句是
A、cout<<23.78965421;
B、cout<<fixcd<<23.78965421;
C、cout<<23.78965421-0.001;
D、cout<<fixed<<23.78965421-0.001;
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:C++語言中默認(rèn)小數(shù)的輸出位一共是6位,fixed的意義是在小數(shù)點(diǎn)
后保留6位。
27、有以下語句,則對a數(shù)組元素的引用不正確的是(0WiW9)int
a[10]={0,123,4,5,6,7,8,9},*p=a;
A^a[p-a]
B、*(&a[i])
C、p[i]
D^*(*(a+i))
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:選項(xiàng)D第一層括號中為數(shù)組a中第i項(xiàng)元素的值,外面再加指針運(yùn)算
符沒有意義。
28、有以#include<iostreain.h>floatfun(intx,inty){return(x+y);}void
main(){inta=2,b=5,c=8;cout<<fun((int)fun(a+c,b),a-c);}程序運(yùn)行后的輸出
結(jié)果是
A、編譯出錯(cuò)
B、9
C>21
D、9
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:本題的運(yùn)算過程是fun((int)fun(a+c,B,a-C,fun((int)fun(10,5),2-
8),fun((int)15.000000,-6),fun(15,-6)=9o
29、下列程序的運(yùn)行結(jié)果是#include〈iostream.h>classLocation]private:int
X.Y:public:voidinit(int=O,int=O):voidvalueX(intval){X=val;)int
valueX(){returnX;}voidvalueY
A、5064
B、0064
C、5062
D、0062
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:本題中有成員函數(shù)和它的重載函數(shù),要注意它們的不同,在本題中先
調(diào)用了init函數(shù),初始化了X,Y,都為0,valueX⑸:又將X變?yōu)?,所以輸出5
和0,然后初始化init(6,2),接著又valueY(4);將X,Y設(shè)為6和4,所以輸出6
和4。
30、在C++語言中,封裝是借助于什么達(dá)到的?
A、結(jié)構(gòu)
B、類
C、數(shù)組
D、函數(shù)
標(biāo)準(zhǔn)答案:2
知識點(diǎn)謁析:C++基本的性質(zhì)就是它的封裝性,而封裝性主要是靠類來實(shí)現(xiàn)的。
31、在位運(yùn)算中,操作數(shù)每左移一位,其結(jié)果相當(dāng)于
A、操作數(shù)乘以2
B、操作數(shù)除以2
C、操作數(shù)除以4
D、操作數(shù)乘以4
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:左移運(yùn)算符“VV”是雙目運(yùn)算符。其功能把“VV”左邊的運(yùn)算數(shù)的各
二進(jìn)位全部左移若干位,由“VV”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)
0o左移1位,相當(dāng)于該數(shù)乘以2。
32、有如卜程序#include<iostreain.h>#defineN2#defineMN+l#defineNUM
2*M+1voidmain(){inti;for(i=l,i<=NUM;i++)cout<<i;}該程序中的for循環(huán)執(zhí)
行的次數(shù)是
A、5
B、6
C、7
D、8
標(biāo)準(zhǔn)答案:2
知識之解析:這是一種簡單的情況:不帶參數(shù)的宏。關(guān)鍵要注意在對2*M+1進(jìn)行
宏替換時(shí),要將宏名M原樣替換,得到NUM的形式為2*N+1+1(千萬不要隨意把
給N+1加上小括號,使NUM變?yōu)?*(N+1)+1,這就是宏名和變量名之間的區(qū)
別)。
33、卜列程序的輸出結(jié)果是#include<iostream.h>intb=2;intfunc(inl*a)
{b+=*a;return(b);)voidmain(){inta=2,res=2;res+=func(&a);cout<<
res;)
A、4
B、6
C、8
D、10
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:在函數(shù)體語句中的b+=*a;的求是指針運(yùn)算符(也稱間接訪問運(yùn)算
符),*a就是main函數(shù)中a的值。
34、所有在函數(shù)中定義的變量,連同形式參數(shù),都屬于
A、全局變量
B、局部變量
C、靜態(tài)變量
D、寄存器變量
標(biāo)準(zhǔn)答案:2
知識點(diǎn)謁析:C++語言函數(shù)中定義的變量都是屬于這個(gè)函數(shù)的局部變量。
35、有如下程序:#include<iostream.h>longfib(intn){if(n>2)return(fib(n-
l)+fib(n-2));elsereturn(2);}voidmain(){cout<<fib(3);}該程序的輸出結(jié)果是
A、2
B、4
C、6
D、8
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:fib(3)=fib(2)+fib(l),而fib(2)的返回值為2,fib(l)的返回值也為2,
故輸出的fib⑶的值為4。
三、公共基礎(chǔ)填空題(本題共5題,每題分,共5
分。)
36、在算法正確的前提下,評價(jià)一個(gè)算法的兩個(gè)標(biāo)準(zhǔn)是【】。
標(biāo)準(zhǔn)答案:時(shí)間復(fù)雜度和空間復(fù)雜度
知識點(diǎn)解析:暫無解析
37、將代數(shù)式「4〃4轉(zhuǎn)換成程序設(shè)計(jì)中的表達(dá)式為【】。
標(biāo)準(zhǔn)答案:SQRT(x2+y2)/(a+b)
知識點(diǎn)解析:暫無解析
38、軟件危機(jī)出現(xiàn)于60年代末,為了解決軟件危機(jī),入們提出了【】的原理來設(shè)
計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。
標(biāo)準(zhǔn)答案:軟件工程學(xué)
知識點(diǎn)解析:暫無解析
39、[]是數(shù)據(jù)庫設(shè)計(jì)的核心。
標(biāo)準(zhǔn)答案:數(shù)據(jù)模型
知識點(diǎn)解析:數(shù)據(jù)模型是對客觀事物及聯(lián)系的數(shù)據(jù)描述,它反映了實(shí)體內(nèi)部及實(shí)體
與實(shí)體之間的聯(lián)系。因此,數(shù)據(jù)模型是數(shù)據(jù)庫設(shè)計(jì)的核心。
40、在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)【】。
標(biāo)準(zhǔn)答案;關(guān)系
知識點(diǎn)解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)
系。表中的每一列稱為一個(gè)屬性,相當(dāng)于記錄中的一個(gè)數(shù)據(jù)項(xiàng),對屬性的命名稱為
屬性名;表中的一行稱為一個(gè)元組,相當(dāng)于記錄值。
四、填空題(本題共8題,每題7.0分,共8分。)
41、在C++語言的面向?qū)ο蟪绦蛟O(shè)計(jì)框架中,【】是程序的基本組成單元。
標(biāo)準(zhǔn)答案:類
知識點(diǎn)解析:C++語言面向?qū)ο蟪绦蛟O(shè)計(jì)的基本組成單兀是class,面向過程的程序
設(shè)計(jì)的基本組成單元是函數(shù)。
42、C++語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個(gè)注釋以【】作為開
始和結(jié)束的標(biāo)記。
標(biāo)準(zhǔn)答案:/**/
知識點(diǎn)解析:C++語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個(gè)注釋以“/*”
開始,以"*/''為結(jié)束。
43、以卜程序的輸出結(jié)果是[1°#include<iostream.h>voidfun(){staticint
a=0;a+=2;cout<<a<<"";}voidmain(){intcc;for(cc=1;cc<4;
cc++)fun();cout<<end1;)
標(biāo)準(zhǔn)答案:246
知識點(diǎn)解析:本題考查靜態(tài)局部變量的使用。用關(guān)鍵字static聲明的局部變量為
“靜態(tài)局部變量”,其值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,即其占用的存儲單元
不釋放,在下一次該函數(shù)調(diào)用時(shí),該變量已有值,就是上一次函數(shù)調(diào)用結(jié)束時(shí)的
值。
44、用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲
空間,請?zhí)羁铡t=(char*)[];
標(biāo)準(zhǔn)答案:malloc(l1)或malloc(sizeof(char)*l1)
知識點(diǎn)解析:malloc函數(shù)的參數(shù)可以是一個(gè)具體的常數(shù),也可以是一個(gè)表達(dá)式。在
本題中,可以是malloc(ll),也可以借助于sizeof運(yùn)算符來表示。
45、以下程序的輸出結(jié)果是【】。#include<iostream.h>unsignedfun(unsigned
num){unsignedk=1;do{k*=num%IO;num/=10;)while(num);returnk;)void
main(){unsignedn=26;cout<<fun(n)<<endl
標(biāo)準(zhǔn)答案:12
知識點(diǎn)解析:函數(shù)有一個(gè)形參num,循環(huán)前變量k置1,循環(huán)中,表達(dá)式num%10
是取num的個(gè)位,將num的個(gè)位值累乘于k中,然后num除以10。循環(huán)直至num
為0結(jié)束,這是逐一求出num十進(jìn)制表示的各位數(shù)字,并累乘于變量k的循環(huán)。
函數(shù)最后返回ko函數(shù)fun的功能是求整數(shù)的各位十進(jìn)數(shù)字積。
46、將x+y*z中的用成員函數(shù)重載,“”用友元函數(shù)重載應(yīng)寫為【】。
標(biāo)準(zhǔn)答案:operator+(operator*(y,z))
知識點(diǎn)解析:C++中用成員函冊重載x*y為:x.opcrator*(y),用友元函數(shù)重載x*y
為:operator*(x,y),用成員函數(shù)重載x+y為:x.operator+(y),用友元函數(shù)重載
x+y為:operator+(x,y)。
47、下列程序在構(gòu)造函數(shù)和析構(gòu)函數(shù)中申請和釋放類的數(shù)據(jù)成員int*a,申請時(shí)使
用形參b初始化a,請?zhí)羁铡lassA{public:A(intb);?A();private:int
*a;};A::A(intb){[];}A::?A(){[];}
標(biāo)準(zhǔn)答案:a=newint(B)deletea
知識點(diǎn)解析:C++中new和delete的使用有如卜兒種:(T)a=newint;deletea;
②a=newint(10);deletea;③a=newint[IO];delete[]a;。
48、C++語言中的多態(tài)性是在編譯時(shí)通過【】和模板體現(xiàn)的,在運(yùn)行時(shí)是通過
[J體現(xiàn)的。
標(biāo)準(zhǔn)答案:函數(shù)重載虛函數(shù)
知識點(diǎn)解析:C++中的多態(tài)性是在編譯時(shí)通過函數(shù)重載和模板體現(xiàn)的,在運(yùn)行時(shí)是
通過虛函數(shù)體現(xiàn)的。
國家二級(C++)筆試模擬試卷第2套
一、公共基礎(chǔ)選擇題(本題共10題,每題7.0分,共
10分。)
1、以下各運(yùn)算中,不屬于算術(shù)運(yùn)算的是()。
A、大于
B、加
C、乘
D、除
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:在一般的計(jì)算機(jī)系統(tǒng)中,基本的運(yùn)算和操作有以下4類:算術(shù)運(yùn)算、
邏輯運(yùn)算、關(guān)系運(yùn)算、數(shù)據(jù)傳輸。“大于”屬于邏輯運(yùn)算中的一種。選項(xiàng)中的加、
乘、除都屬于算術(shù)運(yùn)算。
2、下列敘述中,正確的是()。
A、一個(gè)數(shù)據(jù)結(jié)構(gòu)中的元素在計(jì)算機(jī)存儲空間中的位置關(guān)系與邏輯關(guān)系可能不同
B、一個(gè)數(shù)據(jù)結(jié)構(gòu)中的元素在計(jì)算機(jī)存儲空間中的位置關(guān)系與邏輯關(guān)系一定不同
C、一個(gè)數(shù)據(jù)結(jié)構(gòu)中的元素在計(jì)算機(jī)存儲空間中的位置關(guān)系與邏輯關(guān)系一定相同
D、數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的邏輯結(jié)構(gòu)是相同的
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:一個(gè)數(shù)據(jù)結(jié)構(gòu)中的元素在計(jì)算機(jī)存儲空間中的位置關(guān)系與邏輯關(guān)系不
一定相同。例如,在家庭成員的數(shù)據(jù)結(jié)構(gòu)中,“兒子”和“女兒”都是“父親”的后生
但在計(jì)算機(jī)存儲空間中,根本不能將“兒子”和“女兒”這兩個(gè)數(shù)據(jù)元素的信息都緊鄰
存放在“父親”這個(gè)數(shù)據(jù)元素后邊。但在一年四季的數(shù)據(jù)結(jié)構(gòu)中,“春”是“夏”的前
件,在計(jì)算機(jī)存儲空間中,就可以把“春''存儲在"夏''的前面。數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)
算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)。
3、一個(gè)棧的講棧順序是1,2,3,4,則出棧順序?yàn)椋ǎ?/p>
A、4,3,2,1
B、2,4,3,1
C、1,2,3,4
D、3,2,1,4
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析?:棧是一種特殊的線性表,棧的插入和刪除運(yùn)算都只在一端進(jìn)行,即它
的一端是封閉的,不允許進(jìn)行插入與刪除元素。一端是開口的,允許進(jìn)行插入與刪
除元素,棧中的數(shù)據(jù)是先進(jìn)后出的,答案是A。
4、二義樹是節(jié)點(diǎn)的有限集合,它有()根節(jié)點(diǎn)。
A、有0個(gè)或1個(gè)
B、有0個(gè)或多個(gè)
C、有且只有1個(gè)
D、有1個(gè)或1個(gè)以上
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:二叉樹是一種特殊的樹,它要求非空二叉樹只有一個(gè)根節(jié)點(diǎn),所以它
可以是空樹。答案為A。
5、編制一個(gè)好的程序,首先要確保它的正確性和可靠性,還應(yīng)強(qiáng)調(diào)良好的編程風(fēng)
格。在選擇標(biāo)識符的名字時(shí)應(yīng)考慮()。
A、名字長度越短越好,以減少源程序的輸入量
B、多個(gè)變量共用一個(gè)名字,以減少變量名的數(shù)目
C、選擇含義明確的名字,以正確提示所代表的實(shí)體
D、盡量用關(guān)鍵詞作名字,以使名字標(biāo)準(zhǔn)化
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:本題涉及程序的編程風(fēng)格,考生應(yīng)該掌握一些基本的良好編程風(fēng)格。
標(biāo)識符的名字應(yīng)能反映它所代表的實(shí)際東西,應(yīng)有一定實(shí)際意義。名字不是越長越
好,應(yīng)當(dāng)選擇精煉的意義明確的名字。必要時(shí)可使用縮寫名字,但這時(shí)要注意縮寫
規(guī)則要一致,并且要給每一個(gè)名字加注釋。同時(shí),在一個(gè)程序中,一個(gè)變量只應(yīng)用
于一種用途。
6、下面不屬于軟件工程的3個(gè)要素的是()。
A、工具
B、過程
C、方法
D、環(huán)境
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程
項(xiàng)目的技術(shù)手段:工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各
個(gè)環(huán)節(jié)的控制、管理。
7、結(jié)構(gòu)化方法的核心和基礎(chǔ)是()。
A、結(jié)構(gòu)化分析方法
B、結(jié)構(gòu)化設(shè)計(jì)方法
C、結(jié)構(gòu)化編程方法’
D、結(jié)構(gòu)化程序設(shè)計(jì)理論
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:結(jié)構(gòu)化方法是軟件開發(fā)方法之一。它包拈結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)
計(jì)方法、結(jié)構(gòu)化編程方法,而它的核心和基礎(chǔ)是結(jié)構(gòu)化程序設(shè)計(jì)理論。
8、在數(shù)據(jù)庫管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)
庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是()。
A、數(shù)據(jù)庫系統(tǒng)
B、文件系統(tǒng)
C、人工管理
D、數(shù)據(jù)項(xiàng)管理
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:文件系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的初級階段,提供了簡單的數(shù)據(jù)共享與數(shù)據(jù)管
理能力,其功能簡單,附屬于操作系統(tǒng)而不成為獨(dú)立的軟件,只能看作是數(shù)據(jù)庫系
統(tǒng)的雛形。人工管理主要用于科學(xué)計(jì)算,硬件無磁盤,直接存取,軟件沒有操作系
統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)是從這兩個(gè)階段發(fā)展而來的,其數(shù)據(jù)獨(dú)立性必然更高。因此答
案為Ao
9、ER模型可以轉(zhuǎn)換成關(guān)系模型。當(dāng)兩個(gè)實(shí)體間聯(lián)系是M:N聯(lián)系時(shí),它通常可
轉(zhuǎn)換成關(guān)系模式的個(gè)數(shù)是()。
A、2
B、3
C、M+N
D、M*N
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析?:將ER圖轉(zhuǎn)換為關(guān)系模型的轉(zhuǎn)換方法有:一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系
模式:一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式;三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)
系轉(zhuǎn)換為一個(gè)關(guān)系模式。因此,本題答案為B。
10,所謂關(guān)系是指().
A、各條記錄中的數(shù)據(jù)彼此有一定的關(guān)系
B、一個(gè)數(shù)據(jù)庫文件與另一個(gè)數(shù)據(jù)庫文件之間有一定的關(guān)系
C、數(shù)據(jù)模型符合一定條件的二維表格式
D、數(shù)據(jù)庫中各個(gè)字段之間彼此有一定關(guān)系
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:每個(gè)關(guān)系都類似一張表,或者在某種程度上類似一個(gè)“平面”記錄文
件。
二、選擇題(本題共20題,每題1.0分,共20分。)
11、C++語言是以()語言為基礎(chǔ)逐漸發(fā)展演變而成的一種程序設(shè)計(jì)語言。
A、Pascal
B、C
C、B
D、Simula67
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:C++語言是以C語言為基礎(chǔ)而逐漸發(fā)展起來的。
12、設(shè)有a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、
n=2,則邏輯表達(dá)式(m=a>B)&&(n=c>D)運(yùn)算后,n的值為()
A、0
B、1
C、2
D、3
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:在&&運(yùn)算中,如果第1個(gè)表達(dá)式的值為假時(shí),第2個(gè)表達(dá)式將不再
計(jì)算。在表達(dá)式中第1個(gè)表達(dá)式m=a>b的值為0,也就是假,所以第2個(gè)表達(dá)式
將不再計(jì)算。所以n的值沒有變。
13、執(zhí)行完C++程序中的下列3條語句后,c指向()。inta,b,*c=&a;ini
*p=c;p=&b;
A、p
B、c
C、b
D、a
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:語句“inta,b,*c=&a;"執(zhí)行完后,指針c存放變量a的地址。語句
“int*p=c;”執(zhí)行完后,指針p存放變量a的地址。語句“p=&b;"執(zhí)行完后,指針
p存放變量b的地址,但是指針c仍然存放變量a的地址。語句“p=&b;”只是對指
針p進(jìn)行了重新賦值,但并沒有改變指針c的值。考核指針概念時(shí),經(jīng)常出此類
題。
14、不能作為函數(shù)重載的判斷依據(jù)的是()。
A、const
B、返回類型
C、參數(shù)個(gè)數(shù)
D、參數(shù)類型
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:所謂函數(shù)重載,是指同一個(gè)函數(shù)名可以對應(yīng)多個(gè)函數(shù)的實(shí)現(xiàn)。進(jìn)行函
數(shù)重載時(shí).要求同名函數(shù)在參數(shù)個(gè)數(shù)卜不同,或者參數(shù)類型卜不同.即重載函數(shù)不
許具有相同的形參列表。函數(shù)的返回類型不能作為函數(shù)重載的判斷依據(jù)。const是
函數(shù)的一部分參與函數(shù)的重載。
15、下列關(guān)于類與對象的說法中,不正確的是()。
A、對象是類的一個(gè)實(shí)例
B、任何一個(gè)對象只能屬于一個(gè)具體的類
C、一個(gè)類只能有一個(gè)對象
D、類與對象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:C++中,類是用戶自定義的一種數(shù)據(jù)類型,對象是類的實(shí)例,類定義
了屬于該類的所有對象的共同特性。一個(gè)類作為一種數(shù)據(jù)類型,它可以定義多個(gè)對
象。
16、考慮下面的函數(shù)原型:voidf(inta,intb=7,charc='@');下面的函數(shù)調(diào)用
中,不合法的是()。
A、f(5)
B、f(5,8)
C、f(6,'&')
D、f(0,0,回)
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:當(dāng)一個(gè)函數(shù)中有多個(gè)默認(rèn)參數(shù)時(shí),則形參分布中默認(rèn)參數(shù)應(yīng)從右到左
逐漸定義。在函數(shù)調(diào)用時(shí),系統(tǒng)按從左到右的順序?qū)?shí)參與形參結(jié)合,當(dāng)實(shí)參的數(shù)
組不足時(shí),系統(tǒng)將按同樣的順序用說明或定義中的默認(rèn)值來補(bǔ)齊所缺少的參數(shù)。在
選項(xiàng)C中,函數(shù)調(diào)用中只有兩個(gè)實(shí)參,系統(tǒng)按從左到右的順序?qū)?shí)參與形參結(jié)合
時(shí)\實(shí)參,&,將賦值給血型形參b,顯然是非法的。
17、有如下類的定義。那么空格處的語句是()。classMyClass{int
x,y;public:MyClass(intxl=0,intyl=0){x=xl;y=yl;)staticvoidchange()
{x+=10;y+=10;}};
A、static
const
C、private
D、不需要填入內(nèi)容
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:靜態(tài)成員函數(shù)與靜態(tài)數(shù)據(jù)成員相似,也從屬于類,只要類存在,靜態(tài)
成員函數(shù)就可以使用,靜態(tài)成員函數(shù)的定義是在一般函數(shù)的定義前加上關(guān)鍵詞
statico本題程序中把成員函數(shù)change。定義成靜態(tài)成員函數(shù)。由于靜態(tài)成員函數(shù)只
能訪問靜態(tài)數(shù)據(jù)成員、靜態(tài)成員函數(shù)和類以外的函數(shù)和數(shù)據(jù),不能訪問類中的非靜
態(tài)數(shù)據(jù)成員(因?yàn)榉庆o態(tài)數(shù)據(jù)成員只有對象存在時(shí)才有意義)。所以類的數(shù)據(jù)成員x
和y也必須定義成靜態(tài)數(shù)據(jù)成員。
18、下列關(guān)于虛函數(shù)的描述中,正確的是()。
A、如果在重定義函數(shù)時(shí)使用了保留字virtual,則該重定義函數(shù)仍然是虛函數(shù)
B、虛函數(shù)不得聲明為靜態(tài)函數(shù)
C、虛函數(shù)不得聲明為另一個(gè)類的友元函數(shù)
D、派生類必須重新定義基類的虛函數(shù)
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:被關(guān)鍵詞virlual說明的函數(shù)稱為虛函數(shù)。對于虛函數(shù)有以下限制:
①只有類的成員函數(shù)才能說明為虛函數(shù)。這是因?yàn)椋摵瘮?shù)僅適用于有繼承關(guān)系
的類對象,所以普通函數(shù)不能說明為虛函數(shù)。②靜態(tài)成員函數(shù)不能是虛函數(shù),因
為靜態(tài)成員函數(shù)不受限于某個(gè)對象。③內(nèi)聯(lián)函數(shù)不能是虛函數(shù),因?yàn)閮?nèi)聯(lián)函數(shù)是
不能在運(yùn)行中動(dòng)態(tài)確定其位置。即使虛函數(shù)在類的內(nèi)部定義,編譯時(shí)仍將其看作是
非內(nèi)聯(lián)的。④構(gòu)造函數(shù)不能是虛函數(shù),因?yàn)闃?gòu)造時(shí)對象還是一片未定型的空間。
只有在構(gòu)造完成后,對象才能成為一個(gè)類的名副其實(shí)的實(shí)例。、⑤析構(gòu)函數(shù)可以
是虛函數(shù),而且通常說明為虛函數(shù)。說明虛函數(shù)的目的在丁?:使用delete運(yùn)算符刪
除一個(gè)對象時(shí),能確保析構(gòu)函數(shù)被正確地執(zhí)行。這是因?yàn)樵O(shè)汽虛析構(gòu)函數(shù)后,可.以
利用動(dòng)態(tài)聯(lián)編方式選擇析構(gòu)函數(shù)。⑥一般要求基類中說明了虛函數(shù)后,派生類說
明的虛函數(shù)應(yīng)該與基類中虛函數(shù)的參數(shù)個(gè)數(shù)相等,對應(yīng)參數(shù)的類型相同。如果不相
同,則將派生類虛函數(shù)的參數(shù)類型強(qiáng)制轉(zhuǎn)換為基類中虛函數(shù)的參數(shù)類型。
19、下列對模板的聲明中,正確的是()。
A、template<T>
B、template<classT1,T2>
C^template<classT1,classT2>
D、template<classll;class'12>
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:本題考核模板的定義。模板定義的〈類型參數(shù)表》中包含一個(gè)或多個(gè)
由逗號分隔的類型參數(shù)頂,每一項(xiàng)由關(guān)鍵詞class后跟一個(gè)用戶命名的標(biāo)識符,此
標(biāo)識符為類型參數(shù),它不是一種數(shù)據(jù)類型,但可以同一般數(shù)據(jù)類型一樣使用。在使
用類模板時(shí),必須將其實(shí)例化,即用實(shí)際的數(shù)據(jù)類型代替它。
20、若有—?個(gè)MyClass類,則執(zhí)行語句“MyClassobjl,obj2[2],*p;"后,自動(dòng)調(diào)
用該類的構(gòu)造函數(shù)()次c
A、2
B、3
C、4
D、5
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:本題考核溝造函數(shù)的調(diào)用。C++在創(chuàng)建一個(gè)對象時(shí),會自動(dòng)調(diào)用類的
構(gòu)造函數(shù),在構(gòu)造函數(shù)中可以執(zhí)行初始化成員變量的操作。語句“MyClassobjl,
obj2[2],*p;”創(chuàng)建了3個(gè)對象。objl、obj2[0]、obj2[l]和一個(gè)對象指針。在創(chuàng)
建。objl、obj2[0hobj2[l]對象時(shí)系統(tǒng)會調(diào)用類的構(gòu)造函數(shù)。但在創(chuàng)建對象指針p
時(shí),不調(diào)用類的構(gòu)造函數(shù),因?yàn)橹羔榩本身不定義類對象,而是定義了p可以指向
一個(gè)MyClass的對象。
21、以下程序的執(zhí)行結(jié)果為()。#include<iostream.h>Classsample{intn;
public:sample(inti){n=i;)operator++(){n++;(voiddisplayO{cout<<n<<
endI;}};voidmain(){sampleobj(5);obj++;
A、5
B、6
C、7
D、8
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:本題考核運(yùn)算重載的簡單應(yīng)用。程序中通過“++”運(yùn)算符重載將。bj++
轉(zhuǎn)換成對類的私有變量n的增1運(yùn)算。所以程序最后輸出為6。
22、有以下程序:#include<iostream>usingnamespacestd;intmain())inia=5,
b=4,c=3,d=2;if(a>b>c)cout<<d<<endl;elseif((c-1>=D)==1)cout<<
d+1<<end1;elsecout<<d+2<<end1;returnO;
A、2
B、3
C、4
D、編譯時(shí)有錯(cuò)、無結(jié)果
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:表面上看,本題很容易得到答案。其實(shí)不然,出題者在題中隱藏了一
個(gè)陷阱。粗心的讀者可能會想當(dāng)然地認(rèn)為if語句中的條件表達(dá)式:a>b>c成立(因
為a=5,b=4,c=3)o然后執(zhí)行if后面的語句,就得到錯(cuò)誤答案A)°要想正確解
答本題,先來了解關(guān)系運(yùn)算符的一些知識:在C++語言中,true(真)是不為。的任
何值,而false(假)是0。在使用關(guān)系運(yùn)算符和邏輯運(yùn)算符的表達(dá)式時(shí),若結(jié)果為
true(真)則返回1,若結(jié)果為false(假),則返回的是0。根據(jù)以上知識,第一步來判
斷if后面的條件表達(dá)式(a>b>C)是否成立,根據(jù)運(yùn)算符的結(jié)合性,先計(jì)算表達(dá)式
a>b,因?yàn)閍=5,b=4,所以可得到答案(rue,其返回值為1。再計(jì)算表達(dá)式1>
c,由于c=3,所以可得到答案為false(假),其返回值為0。因此if后面的條件表達(dá)
式不成立,繼續(xù)下面的條件判斷。第二步,計(jì)算elseif后面的條件表達(dá)式((c-l>
=D)==1),把c=3,d=2代入此條件表達(dá)式,可得到答案為irue,此條件表達(dá)式成
立,故執(zhí)行elseif后面的語句,輸出結(jié)果為3。
23、有以下程序:#includc<iostrcam>usingnamespacestd;intmain(){intx;for(int
i=l;i<=IOO;i++){x=i;if(++x%2==0)if(++x%3=0)if(++x%7=0)cout<
A、39,81
B、42,84
C、26,68
D、28,70
標(biāo)準(zhǔn)答案;8
知識點(diǎn)解析:程序最后輸出的x值所滿足的條件為:x本身能被7整除,(x-1)能被
3整除,(x-2)能被2整除。在1?100之間滿足條件的x值是28和70。
24、有以卜程序:#include<iostream>usingnamespacestd;ints=0;classsample
{staticintn;public:sample(inti){n=i;)staticvoidadd(){s+=n;));intsample::n=0;
A、2
B、5
C、7
D、3
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:程序中定義對象a(2)時(shí),通過構(gòu)造函數(shù)使靜態(tài)數(shù)據(jù)成員n=2,在定義
對象b(5)時(shí),通過構(gòu)造函數(shù)使靜態(tài)數(shù)據(jù)成員n=5(覆蓋了前面n=2),再執(zhí)行
"sample::add();”使全局變量s=5。注意:本題程序中盡管代碼中靜態(tài)數(shù)據(jù)成員
n的初始化語句“intsample::n=0;”沒有.意義(因?yàn)楦鲗ο笾械膎值由變量i賦
給),但不能省略,否則會出現(xiàn)編譯錯(cuò)誤。
25>有以下程序:#include<iostream.h>voidsort(intL[],intn){intj,k,flag,temp;
flag=n-l;while(flag>0){k=flag-1;flag=O;for(j=O;j<=k;j++){if(L|j|>L|j+l|){
A、123
B、3210
C、2130
D、1230
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:本題中的函數(shù)sori的功能是將輸入的數(shù)組L,按從小到大的順序排
序,并返回。所以程序最后的輸出為0123,即A選項(xiàng)。
26、有如下程序:#include<iostrcam>usingnamespacestd;Classx{protected:int
a;public:x(){a=l;});classx1:virtualpublicx{public:x1(){a+=I;cout<<
A、1
B、123
C、242
D、244
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:本題程序中引入了虛基類。在主函數(shù)中,執(zhí)行語句“yobj;”時(shí),先執(zhí)
行虛基類x的構(gòu)造函數(shù),使a=l,然后執(zhí)行類xl的構(gòu)造函數(shù),使a=2,并輸出值
20再執(zhí)行類x2的構(gòu)造函數(shù),使a=4,并輸出值4。最后執(zhí)行類y的構(gòu)造函數(shù),輸
出值4。
27、有如下程序:#inckide<iostream>usingnamespacestd;classAA{public:virtual
voidf(){cout<<"AA";}};classBB:publicAA{public:BB(){cout<<
"BB";)};cla
A、AA
B、AABBCC
C、BBAABBCC
D、BBBBAACC
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:本題中,函數(shù)f()在基類AA中派生類CC中都聲明為虛函數(shù),所以采
用動(dòng)態(tài)聯(lián)編。主函數(shù)首先定義類AA的對象aa和指針對象p,然后定義了類BB的
對象bb,此時(shí)調(diào)用了類BB的構(gòu)造函數(shù)輸出BB。再定義類CC的對象cc,由于類
CC是類BB的派生類,所以此時(shí)又調(diào)用類BB的構(gòu)造函數(shù)輸出BBo最后執(zhí)行涪句
“p=&cc;p->f();",輸出AA和CC。
28、有以下程序:#include<iostrcam>#includc<string>usingnamespacestd;
classbase(private:charbascNamc[10];public:base(){strepy(baseNamc,"Base");)
virtualchar*myName(){
A、DerivedBase
BaseBase
C、DerivedDcrived
D、BaseDerived
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:本題考核虛函數(shù)的應(yīng)用。類Derived是從基類Base公有派生而來
的。因此,Derived是基類Base的子類型。主函數(shù)中定義了一個(gè)基類對象bb和一
個(gè)派生類對象dd。從程序中可看出,派生類Derived的對象dd交給了處理基類
Base的對象的函數(shù)showPtr進(jìn)行處理。由于在基類中函數(shù)myName被定義成虛函
數(shù),所以在函數(shù)showPl「中調(diào)用的myName函數(shù)為派生類的成員函數(shù)mySame,從
而輸出Derived。然后輸出className,即基類名稱Base。
29、下面是類MyClass的定義,對定義中各語句描述正確的是()。classMyClass
{private:intx,y,z;public:voidMyClass(intA){x=a;)〃①intf(inta,intB)//@
{x=a;y=b;}intf(inta,
A、語句①是類MyClass的構(gòu)造函數(shù)的定義
B、語句②和③實(shí)現(xiàn)類成員函數(shù)的重載
C、語句④實(shí)現(xiàn)對類成員變量x的更新操作
D、語句①、②、③和④都不正確
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析?:在C++中構(gòu)造函數(shù)沒有返回類型,所以語句①是錯(cuò)誤的。語句②和
語句③在進(jìn)行f(x,y)調(diào)用時(shí)會產(chǎn)生二義性。靜態(tài)成員函數(shù)不能直接訪問類中說明的
非靜態(tài)成員。所以語句④也是錯(cuò)誤的。
30、有以下程序:#include<iostream>#include<fstream>usingnamespacestd;int
main(){ofstreamofile;charch;ofile.open("abc.txt");cin>>ch;while(ch!='#'){cin
>>ch;ofile.put(ch);
A、程序編譯時(shí)出錯(cuò)
B、abc#
C>abc
D、#
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:本題程序的功能是將從鍵盤終端輸入的內(nèi)容存儲到指定的文件中。
三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5
分。)
31、【】是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。
標(biāo)準(zhǔn)答案:數(shù)據(jù)的邏輯結(jié)構(gòu)
知識點(diǎn)解析:本題考查數(shù)據(jù)的邏輯結(jié)構(gòu)的概念,數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素
之間邏輯關(guān)系的數(shù)據(jù)結(jié)閡。邏輯關(guān)系是指數(shù)據(jù)元素之間的前后間關(guān)系。
32、在一個(gè)有n個(gè)元素的順序表的第i個(gè)元素(iSign);之前插入一個(gè)新元素時(shí),需
要向后移動(dòng)【1個(gè)元素。
標(biāo)準(zhǔn)答案:n-i+1
知識點(diǎn)解析:在一般情況下,要在第i個(gè)元素之前插入一個(gè)新元素時(shí),首先是從最
后一個(gè)元素開始,直到第i個(gè)元素之間共n-i+1個(gè)元素依次向后移動(dòng)一個(gè)位置。
33、結(jié)構(gòu)化程序設(shè)計(jì)所規(guī)定的三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和【】。
標(biāo)準(zhǔn)答案:循環(huán)結(jié)構(gòu)
知識點(diǎn)解析:任何一個(gè)大型的程序都由三種基本結(jié)構(gòu)所組成,由這些基本結(jié)構(gòu)順序
地構(gòu)成了一個(gè)結(jié)構(gòu)化的程序。事實(shí)上,程序設(shè)計(jì)語言僅僅使用順序、選擇和循環(huán)三
種基本結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。
34、將整個(gè)軟件劃分成若干單獨(dú)命名和可編程的部分,稱之為【】。
標(biāo)準(zhǔn)答案:模塊
知識點(diǎn)解析:模塊是軟件設(shè)計(jì)的一個(gè)重要概念。在解決復(fù)雜問題時(shí),把整個(gè)問題分
解成一個(gè)一個(gè)的模塊來降低復(fù)雜性。如高級語言中的過程、函數(shù)、子程序等。每個(gè)
模塊可以完成一個(gè)特定的功能。
35、在數(shù)據(jù)庫邏輯結(jié)構(gòu)的設(shè)計(jì)中,將ER模型轉(zhuǎn)換為關(guān)系模型應(yīng)遵循相關(guān)原則,對
于三個(gè)不同實(shí)體集和它們之間的多對多聯(lián)系m:n:p,最少可轉(zhuǎn)換為【】個(gè)關(guān)系模
式。
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:將ER圖轉(zhuǎn)換為關(guān)系模型的轉(zhuǎn)換方法有:一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系
模式;一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式;三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)
系轉(zhuǎn)換為一個(gè)關(guān)系模式。因此,本題答案為4。
四、填空題(本題共70題,每題1.0分,共10分。)
36、若要想進(jìn)行標(biāo)準(zhǔn)輸入輸出則頭文件必須包含件。
標(biāo)準(zhǔn)答案:iostream.h
知識點(diǎn)解析:暫無解析
37、在長度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為
標(biāo)準(zhǔn)答案:log2n
知識點(diǎn)解析:暫無解析
38、假定一個(gè)一維數(shù)組的定義為“chara[8],b;”若把該數(shù)組最后一個(gè)元素賦值給
b,應(yīng)該采取的表達(dá)式為:。
標(biāo)準(zhǔn)答案:b=a⑺
知識點(diǎn)解析:暫無解析
39、成員函數(shù)中不能直接引用類中說明的非靜態(tài)成員。
標(biāo)準(zhǔn)答案:靜態(tài)
知識點(diǎn)解析:暫無解析
40、數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和3種。
標(biāo)準(zhǔn)答案:關(guān)系模型
知識點(diǎn)解析:暫無解析
41、實(shí)現(xiàn)比較兩個(gè)字符串大小的函數(shù)是o
標(biāo)準(zhǔn)答案:strcmp
知識點(diǎn)解析:暫無解析
42、空字符串的長度是o
標(biāo)準(zhǔn)答案:0
知識點(diǎn)解析:暫無解析
43、耦會和內(nèi)聚是評價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中反映了模塊內(nèi)各成
分之間的聯(lián)系。
標(biāo)準(zhǔn)答案:內(nèi)聚
知識點(diǎn)解析:暫無解析
44、己知doublevar;是文件F1.CPP中的一個(gè)全局變量定義,若文件F2.CPP中
的某個(gè)函數(shù)也需要訪問,則在文件F2.CPP中var應(yīng)說明為。
標(biāo)準(zhǔn)答案:外部變量
知識點(diǎn)解析:暫無解析
45、程序文件的編譯錯(cuò)誤分為和兩類。
標(biāo)準(zhǔn)答案:語法錯(cuò)誤連接錯(cuò)誤
知識點(diǎn)解析:暫無解析
國家二級(C++)筆試模擬試卷第3套
一、公共基礎(chǔ)選擇題(本題共io題,每題1.0分,共
70分。)
1、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A、自頂向下
B、逐步求精
C、模塊化
D、可復(fù)用
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:暫無解析
2、在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A、31
B、32
C、16
D、15
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:暫無解析
3、結(jié)構(gòu)化程序設(shè)計(jì)方法的三種基本控制結(jié)構(gòu)中不包拈(.)。
A、循環(huán)結(jié)構(gòu)
B、遞歸結(jié)構(gòu)
C、順序結(jié)構(gòu)
D、選擇結(jié)構(gòu)
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
4、下列不屬于軟件調(diào)試技術(shù)的是()
A、強(qiáng)行排錯(cuò)法
B、集成測試法
C、回溯法
D、原因排除法
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
5、以卜不屬十?dāng)?shù)據(jù)庫系統(tǒng)模型的是()。
A、選擇型數(shù)據(jù)庫系統(tǒng)
B、關(guān)系型數(shù)據(jù)庫系統(tǒng)
C、層次型數(shù)據(jù)庫系統(tǒng)
D、網(wǎng)狀型數(shù)據(jù)庫系統(tǒng)
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:暫無解析
6、數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的最主要區(qū)別是()。
A、數(shù)據(jù)庫系統(tǒng)復(fù)雜,而文件系統(tǒng)簡單
B、文件系統(tǒng)不能解決數(shù)據(jù)冗余和數(shù)據(jù)獨(dú)立性問題,而數(shù)據(jù)庫系統(tǒng)可以解決
C、文件系統(tǒng)只能管理程序文件,而數(shù)據(jù)庫系統(tǒng)能夠管理各種類型的文件
D、文件系統(tǒng)管理的數(shù)據(jù)量較少,而數(shù)據(jù)庫系統(tǒng)可以管理龐大的數(shù)據(jù)量
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
7、按照“后進(jìn)先出”原見組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A、隊(duì)列
B、棧
C、雙向鏈表
D、二叉樹
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
8、軟件需求分析階段的工作,可以分為四個(gè)方面:需求獲取,需求分析,編寫需
求規(guī)格說明書,以及(),
A、階段性報(bào)告
B、需求評審
C、總結(jié)
D、都不正確
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
9、已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是
()o
A、堆排序
B、直接插入排序
C、快速排序
D、直接選擇排序
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
10、樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()。
A、有且只有1
B、1或多于1
C、。或I
D、至少2
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:暫無解析
二、選擇題(本題共25題,每題1.0分,共25分。)
11、實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性要使用
A、重載函數(shù)
B、析構(gòu)函數(shù)
C、構(gòu)造函數(shù)
D、虛函數(shù)
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:暫無解析
12、下列關(guān)于類和對象的敘述中,錯(cuò)誤的是()。
A、一個(gè)類只能有一個(gè)對象
B、對象是類的具體實(shí)例
C、類是對某一類對象的抽象.
D、類和對象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:暫無解析
13、若有以下定義:inta[]={l,2,3,4,5,6,7);charcl='b',c2='2';則數(shù)值
不為2的表達(dá)式是()。
A、a|l]
B、B'?cl
C、a[3-c2]
D、c2-0
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:暫無解析
14、在C++語言中,main函數(shù)默認(rèn)返回一個(gè)()類型的值。
A、int
B、float
C、char
D、void
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:暫無解析
15、設(shè)有語句:charstr1[]=,,string,,,str2[8],*str3,*str4=,,string";,則下列對庫函數(shù)
strcpy調(diào)用不正確的是()。
A、strcpyCstrl/'Hellol");
strcpy(str2,"Hello2");
C、strcpy(str3,"Hcllo3");
D、strcpy(str4,MHenllo4");
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:暫無解析
16、不能作為函數(shù)重載的判斷依據(jù)的是()。
A^const
B、返回類犁
C、參數(shù)個(gè)數(shù)
D、參數(shù)類型
標(biāo)準(zhǔn)牝索.?
知識之解析:哲無解析
17、卜,面程序的輸出結(jié)果是()。#include<iostream>usingnamespacestd;int
main(){intn=10;while(n>7){n—;cout<<11<<\';]cout<<endl;}
A、10,9,8,
B、9,8,7,
C、10,9,8,7,
D、9,8,76
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
18、已知枚舉類型定義語句為:enum
Token{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};則下列敘述中錯(cuò)誤的是
()o
A、枚舉常量NAME的值為1
B、枚舉常量NUMBER的值為1
C、枚舉常量MINUS的值為6
D、枚舉常量PRINT的值為10
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:暫無解析
19、已知:intn=10;那么下列語句中錯(cuò)誤的是()。
A、int*p=newlong|n];
B、intp[n];
C>int*p=newlong(n);
D、intp[10|;
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
20、用鏈表表示線性表的優(yōu)點(diǎn)是()。
A、便于隨機(jī)存取
B、花費(fèi)的存儲空間較順序存儲少
C、便于插入和刪除操作
D、數(shù)據(jù)元素的物理順序與邏輯順序相同
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:暫無解析
21、下列關(guān)于指針的運(yùn)算中,()是非法的。
A、兩個(gè)指針在一定條件下,可以進(jìn)行相等或不等的比較運(yùn)算
B、可以將一個(gè)空指針賦值給某個(gè)指針
C、一個(gè)指針可以加上兩個(gè)整數(shù)之差
D、兩個(gè)指針在一定條件下可以相加
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:暫無解析
22、假定MyClass為一類,執(zhí)行MyClassa[3],*p[2];語句時(shí)會自動(dòng)調(diào)用該類構(gòu)造
函數(shù)()次。
A、2
B、3
C、4
D、5
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
23、以卜程序的輸出結(jié)果是()。#include<ioslream.h>main(){intm=5;if(m++>
5)cout<<m:elsecout<<m—;}
A、7
B、6
C、5
D、4
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
24、有如下程序:#inchde<iostream.h>voidfun(int&x,inty){intt=x;x=y;
y=t;}intmain(){inta[2]={23,42);fun(a[l]?a|0]);std::cout<<a[0]<<n,'*<
<a[l]<<Std::endl;return0;)執(zhí)行后的輸出結(jié)臭是()。
A、42,42
B、23,23
C、23,42
D、42,23
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
25、下列類的定義中,有()處語法錯(cuò)誤。classBase{public:Base()(}Basc(inti)
{data=i;)ptivate:inidata;);classDeriVe:publicBase{public:
Derive():Base(0){)Derive(intx){d=x:}voidsetvalue(inti){data=i;}private:
d;);
A、1
B、2
C、3
D、4
標(biāo)準(zhǔn)答案:2
知識點(diǎn)解析:暫無解析
26、假定MyQass為一個(gè)類,則該類的拷貝初始化構(gòu)造函數(shù)的聲明語句為()。
A、MyClass&(MyClassx);
B、MyClass(MyClassx)
C、MyClass(MyClass&x);
D、MyClass(MyClass*x)
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:暫無解析
27、下面敘述錯(cuò)誤的是()。
A、派生類可以使用private派生
B、對基類成員的訪問必須是無二義性的
C、基類成員的訪問能力在派生類中維持不變
D、賦值兼容規(guī)則也適用于多繼承的組合
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:暫無解析
28、()提供了類對外部的接口,私有成員是類的內(nèi)部實(shí)現(xiàn),而保護(hù)成員不允許外界
訪問,但允許派生類的成員訪問,這樣既有一定的隱藏能力,又提供了開放的接
口。
A、公有成員
B、私有成員
C、私有成員函數(shù)
D、保護(hù)成員
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:暫無解析
29、當(dāng)需要將一個(gè)函數(shù)boolisnumber(charc)聲明為內(nèi)聯(lián)函數(shù)時(shí),則此內(nèi)聯(lián)函數(shù)的
函數(shù)原型為()。
A、cnumboolisnumbcr(charc);
B、defineboolisnumberfcharc);
C^inlineboolisnumber(charc);
D、externboolisnumbcrfcharc);
標(biāo)準(zhǔn)答案:4
知識點(diǎn)解析:暫無解析
30、有如下程序:#includc<iostrcam>usingnamespacestd;classTest{public;
Test(){n+=2;}~Tesl(){n-=3;)staticintgetNum(){returnn;)private:staticint
n:|;intTest::n=l;intmain()(Test*p=newTest:deletep;cout<<nn="<<
Test::getNum()<<endl;retumO;}執(zhí)行后的輸出結(jié)果是()。
A、n=0
B、n=l
C、n=2
D、n=3
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:暫無解析
31、若有以下程序:#include<iostream>usingnamespacestd;classBase
{public:Base(){x=0;)intx;};classDerivedkvirtualpublicBase{public:
Derivedl(){X=10;});ClassDerived2:VirtualpublicBase{public:Dedved2()
{x=20;)};classDcnvcd:publicDclivcdl,protectedDcnvcd2{};intmain()
{Derivedobj;cout<<obj.X<<endl;return0;}該程序運(yùn)行后的輸出結(jié)果是
()。
A、20
B、30
C、10
D、0
標(biāo)準(zhǔn)答案:1
知識點(diǎn)解析:暫無解析
32、假定MyClass為一個(gè)類,那么下列的函數(shù)說明中,()為該類的析構(gòu)函數(shù)。
A、void~MyClass();
B、-MyClass(intn);
C>MyClass();
D、~MyClass();
標(biāo)準(zhǔn)答案:8
知識點(diǎn)解析:暫無解析
33、執(zhí)行語句序列ofsireamoulfile("data.dat");if(...)cout<<Ho
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑河學(xué)院《影像與數(shù)字藝術(shù)史論》2023-2024學(xué)年第二學(xué)期期末試卷
- 福州黎明職業(yè)技術(shù)學(xué)院《數(shù)字特效技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 運(yùn)城師范高等專科學(xué)校《大學(xué)體育(Ⅳ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 今年壯族活動(dòng)方案
- 今晚促銷活動(dòng)方案
- 2024年度河北省二級造價(jià)工程師之建設(shè)工程造價(jià)管理基礎(chǔ)知識全真模擬考試試卷B卷含答案
- 2024年度河北省二級造價(jià)工程師之安裝工程建設(shè)工程計(jì)量與計(jì)價(jià)實(shí)務(wù)測試卷(含答案)
- 2025年醫(yī)療行業(yè)市場潛力與增長動(dòng)力分析報(bào)告
- 康復(fù)醫(yī)療器械市場細(xì)分報(bào)告:2025年智能康復(fù)設(shè)備投資分析
- 環(huán)保與可持續(xù)發(fā)展閱讀題
- 吉林省主要地區(qū)風(fēng)玫瑰圖
- 生物信息學(xué)知到章節(jié)答案智慧樹2023年華東理工大學(xué)
- 松花江水污染事件工程倫理案例分析
- 窗戶合同范本
- 云南省地圖含市縣地圖矢量分層地圖行政區(qū)劃市縣概況ppt模板
- JJF 1076-2020數(shù)字式溫濕度計(jì)校準(zhǔn)規(guī)范
- GB/T 18838.4-2008涂覆涂料前鋼材表面處理噴射清理用金屬磨料的技術(shù)要求第4部分:低碳鑄鋼丸
- 小學(xué)一年級《讀讀童謠和兒歌》閱讀考級測試題附答案
- 廣州市人力資源和社會保障局事業(yè)單位招聘工作人員【共500題含答案解析】模擬檢測試卷
- 心電監(jiān)護(hù)操作評分標(biāo)準(zhǔn)
- 電子印鑒卡講解
評論
0/150
提交評論