首頁(yè) - 網(wǎng)校 - 萬(wàn)題庫(kù) - 美好明天 - 直播 - 導(dǎo)航

2018年12月計(jì)算機(jī)二級(jí)C++考試沖刺試題及答案(1)

來(lái)源:考試吧 2018-12-3 16:11:10 要考試,上考試吧! 萬(wàn)題庫(kù)
“2018年12月計(jì)算機(jī)二級(jí)C++考試沖刺試題及答案(1)”供考生參考。更多計(jì)算機(jī)等級(jí)考試模擬試題等信息請(qǐng)?jiān)L問(wèn)考試吧計(jì)算機(jī)等級(jí)考試網(wǎng)。
第 1 頁(yè):沖刺試題
第 2 頁(yè):參考答案

  一、選擇題

  1.B�!窘馕觥繑�(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱(chēng)為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

  2.B。【解析】將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的主要工作。從E—R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體和聯(lián)系都可以表示成關(guān)系。

  3.C�!窘馕觥繉�(duì)線(xiàn)性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開(kāi)始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。

  4.C�!窘馕觥繕�(shù)具有明顯的層次關(guān)系,即樹(shù)是一種層次結(jié)構(gòu)。在樹(shù)結(jié)構(gòu)中,根結(jié)點(diǎn)在第一層上。當(dāng)樹(shù)為非空時(shí),樹(shù)中有且只有一個(gè)根結(jié)點(diǎn),當(dāng)樹(shù)為空時(shí),樹(shù)中根結(jié)點(diǎn)的數(shù)目為0。

  5.B�!窘馕觥筷P(guān)系的交(∩)、并(∪)和差(-)運(yùn)算要求兩個(gè)關(guān)系是同元的,顯然作為二元的R和三元的S只能做笛卡兒積運(yùn)算。

  6.C�!窘馕觥肯拗剖褂肎OTO語(yǔ)句是結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一,但不是絕對(duì)不允許使用GOTO語(yǔ)句。其他三項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。

  7.A。【解析】關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,其中包含兩個(gè)關(guān)系中的所有元組。

  8.C。【解析】面向?qū)ο蟮某绦蛟O(shè)計(jì)是用對(duì)象模擬問(wèn)題領(lǐng)域中的實(shí)體,各對(duì)象之間相對(duì)獨(dú)立,相互依賴(lài)性小,通過(guò)消息來(lái)實(shí)現(xiàn)對(duì)象之間的相互聯(lián)系。

  9.B。【解析】程序的三種基本控制結(jié)構(gòu)包括順序、選擇和重復(fù)(循環(huán)),這三種結(jié)構(gòu)足以表達(dá)出各種其他形式的結(jié)構(gòu)。

  10.B�!窘馕觥繑�(shù)據(jù)庫(kù)設(shè)計(jì)階段主要包括需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。其中邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換為關(guān)系模式。

  11.C�!窘馕觥亢瘮�(shù)類(lèi)型決定了函數(shù)返回值的類(lèi)型。函數(shù)值返回類(lèi)型可以由編譯器自動(dòng)完成類(lèi)型轉(zhuǎn)換。在函數(shù)有返回值的調(diào)用中,編譯器將return后面的表達(dá)式的類(lèi)型強(qiáng)制轉(zhuǎn)換為該函數(shù)定義時(shí)指定的返回值類(lèi)型。

  12.D。【解析】本題主要考查C++語(yǔ)言的基本語(yǔ)法,選項(xiàng)A中應(yīng)該為m>n‖m  13.D�!窘馕觥渴褂胕fstream流類(lèi)定義流對(duì)象并打開(kāi)磁盤(pán)文件時(shí),文件沒(méi)有默認(rèn)的打開(kāi)方式。其中ios::in是為輸入而打開(kāi);iso::out是為輸出而打開(kāi)。

  14.C。【解析】構(gòu)造函數(shù)包括默認(rèn)構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)等,析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣屬于類(lèi)的特殊的成員函數(shù)。而友元函數(shù)則是為了增加類(lèi)的訪問(wèn)靈活性而允許其他類(lèi)的成員函數(shù)或全局函數(shù)訪問(wèn)類(lèi)的內(nèi)部變量或成員函數(shù)的一種機(jī)制,其缺點(diǎn)是破壞了類(lèi)的封裝性。

  15.A。【解析】本題考查的是字符數(shù)組的初始化。選項(xiàng)B中用三個(gè)元素初始化大小為2的數(shù)組,越界了;選項(xiàng)C中應(yīng)該是2行3列的數(shù)組,題中使用3行2列初始化;選項(xiàng)D中數(shù)組應(yīng)用方括號(hào)。

  16.B�!窘馕觥柯暶饕粋€(gè)函數(shù)模板的格式template<模板形參表聲明>函數(shù)聲明。調(diào)用模板函數(shù)時(shí),如果與模板實(shí)參中最后的若干個(gè)參數(shù)有關(guān)的信息可以從模板函數(shù)的實(shí)參中獲得,則相關(guān)的模板實(shí)參可以省略。

  17.D�!窘馕觥空Z(yǔ)句p=&my;是把對(duì)象my的地址值賦給指針變量P。語(yǔ)句MyClass*P,my;,由于P只是一個(gè)指向?qū)ο蟮闹羔�,因此定義指針P不調(diào)用構(gòu)造函數(shù),所以此語(yǔ)句只調(diào)用一次構(gòu)造函數(shù)。對(duì)成員函數(shù)的引用可以通過(guò)兩種形式:指針->成員函數(shù)(形參表)或者對(duì)象名.成員函數(shù)名(形參表)。

  18.D�!窘馕觥勘绢}考查break語(yǔ)句的使用。break可以結(jié)束switch語(yǔ)句和for循環(huán)語(yǔ)旬,但是不能使用在條件判斷語(yǔ)句內(nèi)。

  19.B�!窘馕觥勘绢}考核運(yùn)算符的重載。假定已經(jīng)作為某個(gè)類(lèi)的成員函數(shù)重載了二元運(yùn)算符+,且c1、c2都是該類(lèi)的對(duì)象,則c1.operator+(c2)與c1+c2含義相同。如果+作為該類(lèi)的非成員函數(shù)重載,則operator+(c1,c2)與c1+c2含義相同。同理,運(yùn)算符“/”作為友元函數(shù)重載,則(--x)/y與表達(dá)式operator/((…x),y)相同。前綴運(yùn)算符“--”作為友元函數(shù)重載,則--x與operator--(x)相同,所以組合起來(lái)是operator/(operator--(x),y);,即B選項(xiàng)。

  20.A�!窘馕觥勘绢}考查const修飾符的作用。注意,const位置不同,其修飾的部分也是不同的。本題中const修飾的是ptr所指的對(duì)象本身,所以,ptr可以重新指向新的對(duì)象,而ptr->a則無(wú)法被更新。

  21.D�!窘馕觥恐挥泄欣^承的公有成員才能被派生類(lèi)的對(duì)象直接訪問(wèn),其他的情況都會(huì)因?yàn)樵L問(wèn)權(quán)限問(wèn)題產(chǎn)生錯(cuò)誤。

  22.C�!窘馕觥勘绢}考查考生對(duì)拷貝構(gòu)造函數(shù)的掌握。因?yàn)?+運(yùn)算是右結(jié)合的,所以在使用a對(duì)b賦值時(shí),b的hum變?yōu)?,而a的num變?yōu)?(先賦值再自加)。

  23.D�!窘馕觥勘绢}考查cin流對(duì)象的幾種成員函數(shù)get,getline,read及流提取符>>的使用規(guī)則。

  24.C�!窘馕觥坑芍骱瘮�(shù)main入手,定義TestClass類(lèi)的對(duì)象cs1,執(zhí)行cs1.va1,其中va1為靜態(tài)變量,根據(jù)intTestClass::val=0;初始化,TestClass中的TestClass(){val++;}構(gòu)造函數(shù)執(zhí)行后,val值為1。主函數(shù)中接著定義對(duì)象cs2,cs3,cs4。執(zhí)行cout<  25.B�!窘馕觥勘绢}考查構(gòu)造函數(shù)的應(yīng)用。對(duì)象建立用初始化列表對(duì)數(shù)據(jù)成員進(jìn)行時(shí)。列表中的參數(shù)類(lèi)型要與構(gòu)造函數(shù)中形參類(lèi)型一致。B選項(xiàng)中第二個(gè)參數(shù)為13301111155,是字符串,而構(gòu)造函數(shù)中第二個(gè)形參為char型,兩者不一致造成錯(cuò)誤。

  26.D�!窘馕觥柯暶髋缮�(lèi)的一般形成為class派生類(lèi)名:[繼承方式]基類(lèi)名。其中繼承方式包括public、private和protected。而virtual為C++中的關(guān)鍵字,所以選項(xiàng)C錯(cuò)。虛函數(shù)的使用方法是在基類(lèi)用virtual聲明成員函數(shù)為虛函數(shù)。

  27.D�!窘馕觥勘绢}考查的是友元類(lèi)的定義:類(lèi)A為類(lèi)B的友元類(lèi),則類(lèi)A的所有成員函數(shù)都是類(lèi)B的友元函數(shù),但反之則不一定成立。

  28.B�!窘馕觥刻摶�(lèi)的引入就是為了消除二義性,其構(gòu)造函數(shù)的調(diào)用仍然是按照繼承的順序進(jìn)行的,對(duì)于多個(gè)虛基類(lèi)則按它們說(shuō)明的次序調(diào)用,虛基類(lèi)的構(gòu)造函數(shù)先于非虛基類(lèi)的構(gòu)造函數(shù)執(zhí)行。

  29.C�!窘馕觥烤幾g時(shí)的多態(tài)性是通過(guò)函數(shù)重載和模板體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過(guò)虛函數(shù)體現(xiàn)的。

  30.D�!窘馕觥渴紫榷xTestClass3的對(duì)象obj,參數(shù)為10。其中TestClass3為T(mén)estClass1和TestClass2的派生類(lèi)。然后調(diào)用disp成員函數(shù)。disp中首先執(zhí)行TestClassl::disp();,然后執(zhí)行TestClass2::disp();,最后執(zhí)行輸出語(yǔ)句cout<  31.D。【解析】由主函數(shù)main入手,定義了類(lèi)D對(duì)象obi。其中D為類(lèi)B和C的公有繼承,A是C的

  虛基類(lèi)。題目中要求的輸出結(jié)果為ABCD,依次為類(lèi)A、類(lèi)B、類(lèi)C、類(lèi)D中構(gòu)造函數(shù)的輸出語(yǔ)句。為了保證基類(lèi)通過(guò)多條路徑被派生類(lèi)繼承,即保證A只被繼承一次,輸出一個(gè)A,所以不但需要聲明A為C的虛基類(lèi),同樣也要聲明A為B的虛基類(lèi)。

  32.B。【解析】所謂函數(shù)重載,是指同一個(gè)函數(shù)名可以對(duì)應(yīng)著多個(gè)函數(shù)的實(shí)現(xiàn),類(lèi)AA中定義了兩個(gè)9et()函數(shù),一個(gè)為普通成員函數(shù),另一個(gè)為常成員函數(shù)。一般對(duì)象a既可以調(diào)用普通成員函數(shù)get,也可以調(diào)用常成員函數(shù)get,但是由于常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,所以題中通過(guò)對(duì)象a調(diào)用的函數(shù)為普通成員函數(shù)get(),返回值為5。常對(duì)象b只能調(diào)用常成員函數(shù),所以題中通過(guò)對(duì)象b調(diào)用的函數(shù)為常成員函數(shù)get(),返回值為7。

  33.C�!窘馕觥亢瘮�(shù)Demo()為構(gòu)造函數(shù),而Demo(constDemo&x)為復(fù)制構(gòu)造函數(shù)。C++在創(chuàng)建一個(gè)對(duì)象時(shí),會(huì)自動(dòng)調(diào)用類(lèi)的構(gòu)造函數(shù),所以語(yǔ)句"Demoa,d;"將調(diào)用函數(shù)Demo()2次。當(dāng)一個(gè)對(duì)象作為實(shí)參傳遞給函數(shù)時(shí)為初始化形參,要調(diào)用拷貝構(gòu)造函數(shù);在函數(shù)返回一個(gè)對(duì)象時(shí)調(diào)用拷貝構(gòu)造函數(shù)。由此可知語(yǔ)句d=userCode(a);調(diào)用拷貝構(gòu)造函數(shù)3次。

  34.C�!窘馕觥勘绢}考查的是析構(gòu)函數(shù)和對(duì)象的生存期。在主函數(shù)中,首先定義了一個(gè)DA類(lèi)對(duì)象數(shù)組d,從初始化列表中可以看出,它包含三個(gè)對(duì)象;然后通過(guò)new運(yùn)算符動(dòng)態(tài)創(chuàng)建了一個(gè)DA類(lèi)的對(duì)象數(shù)組,并將首地址賦給DA類(lèi)指針P;接著通過(guò)delete[]運(yùn)算符銷(xiāo)毀指針P所指向的數(shù)組,故此時(shí)會(huì)輸出11。最后函數(shù)結(jié)束,銷(xiāo)毀前面定義的對(duì)象數(shù)組d,會(huì)輸出333。故最后的輸出結(jié)果是11333。

  35.D�!窘馕觥吭诮㈩�(lèi)對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類(lèi)被繼承的聲明順序;執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員在類(lèi)中的聲明順序;執(zhí)行自身的構(gòu)造函數(shù)。根據(jù)以上總結(jié)以及題意可知答案選擇D選項(xiàng)。

  36.B�!窘馕觥�<返回類(lèi)型>又稱(chēng)函數(shù)類(lèi)型,表示一個(gè)

  函數(shù)所計(jì)算(或運(yùn)行)的結(jié)果值類(lèi)型,這里的類(lèi)型可以是預(yù)定義類(lèi)型(如int)、復(fù)合類(lèi)型(如double*)、用戶(hù)定義類(lèi)型(如枚舉類(lèi)),若返回值只做更新(或設(shè)置)等操作,則該函數(shù)返回類(lèi)型為void類(lèi)型,函數(shù)類(lèi)型和內(nèi)置數(shù)組不能作為返回類(lèi)型,但類(lèi)類(lèi)型和容器類(lèi)型可以被直接返回。

  37.D。【解析】構(gòu)造函數(shù)在對(duì)象被創(chuàng)建時(shí)由系統(tǒng)自動(dòng)調(diào)用,本題共創(chuàng)建3個(gè)對(duì)象。

  38.C。【解析】派生類(lèi)從基類(lèi)保護(hù)繼承classYY:pro-tectedXX時(shí),基類(lèi)的公有成員在派生類(lèi)中變?yōu)楸Wo(hù)成員,基類(lèi)的保護(hù)成員在派生類(lèi)中仍然是保護(hù)成員;本題中YY本身有一個(gè)保護(hù)成員y2,再加上基類(lèi)XX的x2和x3,故選C。

  39.A。【解析】運(yùn)算符的重載是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不能通過(guò)重載創(chuàng)造新的運(yùn)算符。

  40.D�!窘馕觥款�(lèi)模板是一系列相關(guān)類(lèi)的模板,類(lèi)成員組成相同,成員函數(shù)的源代碼形式相同,所不同的是所針對(duì)的類(lèi)型。類(lèi)模板的成員函數(shù)都是模板函數(shù),在用類(lèi)模板定義對(duì)象時(shí),由于沒(méi)有像函數(shù)實(shí)參表這樣的額外信息渠道,因此無(wú)法按函數(shù)模板的方式省略模板實(shí)參。但可以為類(lèi)模板的參數(shù)設(shè)置默認(rèn)值。由此可知應(yīng)選D。

  二、程序改錯(cuò)題

  (1)應(yīng)改為“virtualvoidfun()=0;”。

  (2)應(yīng)改為“p=&obj1;”。

  (3)應(yīng)改為“p=&obj2;”。

  【解析】如果在基類(lèi)中不使用這個(gè)虛函數(shù),其返回值也是沒(méi)有意義的,它應(yīng)該被定義為純虛函數(shù)。所以虛函數(shù)fun應(yīng)該是純虛函數(shù),也就是聲明虛函數(shù)時(shí)初始化為0的函數(shù)。即第2處的“virtualvoidfun()=0;”。第2處的P為指針變量,將對(duì)象obj1賦值給P,實(shí)際上蹙P指向?qū)ο髈bj1的地址,所以將“p=*obj1;”修改為“P=&obj1;”。第3處的“P=*obj2;”修改為“p=&obj2;”。

  三、簡(jiǎn)單應(yīng)用題

  inti,j,k;

  for(i=0;i<4;i++)//百位循環(huán)

  {

  for(j=0;j<4;j++)//十位循環(huán)

  for(k=0;k<4;k++)//個(gè)位循環(huán)

  {

  if(i!=j&&j!=k&&k!=i&&N[i]!=0)//

  當(dāng)三位數(shù)不同,并且百位不為0

  {

  cout<  }

  }

  }

  【解析】本題利用3層循環(huán),對(duì)3位數(shù)字是否相同進(jìn)行判斷。如果3位數(shù)不同,并且百位不為0,那么依次輸出這3 位數(shù),即由3位數(shù)組成的數(shù)字。

  四、綜合應(yīng)用題

  (1)將“voidprint(){};”補(bǔ)充完整為“virtualvoidprint(){};”。

  (2)應(yīng)添加“sex=1;”。

  (3)應(yīng)添加“sex=0;”。

  (4)應(yīng)添加“voidfun(People&p)”。

  【解析】第1處要求“基類(lèi)People完成打印功能,定義其中的打印函數(shù)為虛函數(shù)”。虛函數(shù)是函數(shù)的一種,定義虛函數(shù),在函數(shù)名前聲明virtual就可以了,所以將第1處的“voidprint(){}”語(yǔ)句修改為“virtualvoidprint(){}”。第2處要求“類(lèi)Boy繼承于People,在構(gòu)造函數(shù)中設(shè)置性別為l”�;�(lèi)People中變量sex用來(lái)存放性別,Boy繼承People,所以Boy中性別的變量可以使用基類(lèi)中的sex變量,設(shè)置性別為1,即“sex=1;”。第3處要求“類(lèi)Girl繼承于People,在構(gòu)造函數(shù)中設(shè)置性別為0”。在第3處添加語(yǔ)句“sex=0;”。第4處要求“實(shí)現(xiàn)函數(shù)fun,用于傳遞不同的類(lèi)型,打印出性別”。根據(jù)“P.print();”語(yǔ)句知道,fun函數(shù)的形參為指針P,由于它調(diào)用了基類(lèi)People中的成員函數(shù)print,所以P的基類(lèi)為People,即添加函數(shù)fun的定義為“voidfun(People&p)”。

