國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷39(共206題)_第1頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷39(共206題)_第2頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷39(共206題)_第3頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷39(共206題)_第4頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷39(共206題)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷39(共9套)(共206題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列字符串中可以用作C++標(biāo)識(shí)符的是()。A、2009varB、gotoC、test_2009D、_123標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:標(biāo)識(shí)符是用戶為程序中各種需要命名的“元素”所起的名字。標(biāo)識(shí)符的組成要符合一定的規(guī)則:①標(biāo)識(shí)符是一個(gè)以字母或下劃線開(kāi)頭的,由字母、數(shù)字、F劃線組成的字符串。②標(biāo)識(shí)符不能與任意一個(gè)關(guān)鍵字同名。③標(biāo)識(shí)符中的字母區(qū)分大小寫(xiě)。④標(biāo)識(shí)符不宜過(guò)長(zhǎng)。c++語(yǔ)言一般設(shè)定一個(gè)標(biāo)識(shí)符的有效長(zhǎng)度為32個(gè)字符。由這四條規(guī)則可知,選項(xiàng)D)為正確答案。2、下列敘述中正確的是()。A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)構(gòu)中,樹(shù)這類的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)構(gòu)。3、有如下程序:#include<iostream>usingnamespacestd;intmain(){int*p;*p=9;cout<<"Thevalueatp:"<<*p;return0:}編譯運(yùn)行程序?qū)⒊霈F(xiàn)的情況是()。A、編譯時(shí)出現(xiàn)語(yǔ)法錯(cuò)誤,不能生成可執(zhí)行文件B、運(yùn)行時(shí)一定輸出:Thevalueatp:9C、運(yùn)行時(shí)一定輸出:Thevalueatp:*9D、運(yùn)行時(shí)有可能出錯(cuò)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題目程序中“int,*p;”是定義了一個(gè)指針變量p,“*p=9;”是將p當(dāng)前指向的指針賦為9。指針p在執(zhí)行這個(gè)賦值操作前并沒(méi)有初始化這個(gè)變量p,所以會(huì)有p未初始化的警告錯(cuò)誤。4、以下程序的輸出的結(jié)果是()。#include<iostream.h>intx=3;voidmain(){voidfun();inti;for(i=1;i<x;i++)fun();}voidfun(){staticintx=1;x*=x+1;cout<<x<<’’’’;}A、3,3B、2,2C、2,6D、2,5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)入手,在for循環(huán)中調(diào)用fun函數(shù),其中調(diào)用次數(shù)為2次。fun中x為靜態(tài)變量,有效到文件結(jié)束,所以第一次調(diào)用為x=x*(x+1)=1*(1+1)=2,第二次調(diào)用2*(2+1)=6。5、一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次人棧,然后再依次出棧,則元素出棧的順序是()。A、12345ABCDEB、EDCBA54321C、ABCDEl2345D、54321EDCBA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是先進(jìn)后出的原則組織數(shù)據(jù),所以入棧最早的最后出棧,所以選擇B。6、有如下程序:#include<iostream>usingnamespacestd;classTest{public:Test(){n+=2;}~Test(){n-=3;}staticintgetNum(){returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<"n="<<Test::getNum()<<endl;return0:}執(zhí)行后的輸出結(jié)果是()。A、n=0B、n=1C、n=2D、n=3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語(yǔ)句Test*p=newTest;會(huì)調(diào)用類的構(gòu)造函數(shù)Test(){n+=2;},使n的值由原來(lái)的1變?yōu)?,然后deletep調(diào)用類的析構(gòu)函數(shù)~Test(){n-=3;},因?yàn)閚是static型變量,所以會(huì)在3的基礎(chǔ)上減3使得輸出結(jié)果為0。7、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為()。A、log2nB、n/2C、nD、n+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在進(jìn)行順序查找過(guò)程中,如果被查的元素是線性表中的最后一個(gè)元素,或者被查元素根本不在線性表中,則為了查找這個(gè)元素需要與線性表中的所有元素進(jìn)行比較,這是順序查找的最壞情況,需要比較的次數(shù)為n次。8、有如下程序:#includeusingnamespacestd;classONE{intc;public:ONE():c(0){cout<A、3B、23C、123D、213標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由類TWO的定義可知,其成員為類ONE的兩個(gè)對(duì)象onel和one2。所以在主函數(shù)中構(gòu)建類TWO的對(duì)象t(4)時(shí),先后調(diào)用類ONE的構(gòu)造函數(shù)ONE():c(0){tout9、在E—R圖中,用來(lái)表示實(shí)體的圖形是()。A、矩形B、橢圓形C、菱形D、三角形標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在E—R圖中,用矩形表示實(shí)體集,在矩形內(nèi)寫(xiě)上該實(shí)體集的名字:用橢圓形表示屬性;用菱形(內(nèi)部寫(xiě)上聯(lián)系名)表示聯(lián)系。10、有如下程序:撕ncludeusingnamespacestd;classAA{intk;protected:intn;voidsetK(intk){this一>k=k;}public:voidsetN(intn){this一>n=n;}};classBB:publicAA{/*類體略*/};intmain(){BBx;x.n=1;//1x.setN(2);//2x.k=3://3x.setK(4);//4return0;}在標(biāo)注號(hào)碼的四條語(yǔ)句中正確的是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問(wèn)屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問(wèn)屬性,其私有成員仍為基類私有。所以本題中n、k和setK變?yōu)榱伺缮惖谋Wo(hù)成員,不能直接使用,即1、3、4錯(cuò)誤,所以B選項(xiàng)正確。11、下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無(wú)關(guān)的是()。A、重載函數(shù)B、虛函數(shù)C、指針D、引用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,多態(tài)性可以分為兩類:編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性是通過(guò)函數(shù)重載和模版體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過(guò)虛函數(shù)體現(xiàn)的。12、己知函數(shù)FA調(diào)用FB,若要把這兩個(gè)函數(shù)定義在同一個(gè)文件中,則()。A、FA必須定義在FB之前B、FB必須定義在FA之前C、若FA定義在FB之后,則FA的原型必須出現(xiàn)在FB的定義之前D、若FB定義在FA之后,則FB的原型必須出現(xiàn)在FA的定義之前標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中,在調(diào)用任何函數(shù)之前,必須確保它已有原型說(shuō)明。函數(shù)原型說(shuō)明通常放在程序文件的頭部,以使得該文件中所有函數(shù)都能調(diào)用它們。在本題中,當(dāng)函數(shù)FA調(diào)用FB時(shí),函數(shù)FB可以定義在FA的后面,但是FB的原型必須出現(xiàn)在FA的定義之前,因而選項(xiàng)D)為正確答案。13、C++中的模板包括()。A、對(duì)象模板和函數(shù)模板B、對(duì)象模板和類模板C、函數(shù)模板和類模板D、變量模板和對(duì)象模板標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是模板。在C++語(yǔ)言中,模板有兩類:函數(shù)模板和類模板。14、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assMyClass{public:MyClass(){cout<<’*’;}MyClass(MyClass&a){cout<<’#’;}~MyClass(){cout<<’@’;}};intmain(),MyClassa;Myc1assb(a);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、*@#@B、#@*@C、*#@@D、#*@@標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序在執(zhí)行時(shí),先創(chuàng)建類對(duì)象a,輸出.,再創(chuàng)建類對(duì)象b,輸出#,然后再依次調(diào)用類對(duì)象b和a的析構(gòu)函數(shù),輸出兩個(gè)@。15、有如下程序:usingnamespacestd;classBoat;classCar{public:Car(inti):weight(i){}friendintTotal(constCar&c,constBoat&b);////①private:intweight;};classBoat{public:Boat(inti):weight(i){}friendintTotal(constCar&c,constBoat&b);private:intweight;};intTotal(constCar&c,constBoat&b){//②returnc.weight+b.weight;}intmain(){Carc(10);Boatb(8);cout<<"Thetotalweightis"<<Total(c,b)<<endl;//③return0:}下列關(guān)于程序的描述中,正確的是()。A、程序編譯正確B、程序編譯時(shí)語(yǔ)句①出錯(cuò)C、程序編譯時(shí)語(yǔ)句②出錯(cuò)D、程序編譯時(shí)語(yǔ)句③出錯(cuò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中定義了類Car和類Boat,在兩個(gè)類中分別定義他們的構(gòu)造函數(shù)和友元函數(shù)friend。程序在VC6.0中編譯通過(guò)。16、下列有關(guān)函數(shù)重載的敘述中,錯(cuò)誤的是()。A、函數(shù)重載就是用相同的函數(shù)名定義多個(gè)函數(shù)B、重載函數(shù)的參數(shù)列表必須不同C、重載函數(shù)的返回值類型必須不同D、重載函數(shù)的參數(shù)可以帶有默認(rèn)值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)重載的概念。在C++語(yǔ)言中,允許定義一系列函數(shù)名相同,但形參的個(gè)數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。故選項(xiàng)c錯(cuò)誤。17、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說(shuō)法中,錯(cuò)誤的是()。A、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)B、如果基類中沒(méi)有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)C、在建立派生類對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)D、在銷毀派生類對(duì)象時(shí),先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)。在撤銷派生類對(duì)象時(shí),析構(gòu)函數(shù)的執(zhí)行過(guò)程和構(gòu)造函數(shù)嚴(yán)格相反,即:對(duì)派生類新增普通成員進(jìn)行清理;調(diào)用成員對(duì)象析構(gòu)函數(shù),調(diào)用基類析構(gòu)函數(shù)對(duì)基類進(jìn)行清理。18、有如下程序:#include<iostrearn>usingnamespacestd;classPublication{//出版物類charname[30];public:Publication(char*name="未知名稱"){strcpy(this->name,name);}constchar*getName()const{returnname;}virtualconstchar*getType()const{return"未知類型";}};classBook:publicPublication{//書(shū)類public:Book(char*name):Publication(name){}virtualconstchar*getType()const{return"書(shū)";{}};voidshowPublication(Publication&p){cout<<p.getType()<<":"<<p.getName()<<endl;}intmain(){Bookbook("精彩人生");showPublication(book);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、未知類型:未知名稱B、未知類型:精彩人生C、書(shū):未知名稱D、書(shū):精彩人生標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)轭怋ook繼承自基類Publication,所以在類Book中的虛常成員函數(shù)*getType(){return"書(shū)";}就會(huì)覆蓋基類中的虛常成員函數(shù)*getTrype()eonst{return"未知類型";},所以在主函數(shù)中調(diào)用函數(shù)showPublication(book)時(shí),getType()函數(shù)的輸出的結(jié)果是“書(shū)”,getName()函數(shù)的輸出結(jié)果為“精彩人生”。19、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assPublication{//出版物類charname[30];public:Publication(char*name="未知名稱"){strcpy(this—>name,name);}constchar*getName()const{returnname;}virtualconstchar*getType()const{return"未知類型";}};c1assBook:publicPublication{//書(shū)類public:Book(char*name):Publication(name){}virtualconstchar*getType()const{return"書(shū)";}};voidshowPublication(Publication&p){cout<<p.getType()<<":"<<p.getName()<<end1;}intmain(){Bookbook("精彩人生");showPublication(book);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、未知類型:未知名稱B、未知類型:精彩人生C、書(shū):未知名稱D、書(shū):精彩人生標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)轭怋ook繼承自基類Publication,所以在類Book中的虛常成員函數(shù)*getType(){retum"書(shū)";}就會(huì)覆蓋基類中的虛常成員函數(shù)*getType()const{return"未知類型";},所以在主函數(shù)中調(diào)用函數(shù)showPublication(book)時(shí),getType()函數(shù)的輸出的結(jié)果是“書(shū)”,getName()函數(shù)的輸出結(jié)果為“精彩人生”。20、有如下程序:#includeusingnamespacestd;classBase{public:virtualvoidShow(){cout<<’B’;}};classDerived:publicBase{public:voidShow(){cout<<’D’;}};intmain(){Base*p1=newDerived;Derived*p2=newDerived;p1->Show();p2->Show();deletep1:deletep2;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、BBB、BDC、DBD、DD標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在基類Base中定義了虛函數(shù)Show()輸出字符‘B’,而在派生類Derived中對(duì)虛函數(shù)Show()進(jìn)行了重新定義,輸出字符‘D’。在主函數(shù)中對(duì)基類和派生類中的虛函數(shù)Show(1)進(jìn)行了多態(tài)調(diào)用,此時(shí)調(diào)用的是派生類中重新定義的Show(),輸出字符‘D’。21、在類中重載賦值運(yùn)算符時(shí),應(yīng)將其聲明為類的()。A、靜態(tài)函數(shù)B、友元函數(shù)C、成員函數(shù)D、構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:賦值運(yùn)算符只能作為類的成員函數(shù)重載。22、有如下程序:#includeusingnamespacestd;classA{public:A0{cout<<’A’;}~A(){cout<<’C’;}};classB:publicA{public:BO{cout<<’G’;}~B(){cout<<’T’;}};intmain(){Bobj;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、GATCB、AGTCC、GACTD、AGCT標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:派生類B是由基類A公開(kāi)繼承而來(lái),所以在創(chuàng)建類B的obj對(duì)象時(shí),首先執(zhí)行基類A的構(gòu)造函數(shù)A(),輸出A,再執(zhí)行派生類B的構(gòu)造函數(shù)B(),輸出G,當(dāng)程序結(jié)束時(shí),首先執(zhí)行派生類的析構(gòu)函數(shù)~B(),輸出T,珥執(zhí)行基類A的析構(gòu)函數(shù)~A(),輸出C。23、如果利用C++流進(jìn)行輸入輸出,下面的敘述中正確的是()。A、只能借助于流對(duì)象進(jìn)行輸入輸出B、只能進(jìn)行格式化輸入輸出C、只能借助于cin和cout進(jìn)行輸入輸出D、只能使用運(yùn)算符>>和<<進(jìn)行輸入輸出標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的知識(shí)點(diǎn)是C++流。利用C++流既可以進(jìn)行有格式輸入輸出,也可以進(jìn)行無(wú)格式輸入輸出,所以選項(xiàng)B錯(cuò)誤:C++的4個(gè)預(yù)定義的流對(duì)象為:cin一標(biāo)準(zhǔn)輸入,cout一標(biāo)準(zhǔn)輸出,Cerr一標(biāo)準(zhǔn)出錯(cuò)信息輸出,clog一帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸出,選項(xiàng)C錯(cuò)誤;C++流除了可以使用提取“>>”插入“<<”進(jìn)行輸入輸出外,還可以通過(guò)流對(duì)象的一些成員函數(shù)進(jìn)行輸入輸出,故選項(xiàng)D錯(cuò)誤。24、下列有關(guān)C++流的敘述中,錯(cuò)誤的是()。A、C++操作符setw設(shè)置的輸出寬度永久有效B、C++操作符endl可以實(shí)現(xiàn)輸出的回車換行C、處理文件I/O時(shí),要包含頭文件fstreamD、進(jìn)行輸入操作時(shí),eof()函數(shù)用于檢測(cè)是否到達(dá)文件尾標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++流。CH操作符setw()的作用是設(shè)置輸入輸出寬度,且只對(duì)當(dāng)前一次有效,并非永久有效,故選項(xiàng)A敘述錯(cuò)誤。25、已知Value是一個(gè)類,Value是Value的一個(gè)對(duì)象。下列以非成員函數(shù)形式重載的運(yùn)算符函數(shù)原形中,正確的是()。A、Valueoperator+(Valuev,inti);B、Valueoperator+(ValueV=value,inti);C、Valueoperator+(Valuevinti=0);D、Valueoperator+(Valuev=value,inti=0);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是重載加法運(yùn)算符“+”?!?”是二元運(yùn)算符,其第一操作數(shù)是對(duì)象本身,i為第二操作數(shù),由此可知選項(xiàng)B正確。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共21題,每題1.0分,共21分。)1、下列敘述中正確的是()。A、算法就是程序B、設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C、設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂算法是指解題方案的準(zhǔn)確而完整的描述。是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,并且每一個(gè)規(guī)則都是有效的,且是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。算法不等于程序,也不等于計(jì)算方法。設(shè)計(jì)算法時(shí)不僅要考慮對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。2、下列關(guān)于類定義的說(shuō)法中,正確的是()。A、類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明B、類成員的缺省訪問(wèn)權(quán)限是保護(hù)的C、數(shù)據(jù)成員必須被聲明為私有的D、成員函數(shù)只能在類體外進(jìn)行定義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類的成員的缺省訪問(wèn)權(quán)限是私有的,數(shù)據(jù)成員可以是私有,可以是公用的,也可以是受保護(hù)的。類的成員函數(shù)可以在類內(nèi)定義。3、有如下兩個(gè)類定義:classAA{);classBB{AAvl,*v2;BBv3:int*v4;);其中有一個(gè)成員變量的定義是錯(cuò)誤的,這個(gè)變量是()。A、vlB、v2C、v3D、v4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在定義類的數(shù)據(jù)成員時(shí),類中的數(shù)據(jù)成員可以是任意類型,包括整型、浮點(diǎn)型、字符符型、數(shù)組、指針和引用等,也可以是對(duì)象。但是要注意,只有另外一個(gè)類的對(duì)象,才可以作為該類的成員,即作為類的成員對(duì)象存在。自身類的對(duì)象是不可以作為自身類的成員存在,但自身類的指針可以。對(duì)于本題,在定義類BB時(shí),不能包括其對(duì)象v3。4、下面描述中錯(cuò)誤的是()。A、系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)B、軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過(guò)程C、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一D、PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過(guò)程;數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一;PAD圖,即問(wèn)題分析圖,是一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形工具。5、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}};classB{public:B(){cout<<"B";}};classC:publicA{Bb:public:C(){cout<<"C";}};intmain(){Cobj;return0:}執(zhí)行后的輸出結(jié)果是()。A、CBAB、BACC、ACBD、ABC標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題中,語(yǔ)句Cobj對(duì)象初始化首先調(diào)用基類的構(gòu)造函數(shù)A(),輸出“A”,其次是C類中對(duì)象的構(gòu)造函數(shù)的調(diào)用,即調(diào)用B(),輸出“B”;最后是調(diào)用自身的構(gòu)造函數(shù)C(),輸出“C”。6、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、交C、投影D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選擇是單目運(yùn)算,其運(yùn)算對(duì)象是一個(gè)表。該運(yùn)算按給定的條件,從表中選出滿足條件的行形成一個(gè)新表作為運(yùn)算結(jié)果。投影也是單目運(yùn)算,該運(yùn)算從表中選出指定的屬性值組成一個(gè)新表。自然連接是一種特殊的等價(jià)連接,它將表中有相同名稱的列自動(dòng)進(jìn)行記錄匹配。自然連接不必指定任何同等連接條件。7、字面常量42、4.2、42L的數(shù)據(jù)類型分別是()。A、long,double,intB、long,float,intC、int,double,longD、int,float,long標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的知識(shí)點(diǎn)是字面常量。對(duì)于整型字面常量,只要沒(méi)有超過(guò)c++中整數(shù)所能表示的范圍,C++將自動(dòng)按整數(shù)來(lái)存儲(chǔ)此數(shù),也可以通過(guò)在整型字面常量后添加u或1來(lái)指定無(wú)符號(hào)整數(shù)或長(zhǎng)整數(shù)來(lái)存儲(chǔ);對(duì)于實(shí)型字面常量,C++將自動(dòng)按照雙精度數(shù)來(lái)存儲(chǔ),也可以通過(guò)在實(shí)型字面常量后添加f來(lái)指定按單精度數(shù)存儲(chǔ)。8、下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無(wú)關(guān)的是()。A、重載函數(shù)B、虛函數(shù)C、指針D、引用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,多態(tài)性可以分為兩類:編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性是通過(guò)函數(shù)重載和模版體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過(guò)虛函數(shù)體現(xiàn)的。9、有如下程序:#inc1ude<iostream>usingnamespacestd;classPoint{intx,y;public:Point(intxl=0,int’yl=0):x(xl),y(yl){}intget(){returnx+y;}};classCirc1e{Pointcenter;intradius;public:Circ1e(intcx,intcy,intr):center(cx,cy),radius(r){}intget(){retumcenter.get()+radius;}};intmain(){Circ1ec(3,4,5);cout<<c.get()<<endl;return0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、5B、7C、9D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)類Point和類Circle的定義可知,類Circle的實(shí)例c(3,4,5)的成員函數(shù)c.get()返回值為3+4+5=12。10、對(duì)于一個(gè)類定義,下列敘述中錯(cuò)誤的是()。A、如果沒(méi)有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)B、如果沒(méi)有定義缺省的構(gòu)造函數(shù),編譯器將一定生成一個(gè)缺省的構(gòu)造函數(shù)C、如果沒(méi)有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù)D、如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)。如果一個(gè)類中沒(méi)有定義任何構(gòu)造函數(shù),編譯器將生成一個(gè)不帶參數(shù)的公有缺省構(gòu)造函數(shù)。但只要定義了一個(gè)任意的構(gòu)造函數(shù),就不會(huì)生成缺省構(gòu)造函數(shù)了。11、若要對(duì)Data類中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項(xiàng)中正確的是()。A、Data+(Data);B、Dataoperator+{Data};C、Data+operator{Data};D、operator+(Data,Data);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:“+”是一個(gè)二元運(yùn)算符,因此作為成員函數(shù)重載時(shí)參數(shù)表中只有一個(gè)參數(shù),對(duì)應(yīng)于第二個(gè)操作數(shù),而第一個(gè)操作數(shù)是對(duì)象本身。運(yùn)算符函數(shù)的函數(shù)名是由運(yùn)算符前加關(guān)鍵字operator構(gòu)成的。12、有如下程序:#inc1ude<iostream>usingnamespacestd;classMyclass{public:Myclass(intx):val(x){}voidSet(intx){val=x;}voidPrint()const{cont<<"Val="<<Val<<’\t’;)private:intval,};intmain(){constMyclassobj1(10);Myclassobj2(20);obj1.Print();//語(yǔ)句1obj2.Print();//語(yǔ)句2obj1.Set(20);//語(yǔ)句3obj2.Set(30);//語(yǔ)句4return0;}其主函數(shù)中錯(cuò)誤的語(yǔ)句是()。A、語(yǔ)句1B、語(yǔ)句2C、語(yǔ)句3D、語(yǔ)句4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在創(chuàng)建類對(duì)象objl(10)時(shí),前面有關(guān)鍵字const,所以當(dāng)語(yǔ)句3調(diào)用objl的成員函數(shù)試圖修改其私有成員的數(shù)值的時(shí)候,會(huì)編譯出錯(cuò)。13、已知函數(shù)f的原型是“voidflint*x,int&y);”,變量v1、v2的定義是“intv1,v2;”,下列調(diào)用語(yǔ)句中,正確的是()。A、f(v1,V2);B、f(v1,&V2);C、f(&v1,v2);D、f(&v1,&v2);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)f的形參表達(dá)式中第一個(gè)形參為整型指針變量,第二個(gè)為整型引用變量,所以用實(shí)參v1的指針初始化第一個(gè)形參,用實(shí)參v2初始化第二形參。14、有如下程序:#include<iostream>usingnarnespacestd;voidfl(int&x){x++;}voidf2(intx){++x;}intmain(){intx=10,y=12;f1(x);f2(y);cout<<x+y<<end1;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、22B、23C、24D、25標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在函數(shù)f1(int&x){x++;}中,是對(duì)變量x的引用,所以當(dāng)在main函數(shù)中執(zhí)行“f1(x);”語(yǔ)句后,變量x的值等于ll,而在函數(shù)voidf2(intx){++x;}中,對(duì)變量x的傳遞調(diào)用,在main函數(shù)中執(zhí)行“f2(y);”語(yǔ)句后,變量y的值仍然等于12,所以輸出x+y的值等于23。15、下列關(guān)于繼承方式的描述中,錯(cuò)誤的是()。A、如果不顯式地指定繼承方式,缺省的繼承方式是私有(private)B、采用公有繼承方式時(shí),基類中的公有成員在派生類中仍是公有成員C、采用保護(hù)繼承方式時(shí),基類中的保護(hù)成員在派生類中仍然是保護(hù)成員D、采用私有繼承方式時(shí),基類中的私有成員在派生類中仍然是私有成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:基類中的私有成員在派生類中是隱蔽的,只能在基類內(nèi)部訪問(wèn)。派生類中的成員不可以訪問(wèn)基類中的私有成員,只可以訪問(wèn)基類中的公有成員和保護(hù)成員。16、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assXX{intx;public:XX(intxx=0):x(xx){}intgetX(){returnx;)};c1assYY:publicXX{inty;public:YY(intxx,intyy):XX(xx),y(yy){}intgetV(){retumgetX()+y;}};intmain(){YYc(3,4);cout<<c.getV()+c.getXO<<end1;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、3B、4C、7D、10標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由于類YY公開(kāi)繼承自類XX,所以執(zhí)行表達(dá)式c.getVO+c.getXO的值等于3+3+4=10。17、有如下程序:#includeusingnamespacestd;classA{public:virtualvoidf(){cout<<1;}voidg(){cout<<2;}};classB:publicA{public:virtualvoidf(){cout<<3;}voidg(){cout<<4;}};voidshow(A&a){a.f();a.g();}intmain(){Bb;show(b);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、12B、34C、14D、32標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在派生類classB中對(duì)基類中的虛擬成員函數(shù)virtualvoidf()和實(shí)函數(shù)voidgO進(jìn)行了重新定義,在主函數(shù)中通過(guò)語(yǔ)句show(b);調(diào)用派生類中的虛函數(shù)virrualvoidf(){cout<<3;}輸出3,調(diào)用基類的實(shí)函數(shù)voidg(){cout<<2;}輸出2。所以選項(xiàng)D為正確答案。18、下列關(guān)于輸入輸出流的敘述中,正確的是()。A、一個(gè)文件流可以與一個(gè)數(shù)據(jù)文件相聯(lián)系B、cin是專門(mén)從鍵盤(pán)輸入數(shù)據(jù)的輸入流類C、流運(yùn)算符<<用來(lái)從輸入流中讀取數(shù)據(jù)D、寬度設(shè)置的效果永久有效標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)程序與外界環(huán)境進(jìn)行信息交換時(shí),存在著兩個(gè)對(duì)象,一個(gè)是程序中的流對(duì)象,另一個(gè)是文件對(duì)象。程序建立一個(gè)流對(duì)象,并指定這個(gè)流對(duì)象與某個(gè)文件對(duì)象建立連接,程序操作流對(duì)象,流對(duì)象通過(guò)文件系統(tǒng)對(duì)所連接的文件對(duì)象產(chǎn)生作用。19、若目前D盤(pán)根目錄下并不存在test.txt文件,則下列打開(kāi)文件方式不會(huì)自動(dòng)創(chuàng)建test.txt文件的是()。A、ifstreamfin;fin.open(’’d:\\test.txt’’,ios_base::in);B、fstreamrio;fio.open(’’d:\\test.txt’’,ios_base::out);C、ofstreamlout;fout.open(’’d:\\test.txt’’,ios_base::out);D、ofstreamfout;fout.open(’’d:\\test.txt’’,ios_base::app);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:如果以iso_base::in模式打開(kāi)文件但文件又不存在時(shí),可以通過(guò)fail()測(cè)出文件打開(kāi)失敗,不會(huì)自動(dòng)創(chuàng)建文件。20、C++系統(tǒng)預(yù)定了4個(gè)用于標(biāo)準(zhǔn)數(shù)據(jù)流的對(duì)象,下列選項(xiàng)中不屬于此類對(duì)象的是()。A、coutB、cinC、cerrD、cset標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++流有4個(gè)預(yù)定義的流對(duì)象,它們分別是:ein標(biāo)準(zhǔn)輸入:cout標(biāo)準(zhǔn)輸出;cerr標(biāo)準(zhǔn)出錯(cuò)信息輸出;clog帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸出。21、若目前D盤(pán)根目錄下并不存在test.txt文件,則下列打開(kāi)文件方式不會(huì)自動(dòng)創(chuàng)建test.txt文件的是()。A、ifstreamfin;fin.open(’’d:\\test.txt’’,ios_base::in);B、fstreamrio;fio.open(’’d:\\test.txt’’,ios_base::out);C、ofstreamlout;fout.open(’’d:\\test.txt’’,ios_base::out);D、ofstreamfout;fout.open(’’d:\\test.txt’’,ios_base::app);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:如果以iso_base::in模式打開(kāi)文件但文件又不存在時(shí),可以通過(guò)fail()測(cè)出文件打開(kāi)失敗,不會(huì)自動(dòng)創(chuàng)建文件。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共20題,每題1.0分,共20分。)1、以下程序的輸出的結(jié)果是()。#include<iostream.h>intx=3;voidmain(){voidfun();inti;for(i=1;i<x;i++)fun();}voidfun(){staticintx=1;x*=x+1;cout<<x<<’’’’;}A、3,3B、2,2C、2,6D、2,5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)入手,在for循環(huán)中調(diào)用fun函數(shù),其中調(diào)用次數(shù)為2次。fun中x為靜態(tài)變量,有效到文件結(jié)束,所以第一次調(diào)用為x=x*(x+1)=1*(1+1)=2,第二次調(diào)用2*(2+1)=6。2、下列方法中,屬于白盒法設(shè)計(jì)測(cè)試用例的方法的是()。A、錯(cuò)誤推測(cè)B、因果圖C、基本路徑測(cè)試D、邊界值分析標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:白盒測(cè)試方法也稱為結(jié)構(gòu)測(cè)試或邏輯測(cè)試,主要方法有邏輯覆蓋測(cè)試、基本路徑測(cè)試等。3、有如下類聲明:classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetvalue(intn0);};下列關(guān)于getValue成員函數(shù)的實(shí)現(xiàn)中,正確的是()。A、SAMPLE∷setValue(intn0){n=n0;}B、voidSAMPLE∷setValue(intn0){n=n0;}C、voidsetvalue(intn0){n=n0;}D、(intn0){n=n0;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查了成員函數(shù)的定義格式。在類外部對(duì)成員函數(shù)定義時(shí)的一般格式為:返回類型類名∷成員函數(shù)名(參數(shù)表){函數(shù)體},故此題正確答案為選項(xiàng)B。4、下列各選項(xiàng)中,不屬乎序言性注釋的是()。A、程序標(biāo)題B、程序設(shè)計(jì)者C、主要算法D、數(shù)據(jù)狀態(tài)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:注釋一般為序言性注釋和功能性注釋。序言性注釋常位于程序開(kāi)頭部分,它包括程序標(biāo)題、程序功能說(shuō)明、主要算法、接口說(shuō)明、程序位置、開(kāi)發(fā)簡(jiǎn)歷、程序設(shè)計(jì)者、復(fù)審者、復(fù)審日期及修改日期等。功能性注釋一般嵌在源程序體之中,用于描述其后的語(yǔ)句或程序的主要功能。5、軟件測(cè)試的目的是()。A、評(píng)估軟件可靠性B、發(fā)現(xiàn)并改正程序中的錯(cuò)誤C、改正程序中的錯(cuò)誤D、發(fā)現(xiàn)程序中7的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件測(cè)試的目的是為了發(fā)現(xiàn)程序中的錯(cuò)誤,而軟件調(diào)試是為了更正程序中的錯(cuò)誤。6、有如下程序#includeusingnamespacestd;inti=1:classFun{public:staticinti;intvalue(){returni—l;}intvalue()const{returni+l;));intFun::i=2;intmain(){inti=3;Funfunl;constFunfun2;retumO;)若程序的輸出結(jié)果是:123則程序中下劃線處遺漏的語(yǔ)句是()。A、cout<B、cout<C、cout<D、cout<標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常成員函數(shù)。const關(guān)鍵字可以用于參與重函數(shù)的區(qū)分,此時(shí)常對(duì)象調(diào)用常成員函數(shù),一般對(duì)象調(diào)用一般成員函數(shù),當(dāng)類中只有一個(gè)常成員函數(shù)時(shí),一般對(duì)象也可以調(diào)用該常成員函數(shù)。本題中,通過(guò)funl調(diào)用value(]函數(shù)時(shí),是調(diào)用前一個(gè),而通過(guò)fun2調(diào)用value()函數(shù)是調(diào)用后一個(gè);另外,value()函數(shù)中訪問(wèn)的i是類中定義的數(shù)據(jù)成員i,全局變量i在類中被“屏蔽”。funl.value()輸出i.1=2.1=l:fun2.value()調(diào)用后一個(gè)value()函數(shù)輸出i+1=2+l=3;Fun::i是通過(guò)類名直接訪問(wèn)類的靜態(tài)數(shù)據(jù)成員i的值,即2;所以正確的輸出順序是A選項(xiàng)。7、下面屬于白盒測(cè)試方法的是A、等價(jià)類劃分法B、邏輯覆蓋C、邊界值分析法D、錯(cuò)誤推測(cè)法標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:白盒測(cè)試的主要方法有邏輯覆蓋、基本路徑測(cè)試等。8、在下列字符中,不允許作為C++標(biāo)識(shí)符的是()。A、bB、BC、_D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符是一個(gè)以字母或下劃線開(kāi)頭的,由字母、數(shù)字、下劃線組成的字符串。9、若x和y是程序中的兩個(gè)整型變量,則下列if語(yǔ)句中正確的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;C、if(x==0)y=1elsey=2;D、if(x==0)y=1;elsey=2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ifelse語(yǔ)句的形式為:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>所以符合以上形式的ifelse語(yǔ)句為選項(xiàng)A。10、已知函數(shù)fun的原型為intfun(int,int,int);下列重載函數(shù)原型中錯(cuò)誤的是()。A、charfun(int,int);B、doublefun(int,int,double);C、intfun(int,char*);D、floatfun(int,int,int);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:重載函數(shù)至少要在參數(shù)個(gè)數(shù)或參數(shù)類型上不同。而選項(xiàng)D中的函數(shù)與原函數(shù)只是函數(shù)類型不同,而其他完全相同(參數(shù)個(gè)數(shù)及類型),則不能作為重載函數(shù)來(lái)使用。11、下列關(guān)于C++流的描述中,錯(cuò)誤的是()。A、cout>>~A表達(dá)式可輸出字符AB、eof()函數(shù)可以檢測(cè)是否到達(dá)文件尾C、對(duì)磁盤(pán)文件進(jìn)行流操作時(shí),必須包含頭文件fstreamD、以iosbase::out模式打開(kāi)的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:cout是一個(gè)標(biāo)準(zhǔn)輸出流對(duì)象。>>稱之為提取運(yùn)算符,它的功能是從輸入流中提取數(shù)據(jù)賦值給一個(gè)變量。<<為插入運(yùn)算符,其功能是把表達(dá)式的值插入到輸出流中。當(dāng)系統(tǒng)執(zhí)行cout<12、有如下類定義:classPoint{private;staticinthow_many;};________how_many=0;要初始化Point類的靜態(tài)成員howmany,下劃線處應(yīng)填入的內(nèi)容是()。A、ingB、staticintC、intPoint::D、staticintPoint::標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員的初始化。靜態(tài)數(shù)據(jù)成員應(yīng)在類體外進(jìn)行初始化,且初始化的一般格式為:數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名=初始值。13、有如下類定義:classMyClass{intx;public:MyClass0:x(0),y(0){}intGetX(){returiax;}voidSetX(intxx){x=xx;}inty;};已知obi是類MyClass的對(duì)象,下列語(yǔ)句中違反類成員訪問(wèn)控制權(quán)限的是()。A、obj.xB、obj.yC、obj.GetX()D、obj.SetX(0)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由類MyClass的定義可知,數(shù)據(jù)成員x屬于私有成員,所以只能在類的內(nèi)部訪問(wèn)。類MyClass的對(duì)象obj不能訪問(wèn)類MyClass的私有成員x。14、有如下程序#inc1ude<iostream>usingnamespacestd;c1assBase{protected:Base(){cout<<’A’;}Base(charc){cout<<c;}};c1assDerived:publicBase{public:Derived(charc){cout<<c,)};intmain(){Deriveddl(’B’);return0;}執(zhí)行這個(gè)程序屏幕上將顯示輸出()。A、BB、BAC、ABD、BB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)象的構(gòu)造。建立派生類對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序是:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被被繼承時(shí)聲明的順序;執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序;執(zhí)行派生類的構(gòu)造函數(shù)。此題中,在建立派生類Derived的對(duì)象dl時(shí)會(huì)先調(diào)用基類Base的構(gòu)造,調(diào)用的是默認(rèn)構(gòu)造函數(shù),輸出字符’A’;然后調(diào)用自身的構(gòu)造函數(shù),輸出‘B’;故程序的輸出結(jié)果是:AB。15、有如下程序:#includeusmgnamespacestd;classA{Public:AO{tout<<"A";}~A(){cout<<"~A;}};classB:publicA{A*p;public:B(){cout<<"B";P=newA();}~B(){tout<<"~B";deletep;}};intmain(){Bobj;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BAA~A~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)象的構(gòu)造與析構(gòu)。建立派生類對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被定義時(shí)聲明的順序(自左向右)->執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序一>執(zhí)行派生類的構(gòu)造函數(shù)。所以本題在建立派生類B的對(duì)象obj是會(huì)先調(diào)用基類A的構(gòu)造函數(shù),然后調(diào)用自身的構(gòu)造函數(shù)。注意:B類中定義的成員p是A類的指針而不是一個(gè)對(duì)象,故在調(diào)用自身構(gòu)造函數(shù)前不需要構(gòu)造。而在B類構(gòu)造函數(shù)中使用new操作符動(dòng)態(tài)地構(gòu)造了一個(gè)A類的對(duì)象,所以整個(gè)構(gòu)造結(jié)果是輸出:ABA。派生類對(duì)象的析構(gòu)與構(gòu)造嚴(yán)格相反,即先析構(gòu)自身,然后析構(gòu)自身所包含的成員對(duì)象,最后調(diào)用基類的析構(gòu)函數(shù)。故本題中當(dāng)main()函數(shù)返回時(shí),析構(gòu)B類的對(duì)象obj:首先調(diào)用~B(),接著再調(diào)用~A0因?yàn)樵凇獴()函數(shù)中釋放了動(dòng)態(tài)創(chuàng)建的A類對(duì)象,故整個(gè)析構(gòu)所輸出的結(jié)果是~B~A~A。所以這個(gè)程序輸出結(jié)果為ABA~B~A~A16、如果不使用多態(tài)機(jī)制,那么通過(guò)基類的指針雖然可以指向派生類對(duì)象,但是只能訪問(wèn)從基類繼承的成員。有如下程序,沒(méi)有使用多態(tài)機(jī)制。#includeusingnamespacestd;classBase{inta,b;public:Base(intx,inty){a=x;b=y;}voidshow(){cout<A、10,20B、30,40C、20,30D、50,50標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是多態(tài)性。在C++中,一個(gè)基類指針可以用于指向它的派生類對(duì)象,而且通過(guò)這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針實(shí)際所指向的對(duì)象類的那個(gè)重定義版本。在實(shí)函數(shù)的情況下。通過(guò)基類指針?biāo){(diào)用的只能是基類的那個(gè)函數(shù)版本,無(wú)法調(diào)用劍派生類中重定義函數(shù)。此題中,通過(guò)指針pb所調(diào)用的是基類的版本,即輸出a和b的值10,20。17、下列關(guān)于運(yùn)算符函數(shù)的描述中,錯(cuò)誤的是()。A、運(yùn)算符函數(shù)的名稱總是以operator為前綴B、運(yùn)算符函數(shù)的參數(shù)可以是對(duì)象C、運(yùn)算符函數(shù)只能定義為類的成員函數(shù)D、在表達(dá)式中使用重載的運(yùn)算符相當(dāng)于調(diào)用運(yùn)算符重載函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(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ù)表中。18、下面程序中對(duì)一維坐標(biāo)點(diǎn)類Point進(jìn)行運(yùn)算符重載#include<iostream>usingnamespacestd;classPoint{public:Point(intval){x=val;}Point&operator++(){x++;rcturn*this;}Pointoperator++(int){Pointold=*this;++(*this);returnold;}IntGetX()const{returnx;}private:intx;};hatmain(){Pointa(10);cout<<(++a).GetX();cout<<a++.GetX();return0;}編譯和運(yùn)行情況是()。A、運(yùn)行時(shí)輸出1011B、運(yùn)行時(shí)輸出1111C、運(yùn)行時(shí)輸出1112D、編譯有錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是重載增1運(yùn)算符“++”。此題中,Point&operator++()重載的是前綴形式,而Pointoperator++(int)重載的是后綴形式。所以主函數(shù)中第1條輸出語(yǔ)句輸出11,此時(shí)a.x的值為11:第2條輸出語(yǔ)句,首先創(chuàng)建了一個(gè)P0int對(duì)象old保存自身,然后通過(guò)語(yǔ)句++(*this);調(diào)用前綴++的重載函數(shù),因?yàn)榉祷刂凳歉淖兦氨4娴膐ld對(duì)象,故仍輸出11。19、當(dāng)使用ifstream流類定義一個(gè)流對(duì)象并打開(kāi)一個(gè)磁盤(pán)文件時(shí),文件的默認(rèn)打開(kāi)方式為()。A、ios_base:finB、ios_base::in|ios_base::outC、iosbase::outD、iosbase::in&iosbase::out標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)于ifstream,默認(rèn)打開(kāi)模式是ios_base::in。ifstream只能用于輸入,它沒(méi)有提供任何用于輸出的操作。20、下列關(guān)于文件流的描述中,正確的是()。A、文件流只能完成針對(duì)磁盤(pán)文件的輸入和輸出B、建立一個(gè)文件流對(duì)象時(shí),必須同時(shí)打開(kāi)一個(gè)文件C、若輸入流要打開(kāi)的文件不存在,將建立一個(gè)新文件D、若輸出流要打開(kāi)的文件不存在,將建立一個(gè)新文件標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)于輸入文件流類ifstream,默認(rèn)的打開(kāi)模式是ios_base::in,當(dāng)以這種方式打開(kāi)文件而文件又不存在時(shí),通過(guò)fail()可測(cè)試打開(kāi)失?。ǚ祷刂禐閠rue),對(duì)于輸出文件流類ofstream,默認(rèn)的打開(kāi)模式是iosbase::out,當(dāng)以這種方式打開(kāi)文件而文件又不存在時(shí),將自動(dòng)建立新文件。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共20題,每題1.0分,共20分。)1、按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。A、隊(duì)列B、棧C、雙向鏈表D、二叉樹(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另…端稱為棧底。棧頂元素總是最后被插入的元素,也是最先被刪除的元素;棧底元素總是最先被插入的元素,也是最后才能被刪除的元素。即棧是按照“后進(jìn)先出”(LastInFirstOut,簡(jiǎn)稱LIFO)或“先進(jìn)后出”(FirstInLastOut,簡(jiǎn)稱FILO)的原則組織數(shù)據(jù)的。因此,棧也稱為“后進(jìn)先出表”或“先進(jìn)后出”表。2、下列描述中正確的是()。A、軟件交付使用后還需要再進(jìn)行維護(hù)B、軟件工具交付使用就不需要再進(jìn)行維護(hù)C、軟件交付使用后其生命周期就結(jié)束D、軟件維護(hù)是指修復(fù)程序中被破壞的指令標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通常將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。軟件生命周期分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。已交付的軟件投入運(yùn)行后,應(yīng)在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需要進(jìn)行必要而且可能的擴(kuò)充和刪改。3、有如下程序:#includeusingnamespacestd;classMusic{public:voidsetTitle(char*str){strcpy(title,str);}protected:chartype[10];private:chartitle[20];};classJazz:publicMusic{public:voidset(char*str){strcpy(type,“Jazz”);//①strcpy(rifle,str);//②}};下列敘述中正確的是()。A、程序編譯正確B、程序編譯時(shí)語(yǔ)句①出錯(cuò)C、程序編譯時(shí)語(yǔ)句②出錯(cuò)D、程序編譯時(shí)語(yǔ)句①和②都出錯(cuò)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查公用繼承和保護(hù)繼承對(duì)基類成員的訪問(wèn)屬性。公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問(wèn)屬性,其私有成員仍為基類私有。保護(hù)成員不能被類外訪問(wèn),但是可以被派生類的成員函數(shù)訪問(wèn)。Type成為派生類的保護(hù)成員,可以被派生類訪問(wèn),title仍為基類私有,派生類不能直接訪問(wèn)。所以答案為C。4、下列關(guān)于this指針的敘述中,正確的是()。A、任何與類相關(guān)的函數(shù)都有this指針B、類的成員函數(shù)都有this指針C、類的友元函數(shù)都有this指針D、類的非靜態(tài)成員函數(shù)才有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是this指針的使用。類的每一個(gè)成員函數(shù)都有一個(gè)隱含的常量指針,即this指針。類的靜態(tài)成員函數(shù)不能含有this指針,因?yàn)閠his指針是一個(gè)指向本對(duì)象的指針。5、下面屬于黑盒測(cè)試方法的是A、判定覆蓋B、條件覆蓋C、錯(cuò)誤推測(cè)法D、基本路徑測(cè)試標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:黑盒測(cè)試方法包括:等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測(cè)法、因果圖法、判定表驅(qū)動(dòng)法、正交試驗(yàn)設(shè)計(jì)法、功能圖法、場(chǎng)景法等。6、有如下類聲明:classMyBASE{intk;public:voidset(intn){k=n;}intget()const{returnk;}};classMyDERIVED:protectedMyBASE{protected:intj;public:voidset(intm,intn){MyBASE∷set(m);j=n;}intget()const{returnMyBASE∷get()+j;}};則類MyDERIVED中保護(hù)的數(shù)據(jù)成員和成員函數(shù)的個(gè)數(shù)是()。A、4B、3C、2D、1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生與繼承中的訪問(wèn)權(quán)限。protected派生:private->不可見(jiàn);protected->private;public->protected。7、屬于對(duì)象構(gòu)成成份的是A、規(guī)則B、屬性C、標(biāo)識(shí)D、方法(或操作)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象由屬性、方法和標(biāo)識(shí)構(gòu)成。8、以下程序輸出結(jié)果是():#include<iostream>usingnamespacestd;voidadd(intx,inty,int*z){*z=y+x;}intmain(){inta,b,c;add(8,4,&a);add(6,a,&b);add(a,b,&c);cout<<a<<","<<b<<","<<c<<endl;return0;}A、12,10,14B、12,18,30C、12,6,18D、12,14,30標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由主函數(shù)main入手,調(diào)用add函數(shù),其中第三個(gè)參數(shù)為引用,即傳值為地址。當(dāng)add函數(shù)中第三個(gè)參數(shù)改變時(shí),主函數(shù)中這個(gè)值也會(huì)改變。那么第一個(gè)add調(diào)用后a=12,所以第二個(gè)調(diào)用中a=12。調(diào)用后b=18。那么第三個(gè)調(diào)用后c=30。9、針對(duì)數(shù)組定義intdata[10];,下列表述中錯(cuò)誤的是()。A、用*data可訪問(wèn)到數(shù)組的首元素B、用data[9]可訪問(wèn)到數(shù)組的末元素C、用data[10]訪問(wèn)數(shù)組元素會(huì)超出數(shù)組邊界D、data共有10個(gè)元素,其首元素是data[1]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是數(shù)組和指針的概念。題目中data[10]共有10個(gè)元素,分別是data[0]、data[1]、data[2]、data[3]…data[9],首元素是data[0],所以選項(xiàng)D錯(cuò)誤;其他選項(xiàng)均正確。10、下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是()。A、∷運(yùn)算符不能重載B、類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載C、將運(yùn)算符作為非成員函數(shù)重載時(shí)必須定義為友元D、重載[]運(yùn)算符應(yīng)完成“下標(biāo)訪問(wèn)”操作標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱為運(yùn)算符函數(shù)。“運(yùn)算符重載”是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不可能通過(guò)重載創(chuàng)造出新的運(yùn)算符。11、若有定義語(yǔ)句“inti=2,j=3;”,則表達(dá)式i/j的結(jié)果是()。A、0B、0.7C、0.66667D、0.66666667標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由于變量i、j都是整型變量,所以兩者相除所得的商也是整型數(shù)據(jù)。12、建立一個(gè)有成員對(duì)象的派生類對(duì)象時(shí),各構(gòu)造函數(shù)體的執(zhí)行次序?yàn)?)。A、派生類、成員對(duì)象類、基類B、成員對(duì)象類、基類、派生類C、基類、成員對(duì)象類、派生類D、基類、派生類、成員對(duì)象類標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:建立派生類對(duì)象的時(shí)候,構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用的順序按照基類被繼承時(shí)候的順序(自左向右)。然后是執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中的聲明順序(自上而下),最后是執(zhí)行派生類的構(gòu)造函數(shù)。13、有如下兩個(gè)類定義classXX{private:doublex1;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubley1;potected:doubley2;public:doubley3;};在類YY中保護(hù)成員變量的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中派生類從基類保護(hù)繼承時(shí),基類的公有成員在派生類中改變?yōu)楸Wo(hù)成員,基類的保護(hù)成員在派生類中仍為保護(hù)成員。所以對(duì)于本題來(lái)說(shuō),YY類保護(hù)繼承自類XX,那么類XX中的公有成員x3和保護(hù)成員x2在派生類中都成為保護(hù)成員,再加上類YY中的保護(hù)成員y2,因此在派生類YY中保護(hù)成員的個(gè)數(shù)為3。14、有如下兩個(gè)類定義classxx{private:doublex1;protected:double:x2;public:doublex3;};classYY:protectedXX{private:doubley1;potected:doubley2;public:doubley3;};在類YY中保護(hù)成員變量的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中派生類從基類保護(hù)繼承時(shí),基類的公有成員在派生類中改變?yōu)楸Wo(hù)成員,基類的保護(hù)成員在派生類中仍為保護(hù)成員。所以對(duì)于本題來(lái)說(shuō),YY類保護(hù)繼承自類XX,那么類XX中的公有成員x3和保護(hù)成員x2在派生類中都成為保護(hù)成員,再加上類YY中的保護(hù)成員y2,因此在派生類YY中保護(hù)成員的個(gè)數(shù)為3。15、C++中的模板包括()。A、對(duì)象模板和函數(shù)模板B、對(duì)象模板和類模板C、函數(shù)模板和類模板D、變量模板和對(duì)象模板標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是模板。在C++語(yǔ)言中,模板有兩類:函數(shù)模板和類模板。16、在C++中,打開(kāi)一個(gè)文件時(shí)與該文件建立聯(lián)系的是()。A、流對(duì)象B、模板C、函數(shù)D、類標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,打開(kāi)一個(gè)文件時(shí)與該文件建立聯(lián)系的是流對(duì)象。17、有如下程序:#include<iostream>usingnamespacestd;classBase{public:virtualvoidfunction1(){tout<<’0’;}voidfunction2(){cout<<’1’;}};classDerived:publicBase{public:voidfunction1(){tout<<’2’;}voidfunction2(){cout<<’3’;}};intmain(){Base*p=newDerived();p->function1();p->function2();return0;};運(yùn)行時(shí)的輸出結(jié)果是()。A、01B、21C、03D、23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)function1()在基類Base中定義為虛成員函數(shù),而在派生類Dervied中重新進(jìn)行了定義,輸出字符2,函數(shù)function2()在基類Base中定義虛成員函數(shù),在主函數(shù)中使用指向基類的指針變量p訪問(wèn)function2()時(shí),輸出1。18、下列關(guān)于運(yùn)算符重載的敘述中,正確的是()。A、通過(guò)運(yùn)算符重載,可以定義新的運(yùn)算符B、有的運(yùn)算符只能作為成員函數(shù)重載C、若重載運(yùn)算符+,則相應(yīng)的運(yùn)算符函數(shù)名是+D、重載一個(gè)二元運(yùn)算符時(shí),必須聲明兩個(gè)形參標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。C++中,“=”、“[]”、“()”、“->”以及所有的類型轉(zhuǎn)換符只能作為成員函數(shù)重載,故B選項(xiàng)正確;運(yùn)算符重載只是賦予已有的運(yùn)算符多重含義,并不是定義新的運(yùn)算符;運(yùn)算符函數(shù)的函數(shù)名就是在運(yùn)算符前加上關(guān)鍵字operator。19、下面程序中對(duì)一維坐標(biāo)點(diǎn)類Point進(jìn)行運(yùn)算符重載#includeusingnamespacestd;classPoint{public:Point(intval){x=val;}Point&operator++(){x++;return*this;)Pointoperator++(int){Pointold=*this;++(*this);returnold;}IntGetX()const{returnx;}private:intx;};intmain(){Pointa(10);cout<<(++a).GetX();cout<A、運(yùn)行時(shí)輸出1011B、運(yùn)行時(shí)輸出1111C、運(yùn)行時(shí)輸出1112D、編譯有錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是重載增1運(yùn)算符“++”。此題中,Point&operator++()重載的是前綴形式,而Pointoperator++(int)重載的是后綴形式。所以主函數(shù)中第1條輸出語(yǔ)句輸出11,此時(shí)a.x的值為11;第2條輸出語(yǔ)句,首先創(chuàng)建了一個(gè)Point對(duì)象old保存自身,然后通過(guò)語(yǔ)句++(*this);調(diào)用前綴++的重載函數(shù),因?yàn)榉祷刂凳歉淖兦氨4娴膐ld對(duì)象,故仍輸出11。20、下列關(guān)于類模板的描述中,錯(cuò)誤的是()。A、類模板的成員函數(shù)都是模板函數(shù)B、可以為類模板參數(shù)設(shè)置默認(rèn)值C、類模板描述了一組類D、類模板中只允許有一個(gè)類型參數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類模板就是一系列相關(guān)類的模型或樣板,這些類的成員組成相同,成員函數(shù)的源代碼形式相同,所不同的只是所針對(duì)的類型(成員的類型以及成員函數(shù)的參數(shù)和返回值的類型)。一個(gè)類模板的格式是:template<<模板形參表聲明>><類聲明>,<模板形參表聲明>是由一個(gè)或多個(gè)模板形參組成。在定義類模板時(shí),可以為模板形參表聲明的最后若干個(gè)參數(shù)設(shè)置默認(rèn)值。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共17題,每題1.0分,共17分。)1、下列描述中正確的是()。A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B、數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)C、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系;數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示,一種邏輯結(jié)構(gòu)可以表示成多種存儲(chǔ)結(jié)構(gòu);而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。2、在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:E―R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來(lái)的聯(lián)系反映到數(shù)據(jù)庫(kù)中,即設(shè)計(jì)出表,所以屬于邏輯設(shè)計(jì)階段。3、下列描述中正確的是()。A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B、數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)C、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系;數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示,一種邏輯結(jié)構(gòu)可以表示成多種存儲(chǔ)結(jié)構(gòu);而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。4、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列的隊(duì)頭指針和尾指針都等于15,此循環(huán)隊(duì)列中元素的個(gè)數(shù)有兩種情況,第一種情況是隊(duì)頭指針和尾指針都是第一次到達(dá)15,此時(shí)元素個(gè)數(shù)為0;第二種情況是隊(duì)頭指針第一次到達(dá)15,而尾指針第二次到達(dá)15,此時(shí)元素個(gè)數(shù)為35。5、下列敘述中正確的是()。A、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為nB、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(n/2)C、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(log2n)D、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(nlog2n)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查的知識(shí)點(diǎn)為查找技術(shù)。順序查找的使用情況:①線性表為無(wú)序表;②表采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。二分法查找只適用于順序存儲(chǔ)的有序表,并不適用于線性鏈表。6、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、多元性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語(yǔ)句,其中不包括多態(tài)性。7、下列給字符數(shù)組進(jìn)行初始化中,正確的是()。A、chars1[]="12345abcd";B、chars2131="xyz";C、chars3[][3]={’a’,’x’,’y’};D、chars412131={"xyz","mnp"};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中定義二維數(shù)組時(shí)并賦值,則數(shù)組的行數(shù)可以省略不寫(xiě)。選項(xiàng)A)、B)、D)均是字符字符串初始化。。8、下面描述中不屬于數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn)的是()。A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨(dú)立性高標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)系統(tǒng)的基本特點(diǎn)有數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。9、下列敘述中,錯(cuò)誤的是()。A、false是一個(gè)邏輯型常量B、b是一個(gè)字符型常量C、365是一個(gè)int常量D、3.1415926是一個(gè)double常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符常量簡(jiǎn)稱字符,它以單引號(hào)作為起止符號(hào),中間有一個(gè)或若干個(gè)字符?;蛘咭浴埃堋遍_(kāi)頭的包括多個(gè)字符的字符序列也符合規(guī)定的字符常量。10、有如下函數(shù)模板:template<classT>Tsquare(Tx){returnx*x;}其中T是()。A、函數(shù)形參B、函數(shù)實(shí)參C、模板形參D、模板實(shí)參標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板。聲明一個(gè)函數(shù)模板的格式是:template<模板形參表聲明>函數(shù)聲明,{函數(shù)體}其中的<模板形參表聲明>是由一個(gè)或多個(gè)“模板形參”組成的,每個(gè)“模板形參”可具有以下幾種形式:typename參數(shù)名;class參數(shù)名;類型修飾參數(shù)名。11、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是符號(hào)常量的概念。符號(hào)常量必須在聲明的同時(shí)賦初值,故選項(xiàng)B錯(cuò)誤;選項(xiàng)c定義的是一個(gè)指向常量的指針變量,即通過(guò)指針不能改變它所指向的內(nèi)容,而它自己的內(nèi)容是可以改變的,C選項(xiàng)正確。12、有如下程序:#include<iostream>usingnamespacestd;intmain(){inta[6]={23,15,64,33,40,58};ints1,s2;s1=s2=a[0];for(int*p=al+1;p<a+6;p++){if(s1>*p)s1=*p;if(s2<*p)s2=*p;}cout<<s1+s2<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、23B、58C、64D、79標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量s1和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的值等于15,它小于23,所以把15賦給變量s1;執(zhí)行第二次for

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論