版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級C++機(jī)試(選擇題)模擬試卷
第1套
一、選擇題(本題共22題,每題1.0分,共22分。)
1、一個(gè)棧的初始狀態(tài)為空。現(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入
棧,然后再依次出棧,則元素出棧的順序是()。
A、12345ABCDE
B、EDCBA54321
C、ABCDE12345
D、54321EDCBA
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。所以出棧順序
是EDCBA5432R
2、下列敘述中正確的是()。
A、棧是一種先進(jìn)先出的線性表
B、隊(duì)列是一種后進(jìn)先出的線性表
C、棧與隊(duì)列都是非線性結(jié)構(gòu)
D、以上三種說法都不對
標(biāo)準(zhǔn)答案:
知識之解析D:棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。二者均為線性結(jié)
構(gòu)。
3、下列敘述中正確的是()。
A、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的
B、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)
C、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)
D、上述三種說法都不對
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:線性表的存儲分為順序存儲和鏈?zhǔn)酱鎯?。在順序存儲中,所有元素?/p>
占的存儲空間是連續(xù)的,各數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。所以
每個(gè)元素只存儲其值就可以了,而在鏈?zhǔn)酱鎯Φ姆绞街?,將存儲空間的每一個(gè)存儲
結(jié)點(diǎn)分為兩部分,一部分用于存儲數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲
下一個(gè)元素的存儲序號,稱為指針域。所以線性表的鏈?zhǔn)酱鎯Ψ绞奖软樞虼鎯Ψ绞?/p>
的存儲空間要大一些。
4、執(zhí)行下列語句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>l;-i)
eoutw'*':
A、48
B、49
C、50
D、51
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:本題考查for循環(huán)語句,一一i表示用之前先減1,那么這個(gè)for循環(huán)
語句只有50到2時(shí)才會輸出“木”,所以總共輸出49次。
5、關(guān)于靜態(tài)成員的描述中,錯(cuò)誤的是()。
A、靜態(tài)成員可分為靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)
B、靜態(tài)數(shù)據(jù)成員定義后必須在類體內(nèi)進(jìn)行初始化
C、靜態(tài)數(shù)據(jù)成員初始化不使用其構(gòu)造函數(shù)
D、靜態(tài)數(shù)據(jù)成員函數(shù)中不能直接引用非靜態(tài)成員
標(biāo)準(zhǔn)答案:C
知識點(diǎn)詞析:可以在類的構(gòu)造函數(shù)中對靜態(tài)數(shù)據(jù)成員進(jìn)行初始化。
6、C++中的模板包括Ov
A、對象模板和函數(shù)模板
B、對象模板和類模板
C、函數(shù)模板和類模板
D、變量模板和對象模板
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:本題考查函數(shù)模板和類模板,所以答案為c。
7、“商品”與“顧客,兩個(gè)實(shí)體集之間的聯(lián)系一般是()。
A、一對一
B、一對多
C、多對一
D、多對多
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:實(shí)體集間的聯(lián)系的個(gè)數(shù)可以是單個(gè)也可以是多個(gè)。兩個(gè)實(shí)體集之間的
聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種關(guān)系有三種:一對一的聯(lián)系,簡記為1:
1:一對多或多對一聯(lián)系,簡記為1:m或m:1:多對多聯(lián)系,簡記為m:n。本
題中“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系是多對多聯(lián)系。因?yàn)橐环N“商品''可以被
多個(gè)“顧客”購買,而一個(gè)“顧客”也可以購買多個(gè)“商品
8、在關(guān)系中凡能惟一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有
若干個(gè)鍵,它們稱為該表的()。
A、連接碼
B、關(guān)系碼
C、外碼
D、候選碼
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:在關(guān)系中凡能惟一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。二維表
中可能有若干個(gè)鍵,它們稱為該表的候選碼或候選健。從二維表的所有候選鍵中選
取一個(gè)作為用戶使用的健稱為主鍵或主碼。
9、有如下頭文件:imfl();staticintf2();classMA{public:intf3;();staticini
f4(););在所描述的函數(shù)中,具有隱含的this指針的是()。
A、fl
B、f2
C、f3
D、f4
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:只有類的非靜態(tài)成員函數(shù)才隱含this指針,其作用域是類內(nèi)部,當(dāng)類
的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員時(shí),編譯器會自動(dòng)將對象本身的地址作為
一個(gè)隱含參數(shù)傳遞給函數(shù),而不必一定寫上ihis。所以本題答案為C。
10,Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是().
A、cpp
B、exe
C、obj
D、lik
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:在VC6.0集成開發(fā)環(huán)境下,用戶可以使用編譯(compile)命令將一
個(gè).cpp為擴(kuò)展名的C++源程序文件轉(zhuǎn)換成一個(gè)以.obj為擴(kuò)展名的目標(biāo)文件。
11、數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決
A、數(shù)據(jù)共享問題
B、數(shù)據(jù)安全問題
C、大量數(shù)據(jù)存儲問題
D、簡化數(shù)據(jù)維護(hù)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:數(shù)據(jù)庫應(yīng)用系統(tǒng)中的一個(gè)核心問題就是設(shè)計(jì)一個(gè)能滿足用戶要求、性
能良好的數(shù)據(jù)庫,這就是數(shù)據(jù)庫設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)是在一定平臺制約下,根據(jù)信息
需求與處理需求設(shè)計(jì)出性能良好的數(shù)據(jù)模式。數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決數(shù)據(jù)
共享的問題。
12、下列程序的輸出結(jié)果是()。#include<iostream.h>voidff(intx),ff(double
x);voidmain(){floata(88.18);ff(a);charb('a');ff(b);)voidff(intx){cout<
V''fRint):,,<<x<<endl;}voidff(doublex){cout<<,,ff((double):“VVxV
<endl;}
A、ff(doub|e):88.18ff(int):97
B、if(double)97ff(int)::88.18
C、ff(int):97ff(int)::8.18
D、ff(int):97ff(int)::88.18
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:本題主要考查函數(shù)調(diào)用時(shí)從實(shí)參到形參的類型一致性。相同類型或小
類型的實(shí)參可以傳給大類型的形參,但是不允許大類型的實(shí)參傳給小類型的形參。
13、下列關(guān)于C++預(yù)定義流對象的敘述中,正確的是()。
A、cin是C十十預(yù)定義的標(biāo)準(zhǔn)輸入流對■象
B、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類
C^cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對象
D、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:cin為istream流類的標(biāo)準(zhǔn)輸入對象,標(biāo)準(zhǔn)輸入設(shè)備就是指鍵盤。
14、在C++中既可以用于文件輸入又可以用于文件輸出的流類是()。
A、fstream
B、ifstream
C、ofstream
D、iostream
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:文件流以磁盤文件以及其他可按文件方式進(jìn)行管理的外部設(shè)備為輸入
輸出對象。ifstream是文件輸入流類,ofstream是文件輸出流類,fsiream是文件輸
入輸出流類,當(dāng)使用cin、cout的預(yù)定義流對象進(jìn)行針對標(biāo)準(zhǔn)設(shè)備的I/O操作,則
需要使用iostream文件c
15、有如下程序:#inc1ude<iostream>usingnamespacestd;classMedia{public:
voidNamc();voidShow。;protected:intpage;};classBook:privateMedia]public:
voidPrint(){cout<<page<<end1;)voidShowO(Media::ShowO;)//(T)};int
rruun(){BookBible;Bible.Name。;,//@Bible.Print。;〃③Bible.Show。;〃④
return();}編譯口寸有錯(cuò)誤的是()。
句
A語①
、
句
B語②
、
語
c句③
、
語
D句④
、
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:類Book私有繼承自類Media,所以類Media中的公有成員函數(shù)
Name。在繼承類Book中變成了私有成員函數(shù),因而類Book的對象Bible不能訪問
私有成員函數(shù)Name()o
16、有如下程序:#include<iostream>usingnamespacestd;classA)public:
A(inti){x=i;)voiddispa,(){cout<<x<<\';)private:intx:}:classB:
publicA{public:B(inti):A(i+10){x=i;)voiddispb(){dispa();cout<<x<<
endl;)privateintx:(:intmain(){Bb(2);b.dispb();return0;}運(yùn)行時(shí)輸出
的結(jié)果是()。
A、10,2
B、12,10
C、12,2
D、2,2
標(biāo)準(zhǔn)答案:c
知識點(diǎn)露析:此題考查的是派生類的構(gòu)造。主函數(shù)中,首先聲明B類的對象b,執(zhí)
行進(jìn)入B的構(gòu)造函數(shù)B(inti)再接著執(zhí)行A的構(gòu)造函數(shù)A(inti),形參i為12,x被
賦值12;通過對象b調(diào)用其成員函數(shù)dispb(),輸出結(jié)果12:接著執(zhí)行函數(shù)dispb()
的第2條語句輸出2,然后主函數(shù)結(jié)束。
17、在語句cin>>data;中,cin是()。
A、C++的關(guān)鍵字
B、類名
C、對象名
D、函數(shù)名
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:此題考查的是預(yù)定義流對象。C++有4個(gè)預(yù)定義的流對象:cin—標(biāo)準(zhǔn)
輸入;cout—標(biāo)準(zhǔn)輸出;cerr—標(biāo)準(zhǔn)出錯(cuò)信息輸出:clog一帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸
出。
18、下列模板聲明中,有語法錯(cuò)誤的是()。
A、template<typenameT>Tfun(Tx){returnx;}
R、template<typcnameT>Tfun(Tx.intn){returnx*n:}
C、template<classT>Tfun(T*p){return*p;)
D、template<classT>TclassA{Tn;};
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:第四個(gè)選預(yù)是定義類模板的,但是class前面的T是多余的。對于第
二個(gè)選項(xiàng),同一個(gè)類的對象相乘還是同一個(gè)類的對象,但是可能要考慮溢出的問
題。
19、下列關(guān)于C++流的描述中,錯(cuò)誤的是()。
A、cout>>W表達(dá)式可輸出字符A
B、cof()函數(shù)可以檢測是否到達(dá)文件尾
C、對磁盤文件進(jìn)行流操作時(shí),必須包含頭文件fstream
D、以ios_ba$e::out模式打開的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:Coin是一個(gè)標(biāo)準(zhǔn)輸出流對象。>>稱之為提取運(yùn)算符,它的功能是
從輸入流中提取數(shù)據(jù)賦值給一個(gè)變量。VV為插入運(yùn)算符,其功能是把表達(dá)式的值
插入到輸出流中。當(dāng)系統(tǒng)執(zhí)行coutVVx操作時(shí),首先根據(jù)x值的類型調(diào)用相應(yīng)的
插入運(yùn)算符重載器函數(shù),把x的值傳送給對應(yīng)的形參,接著執(zhí)行函數(shù)體,把x的值
輸出到顯示器屏幕上,在當(dāng)前屏幕光標(biāo)位置處顯示出來,然后返回ostream流,以
便繼續(xù)使用插入運(yùn)算符輸出下一個(gè)表達(dá)式的值。對于本題來說,要輸出字符,A,的
值應(yīng)該寫成coulV'A,,因而選項(xiàng)A)是錯(cuò)誤的。
20、有如下程序:#include<iostream>usingnamespacestd;classBase{public:
virtualvoidfunction1(){tout<<,0,;)voidtunction2(){cout<<7T;));class
Derived:publicBase{public:voidfunctionl(){lout<<,2,;)voidfunction2(){cout
<<,3,;}};intmain(){Base*p=newDerived();p->function1();p->
function2();return0;);運(yùn)行時(shí)的輸出結(jié)果是()0
A、01
B、21
C、03
D、23
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:函數(shù)funciionl。在基類Base中定義為虛成員函數(shù),而在派生類
Dervied中重新進(jìn)行了定義,輸出字符2,函數(shù)function2()在基類Base中定義虛成
員函數(shù),在主函數(shù)中使用指向基類的指針變量p訪問function^)時(shí),輸出1。
21、在下列枚舉符號中,用來表示“相對于當(dāng)前位置”文件定位方式的是()。
A、ios_base::cur
B、ios_base::beg
C、ios_base::out
D、ios_base::end.
標(biāo)準(zhǔn)答至:A
知識點(diǎn)解析:C++流的定位方式(也就是指針移動(dòng)方式)有三種,被定義為
ios_base::seek_dir中的一組枚舉符號:ios_base::beg相當(dāng)于文件首;
ios_base::curo相當(dāng)于當(dāng)前位置(負(fù)數(shù)表示當(dāng)前位置之前):ios_base::end相對
于文件尾。
22、下列關(guān)于賦值運(yùn)算符“=”重載的敘述中,正確的是()。
A、賦值運(yùn)算符只能作為類的成員函數(shù)重載
B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制上功能
C、重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對象作為形參
D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:賦值運(yùn)算符只能作為成員函數(shù)重載。
家二級C++機(jī)試(選擇題)模擬試卷
第2套
一、選擇題(本題共25題,每題1.0分,共25分。)
1、執(zhí)行語句序列intx=l,&y=x;cout<<x<<,-,<<y<<endl;輸出結(jié)果為
()。
A^x-x
B、1-1
C、1-0
D、異常
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:程序中的“intx=l”定義x為int型變量,并賦值為1。語句“&y=x”中
為引用運(yùn)算符,&y=x語句可以理解為y具有x的地址,所以y的值也是1,
即輸出為:1-1。
2、下列關(guān)于棧的描述中正確的是()。
A、在棧中只能插入元素而不能刪除元素
B、在棧中只能刪除元素而不能插入元素
C、棧是特殊的線性表,只能在一端插入或刪除元素
D、棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表,在棧中,允許插入與刪除
的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。
3、下列敘述中正確的是()。
A、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)所需要的存儲空間是相同的
B、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)
C、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)
D、上述三種說法都不對
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:線性表的存儲分為順序存儲和鏈?zhǔn)酱鎯?。在順序存儲中,所有元素?/p>
占的存儲空間是連續(xù)的,各數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。所以
每個(gè)元素只存儲其值就可以了,而在鏈?zhǔn)酱鎯Φ姆绞街?,將存儲空間的每一個(gè)存儲
結(jié)點(diǎn)分為兩部分,一部分用于存儲數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲
下一個(gè)元素的存儲序號,稱為指針域。所以線性表的鏈?zhǔn)酱鎯Ψ绞奖软樞虼鎯Ψ绞?/p>
的存儲空間要大一些。
4、一個(gè)棧的初始狀態(tài)為空。現(xiàn)將元素I、2、3、4、5、A、B、C、D、E依次人
棧,然后再依次出棧,則元素出棧的順序是()。
A、12345ABCDE
B、EDCBA54321
C、ABCDE12345
D、54321EDCBA
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:棧是先進(jìn)后出的原則組織數(shù)據(jù),所以入棧最早的最后出棧,所以選擇
5、某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二叉樹的深度為(假設(shè)根
結(jié)點(diǎn)在第1層)()。
A、3
B、4
C、6
D、7
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:根據(jù)二義樹的性質(zhì),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)
多一個(gè)。題目中的二叉樹的口I子結(jié)點(diǎn)為1,囚此度為2的結(jié)點(diǎn)的數(shù)目為O,故亥二
叉樹為7層,每層只有一個(gè)結(jié)點(diǎn)。
6、對下列二叉樹進(jìn)行前序遍歷的結(jié)果是()。
A、DYBEAFCZX
B、YDEBFZXCA
C、ABDYECFXZ
D、ABCDEFXYZ
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:二叉樹前序遍歷的簡單描述:若二叉樹為空,則結(jié)束返回;否則:
①訪問根結(jié)點(diǎn);②前序遍歷左子樹;③前序遍歷右子樹??梢姡靶虮闅v二叉樹
的過程是一個(gè)遞歸的過程。根據(jù)題R中給出的二叉樹的結(jié)構(gòu)可知前序遍歷的結(jié)果是
ABDYECFXZo
7、設(shè)一叉樹的前序序列為ABDEGHCFIJ,中序序列為DBGEHACIFJ。則按層次
輸出(從上到下,同一層從左到右)的序列為
A、ABCDEFGH1J
B、DGHEBIJFCA
C、JIHGFEDCBA
D、GHIJDEFBCA
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:前序遍歷中,第一個(gè)字母是根結(jié)點(diǎn),也就是A是根結(jié)點(diǎn);在中序遍
歷中,根結(jié)點(diǎn)前面的是左子樹、后面的是右子樹。前序中,B在A的后面,中序
中在左予樹中,可知B為A的左結(jié)點(diǎn)。中序中D在B的前面,前序中在B的后
面,可知D為B的左結(jié)點(diǎn),GEH為B的右子樹。前序中順序?yàn)镋GH,由此可知,
E為B的右結(jié)點(diǎn),G為E的左結(jié)點(diǎn)、H為E的右結(jié)點(diǎn)。右子樹中,前序中C在最
前,因?yàn)橛易訕涓Y(jié)點(diǎn),也就是A的右結(jié)點(diǎn),根據(jù)前序中的子樹FU和中序中的
WJ子樹可知F為C的右結(jié)點(diǎn),I為F的左結(jié)點(diǎn)、J為F的右結(jié)點(diǎn)。由此可畫出這個(gè)
二叉樹,然后根據(jù)二叉樹,可知按層次輸出(從上到下,同一層從左到右)的序列
為:ABCDEFGHIJo
8、在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。
A、PDL(過程設(shè)計(jì)語言)
B、PAD圖
C、N-S圖
D、DFD圖
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:DFD(數(shù)據(jù)流圖Data-Flow-Diagram)是描述數(shù)據(jù)處理過程的工具,是
需求理解的邏輯模型的圖形表示。它直接支持系統(tǒng)功能建模。在軟件詳細(xì)設(shè)計(jì)的過
程階段,要對每個(gè)模塊規(guī)定的功能以及算法的設(shè)計(jì)給出適當(dāng)?shù)乃惴枋?。常見的過
程設(shè)計(jì)工具有:?圖形工具:程序流程圖,N-S,PAD,HIPOo?表格工具:判
定表。?語言工具:PDL(偽碼)。
9、下列有關(guān)函數(shù)重載的敘述中,錯(cuò)誤的是()。
A、函數(shù)重載就是用相同的函數(shù)名定義多個(gè)函數(shù)
B、重載函數(shù)的參數(shù)列表必須不同
C、重載函數(shù)的返回值類型必須不同
D、重教函數(shù)的參數(shù)可以帶有默認(rèn)值
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:此題考查的是函數(shù)重載的概念。在C++語言中,允許定義一系列函
數(shù)名相同,但形參的個(gè)數(shù)和類型不完全相同的函數(shù),即函數(shù)的重教。重載函數(shù)對返
回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。故選項(xiàng)C錯(cuò)誤。
10、閱讀下面的程序:#include<iostream.h>voidmain()(intx:cin>>x;
if(x++>5)cout<<x<<endl;elsecout<<x-<endl;}如果兩次執(zhí)行上述程
序,且鍵盤輸入分別為4和6,則輸出結(jié)果分別是()。
A、4,6
B、3,6
C、4,7
D、5,7
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:此題首先讀入數(shù)值4賦給變量x,因?yàn)閤++>5不成立,因?yàn)椤?+”后
綴,之后x的值變?yōu)?,執(zhí)行語句coutVVx-VVendl;輸出:5,之后x的值變?yōu)?/p>
40當(dāng)讀入的數(shù)值是6時(shí),因?yàn)閤++>5成立,所以執(zhí)行語句coutVVxVVendl;
輸出7。
11、下列選項(xiàng)可以做C++標(biāo)識符的是()。
A、_256
B、fat/pig
C、delete
D、Schar
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:標(biāo)識符的命名規(guī)則:①所有標(biāo)識符必須由一個(gè)字母(&~2或人~2)
或下劃線()開頭;②標(biāo)識符的其他部分可以用字母、下劃線或數(shù)字(0-9)組成;
③大小寫字母表示不同意義,即代表不同的標(biāo)識符,如cou【和Coul。
12、若類A和類B的定義如下:#include<malloc.h>classA{inti,j;public:
intgeti(){returni;));classB:publicA{intk;public:voidmake()
{k=i*j;));則上述定義中非法的表達(dá)式是()。
A、k=-i*j:
B、intk;
C、returni;
D、voidmake();
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:因?yàn)榕缮惒荒茉L問基類的私有成員i和j(默認(rèn)情況下,成員的屬性
為私有),所以表達(dá)式k=-i*i是非法的。其余的訪問權(quán)限都是許可的。
13、針對數(shù)組定義intdata[10];,下列表述中錯(cuò)誤的是()。
A、用*<1混@可訪問到數(shù)組的首元素
B、用data[9]可訪問到數(shù)組的末元素
C、用data[10]訪問數(shù)組元素會超出數(shù)組邊界
D、data共有10個(gè)元素,其首元素是data[l]
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:此題考查的是數(shù)組和指針的概念。題目中data[10]共有10個(gè)元素,
分別是data[O]、data[l]>data⑵、data[3]...data[9],首元素是data[O],所以選項(xiàng)D
錯(cuò)誤:其他選項(xiàng)均正確。
14、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5};下列語句中輸出結(jié)果
不是2的是()。
A^cout<<*arr+1<<end1;
B、cout<<*(arr+l)<<endl;
C、cout<<arr[l]<<endl,
D^cout<<*art<<end1;
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:因?yàn)橐痪S數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D)
中,輸出*arr的值就是數(shù)組arr[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組arr[5]的
第二元素2o
15、有如下程序段:inli=O,j=l;int&r=i://①r=j//②int*p=&i;//
③*p=&t//④其中會產(chǎn)生編譯錯(cuò)誤的語句是()。
A、?
B、③
C、②
D、0
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:此題考查的是指針和引用。本題中,語句①是一條合法的引用聲明
語句,使得變量i被r引用;語句②通過引用r將變量j的值賦給變量i;語句③聲
明了指針變量P,并初始化指向變量i;語句④中,*p代表了變量i的值,要將&r
賦給*p,這會使編譯器產(chǎn)生類型不符的錯(cuò)誤提示。
16、下列關(guān)于輸入流類成員函數(shù)getline。的描述中,錯(cuò)誤的是()。
A、該函數(shù)是用來讀取鍵盤輸入的字符串的
B、該函數(shù)讀取的字符印長度是受限制的
C、該函數(shù)讀取字符串時(shí),遇到終止符便停止
D、該函數(shù)讀取字符串時(shí)二可以包含空格
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:此題考查的是getline()函數(shù)。getline。函數(shù)的原型為:
istreamjype&getline(char_type*s,streamsize,char_typedelim);。其功能是從當(dāng)前輸
入位所始提取字符存入s所指向的具有n個(gè)字節(jié)的字符空間中。遇到以下情況時(shí)
停止:已提取并存儲了n—l個(gè)字符;到流尾,無字符可取;下一個(gè)要提取的字符
等于結(jié)束標(biāo)志字符delim。故選項(xiàng)R、C、D都是iF確的cgetline。函數(shù)不僅可以用
來讀取鍵盤輸入的字符串,還可以用來讀取文件等數(shù)據(jù)流,故選項(xiàng)A錯(cuò)誤。
17、有如下程序:#inc1ude<iostream>usingnamespacestd:classTest{public:
TestO{n+=2:}-TestO(n—=3;}staticintgetNumO{returnn;}private:staticint
n;);intTest::n=l;intmain(){Test*p=newTest;deletep;cout<<"n="<
Test::getNumO<<end1;return0;)執(zhí)行后的輸出結(jié)果是()。
n=0
B、n=l
C、n=2
D^n=3
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。靜態(tài)數(shù)據(jù)成員是類中所
有對象共享的成員,而不是某個(gè)對象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有
疊加性,執(zhí)行“n+—2”和“n——3”后n的值為0<>
18、有如下類定義:classMyBase{intk;public:MyBase(intn=0):k(n){}int
vakie()const{returnk;});classMyDerived:MyBase{intj;public:
MyDcrivcd(inti):j(i){}intgetK()const{returnk;}intgctJ()const{returnj;}};編
譯時(shí)發(fā)現(xiàn)有一處語法錯(cuò)誤,對這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。
A、函數(shù)getK試圖訪問基類的私有成員變量k
B、在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或
private
C、類MyDerived缺少一個(gè)無參的構(gòu)造函數(shù)
D、類MyDerived的構(gòu)造函數(shù)沒有對基類數(shù)據(jù)成員k進(jìn)行初始化
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:此題考查的是派生類對基類成員的訪問。因?yàn)轭愔腥笔〉脑L問權(quán)限是
私有,所以本題中MyBase類中定義的成員k是私有成員。派生類中的成員只能訪
問基類中的公有成員和保護(hù)成員,不能訪問基類中的私有成員。所以派生類中函數(shù)
getK()中的語句returnk;是非法的。
19>有如下程序:#include<iostream>usingnamespacestd:classMountain{int
height;public:Mountain(inth=0):height(h){}virtualchar*GetName()
const{return"ill";)intGetHeight()const{returnheight;));classLushan:public
Mountain)Public;Lushan(intd);Mountain(d){)Char*GctNamcOconst{return"1^ill
";));intmain(){Mountain*p=newLushan(lOOO);cout<<p->GetName()<<
“海拔“<<p—>GetHeight()V<咪、return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是
()。
A、廬山海拔1000米
B、廬山海拔。米
C、山海拔1000米
D、山海拔0米
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:在基類Mountain中定義了虛函數(shù)GctNamc。輸出字符串“山”,而在派
生類Lushan中對虛函數(shù)GetName。進(jìn)行了重新定義,輸出字符串“廬山在主函
數(shù)中對派生類中的虛函數(shù)GetName。進(jìn)行了多態(tài)調(diào)用,此時(shí)調(diào)用的是派生類中重新
定義的GctName。,輸已字符字符串“廬山
20、下列關(guān)于運(yùn)算符函數(shù)的描述中,錯(cuò)誤的是()。
A、運(yùn)算符函數(shù)的名稱總是以ope30r為前綴
B、運(yùn)算符函數(shù)的參數(shù)可以是對象
C、運(yùn)算符函數(shù)只能定義為類的成員函數(shù)
D、在表達(dá)式中使用重載的運(yùn)算符相當(dāng)于調(diào)用運(yùn)算符重載函數(shù)
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱為運(yùn)算符函數(shù)。編譯系統(tǒng)能
夠依據(jù)使用運(yùn)算符的不同環(huán)境,即參數(shù)(操作數(shù))的數(shù)量或類型的差異,區(qū)分同一運(yùn)
算符的不同含義。運(yùn)算符函數(shù)作為非成員函數(shù)時(shí),所有的操作數(shù)必須出現(xiàn)在參數(shù)表
中。
21、有如卜.類定義和變量定義:classA{public:AO{data=O;}~A(){}int
GetData()const{returndata;)voidSetData(intn){data=n;}private:intdata;);
constAa;Ab;下列因數(shù)調(diào)用中錯(cuò)誤的是()。
A、a.GetData();
B、a.SetData(lO);
C^b.GetData();
D、b.SetData(lO);
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:由題意可知a為常對象,因?yàn)槌ο蟛荒鼙桓?,所以通過這個(gè)常對
象只能調(diào)用它的常成員函數(shù)GelData。,而不能調(diào)隹其他成員函數(shù)SelData(lO),因
而選項(xiàng)B為本題的正確答案。
22、關(guān)于在調(diào)用模板函數(shù)時(shí)模板實(shí)參的使用,下列表述正確的是()。
A、對于虛擬類型參數(shù)所對應(yīng)的模板實(shí)參,如果能從模板函數(shù)的實(shí)參中獲得相同的
信息,則都可以省略
B、對于虛擬類型參數(shù)所對應(yīng)的模板實(shí)參,如果它們是參數(shù)表中的最后的若干個(gè)參
數(shù),則都可以省略
C、對于虛擬類型參數(shù)所對應(yīng)的模板實(shí)參,若能夠省略則必須省略
D、對于常規(guī)參數(shù)所對應(yīng)的模板實(shí)參,任何情況下都不能省略
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:此題考查的是模板實(shí)參的省略。模板實(shí)參在以下集中情況中不能省
略:從模板函數(shù)實(shí)參表獲得的信息有矛盾;需要獲得特定類型的返回值,而不管參
數(shù)的類型如何;虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中;函數(shù)模板含有常規(guī)
形參。
23、若為Fraction類重載前增1運(yùn)算符++,應(yīng)在類體中將其聲明為()。
A、Fraction&operator++();
R、Fraction^operator++(int).
C、friendFraction&operator++();
D、friendFraction&operator++(int);
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:在類Fraclion中重載前增1運(yùn)算符++時(shí),其聲明形式為Fraction
&operator++();在類Fraction中重載后增1運(yùn)算符++時(shí),其聲明形式為
Fraction&operator++(int);。
24、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。
A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為淮
B、對于常規(guī)參數(shù)所對應(yīng)的模板實(shí)參,任何情況下都不能省略
C、虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時(shí),不能省略模板實(shí)參
D、模板參數(shù)表不能為空
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:在調(diào)用一個(gè)模板函數(shù)時(shí),如果編譯系統(tǒng)能夠從模板實(shí)參表判斷其中或
全部虛擬類型參數(shù)對應(yīng)的實(shí)際參數(shù),而且它們正好是參數(shù)表中最后的若干參數(shù),則
模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。
25、若要對類BigNumber中重載的類型轉(zhuǎn)換運(yùn)算符long進(jìn)行聲明,下列選項(xiàng)中正
確的是()。
A、operatorlong()const;
B、operatorlong(bigNumber);
C、longoperatorlong()const;
D、longoperatorlong(B:gNumber);
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:在重載類型轉(zhuǎn)換符時(shí),由于運(yùn)算符本身已經(jīng)表示出返回值類型,因此
不需要返回值類型的聲明。
家二級C++機(jī)試(選擇題)模擬試卷
第3套
一、選擇題(本題共23題,每題1.0分,共23分。)
1、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出''原則存取數(shù)據(jù)的是
A、循環(huán)隊(duì)列
B、棧
C、隊(duì)列
D、二叉樹
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:棧按照“先進(jìn)后出”(F1LO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù);隊(duì)列是“先進(jìn)
先出”F(IFO)或“后進(jìn)后出”(LILO)的線性表。
2、下列敘述中正確的是()。
A、棧是一種先進(jìn)先出的線性表
B、隊(duì)列是一種后進(jìn)先出的線性表
C、棧與隊(duì)列都是非線性結(jié)構(gòu)
D、以上三種說法都不對
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。二者均為線性結(jié)
構(gòu)。
3、有如下語句序列:inix=100,&r==x;cout<
A、100-100
B、100.0012FF7C
C、0012FF7C-100
D、0012FF7C-0012FF7C
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:在語句inix=100,&r=x;中聲明r初始化對x的引用,所以x和&r
的值都是100o
4、字面常量42、4.2、42L的數(shù)據(jù)類型分別是()。
A、long,double,int
B>long,float,int
C、int,double,long
D、int,float,long
標(biāo)準(zhǔn)答案:c
知識點(diǎn)露析:此題考查的知識點(diǎn)是字面常量。對于整型字面常量,只要沒有超過
C++中整數(shù)所能表示的范圍,C++將自動(dòng)按整數(shù)來存儲此數(shù),也可以通過在整型字
面常量后添加U或1來指定無符號整數(shù)或長整數(shù)來存儲;對于實(shí)型字面常量,C++
將自動(dòng)按照雙精度數(shù)來存儲,也可以通過在實(shí)型字面常量后添加f來指定按單精度
數(shù)存儲。
5、下面程序的輸出結(jié)果為()。#include<iostream.h>voidmain(){intx;int
&y=x;//變量引用y=99;cout<<,,x=,,<<x<<endl;}
A、x=9913)x=9
B、x=0
C、異常
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:程序中的“int&y=x;”語句中的引用運(yùn)算符。&y=x語句可以理解
為y具有x的地址.所以y的值99.x的值也是99,所以答案是x=990
6、數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。
A、控制流
B、事件驅(qū)動(dòng)
C、模塊調(diào)用
D、數(shù)據(jù)流
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的
移動(dòng)變換過程。其中帶箭頭的線段表示數(shù)據(jù)流,沿箭頭方向傳遞數(shù)據(jù)的通道,一般
在旁邊標(biāo)注數(shù)據(jù)流名。
7、有如下程序:#includeusingnamespacestd;classPair{intm,n;public:
Pair(intj,intk):m(j),n(k){}intget(){returnm;}intgetoconst{returnm+n;}];
intmain(){Paira(3,5);constPairb(3,5);coul<<a.get()<<b.get();return
0:)運(yùn)行時(shí)的輸出結(jié)果是()。
A、33
B、38
C、83
D、88
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在主函數(shù)中定義了類Pair的一個(gè)實(shí)例變量a,并分別對實(shí)例變量a的
數(shù)據(jù)成員m,n賦初值3,5。所以調(diào)用a.gct()成員函數(shù)時(shí),輸出3。又定義類
Pair的一個(gè)常實(shí)例變量b,并分別對實(shí)例變量b的數(shù)據(jù)成員m,n賦初值3,5。所
以調(diào)用成員函數(shù)b.get。時(shí),輸出8。
8、對于語句coutVVendlVVx;中的各個(gè)組成部分,下列敘述中錯(cuò)誤的是()。
A、“cout”是一個(gè)輸出流對象
B、“endl”的作用是輸出回車換行
C、“x”是一個(gè)變量
D、“VV”稱作提取運(yùn)算符
標(biāo)準(zhǔn)答案:D
知火點(diǎn)解析:語句cout<<cndl<〈x:作用是輸出回車和變量x的值。所以題目
中選項(xiàng)A)、B)、C)的敘述均正確,只有選項(xiàng)D)敘述錯(cuò)誤,“VV”是插入運(yùn)算符。
9、數(shù)據(jù)庫設(shè)計(jì)中,用E-R圖來描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它
屬于數(shù)據(jù)庫設(shè)計(jì)的()。
A、需求分析階段
B、邏輯設(shè)計(jì)階段
C、概念設(shè)計(jì)階段
D、物理設(shè)計(jì)階段
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:E-R模型(實(shí)體聯(lián)系模型)是將現(xiàn)實(shí)世界的要求轉(zhuǎn)化成實(shí)體、聯(lián)系、屬
性等幾個(gè)基本概念,以及它們間的兩種基本聯(lián)接關(guān)系,并且可用一種圖非常直觀地
表示出來。它屬于數(shù)據(jù)庫設(shè)計(jì)的概念設(shè)計(jì)階段。
10、下列符號中能夠作為C++標(biāo)識符的是()。
A、const
B、2a
C、_shape
D、-count
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:此題考查的是C++標(biāo)識符。標(biāo)識符是由數(shù)字、字母以及下劃線構(gòu)
成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格:標(biāo)識符的長度是任意
的,但由于編譯系統(tǒng)的限制一般不超過31個(gè)字符:標(biāo)識符中的大小寫字母是不同
的;定義標(biāo)識符時(shí)不能采用系統(tǒng)的保留字。
II、數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決
A、數(shù)據(jù)共享問題
B、數(shù)據(jù)安全問題
C、大量數(shù)據(jù)存儲問題
D、簡化數(shù)據(jù)維護(hù)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:數(shù)據(jù)庫應(yīng)用系統(tǒng)中的一個(gè)核心問題就是設(shè)計(jì)一個(gè)能滿足用戶要求、性
能良好的數(shù)據(jù)庫,這就是數(shù)據(jù)庫設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)是在一定平分制約下,根據(jù)信息
需求與處理需求設(shè)計(jì)出性能良好的數(shù)據(jù)模式。數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決數(shù)據(jù)
共享的問題。
12、下列關(guān)于賦值運(yùn)算符『"重載的敘述中,正確的是()。
A、賦值運(yùn)算符只能作為類的成員函數(shù)重載
B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制上功能
C、重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對象作為形參
D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:重載賦值運(yùn)算符必須定義為類的成員函數(shù);所以選項(xiàng)A正確。重載
賦值運(yùn)算符時(shí)應(yīng)返回一個(gè)類的對象,所以C選項(xiàng)錯(cuò)誤。如果己經(jīng)定義了復(fù)制(挑貝)
構(gòu)造函數(shù),仍然可以重載賦值運(yùn)算符,所以D選項(xiàng)錯(cuò)誤。
13^有如下程序:#inckideusingnamespacestd:classGA{public:virtualhat
f(){return1;});classGB:publicGA{public;virtualintft){return2;));void
show(GAg){cout<
A、1111
B、1211
C、1112
D、1212
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:此題考查派生類與虛函數(shù)的考杳。由主函數(shù)main入手,其中分別定
義了類GA和GB的對象a和b。首先,執(zhí)行參數(shù)a的show函數(shù)調(diào)用,其中的輸出
語句為調(diào)用GA類中的f()虛函數(shù),返回1。同理display(a)函數(shù)輸出1。show(b)函
數(shù)中調(diào)用的為GA中的f()函數(shù),display(b)調(diào)用GA中f()函數(shù),返回1,display(b)
調(diào)用GB中的f()函數(shù)返回2。所以最后輸出為1112。
14、已知Value是一個(gè)類,Value是Value的一個(gè)對象。下列以非成員函數(shù)形式重
我的運(yùn)算符函數(shù)原形中,正確的是()。
A^Valueoperator+(ValueV,inti);
B、Valueopcrator+(ValueV=valuc,inti);
C、Valueoperator+(Valuevinti=0);
D^Valueoperator+(ValueV:value,inti=0);
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:此題考查的是重載加法運(yùn)算符“+”。"+”是二元運(yùn)算符,其第一操作數(shù)
是對象本身,i為第二操作數(shù),由此可知選項(xiàng)B正確。
15、下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是()。
A、Fractionoperator+(Fraction,Fraction);
B、Fractionoperator—(Fraction);
C、Fraction&operator=(Fraction&,Fraction);
D、Fraction&operator+=(Fraction&,Fraction);
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:此題考查的是運(yùn)算符重載。C++語言規(guī)定,、'="運(yùn)算符只能作為成員
函數(shù)重載。
16、將運(yùn)算符重載為非成員函數(shù),下列原型聲明中,錯(cuò)誤的是()。
A^MycloCkopcrator+(MyClock,long);
B、MycloCkoperator+(MyClock,MyClock);
C、MycloCkoperator+(long.long);
D^MycloCkopcrator+(long,MyClock);
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:運(yùn)算符重載不能有二義性,故選項(xiàng)Cj不能區(qū)分運(yùn)算符的準(zhǔn)確含義。
17、有如下程序:intx=3:do{x-=2:cout<
A、I
B、30
C、1-2
D、死循環(huán)
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:此題考查的是do-while循環(huán)語句。do-while循環(huán)首先執(zhí)行do語句中
的循環(huán)體,再判斷是否需要繼續(xù)執(zhí)行循環(huán)。題目中do語句“x?=2",while語句中“-
x”即x為0,取反為非0,循環(huán)繼續(xù)執(zhí)行;執(zhí)行“x-=2”和“-x”取反后,循環(huán)結(jié)束程
序退出。
18、有如下類定義:classAA{inta;public:intgetRef()const{return&aiJ//①
intgetValue()const{retuina;}//@voidset(intn)const(a=n;}//(3)friendvoid
show(AAaa)const{cout<<a;}//?);其中的四個(gè)函數(shù)定義中正確的是()。
A、①
B、②
C、@
D、@
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:此題考查了常成員函數(shù)和友元函數(shù)的概念。選項(xiàng)A中,getRef。函數(shù)
的返回值和函數(shù)函數(shù)類型不符,故錯(cuò)誤;C選項(xiàng)中set。常成員函數(shù)改變了數(shù)據(jù)成員
的值,這是不允許的;D選項(xiàng)中show。函數(shù)被同時(shí)定義成友元函數(shù)和常成員函數(shù)是
錯(cuò)誤的。
19>已知基類Employee只有一個(gè)構(gòu)造函數(shù),其定義如下:Employee::
Employee(intn):id(n){)Manager是Employee的派生類,則卜列對Manager的構(gòu)造
函數(shù)的定義中,正確的是()。
A、Manager::Manager(intn):id(n){)
B、Manager::Manager(inln){id=n;}
C、Manager::Manager(intn):Employee(n){}
D、Manager::Managcr(intn){Employcc(n);}
標(biāo)準(zhǔn)答案:c
知識點(diǎn)3析:基類的構(gòu)造函數(shù)是帶有參數(shù)的,派生類從基類派生,這就需要在派生
類的構(gòu)造函數(shù)名后面顯示的調(diào)用基類的構(gòu)造函數(shù)。
20>有如卜.類定義classAnimal{public:virtualvoidName0=0;};classKoala:
publicAnimal{public:voidName(){/*函數(shù)體略*/});關(guān)于上述類定義,下列
描述中錯(cuò)誤的是()。
A、類Koala是類Animal的派生類
B、類Koala中的Name函數(shù)是一個(gè)虛函數(shù)
C、類Animal中的Name函數(shù)是一個(gè)純虛函數(shù)
D、語句“Animala;”能夠建立類Animal的一個(gè)對象a
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:在類Animal定義了純虛函數(shù)Name。,所以類Animal就是一個(gè)抽象
類,而抽象類是不能夠建立對象的。
21、下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。
A^intoperator~~(FunNumber);
FunNumberoperator~~0;
C、FunNumberopcrator-(int),
D、intoperator—(FunNumber;FunNumber);
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析?:此題考查的是運(yùn)算符“一”的重載?!耙弧边\(yùn)算符有一元和二元兩種,且
均可以重載為成員函數(shù)和非成員函數(shù)。運(yùn)算符.重載為成員函數(shù)時(shí),形參個(gè)數(shù)一般為
運(yùn)算符元數(shù)減1:重載為非成員函數(shù)時(shí),形參個(gè)數(shù)一般和運(yùn)算符元數(shù)相等。所以,
運(yùn)算符重載為成員函數(shù)時(shí),參數(shù)可以是0個(gè)或1個(gè):而重載為非成員函數(shù)時(shí),
參數(shù)個(gè)數(shù)可以是1個(gè)或2個(gè)。所以D選項(xiàng),肯定是重我為非成員函數(shù)。
22、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。
A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為淮
B、對于常規(guī)參數(shù)所對應(yīng)的模板實(shí)參,任何情況下都不能省略
C、虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時(shí),不能省略模板實(shí)參
D、模板參數(shù)表不能為空
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:在調(diào)用一個(gè)模板函數(shù)時(shí),如果編譯系統(tǒng)能夠從模板實(shí)參表判斷其中或
全部虛擬類型參數(shù)對應(yīng)的實(shí)際參數(shù),而且它們正好是參數(shù)表中最后的若干參數(shù),則
模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。
23、下列關(guān)于模板的描述中,錯(cuò)誤的是()。
A、類模板的成員函數(shù)都是模板函數(shù)
B、函數(shù)模板是一種參數(shù)化類型的函數(shù)
C、滿足一定條件時(shí)可以省略模板實(shí)參
D、模板形參只能由關(guān)鍵字typename聲明
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:同一模板的聲明和定義中,模板形參的名字不必相同。每個(gè)模板類型
形參前面必須帶上關(guān)鍵字typcnamc/class,每個(gè)非類型形參前面必須帶上類型名
字。
國家二級C++機(jī)試(選擇題)模擬試卷
第4套
一、選擇題(本題共25題,每題1.0分,共25分。)
1、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是
A、棧
B、樹
C、隊(duì)列
D、二叉樹
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:棧是一種限定在一端進(jìn)行插入與刪除的線性表。在主函數(shù)調(diào)用子函數(shù)
時(shí),要首先保存主函數(shù)當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子函數(shù),把子函數(shù)的運(yùn)行結(jié)果返
回到.主函數(shù)調(diào)用子函數(shù)時(shí)的位置,主函數(shù)再接著往下執(zhí)行,這種過程符合棧的特
點(diǎn)。所以一般采用棧式存儲方式。
2、一棵二叉樹中共有80個(gè)葉子結(jié)點(diǎn)與70個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)
點(diǎn)數(shù)為
A、219
B、229
C、230
D、231
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總
是比度為2的結(jié)點(diǎn)多一個(gè),故總結(jié)點(diǎn)數(shù)=葉子節(jié)點(diǎn)數(shù)十度為2的節(jié)點(diǎn)數(shù)+度為1的節(jié)
點(diǎn)數(shù)=80+79+70=229。
3、冒泡排序在最壞情況下的比較次數(shù)是()。
A、n(n+l)/2
nlog2n
C、n(n-l)/2
D、n/2
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:對n個(gè)結(jié)點(diǎn)的線性表采用冒泡排序,在最壞情況下,冒泡排序需要經(jīng)
過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-
l)/2o
4、有如下程序:#includeusingnamespacestd;classtest{private:ima;public:
test。{coutvv”construclor”v
A、3
B、constructor
C、copyconstructor
D、3destructordestructordestructor
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù)以及析構(gòu)函數(shù),本題中定
義了一個(gè)對象A(3),對象帶著參數(shù),所以執(zhí)行帶參數(shù)的構(gòu)造函數(shù),輸出3,然后執(zhí)
行析構(gòu)函數(shù),輸出desirucior,所以本題答案為D。
5、下列關(guān)于this指針的描述中,正確的是()。
A、類的成員函數(shù)都有this指針
B、類的友元函數(shù)都有this指針
C、任何與類相關(guān)的函數(shù)都有this指針
D、類的非靜態(tài)成員函數(shù)都有this指針
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:this是成員函數(shù)所屬對象的指針,它指向類對象的地址。成員函數(shù)通
過這個(gè)指針可以知道自己屬于哪一個(gè)對象。它隱臧于每個(gè)類的非靜態(tài)成員函數(shù)中。
6、有如下程序:#includeusingnamespacestd;classMyClass{public:
MyClass(intx):Val(x){)voidSet(intx){val=x;)voidPrint()const(cout?"val="<
A、語句1
B、語句2
C、語句3
D、語句4
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:在創(chuàng)建類對象obil(10)時(shí),前面有關(guān)鍵字consi,所以當(dāng)語句3調(diào)用
objl的成員函數(shù)試圖修改其私有成員的數(shù)值的時(shí)候,會編譯出錯(cuò)。
7>有如下程序:#include<iostream>usingnamespacestd;classXX(protected:
intk;public:XX(intn=5):k(n){};?XX(){cou【VV''XX'';)virtualvoid
f()const=0:);inlinevoidXX::f()const{cout<<k+3;};classYY:publicXX
{public:?YY(){coutVV''YY'';!voidf()const{cout<<k-3;XX::
f();}};intmain(){XX&p=*newYY:p.f();delete&p;return0;}執(zhí)行上
面的程序?qū)⑤敵?)。
A、28XX
B、28YYXX
C、33XX
D、-33XXYY
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析?:類YY公有派生于類:XX,派生類對象可以替代基類對象向基類對
象的引用進(jìn)行賦值初始叱,XX&p=*newYY語句定義了XX對象p引用,并用YY
對象初始化,p并不是YY對象的別名,是XX基類對象的別名,故先調(diào)用基類
XX的構(gòu)造函數(shù)將k初始化為5,p.f()首先輸出k-3即2,然后調(diào)用XX::第輸
出k+3即8,dcleie&p刪除p,調(diào)用XX的析構(gòu)函數(shù)輸出“XX、
8、在開發(fā)一個(gè)C++程序的整個(gè)過程中,第3個(gè)步驟為()。
A、鏈接
B、運(yùn)行
C、編輯
D、編譯
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:C++程序的開發(fā)過程是編輯、編譯、鏈接、運(yùn)行和調(diào)試。
9、下面描述中不屬于數(shù)據(jù)庫系統(tǒng)特點(diǎn)的是
A、數(shù)據(jù)共享
B、數(shù)據(jù)完整性
C、數(shù)據(jù)冗余度高
D、數(shù)據(jù)獨(dú)立性高
標(biāo)準(zhǔn)答案:c
知識點(diǎn)解析:數(shù)據(jù)系統(tǒng)的基本特點(diǎn)有數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、
數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。
10、有如下程序:#inclu&<iostream>usingnamespacestd:intmain(){int
a[6]={23,15,64,33,40,58};intsi,s2:sl=s2=a[0];for(int*p=al+l;p<
a+6;p++){if(sl>*p)sl=*p;if(s2<*p)s2=*p;}cout<<sl+s2<<endl;return
0;}運(yùn)行時(shí)的輸出結(jié)果是()。
A、23
B、58
C、64
D、79
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:變量si和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的
值等于15,它小于23,所以把15賦給變量si;執(zhí)行第二次for循環(huán)時(shí),*p的值等
于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于
15,小于64,因而變量si,s2的值不會再發(fā)生變化,最終值為15+64=79。
11、若字符指針P所指向的字符串為""abcdctg"',在執(zhí)行語句()。
char*ap=newchar[strlen(p)+1];之后,ap指向的字符數(shù)組的元素個(gè)數(shù)為
A、9
B、8
C、7
D、6
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:字符指針p所指向的字符串為”abcdefg,所以函數(shù)sirlen(p)的值等于
7,再加1,等于8。
12、下列類模板的定義中語法格式錯(cuò)誤的是()。
A、templateclassBuffer|/*...*/);
B、templateclassBuffer{/*...*/);
C、templateclassBuffer)/*...*/};
D、templateclassBuffer]/*...*}
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:定義類模板的一般形式是:template〈類型名參數(shù)名1,類型名參數(shù)
名2,…〉class類名(類聲明體};模板的類型參數(shù)由關(guān)鍵字class或關(guān)鍵字
typename及其后的標(biāo)識符構(gòu)成°在模板參數(shù)表中關(guān)鍵字class和typename的意義相
同。
13、有如下類定義:classSample{public;Sampleiintx):ref(x){}//①
private:Sample():ref(0){}//②staticintval=5;//③constintref;//
@1;①上述程序段中,錯(cuò)誤的語句是()。
A、②
B、③
C、④
D、
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:靜態(tài)整型數(shù)據(jù)不能定義為類的數(shù)據(jù)成員。
14、使用輸入輸出操作符selw,可以控制()。
A、輸出精度
B、輸出寬度
C、對齊方式
D、填充字符
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:此題考查的是C++流的操作符。在CH流中,操作符setw的作用是設(shè)
置輸入輸出寬度。
15、有如下類定義:ClassTest{chara;constcharb:public:Test(charc){a=c;
b=c;)//第1行voidf(chara)const{this->a=a;}//第2行voidg(charb){this->
b=b;)//第3行charh()const]returna;}//第4行};編譯時(shí)沒有錯(cuò)誤的行是
()。
行
A第1
、
行
B第2
、
第
c3行
、
第
D4行
、
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:類Test中的常成員函數(shù)h()返回?cái)?shù)據(jù)成員a的值。
16、有如下程序:#include<iostream>usingnamespacestd:classBase{private:
voidfun1()const{cout<<,,funr,;)protected:voidfun2()const{cout<
)public:voidfun3()const{coulVV''fun3'';!);classDerived:
protectedBase(public:voidfun4()const{cout<<*'fun4";});intmain()
{Derivedobj;obj.funl();//①obj.fura();//@obj.fun3();//③
obj.fun4();//④return。;}其中有語法錯(cuò)誤的語句是()。
A、①②③④
B、①②⑧
C、@@@
D、①④
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:此題考查的是保護(hù)繼承。因?yàn)镈erived以protected方式繼承了Base
類,所以父類Base中的公有成員和保護(hù)成員均成了Derived類的保護(hù)成員,而
Base類的私有成員Derived類不可訪問。所以,主函數(shù)中通過Derived類的對象只
能夠訪問到Derived類的公有成員。
17^有如下程序:#include<iostream>usingnamespacestd;classBase{public:
virt
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 床墊合作協(xié)議書
- 建門面的協(xié)議書
- 平凡的榮耀協(xié)議書
- 兵役登記合同范本
- 征信賠償協(xié)議書
- 延遲轉(zhuǎn)正協(xié)議書
- 裝潢合伙協(xié)議書
- 資金股東協(xié)議書
- 贈(zèng)與房屋協(xié)議書
- 征地拆遷協(xié)議書
- 小學(xué)美術(shù)教育活動(dòng)方案設(shè)計(jì)
- 噴漿護(hù)坡施工方案
- 連云港疫情管理辦法
- 專題03 細(xì)胞呼吸和光合作用-2025年高考《生物》真題分類匯編
- 柳州巴迪二安寵物醫(yī)院有限公司項(xiàng)目環(huán)境影響報(bào)告表
- 大連東軟信息學(xué)院《Python數(shù)據(jù)采集與處理課程實(shí)驗(yàn)》2024-2025學(xué)年第一學(xué)期期末試卷
- 不認(rèn)定為安全生產(chǎn)事故的依據(jù)
- DBJ04-T362-2025 保模一體板復(fù)合墻體保溫系統(tǒng)應(yīng)用技術(shù)標(biāo)準(zhǔn)
- 《中小學(xué)跨學(xué)科課程開發(fā)規(guī)范》
- 注塑廠生產(chǎn)安全培訓(xùn)課件
- 根尖囊腫護(hù)理課件
評論
0/150
提交評論