掃描/長(zhǎng)按二維碼幫助考試通關(guān)
2018年等考報(bào)考資訊
2018等考各科通關(guān)技巧
2018各科最新預(yù)測(cè)試卷
2018等考各科備考資料

微信搜索"考試吧"了解更多考試資訊、下載備考資料

  相關(guān)推薦:

  2018年12月全國(guó)計(jì)算機(jī)等級(jí)考試必做試題匯總

  2018年全國(guó)計(jì)算機(jī)等級(jí)考試必做試題匯總(各科目)

  各地2018年12月全國(guó)計(jì)算機(jī)等考準(zhǔn)考證打印時(shí)間匯總

  2018年全國(guó)計(jì)算機(jī)等級(jí)考試復(fù)習(xí)知識(shí)點(diǎn)匯總(各科目)

  2018全國(guó)計(jì)算機(jī)等級(jí)考試備考經(jīng)驗(yàn)及應(yīng)試技巧匯總

0
收藏該文章
0
收藏該文章
文章搜索
萬(wàn)題庫(kù)小程序
萬(wàn)題庫(kù)小程序
·章節(jié)視頻 ·章節(jié)練習(xí)
·免費(fèi)真題 ·�?荚囶}
微信掃碼,立即獲��!
掃碼免費(fèi)使用
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
此欄目下沒(méi)有文章
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
在線(xiàn)模擬試題
考證通關(guān)殺器
考試最新資訊
學(xué)
一次通關(guān)技巧