國家二級C++機試(選擇題)模擬試卷34(共195題)_第1頁
國家二級C++機試(選擇題)模擬試卷34(共195題)_第2頁
國家二級C++機試(選擇題)模擬試卷34(共195題)_第3頁
國家二級C++機試(選擇題)模擬試卷34(共195題)_第4頁
國家二級C++機試(選擇題)模擬試卷34(共195題)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級C++機試(選擇題)模擬試卷34(共9套)(共195題)國家二級C++機試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、有三個關(guān)系R、S和T如下:由關(guān)系R和S通過運算得到關(guān)系T,則所使用的運算為()。A、笛卡爾積B、交C、并D、自然連接標(biāo)準(zhǔn)答案:D知識點解析:自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以根據(jù)T關(guān)系中的有序組可知R與S進行的是自然連接操作。2、下列程序的輸出結(jié)果為2,橫線處應(yīng)添加語句()。#include<iostream>usingnamespacestd;classTestClass1{public:voidfun(){cout<<1;}};classTestClass2:publicTestClass1{public:voidfun(){cout<<2;}};intmain(){TestClass1*p=newTestClass2;p->fun();deletep;return0:}A、publicB、privateC、virtualD、protected標(biāo)準(zhǔn)答案:C知識點解析:由主函數(shù)main入手,定義TestClass1類的指針對象p指向派生類TestClass2。因為基類和派生類中都有fun函數(shù),題目要求輸出為2,就是基類對象訪問派生類中fun函數(shù)。通過虛函數(shù)與指向基類對象的指針變量的配合使用,就能方便調(diào)用同名函數(shù)。所以這里將基類中的fun函數(shù)聲明為virtual。并且當(dāng)一個成員函數(shù)被聲明為虛函數(shù)后,其派生類中的同名函數(shù)自動成為虛函數(shù)。3、有如下類定義:classPoint{intX一,y;public:Point():x一(O),Y一(O){)Point(intX,intY=0):X_(x),y.(y){}};若執(zhí)行語句Pointa(2),b[3],*c[4];則Point類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是()。A、2次B、3次C、4次D、5次標(biāo)準(zhǔn)答案:C知識點解析:此題考查的是類的構(gòu)造函數(shù)。構(gòu)造函數(shù)在對象創(chuàng)建的時候由系統(tǒng)自動調(diào)用。在Pointa(2),b[3],*c[4]語句中:a(2)是定義一個對象并傳入構(gòu)造函數(shù)2,所以此時會調(diào)用以此構(gòu)造函數(shù);b[3]是定義一個包含3個對象的數(shù)組,所以構(gòu)造函數(shù)會被調(diào)用3次;*c【4]定義的是4個Point類對象指針的數(shù)組,它并沒有創(chuàng)建任何Point對象,所以不調(diào)用構(gòu)造函數(shù)。4、有如下類和對象的定義:classConstants{public;staticdoublegetPl0{return3.1416;}};Constantsconstants;下列各組語句中,能輸出3.1416的是()。A、cout<getPI();和cout<B、cout<C、cout<getPI();和cout<getPl();D、cout<標(biāo)準(zhǔn)答案:D知識點解析:此題考查的是靜態(tài)成員函數(shù)的引用。getPI()是類Constants的靜態(tài)成員函數(shù)。引用靜態(tài)成員函數(shù)可以有兩種形式:一是通過類名直接進行調(diào)用,例如類名∷靜態(tài)成員函數(shù)名;另一種是用類的任何對象名進行調(diào)用其作用僅是通過對象名間接的指出類名,例如constants.getPI()選項D即是這種調(diào)用方式。5、執(zhí)行下列語句段后,輸出字符“木”的個數(shù)是()。for(inti=50;i>1;i一=2)cout<<‘*’;A、24B、25C、26D、50標(biāo)準(zhǔn)答案:B知識點解析:本題考查for循環(huán)語句,題目中每執(zhí)行完循環(huán)體后,i都會減2,那么只有50到2之間的偶數(shù)才能輸出“*”,所以總共輸出25次。6、程序調(diào)試的任務(wù)是A、設(shè)計測試用例B、驗證程序的正確性C、發(fā)現(xiàn)程序中的錯誤D、診斷和改正程序中的錯誤標(biāo)準(zhǔn)答案:D知識點解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。它與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟什中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于一定的調(diào)試工具去執(zhí)行并找出錯誤的具體位置。軟件測試貫穿整個軟件生命期,調(diào)試主要在開發(fā)階段。7、下列關(guān)于虛函數(shù)的描述中,正確的是()。A、虛函數(shù)是一個static類型的成員函數(shù)B、虛函數(shù)是一個非成員函數(shù)C、基類中采用virtual說明一個虛函數(shù)后,派生類中定義相同原型的函數(shù)時可不必加virtual說明D、派生類中的虛函數(shù)與基類中相同原型的虛函數(shù)具有不同的參數(shù)個數(shù)或類型標(biāo)準(zhǔn)答案:C知識點解析:此題考查虛函數(shù)的概念。在成員函數(shù)聲明的前面加上virtual修飾,即把該函數(shù)聲明為虛函數(shù)。虛函數(shù)只能是類中的一個成員函數(shù),但不能是靜態(tài)成員函數(shù),所以選項A和B錯誤;在派生類中重新定義虛函數(shù)時必須有相同的函數(shù)類型,包括函數(shù)的返回類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型的順序必須相同。故選項D錯誤。8、下列字符串中不能作為C++標(biāo)識符使用的是()。A、WHILEB、userC、_lvarD、9stars標(biāo)準(zhǔn)答案:D知識點解析:在C++中變量名的命名必須遵循一定的原則,其中之一即是第一個字符必須是字母或者下劃線。9、有如下程序段:inti=l;while(1){i++:if(i==10)break;if(i%2==0)cout<<’*’;}執(zhí)行這個程序段輸出字符木的個數(shù)是()。A、10B、3C、4D、5標(biāo)準(zhǔn)答案:C知識點解析:這段程序代碼的功能是計算在1~10(包括10)之間偶數(shù)i的個數(shù),如果整數(shù)i為偶數(shù),則輸出一個‘*’,共有4個偶數(shù),所以共輸出4個‘*’。10、有如下程序:#include<iostream>usingnamespacestd;intmain(){hatsum;for(inti=0;i<6;i+=3){sum=i;for(intj=i;j<6;j++)sum+=j;}cout<<sum<<end1;return0:}運行時的輸出結(jié)果是()。A、3B、10C、12D、15標(biāo)準(zhǔn)答案:D知識點解析:由題干可以知道,外層循環(huán)會進行兩次,且第一次的結(jié)果我們可以不去理會和計算,讀者仔細觀察能發(fā)現(xiàn),在第一次的循環(huán)以后sum和j都會被重新賦值,所以外層第二次循環(huán)如下:此時i=3,sum=3內(nèi)層循環(huán)開始如下:j=3,j<6,sum=6;j=4,j<6,sum=10,j=5,j<6,sum=15,j=6退出內(nèi)層循環(huán)。得到sum=15。11、已知函數(shù)f的原型是“voidflint*x,int&y);”,變量v1、v2的定義是“intv1,v2;”,下列調(diào)用語句中,正確的是()。A、f(v1,v2);B、f(v1,&v2);C、f(&v1,v2);D、f(&v1,&v2);標(biāo)準(zhǔn)答案:C知識點解析:在函數(shù)f的形參表達式中第一個形參為整型指針變量,第二個為整型引用變量,所以用實參v1的指針初始化第一個形參,用實參v2初始化第二形參。12、下列關(guān)于類定義的說法中,正確的是()。A、類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明B、類成員的缺省訪問權(quán)限是保護的C、數(shù)據(jù)成員必須被聲明為私有的D、成員函數(shù)只能在類體外進行定義標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是類的定義。類中缺省的訪問權(quán)限是私有的,所以選項B錯誤;類的數(shù)據(jù)成員和成員函數(shù)的訪問控制權(quán)限均可被聲明為公有、私有和保護中的一種,所以選項C錯誤;成員函數(shù)的實現(xiàn)可以在類體內(nèi)定義,也可以在類體外定義,所以選項D錯誤。13、下列函數(shù)模版中的定義中,合法的是()。A、templateTabs(Tx){returnx<07一x:x;)B、templateclassTabs(Tx){retumxC、templateTabs(Tx){retumx<07一x:x;)D、templateTabs(Tx){returnx標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是函數(shù)模板。聲明一個函數(shù)模板的格式是:template<模板形參表聲明>函數(shù)聲明,其中的<模板形參表聲明>是由一個或多個“模板形參”組成的,每個“模板形參”可具有以下幾種形式:typename參數(shù)名:class參數(shù)名;類型修飾參數(shù)名。14、Sample是一個類,執(zhí)行下面語句后,調(diào)用Sample類的構(gòu)造函數(shù)的次數(shù)是()。Samplea[2],*P=newSample;A、0B、1C、2D、3標(biāo)準(zhǔn)答案:D知識點解析:在C++中,聲明一個類對象時,編譯程序需要調(diào)用類的構(gòu)造函數(shù)為對象分配存儲空間,進行必須的初始化。在本題的這條語句中,聲明了一個Sample類型的包含2個數(shù)組元素的數(shù)組a[2],一個指向類Sample對象的指針P,所以Sample類的構(gòu)造函數(shù)共調(diào)用了3次。15、有如下類定義:c1assPoint{intx_,y_;public:Point():x_(0),y_(0){}Point(intx,inty=0):x_(x),y_(y){}};若執(zhí)行語句Pointa(2),b[3],*c[4];則Point類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是()。A、2次B、3次C、4次D、5次標(biāo)準(zhǔn)答案:C知識點解析:此題考查的是類的構(gòu)造函數(shù)。構(gòu)造函數(shù)在對象創(chuàng)建的時候由系統(tǒng)自動調(diào)用。在Pointa(2),b[3],*c[4]語句中:a(2)是定義一個對象并傳入構(gòu)造函數(shù)2,所以此時會調(diào)用以此構(gòu)造函數(shù):b[3]是定義一個包含3個對象的數(shù)組,所以構(gòu)造函數(shù)會被調(diào)用3次;*c[4]定義的是4個Point類對象指針的數(shù)組,它并沒有創(chuàng)建任何Point對象,所以不調(diào)用構(gòu)造函數(shù)。16、有如下程序:#inc1ude<iostream>#inc1ude<cmath>usingstd::cout;classPoint{public:frienddoubledistance(constPoint&p);//p距原點的距離Point(intxx=0,intyy=0):x(xx),y(yy){}//①private:intx,y;};doubledistance(constPoint&p){//②returnsqrt(p.x*p.x+p.y*p,y);}intmain(){Pointpl(3,4);cout<<distance(pl);//③return0;}下列敘述中正確的是()。A、程序編譯正確B、程序編譯時語句①出錯C、程序編譯時語句②出錯D、程序編譯時語句③出錯標(biāo)準(zhǔn)答案:A知識點解析:這段程序是正確的,計算p距離原點的距離。語句①是類Point的構(gòu)造函數(shù),在構(gòu)造函數(shù)中給變量xx和yy賦初值0。語句②是計算點p距原點的距離的函數(shù)distance。語句③是計算點pl距離原點的距離并輸出。17、下列代碼段聲明了3個類classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列關(guān)于這些類之間關(guān)系的描述中,錯誤的是()。A、類Person是類Undergraduate的基類B、類Undergraduate從類student公有繼承C、類student是類Person的派生類D、類Undergraduate是類Person的派生類標(biāo)準(zhǔn)答案:B知識點解析:Student類公有繼承自Person類,Undergraduate類私有繼承自Student類。所以Undergraduate類是從Student類私有繼承的。18、有如下程序:#include<iostrcam>usingnamespacestd;classMusic{public:voidsetTitle(char*str){strcpy(title,str);}protected:Chartype[10];private:chartitle[20];};classJazz:publicMusic{public:voidset(char*str){strcpy(type,"Jazz");//①strcpy(title,str);//②}};下列敘述中正確的是()。A、程序編譯正確B、程序編譯時語句①出錯C、程序編譯時語句②出錯D、程序編譯時語句①和②都出錯標(biāo)準(zhǔn)答案:C知識點解析:派生類Jazz不能訪問基類Music中的私有成員title。19、有如下程序:#includeusingnamespacestd;className{charname[20];public:Name(){strcpy(name,"");cout<<’?’;}Name(char*fame){strcpy(name,fname);cout<<’?’;}};intmain(){Namenames[3]={Name("張三"),Name("李四")};return0:}運行此程序輸出符號?的個數(shù)是()。A、0B、1C、2D、3標(biāo)準(zhǔn)答案:D知識點解析:類Name有兩個構(gòu)造函數(shù),在默認(rèn)構(gòu)造函數(shù)中,給字符數(shù)組name賦空值,并輸出一個?;在帶有字符指針的構(gòu)造函數(shù)中,把字符指針fname所指的字符串賦給字符數(shù)組name,并輸出一個?。所以在主函數(shù)中,定義了Name的三個對象,name[0]、name[1]、name[2],在創(chuàng)建這三個對象時,會調(diào)用構(gòu)造帶參數(shù)的函數(shù)對前兩個對象賦值,調(diào)用默認(rèn)的構(gòu)造函數(shù)把name[2]的值賦為空值。這時會輸出三個“?”符號。20、有如下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass(){++count;}~MyClass(){--count;}staticintgetCount(){returncount;}private:staticintcount;};intMyClass::count=0;intmain(){MyClassobj;cout<<o(jì)bj.getCount();MyClass*ptr=newMyClass;cout<<MyClass::getCount();deleteptr;cout<<MyClass::getCount();return0;}程序的輸出結(jié)果是()。A、121B、232C、221D、122標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是靜態(tài)成員。靜態(tài)成員的特性是不管這個類創(chuàng)建了多少對象,它的靜態(tài)成員都只有一個拷貝副本,這個副本被所有屬于這個類的對象共享。題目中,首先定義了obj對象,其構(gòu)造函數(shù)使靜態(tài)數(shù)據(jù)成員cout增1,故輸出“1”;然后通過指針動態(tài)創(chuàng)建了Myclass類的對象,構(gòu)造函數(shù)被再次調(diào)用,count變?yōu)?,輸出“2”;接著刪除創(chuàng)建的MyClass類的對象,調(diào)用析構(gòu)函數(shù),count減1變?yōu)?,輸出“1”。故最終輸出結(jié)果是121。21、有類定義如下:classType{public:Type(inti=0);Typeoperator-(int);friendTypeoperator+(Type,Type);private:intval;};若有對象定義Typec1;則下列語句序列中,錯誤的是()。A、Type(3)+c1;B、c1+Type(3);C、3-c1;D、c1-3;標(biāo)準(zhǔn)答案:C知識點解析:由于在類聊e中對“-”進行了重載,所以根據(jù)“-”重載的形式定義,c1-3是正確的,而3-c1是錯誤的表達式。22、有如下程序:#include<iostream>usingnamespacestd;classMountain{intheight;public:Mountain(inth=-):height(h){}virtualehar*GetName()const{return’’山’’;}intGetHeight()const{returnheight;}};classLushan:publicMountain{Public:Lushan(intd):Mountain(d){}Char*GetName()const{return’’廬山’’;}};intmain(){Mountain*p=newLushan(1000);cout<<p->GetName()<<’海拔’’<<p->GetHeight()<<’’米’’;return0;}運行這個程序的輸出結(jié)果是()。A、廬山海拔1000米B、廬山海拔0米C、山海拔1000米D、山海拔0米標(biāo)準(zhǔn)答案:A知識點解析:在基類Mountain中定義了虛函數(shù)GetName()輸出字符串“山”,而在派生類Lushan中對虛函數(shù)GetName()進行了重新定義,輸出字符串“廬山”。在主函數(shù)中對派生類中的虛函數(shù)GetName()進行了多態(tài)調(diào)用,此時調(diào)用的是派生類中重新定義的GetName(),輸出字符字符串“廬山”。23、若目前D盤根目錄下并不存在test.txt文件,則下列打開文件方式不會自動創(chuàng)建test.txt文件的是()。A、ifstreamfin;fin.open("d:\\test.txt",ios_base::in);B、fstreamfio;fio.open("d:\\test.txt",ios_base::out);C、ofstreamfout;fout.open("d:\\test.txt",ios_base::out);D、ofstreamfout;fout.open("d:\\test.txt",ios_base::app);標(biāo)準(zhǔn)答案:A知識點解析:如果以isobase::in模式打開文件但文件又不存在時,可以通過failo測出文件打開失敗,不會自動創(chuàng)建文件。24、模板對類型的參數(shù)化提供了很好的支持,因此()。A、類模板的主要作用是生成抽象類B、類模板實例化時,編譯器將根據(jù)給出的模板實參生成一個類C、在類模板中的數(shù)據(jù)成員都具有同樣類型D、類模板中的成員函數(shù)都沒有返回值標(biāo)準(zhǔn)答案:B知識點解析:此題考查了類模板的概念。在定義對象的過程中,系統(tǒng)會自動地根據(jù)需要生成相應(yīng)的類定義,這種依據(jù)類模板生成具體類的過程稱為類模板的實例化。25、下列關(guān)于輸入輸出流的敘述中,正確的是()。A、一個文件流可以與一個數(shù)據(jù)文件相聯(lián)系B、cin是專門從鍵盤輸入數(shù)據(jù)的輸入流類C、流運算符<<用來從輸入流中讀取數(shù)據(jù)D、寬度設(shè)置的效果永久有效標(biāo)準(zhǔn)答案:A知識點解析:當(dāng)程序與外界環(huán)境進行信息交換時,存在著兩個對象,一個是程序中的流對象,另一個是文件對象。程序建立一個流對象,并指定這個流對象與某個文件對象建立連接,程序操作流對象,流對象通過文件系統(tǒng)對所連接的文件對象產(chǎn)生作用。國家二級C++機試(選擇題)模擬試卷第2套一、選擇題(本題共18題,每題1.0分,共18分。)1、算法的空間復(fù)雜度是指()。A、算法程序的長度B、算法程序中的指令條數(shù)C、算法程序所占的存儲空間D、算法執(zhí)行過程中所需要的存儲空間標(biāo)準(zhǔn)答案:D知識點解析:算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術(shù),以便盡量減少不必要的額外空間。2、下列關(guān)于棧敘述正確的是A、棧頂元素最先能被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠不能被刪除D、以上三種說法都不對標(biāo)準(zhǔn)答案:A知識點解析:棧是先進后出的線性表,棧頂?shù)脑刈钕缺粍h除,棧底的元素最后被刪除。3、構(gòu)成計算機軟件的是()。A、源代碼B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標(biāo)準(zhǔn)答案:D知識點解析:軟件由兩部分組成:一是機器可執(zhí)行的程序和數(shù)據(jù);二是機器不可執(zhí)行的,與軟件開發(fā)、運行、維護、使用等有關(guān)的文檔。4、下面不屬于軟件工程的3個要素是()。A、工具B、過程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識點解析:軟件工程的3個要素是工具、過程和方法。5、下面程序輸出的結(jié)果為()。#tnclude<iostream.h>voidfun(inta,intb){inttemp;temp=a;a=b;b=temp;}voidmain(){intm,n;m=1;n=2;fun(m,n);cout<<m<<""<<n<<endl;}A、12B、21C、22D、程序有錯誤標(biāo)準(zhǔn)答案:A知識點解析:函數(shù)fun中定義的參數(shù)a和b為形式參數(shù),它們并不是實際存在的數(shù)據(jù),只有在發(fā)生函數(shù)調(diào)用時才被分配內(nèi)存空間,結(jié)束后,形參所占有的內(nèi)存單元也被釋放。并且函數(shù)fun沒有返回值,它做的交換操作,并不能影響實際參數(shù)m和n。所以輸出值保持不變,仍然是1和2,即輸出:12。6、在軟件設(shè)計中不使用的工具是()。A、系統(tǒng)結(jié)構(gòu)圖B、PAD圖C、數(shù)據(jù)流圖(DFD圖)D、程序流程圖標(biāo)準(zhǔn)答案:C知識點解析:在軟件開發(fā)的各個階段經(jīng)常會使用到一些圖形工具,如在需求分析階段使用數(shù)據(jù)流圖(DFD圖),在概要設(shè)計階段使用系統(tǒng)結(jié)構(gòu)圖,在詳細設(shè)計階段使用程序流程圖、N-S圖或者PAD圖等。7、兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為()。A、耦合度B、內(nèi)聚度C、復(fù)雜度D、數(shù)據(jù)傳輸特性標(biāo)準(zhǔn)答案:A知識點解析:模塊的獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系較少且接口簡單。衡量軟件的模塊獨立性使用:內(nèi)聚性和耦合性兩個定性度量標(biāo)準(zhǔn)。內(nèi)聚性是對一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量:耦合性是對模塊間互相連接的緊密程度的度量。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。8、類的析構(gòu)函數(shù)的作用是()。A、一般成員函數(shù)B、類的初始化C、對象的初始化D、釋放由對象所占用的資源標(biāo)準(zhǔn)答案:D知識點解析:類的在撤銷對象時,系統(tǒng)會自動調(diào)用類的析構(gòu)函數(shù),析構(gòu)函數(shù)用來釋放由對象所占用的資源。9、類MyClass的定義如下:classMyClass{public:MyClass(){value=0;}SetVariable(inti){value=i;}private;intvalue;);則對下列語句序列正確的描述是()。MyClass*P,my;p=&my;A、語句p=&my;是把對象my賦值給指針變量PB、語句Myaass*p,my;會調(diào)用兩次類MyClass的構(gòu)造函數(shù)C、對語句*p.SetVariable(5)的調(diào)用是正確的D、語句p->SetVariable(5)與語句my.SetVariable(5)等價標(biāo)準(zhǔn)答案:D知識點解析:選項A),語句p=&my;是把對象my的地址值賦值給指針變量p;選項B),語句MyClass*p,my;,由于p只是一個指向?qū)ο蟮闹羔槪虼硕x指針p不調(diào)用構(gòu)造函數(shù),所以此語句只調(diào)用一次構(gòu)造函數(shù);對成員函數(shù)的引用可以通過兩種形式:指針->成員函數(shù)(形參表)或者對象名.成語函數(shù)名(形參表),故選項C)錯誤,選項D)正確。10、已知枚舉類型定義語句為:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};則下列敘述中錯誤的是()。A、枚舉常量NAME的值為1B、枚舉常量NUMBER的值為1C、枚舉常量MINUS的值為6D、枚舉常量PRINT的值為10標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是C+十語言的數(shù)據(jù)類型。第一個枚舉常量的值為0:允許程序顯示的定義中指定部分或全部枚舉常量的值,枚舉常量默認(rèn)時,在前一枚舉常量值的基礎(chǔ)上以此增1。11、將前綴運算符“__”重載為非成員函數(shù),下列原型中,能正確用于類中說明的是()。A、Decr&operator__(int);B、Decroperator__(Decr&,int);C、friendDecr&operator__(Decr&);D、friendDecroperator__(Decr&,int);標(biāo)準(zhǔn)答案:C知識點解析:因為要作為非成員函數(shù)重載,所以加friend,作為前綴操作,其返回的操作結(jié)果是對該變量的引用,所以類型為Deer&,操作數(shù)出現(xiàn)在參數(shù)表中,應(yīng)聲明為引用,即Deer&。12、有如下程序:#inc1ude<iostream>usingnamespacestd;voidfl(int&x){x++;}voidf2(intx){++x;}intmain(){intx=10,y=12;f1(x);f2(y);cout<<x+y<<end1;return0;}運行這個程序的輸出結(jié)果是()。A、22B、23C、24D、25標(biāo)準(zhǔn)答案:B知識點解析:在函數(shù)fl(irit&x){XH,)中,是對變量x的引用,所以當(dāng)在maln函數(shù)中執(zhí)行“n(x);”語句后,變量x的值等于11,而在函數(shù)voidf2(intx){++x;)中,對變量x的傳遞調(diào)用,在main函數(shù)中執(zhí)行“f2(y);”語句后,變量y的值仍然等于12,所以輸出x+y的值等于23。13、有如下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intx):Val(x){}voidSet(intx){val=x;}voidPrint()const{cout<<’’val=’’<<val<<’\t’;}private:intval;};intmain(){constMyClassobj1(10);MyClassobj2(20);obj1.Print();//語句1obj2.Print();//語句2obj1.Set(20);//語句3obj2.Set(30);//語句4return0;}其主函數(shù)中錯誤的語句是()。A、語句1B、語句2C、語句3D、語句4標(biāo)準(zhǔn)答案:C知識點解析:在創(chuàng)建類對象obj1(10)時,前面有關(guān)鍵字const,所以當(dāng)語句3調(diào)用obj1的成員函數(shù)試圖修改其私有成員的數(shù)值的時候,會編譯出錯。14、對于通過公有繼承定義的派生類,若其成員函數(shù)可以直接訪問基類的某個成員,說明該基類成員的訪問權(quán)限是()。A、公有或私有B、私有C、保護或私有D、公有或保護標(biāo)準(zhǔn)答案:D知識點解析:通過公有繼承定義的派生類,其成員函數(shù)可以訪問基類的公有成員和保護成員,但不能訪問基類的私有成員。15、有如下程序:#include<iostream>usingnamespacestd;classCD{public:~CDO{cout<<’C’;}private:charname[80];};hatmain(){CDa,*b,d[2];return0;}運行時的輸出結(jié)果是()。A、CCCCB、CCCC、CCD、C標(biāo)準(zhǔn)答案:B知識點解析:在這個程序的主函數(shù)中定義了3個CD類的實例對象a,d[0],d[1]和一個指向CD類對象的指針變量b,所以當(dāng)程序結(jié)束時,執(zhí)行CD的析構(gòu)函數(shù)輸出字符C三次。16、下列是重載乘法運算符的函數(shù)原型聲明,其中錯誤的是()。A、MyClassoperator*(double,double);B、MyClassoperator*(double,MyClass);C、MyClassoperator*(MyClass,double);D、MyClassoperator*(MyClass,MyClass);標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是運算符重載。本題中,選項A重載運算符’’*’’使用的形參是兩個double,而系統(tǒng)中的’’*’’運算原本就能計算兩個double,所以這樣違反了重載函數(shù)的原則,當(dāng)執(zhí)行a*b這樣的表達式時,系統(tǒng)不能識別是否執(zhí)行運算符重載函數(shù)。故答案是A選項。17、關(guān)于在調(diào)用模板函數(shù)時模板實參的使用,下列表述正確的是()。A、對于虛擬類型參數(shù)所對應(yīng)的模板實參,如果能從模板函數(shù)的實參中獲得相同的信息,則都可以省略B、對于虛擬類型參數(shù)所對應(yīng)的模板實參,如果它們是參數(shù)表中的最后的若干個參數(shù),則都可以省略C、對于虛擬類型參數(shù)所對應(yīng)的模板實參,若能夠省略則必須省略D、對于常規(guī)參數(shù)所對應(yīng)的模板實參,任何情況下都不能省略標(biāo)準(zhǔn)答案:D知識點解析:此題考查的是模板實參的省略。模板實參在以下集中情況中不能省略:從模板函數(shù)實參表獲得的信息有矛盾;需要獲得特定類型的返回值,而不管參數(shù)的類型如何;虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中:函數(shù)模板含有常規(guī)形參。18、下列關(guān)于文件流的描述中,正確的是()。A、文件流只能完成針對磁盤文件的輸入和輸出B、建立一個文件流對象時,必須同時打開一個文件C、若輸入流要打開的文件不存在,將建立一個新文件D、若輸出流要打開的文件不存在,將建立一個新文件標(biāo)準(zhǔn)答案:D知識點解析:對于輸入文件流類ifstream,默認(rèn)的打開模式是ios_base::in,當(dāng)以這種方式打開文件而文件又不存在時,通過fail()可測試打開失?。ǚ祷刂禐閠rue),對于輸出文件流類ofstream,默認(rèn)的打開模式是iosbase::out,當(dāng)以這種方式打開文件而文件又不存在時,將自動建立新文件。國家二級C++機試(選擇題)模擬試卷第3套一、選擇題(本題共20題,每題1.0分,共20分。)1、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、樹C、隊列D、二叉樹標(biāo)準(zhǔn)答案:A知識點解析:棧是一種限定在一端進行插入與刪除的線性表。在主函數(shù)調(diào)用予函數(shù)時,要首先保存主函數(shù)當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子函數(shù),把子函數(shù)的運行結(jié)果返回到主函數(shù)調(diào)用子函數(shù)時的位置,主函數(shù)再接著往下執(zhí)行,這種過程符合棧的特點。所以一般采用棧式存儲方式。2、有如下程序:#include<iostream>usingnamespacestd;classsample{private:intx,y;public:sample(inti,intj){x=i:y=j;}voiddisp(){cout<<"disp1"<<endl;}voiddispoconst{cout<<"disp2"<<endl;}};intmain(){constsamplea(1,2);a.disp();return0:}該程序運行后的輸出結(jié)果是()。A、disp1B、disp2C、disp1disp2D、程序編譯時出錯標(biāo)準(zhǔn)答案:B知識點解析:因為對象a被定義為常對象,所以a.disp()語句調(diào)用的是類的常成員函數(shù)voiddisp()const,輸出的結(jié)果是disp2。3、軟件生命周期中的活動不包括()。A、市場調(diào)研B、需求分析C、軟件測試D、軟件維護標(biāo)準(zhǔn)答案:A知識點解析:軟件的生命周期描述了軟件從產(chǎn)生到最終消亡的全過程,生命周期中的活動包括需求分析、軟件設(shè)計(分為概要設(shè)計和詳細設(shè)計)、軟件實現(xiàn)、軟件測試和軟件維護,不包括市場調(diào)研。4、下列有關(guān)繼承和派生的敘述中,正確的是()。A、派生類不能訪問基類的保護成員B、作為虛基類的類不能被實例化C、派生類應(yīng)當(dāng)向基類的構(gòu)造函數(shù)傳遞參數(shù)D、虛函數(shù)必須在派生類中重新實現(xiàn)標(biāo)準(zhǔn)答案:C知識點解析:派生類可以訪問基類的保護成員,而不能訪問基類的私有成員。作為虛基類的類可以被實例化。虛函數(shù)如果沒有派生類中重新實現(xiàn),那么仍然使用基類的成員函數(shù)。5、下列描述中錯誤的是()。A、在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致B、數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題C、數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫D、數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持標(biāo)準(zhǔn)答案:A知識點解析:在數(shù)據(jù)庫系統(tǒng)中,物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式等)的改變,如存儲設(shè)備的更換、物理存儲的更換、存取方式改變等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化。6、在滿足實體完整性約束的條件下()。A、一個關(guān)系中應(yīng)該有一個或多個候選關(guān)鍵字B、一個關(guān)系中只能有一個候選關(guān)鍵字C、一個關(guān)系中必須有多個候選關(guān)鍵字D、一個關(guān)系中可以沒有候選關(guān)鍵字標(biāo)準(zhǔn)答案:A知識點解析:在關(guān)系數(shù)據(jù)庫中,實體完整性的概念是主屬性不能為空。在滿足實體完整性的前提下,必須在關(guān)系中存在主屬性,也就是在關(guān)系中應(yīng)該有候選關(guān)鍵字。一個關(guān)系中可以有一個或者多個候選關(guān)鍵字。7、數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。A、控制流B、加工C、存儲文件D、源和潭標(biāo)準(zhǔn)答案:A知識點解析:數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,它由一些特定的圖符構(gòu)成,包括4個方面,即加工、數(shù)據(jù)流、存儲文件、源和潭。8、下列符號中可以用作C++標(biāo)識符的是()。A、_radiusB、foo~barC、elseD、3room標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是C++語言中標(biāo)識符的定義。標(biāo)識符有字母、數(shù)字和下劃線構(gòu)成,其第一個字母必須是字母或下劃線;定義標(biāo)識符時,不要采用系統(tǒng)的保留字。9、當(dāng)派生類繼承一個基類時,默認(rèn)的繼承方式為()。A、publicB、protectedC、privateD、不確定標(biāo)準(zhǔn)答案:C知識點解析:派生類繼承一個基類時,默認(rèn)的繼承方式為private。10、有如下類的定義。橫線處的語句是()。classMyClass{public:MyClass(inta=0,intb=0){X=a;Y=b:}voidChange()const{X-=10;Y+=10;}private:intX,Y;};A、staticB、constC、mutableD、不需要填入內(nèi)容標(biāo)準(zhǔn)答案:C知識點解析:C++中const關(guān)鍵字用來表示一個常量,同時const也用來修飾函數(shù)。這兩個概念需要明確:const所修飾的函數(shù)只能是類的成員函數(shù),因為const所修飾的函數(shù)中,要由編譯器負(fù)責(zé)保護類的成員變量不被修改。而相對的,mutable則是用來修飾類的成員變量,讓該變量在const所修飾的成員函數(shù)中可以被修改。而且const修飾的函數(shù)只能是類的成員函數(shù),mutable修飾的變量只能是類的成員變量。11、有如下程序:#includeusingnamespacestd;classB{public:B(intxx):x(xx){++count;x+=10;}virtualvoidshow()const{cout<*ptr=newD(10,20);ptr->show();deleteptr;return0;}運行時的輸出結(jié)果是()。A、1_120B、2_120C、1_20D、2_20標(biāo)準(zhǔn)答案:B知識點解析:在主函數(shù)中定義了一個基類B的指針變量ptr,并調(diào)用類D的構(gòu)造函數(shù)創(chuàng)建了類D的實例對象,因為變量count是全局變量所以在調(diào)用基類B的構(gòu)造函數(shù)給其值加1,在調(diào)用D的構(gòu)造函數(shù)時給其值加1,因而輸出其值等于2,在類D的構(gòu)造函數(shù)中給成員變量y的值加100,所以其等于120并輸出。12、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5};下列語句中輸出結(jié)果不是2的是()。A、cout<<*arr+1<<endl;B、cout<<*(arr+1)<<endl;C、cout<<arr[1]<<endl;D、cout<<*art<<endl;標(biāo)準(zhǔn)答案:D知識點解析:因為一維數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項D中,輸出*arr的值就是數(shù)組art[5]中第一數(shù)組元素1。其他選項都輸出數(shù)組art[5]的第二元素2。13、要定義整型數(shù)組x,使之包括初值為0的三個元素,下列語句中錯誤的是()。A、intx[3]={0,0,0};B、intx[]={0};C、staticintx[3]={0};D、intx[]={0,0,0);標(biāo)準(zhǔn)答案:B知識點解析:當(dāng)數(shù)組聲明時沒有給出數(shù)組的大小,但是有初始化列表時,數(shù)組的大小就由列表中元素的個數(shù)來確定。對于選項B定義數(shù)組x時,沒有給出數(shù)組的大小,初始化時只給出了一個元素0。所以數(shù)組x只包含一個元素為0的元素。14、下列關(guān)于賦值運算符“=”重載的敘述中,正確的是()。A、賦值運算符只能作為類的成員函數(shù)重載B、默認(rèn)的賦值運算符實現(xiàn)了“深層復(fù)制”功能C、重載的賦值運算符函數(shù)有兩個本類對象作為形參D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運算符標(biāo)準(zhǔn)答案:A知識點解析:賦值運算符“=”只能作為成員函數(shù)重載。15、已知函數(shù)f的原型是voidf(int*a,long&b);,變量v1、v2的定義是:intv1;loongv2;下列調(diào)用語句中正確的是()。A、f(vl,&v2);B、f(v1,v2);C、f(&v1,&v2);D、f(&v1,v2);標(biāo)準(zhǔn)答案:D知識點解析:此題考查的是函數(shù)的調(diào)用。因為變量的定義是intv1;longv2,而函數(shù)f()的第一個參數(shù)是指針,第二個參數(shù)是引用,所以選項D為正確引用。16、有如下程序:#inc1ude<iostream>usingnamespacestd;classMedia{public:voidName();voidShow();protected:intpage;};classBook:privateMedia{public:voidPrint(){cout<<page<<endl;}voidShow(){Media::Show();)//①};intmain(){BookBible;Bible.Name();//②Bible.Print();//③Bible.Show();//④return0:}編譯時有錯誤的是()。A、語句①B、語句②C、語句③D、語句④標(biāo)準(zhǔn)答案:B知識點解析:類Book私有繼承自類Media,所以類Media中的公有成員函數(shù)Name()在繼承類Book中變成了私有成員函數(shù),因而類Book的對象Bible不能訪問私有成員函數(shù)Name()。17、有如下程序:#includeusingnamespacestd;classAA{public:AA(){cout<<ˊ1ˊ;}};classBB:publicAA{intk:public:BB():k(0){cout<<ˊ2ˊ;}BB(intn):k(n){cout<<ˊ3ˊ;}};intmain(){BBb(4),c;return0:}運行時的輸出結(jié)果是()。A、1312B、132C、32D、1412標(biāo)準(zhǔn)答案:A知識點解析:在基類AA的默認(rèn)構(gòu)造函數(shù)中,輸出字符‘1’,在繼承類BB的默認(rèn)構(gòu)造函數(shù)中,輸出字符‘2’,在帶有參數(shù)n的構(gòu)造函數(shù)中,輸出字符‘3’。在主函數(shù)中,在創(chuàng)建BB的對象b(4)時,會首先調(diào)用基類AA的構(gòu)造函數(shù)輸出字符‘1’,再調(diào)用類BB帶參數(shù)的構(gòu)造函數(shù)輸出字符‘3’。在創(chuàng)建BB的對象c時,會首先調(diào)用基類AA的構(gòu)造函數(shù)輸出字符‘1’,再調(diào)用類BB默認(rèn)的構(gòu)造函數(shù)輸出字符‘2’。所以程序輸出的結(jié)果為1312。18、下列有關(guān)抽象類和純虛函數(shù)的敘述中,錯誤的是()。A、擁有純虛函數(shù)的類是抽象類,不能用來定義對象B、抽象類的派生類若不實現(xiàn)純虛函數(shù),它也是抽象類C、純虛函數(shù)的聲明以“=0;”結(jié)束D、純虛函數(shù)都不能有函數(shù)體標(biāo)準(zhǔn)答案:D知識點解析:此題考查的是抽象類和純虛函數(shù)的概念。純虛函數(shù)可以有函數(shù)體,它的實現(xiàn)由派生類給出。19、下列關(guān)于運算符重載的描述中,錯誤的是()。A、可以通過運算符重載在C++中創(chuàng)建新的運算符B、賦值運算符只能重載為成員函數(shù)C、運算符函數(shù)重載為類的成員函數(shù)時,第一操作數(shù)是該類對象D、重載類型轉(zhuǎn)換運算符時不需要聲明返回類型標(biāo)準(zhǔn)答案:A知識點解析:運算符重載應(yīng)盡可能保持其原有的基本語義,而不是創(chuàng)建新的運算符。重載的運算符應(yīng)該體現(xiàn)為原運算符的功能在新數(shù)據(jù)類型上的延伸,它的使用應(yīng)當(dāng)使程序中算法的表達式顯得更流暢、自然,使閱讀程序的人在不借助于其他說明資料的情況下就能夠正確理解。20、下列控制對齊方式的操作符中,錯誤的是()。A、intemalB、centerC、leftD、right標(biāo)準(zhǔn)答案:B知識點解析:對齊方式的控制操作符left的含義是在設(shè)定的寬度內(nèi)左對齊輸出,右端填已設(shè)定的填充字符;right(此為默認(rèn)設(shè)置)在設(shè)定的寬度內(nèi)右對齊輸出;intemal在設(shè)定的寬度內(nèi)右對齊輸出,但若有符號(一或+),符號置于最左端。國家二級C++機試(選擇題)模擬試卷第4套一、選擇題(本題共20題,每題1.0分,共20分。)1、下列敘述中,正確的是()。A、軟件交付使用后還需要進行維護B、軟件一旦交付使用就不需要再進行維護C、軟件交付使用后其生命周期就結(jié)束D、軟件維護是指修復(fù)程序中被破壞的指令標(biāo)準(zhǔn)答案:A知識點解析:軟件的運行和維護是指將已交付的軟件投入運行,并在運行使用中不斷地維護,根據(jù)新提出的需求進行必要而且可能的擴充和刪改。而軟件生命周期是指軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程。2、有如下程序:#includeusingnamespacestd;classAA{intn;public:AA(intk):n(k)()intget0{returnn;)intgetoconst{returnn+l;)};intmain(){AAa(5);constAAb(6);cout<<a_getO<<b.get();return0;}執(zhí)行后的輸出結(jié)果是()。A、55B、57C、75D、77標(biāo)準(zhǔn)答案:B知識點解析:此題考查的是常成員函數(shù)和函數(shù)的重載。所謂函數(shù)重載,是指同一個函數(shù)名可以對應(yīng)著多個函數(shù)實現(xiàn)。一般對象a既可以調(diào)用普通成員函數(shù)get,也可以調(diào)用常成員函數(shù)get,由于常成員函數(shù)不能更新對象的數(shù)據(jù)成員,所以題日中通過對象a調(diào)用的函數(shù)為常成員函數(shù);常對象b只能調(diào)用普通成員函數(shù)。3、下列描述中正確的是()。A、軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤B、軟件測試的主要目的是確定程序中錯誤的位置C、為了提高軟件測試的效率,最好由程序編制者自己來完成軟件測試的工作D、軟件測試是證明軟件沒有錯誤標(biāo)準(zhǔn)答案:A知識點解析:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。為了達到好的測試效果,應(yīng)該由獨立的第三方來構(gòu)造測試,程序員應(yīng)盡量避免檢查自己的程序。4、“商品”與“顧客”兩個實體集之間的聯(lián)系一般是()。A、一對一B、一對多C、多對一D、多對多標(biāo)準(zhǔn)答案:D知識點解析:實體集間的聯(lián)系的個數(shù)可以是單個也可以是多個。兩個實體集之間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,這種關(guān)系有三種:一對一的聯(lián)系,簡記為1:l;—對多或多對一聯(lián)系,簡記為1:m或m:1;多對多聯(lián)系,簡記為m:n。本題中“商品”與“顧客”兩個實體集之間的聯(lián)系是多對多聯(lián)系。因為一種“商品”可以被多個“顧客”購買,而一個“顧客”也可以購買多個“商品”。5、有如下類定義:classXX{intxx;public:XX():xx(0){cout<<’A’;}XX(intn):xx(n){cout<<’B’;}};classYY:publicXX{intYY;public:YY():yy(0){cout<A、YYy1(0,0);B、YYy2(1);C、YYy3(0);D、YYy4;標(biāo)準(zhǔn)答案:D知識點解析:考查的是類的繼承。選項A的執(zhí)行結(jié)果為B0,建立YY的對象y1,首先調(diào)用其構(gòu)造函數(shù),YY繼承于XX所以先調(diào)用的為XX的構(gòu)造函數(shù),根據(jù)輸入的參數(shù)可知輸出B,然后執(zhí)行YY的構(gòu)造函數(shù)輸出0:同理,選項B的執(zhí)行結(jié)果為B1,選項C的執(zhí)行結(jié)果為B0。6、下列字符串中,正確的C++標(biāo)識符是()。A、foo-1B、2bC、newD、_256標(biāo)準(zhǔn)答案:D知識點解析:此題考查的是C++語言中標(biāo)識符的定義。標(biāo)識符由字母、數(shù)字或下劃線構(gòu)成,但第一個字符必須是字母或下劃線;標(biāo)識符中大小寫字母是不同的;用戶定義標(biāo)識符時,不允許采用系統(tǒng)的關(guān)鍵字。7、數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和()。A、編碼設(shè)計B、測試階段C、運行階段D、物理設(shè)計標(biāo)準(zhǔn)答案:D知識點解析:數(shù)據(jù)庫設(shè)計目前一般采用生命周期法,即把整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)分解成目標(biāo)獨立的四個階段。它們分別是需求分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段。8、有如下程序段:int1=5;while(inti=0){cout<<’*’;i--;)運行時輸出“*”的個數(shù)是()。A、0B、1C、5D、無窮標(biāo)準(zhǔn)答案:A知識點解析:因為while循環(huán)中,因為i的值等于0,所以while循環(huán)體一次也不執(zhí)行。因而運行時輸出“*”的個數(shù)是0。9、下列函數(shù)原型聲明中,錯誤的是()。A、intfunction(intm,intn);B、intfunction(int,int);C、intfunction(intm=3,intn);D、intfunction(int&m,int&n);標(biāo)準(zhǔn)答案:C知識點解析:在C++中,函數(shù)在使用之前要預(yù)先聲明。這種聲明在標(biāo)準(zhǔn)C++中稱為函數(shù)原型,函數(shù)原型給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時必須提供的參數(shù)個數(shù)和類型。其語法為:<返回類型×函數(shù)名>(<形參列表>);使用函數(shù)原型說明有兩種形式:①直接使用函數(shù)定義的頭部,并在后面加上一個分號;②在函數(shù)原型說明中省略參數(shù)列表中的形參變量名,僅給出函數(shù)名、函數(shù)類型、參數(shù)個數(shù)及次序。在選項C)中,給出了形參變量m的初值。10、學(xué)校的每個社團都有一名團長,且一個同學(xué)可同時擔(dān)任多個社團的團長,則實體團長和實體社團間的聯(lián)系是A、一對多B、多對多C、多對一D、一對一標(biāo)準(zhǔn)答案:A知識點解析:一對多關(guān)系是關(guān)系數(shù)據(jù)侔中兩個表之間的一種關(guān)系,該關(guān)系中第一個表中的單個行可以與第二個表中的一個或多個行相關(guān),但第二個表中的一個行只可以與第一個表中的一個行相關(guān)。本題中,一個團長可以對應(yīng)多個社團,一個社團只有一個團長,因此是一對多關(guān)系。11、下面是重載為非成員函數(shù)的運算符函數(shù)原型,其中錯誤的是()。A、Fractionoperator+(Fraction,F(xiàn)raction);B、Fractionoperator-(Fraction);C、Fraction&operator=(Fraction&,F(xiàn)raction);D、Fraction&operator+=(Fraction&,F(xiàn)raction);標(biāo)準(zhǔn)答案:C知識點解析:此題考查的是運算符重載。C++語言規(guī)定,“=”運算符只能作為成員函數(shù)重載。12、關(guān)于函數(shù)重載,下列敘述中錯誤的是()。A、重載函數(shù)的函數(shù)名必須相同B、重載函數(shù)必須在參數(shù)個數(shù)或類型上有所不同C、重載函數(shù)的返回值類型必須相同D、重載函數(shù)的函數(shù)體可以有所不同標(biāo)準(zhǔn)答案:C知識點解析:此題考查的是函數(shù)重載。在C++語言中,允許定義一系列函數(shù)名相同,但形參的個數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對返回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。13、有如下程序:#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;}運行時的輸出結(jié)果是()。A、23B、58C、64D、79標(biāo)準(zhǔn)答案:D知識點解析:變量s1和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時,*p的值等于15,它小于23,所以把15賦給變量s1;執(zhí)行第二次for循環(huán)時,*p的值等于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于15,小于64,因而變量s1,s2的值不會再發(fā)生變化,最終值為15+64=79。14、)下列控制格式輸入輸出的操作符中,能夠設(shè)置浮點數(shù)精度的是()。A、setprecisionB、setwC、setfillD、showpoint標(biāo)準(zhǔn)答案:A知識點解析:setprecision(intn):設(shè)置浮點數(shù)的精度(有效位數(shù)或小數(shù)位數(shù)),等價函數(shù)調(diào)用:io.precision(n)。15、字符串“a+b=12\n\t”的長度為()。A、12B、10C、8D、6標(biāo)準(zhǔn)答案:C知識點解析:題目給出的字符串含有7個字符,再加字符串的結(jié)束字符,所以共8個字符。16、己知類Myclass的定義如下classMyclass{public:voidfunctionl(Myclass&c){cout<<c.data;)staticvoidfunction2(Myclass&c){cout<<c.data;}voidfunction3(){cout<<data;}staricvoidfunction4(){cout<<data;}private:intdata;};其中有編譯錯誤的函數(shù)是()。A、functionlB、function2C、function3D、function4標(biāo)準(zhǔn)答案:D知識點解析:funcyion4()函數(shù)作為類的靜態(tài)成員函數(shù),不能直接訪問類中說明的非靜態(tài)成員,即cout<<data在編譯時會出錯。17、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assMusic{public:voidsetTitle(char*str){strcpy(title,str);}protected:chartype[10];private:chartitle[20];};c1assJazz:publicMusic{public:voidset(char*str){strcpy(type,¨Jazz¨);//①slrcpy(title,str);//②}};下列敘述中正確的是()。A、程序編譯正確B、程序編譯時語句①出錯C、程序編譯時語句②出錯D、程序編譯時語句①和②都出錯標(biāo)準(zhǔn)答案:C知識點解析:派生類Jazz不能訪問基類Music中的私有成員title。18、下列是重載乘法運算符的函數(shù)原型聲明,其中錯誤的是()。A、MyClassoperator*(double,double);B、MyClassoperator*(double,MyClass);C、MyClassoperator*(MyClass,double);D、MyClassoperator*(MyClass,MyClass);標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是運算符重載。本題中,選項A重載運算符“-”使用的形參是兩個double,而系統(tǒng)中的“*”運算原本就能計算兩個double,所以這樣違反了重載函數(shù)的原則,當(dāng)執(zhí)行a*b這樣的表達式時,系統(tǒng)不能識別是否執(zhí)行運算符重載函數(shù)。故答案是A選項。19、下列關(guān)于函數(shù)模板的描述中,正確的是()。A、函數(shù)模板是一個實例函數(shù)B、使用函數(shù)模板定義的函數(shù)沒有返回類型C、函數(shù)模板的類型參數(shù)與函數(shù)的參數(shù)相同D、通過使用不同的類型參數(shù),可以從函數(shù)模板得到不同的實例函數(shù)標(biāo)準(zhǔn)答案:D知識點解析:函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼相同,只是所針對的數(shù)據(jù)類型不同。數(shù)據(jù)類型成了函數(shù)模板的參數(shù),所以函數(shù)模板是一種參數(shù)化類型的函數(shù)。20、下列函數(shù)模版中的定義中,合法的是()。A、templateTabs(Tx){returnx<0?-x:x;}B、templateclassTabs(Tx){returnx<0?-x:x;}C、templateTabs(Tx){returnx<0?-x:x;}D、templateTabs(Tx){returnx<0?-x:x:}標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是函數(shù)模板。聲明一個函數(shù)模板的格式是:template<模板形參表聲明>函數(shù)聲明,其中的<模板形參表聲明>是由一個或多個“模板形參”組成的,每個“模板形參”可具有以下幾種形式:typename參數(shù)名;class參數(shù)名;類型修飾參數(shù)名。國家二級C++機試(選擇題)模擬試卷第5套一、選擇題(本題共25題,每題1.0分,共25分。)1、有如下程序:#includeusingnamespacestd;intmain(){int*p;*p=9;eout<<“Thevalueatp:”<<*p;retum0:編譯運行程序?qū)⒊霈F(xiàn)的情況是()。A、編譯時出現(xiàn)語法錯誤,不能生成可執(zhí)行文件B、運行時一定輸出:Thevalueatp:9C、運行時一定輸出:Thevalueatp:*9D、運行時有可能出錯標(biāo)準(zhǔn)答案:D知識點解析:先定義指針變量,然后給指針變量賦初值有三種情況:①用取地址運算符“&”將變量地址賦給指針變量,如p=&a;②將一個指針變量中的地址賦給另一個指針變量,如p=p1;③給指針變量賦空值0,如q=0,表示該指針變量不指向任何變量。而不能用一個常量給指針變量賦初值,所以本題選D。2、下列運算符不能重載為友元函數(shù)的是()。A、=()[]->B、+-++--C、><>=<=D、+=-=*=/=標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是運算符重載的概念。C++語言規(guī)定,=、[]、()、->以及所有的類型轉(zhuǎn)換運算符只能作為成員函數(shù)重載,如果要重載為友元函數(shù)就必須重載為非成員函數(shù)。3、在下列枚舉符號中,用來表示“相對于當(dāng)前位置”文件定位方式的是()。A、ios―base::curB、ios―base::begC、ios―base::outD、ios―base::end標(biāo)準(zhǔn)答案:A知識點解析:streamoff定義于iostream.h中,定義有偏移量offset所能取得的最大值,seek―dir表示移動的基準(zhǔn)位置,是一個有以下值的枚舉:ios::beg:(文件開頭)、ios::cur:(文件當(dāng)前位置)、ios::end:(文件結(jié)尾)。4、為了取代C中帶參數(shù)的宏,在C++中使用()。A、重載函數(shù)B、內(nèi)聯(lián)函數(shù)C、遞歸函數(shù)D、友元函數(shù)標(biāo)準(zhǔn)答案:B知識點解析:此題考查的是內(nèi)聯(lián)函數(shù)。C++語言引入內(nèi)聯(lián)函數(shù)的原因是用它來取代C語言的預(yù)處理宏函數(shù)。故選項B正確。5、下列對于軟件測試的描述中正確的是()。A、軟件測試的目的是證明程序是否正確B、軟件測試的目的是使程序運行結(jié)果正確C、軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤D、軟件測試的目的是使程序符合結(jié)構(gòu)化原則標(biāo)準(zhǔn)答案:C知識點解析:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。…個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。軟件測試的目的要以查找錯誤為中心,而不是為了演示軟件的正確功能。6、數(shù)據(jù)庫系統(tǒng)的核心是()。A、數(shù)據(jù)模型B、數(shù)據(jù)庫管理系統(tǒng)C、數(shù)據(jù)庫D、數(shù)據(jù)庫管理員標(biāo)準(zhǔn)答案:B知識點解析:數(shù)據(jù)庫管理系統(tǒng)(DBMS)是數(shù)據(jù)庫的機構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等。所以,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)系統(tǒng)的核心。7、下列有一維數(shù)組a的定義中,語法正確的是()。A、inta(10);B、intn=7,a[n];C、intn,cin>>n,inta[n];D、constintsize=10,inta[size],標(biāo)準(zhǔn)答案:D知識點解析:定義一維數(shù)組的一般格式為:類型標(biāo)識符數(shù)組名[常量表達式];常量表達式的值表示元素的個數(shù),即數(shù)組長度。常量表達式中可以包括常量、常變量和符號常量,但不能包含變量。也就是說,C++不允許對數(shù)組的大小作動態(tài)定義,即數(shù)組的大小不依賴于程序運行過程中變量的值。8、已知基類Employee只有一個構(gòu)造函數(shù),其定義如下:Employee∷Employee(intn):id(n){}Manager是Employee的派生類,則下列對Manager的構(gòu)造函數(shù)的定義中,正確的是()。A、Manager∷Manager(intn):id(n){}B、Manager∷Manager(intn){id=n;}C、Manager∷Manager(intn):Employee(n){}D、Manager∷Manager(intn){Employee(n);}標(biāo)準(zhǔn)答案:C知識點解析:基類的構(gòu)造函數(shù)是帶有參數(shù)的,派生類從基類派生,這就需要在派生類的構(gòu)造函數(shù)名后面顯示的調(diào)用基類的構(gòu)造函數(shù)。9、下列函數(shù)原型聲明中,錯誤的是()。A、intfunction(intm,intn);B、intfunction(int,int);C、intfunction(intm=3,intn);D、intfunction(int&m,int&n);標(biāo)準(zhǔn)答案:C知識點解析:在C++中,函數(shù)在使用之前要預(yù)先聲明。這種聲明在標(biāo)準(zhǔn)C++中稱為函數(shù)原型,函數(shù)原型給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時必須提供的參數(shù)個數(shù)和類型。其語法為:<返回類型×函數(shù)名>(<形參列表>);使用函數(shù)原型說明有兩種形式:①直接使用函數(shù)定義的頭部,并在后面加上一個分號;②在函數(shù)原型說明中省略參數(shù)列表中的形參變量名,僅給出函數(shù)名、函數(shù)類型、參數(shù)個數(shù)及次序。在選項C)中,給出了形參變量m的初值。10、關(guān)于函數(shù)重載,下列敘述中錯誤的是()。A、重載函數(shù)的函數(shù)名必須相同B、重載函數(shù)必須在參數(shù)個數(shù)或類型上有所不同C、重載函數(shù)的返回值類型必須相同D、重載函數(shù)的函數(shù)體可以有所不同標(biāo)準(zhǔn)答案:C知識點解析:此題考查的是函數(shù)重載。在C++語言中,允許定義一系列函數(shù)名相同,但形參的個數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對返回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。11、下列符號中能夠作為C++標(biāo)識符的是()。A、constB、2aC、_shapeD、-count標(biāo)準(zhǔn)答案:C知識點解析:此題考查的是C++標(biāo)識符。標(biāo)識符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個字符必須是字母或下劃線,中間不能有空格;標(biāo)識符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個字符:標(biāo)識符中的大小寫字母是不同的;定義標(biāo)識符時不能采用系統(tǒng)的保留字。12、有如下模板聲明:template<typenameT1,typenameT2>classA;下列聲明中,與上述聲明不等價的是()。A、template<classT1,classT2>classA;B、template<classT1,typenameT2>classA;C、template<typenameT1,classT2>classA;D、template<typenameT1,T2>classA;標(biāo)準(zhǔn)答案:D知識點解析:在類模板中,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的類,是類的生成器。聲明一個類模板的格式是:template<<模板形參表聲明>×類聲明>,<模板形參表聲明>是由一個或多個模板形參組成。對于本題來說,模板形參表中包括類型T1和T2兩個類型參數(shù),而在選項D中T1說明其類型,而T2沒有說明其類型,與題干中的模板說明不一致。13、有如下程序:#includeusingnamespacestd;classCD{public:~CD(){cout<<ˊCˊ;}private:charname[80];};intmain(){CDa,*b,d[2];return0;}運行時的輸出結(jié)果是()。A、CCCCB、CCCC、CCD、C標(biāo)準(zhǔn)答案:B知識點解析:在這個程序的主函數(shù)中定義了3個CD類的實例對象a,d[0],d[1]和一個指向CD類對象的指針變量b,所以當(dāng)程序結(jié)束時,執(zhí)行CD的析構(gòu)函數(shù)輸出字符C三次。14、由于常對象不能被更新,因此()。A、通過常對象只能調(diào)用它的常成員函數(shù)B、通過常對象只能調(diào)用靜態(tài)成員函數(shù)C、常對象的成員都是常成員D、通過常對象可以調(diào)用任何不改變對象值的成員函數(shù)標(biāo)準(zhǔn)答案:A知識點解析:此題考查的是常對象與常成員函數(shù)的概念。使用const關(guān)鍵字修飾的對象稱為常對象,它不能被更新,所以常對象只能調(diào)用常成員函數(shù)而不能調(diào)用其它成員函數(shù):使用const關(guān)鍵字聲明的成員函數(shù)是常成員函數(shù),它也不能被更新,常成員函數(shù)只能調(diào)用常成員函數(shù)而不能調(diào)用其它函數(shù)。15、已知函數(shù)print()沒有返回值,如果在類中將之聲明為常成員函數(shù),正確的是()。A、voidprint()const;B、constvoidprint();C、voidconstprint();D、voidprint(const);標(biāo)準(zhǔn)答案:A知識點解析:const成員函數(shù)表示該成員函數(shù)只‘能讀類數(shù)據(jù)成員,而不能修改類成員數(shù)據(jù)。定義const成員函數(shù)時,把const關(guān)鍵字放在函數(shù)的參數(shù)表和函數(shù)體之間。16、下列關(guān)于派生類和基類的描述中,正確的是()。A、派生類成員函數(shù)只能訪問基類的公有成員B、派生類成員函數(shù)只能訪問基類的公有和保護成員C、派生類成員函數(shù)可以訪問基類的所有成員D、派生類對基類的默認(rèn)繼承方式是公有繼承標(biāo)準(zhǔn)答案:B知識點解析:派生類不論是采用那種繼承方式繼承基類,它的成員函數(shù)只能訪問基類的公有成員和保護成員。17、有如下程序:#include<iostream>usingnamespacestd;classBase{public:Base(intx=0){cout<<x;}};classDerived:publicBase{public:Derived(intx=0){cout<<x;}private:Baseval;};intmain(){Derivedd(1);return0;}程序的輸出結(jié)果是()。A、0B、1C、01D、001標(biāo)準(zhǔn)答案:D知識點解析:此題考查的是類的構(gòu)造。建立類的對象時,構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個基類被繼承時聲明的順序(自左向右)->執(zhí)行成員對象的構(gòu)造函數(shù),調(diào)用順序按照各個成員對象在類中聲明的順序->執(zhí)行自身的構(gòu)造函數(shù)。本題中,首先會構(gòu)造基類Base,調(diào)用Base類的構(gòu)造函數(shù),輸出0:然后還定義了一個Base類的對象,再次調(diào)用Base類的默認(rèn)構(gòu)造函數(shù)輸出0;最后構(gòu)造自身,因主函數(shù)中傳入了構(gòu)造參數(shù)1,所以輸出1。故最后輸出結(jié)果是:001。18、有如下程序:#includeusingnamespacestd;classBase{public:Base(intx=0){cout<A、0B、1C、01D、001標(biāo)準(zhǔn)答案:D知識點解析:此題考查的是類的構(gòu)造。建立類的對象時,構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個基類被繼承時聲明的順序(自左向右).>執(zhí)行成員對象的構(gòu)造函數(shù),調(diào)用順序按照各個成員對象在類中聲明的順序.>執(zhí)行自身的構(gòu)造函數(shù)。本題中,首先會構(gòu)造基類Base,調(diào)用Base類的構(gòu)造函數(shù),輸出0;然后還定義了一個Base類的對象,再次調(diào)用Base類的默認(rèn)構(gòu)造函數(shù)輸出0;最后構(gòu)造自身,因主函數(shù)中傳入了構(gòu)造參數(shù)1,所以輸出1。故最后輸出結(jié)果是:001。19、有如下程序:#include<iostream>usingnarnespacestd;classMountain{intheight;public:Mountain(inth=0):height(h){}virtualchar*GetName()const{return"山";}intGetHeight()const{returnheight;}};classLushan:publicMountain{Publie:Lushan(int

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論