國(guó)家二級(jí)(C++)筆試模擬試卷26(共426題)_第1頁
國(guó)家二級(jí)(C++)筆試模擬試卷26(共426題)_第2頁
國(guó)家二級(jí)(C++)筆試模擬試卷26(共426題)_第3頁
國(guó)家二級(jí)(C++)筆試模擬試卷26(共426題)_第4頁
國(guó)家二級(jí)(C++)筆試模擬試卷26(共426題)_第5頁
已閱讀5頁,還剩97頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)(C++)筆試模擬試卷26(共9套)(共426題)國(guó)家二級(jí)(C++)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、在一個(gè)長(zhǎng)度為n的線性表中刪除一個(gè)元素,最壞情況下需要移動(dòng)的數(shù)據(jù)元素?cái)?shù)目為()。A、1B、n-1C、n+1D、n/2標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在一般情況下,要?jiǎng)h除第i個(gè)元素時(shí),首先是從第i+1個(gè)元素開始,直到第n個(gè)元素之間共n-i個(gè)元素依次向前移動(dòng)一個(gè)位置,刪除結(jié)束后,線性表的長(zhǎng)度減1。最壞情況指的是刪除線性表的第一個(gè)元素,則需要移動(dòng)表中第1個(gè)元素以外所有的元素,答案為B。2、下列敘述中,正確的是()。A、入棧運(yùn)算只需將新元素插到棧頂指針指向的位置B、出棧運(yùn)算只需將棧頂元素賦給一個(gè)指定變量C、出棧運(yùn)算與讀棧頂元素是相同的操作D、讀棧頂元素不刪除棧頂元素標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:入棧運(yùn)算需先將棧頂指針加1,然后將新元素插到棧頂指針指向的位置,選項(xiàng)A是錯(cuò)誤的。出棧運(yùn)算需將棧頂元素賦給一個(gè)指定變量,然后將棧頂指針減1,選項(xiàng)B是錯(cuò)誤的。出棧運(yùn)算與讀棧頂元素不同之處在于讀棧頂元素不刪除棧頂元素。答案是選項(xiàng)D。3、在一個(gè)單鏈表HL中,若要向表頭插入一個(gè)由指針p指向的節(jié)點(diǎn),則需要執(zhí)行語句序列()。A、HL=p;p->next=HL;B、p->next=HL;HL=p;C、p->next=HL;p=HL;D、p->next=HL->next;HL->next=p標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:HL為鏈表的頭指針。HL指示鏈表中第一個(gè)節(jié)點(diǎn)的存儲(chǔ)位置,在表頭插入一個(gè)由指針p指向的節(jié)點(diǎn)后,頭指針指向p,p的指針域指向原鏈表中第一個(gè)節(jié)點(diǎn)4、已知二叉樹的前序序列為ABDCEFG,中序序列為DBCAFEG,則其后序序列為()。A、DCBAFGEB、DCBFGEAC、DCBFEGAD、DCBGFEA標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題先可用排除法,由二叉樹的前序序列為ABDCEFG可知:二叉樹的根節(jié)點(diǎn)為A,因此選項(xiàng)A錯(cuò)誤。通過分析可知,B、E是A的左右子節(jié)點(diǎn),D、C是B的左右子節(jié)點(diǎn),F(xiàn)、G是E的左右子節(jié)點(diǎn)。5、一組記錄的排序碼為(46,79,56,38,40,84),則利用快速排序的方法,以第一個(gè)記錄為基準(zhǔn)得到的一次劃分結(jié)果為()。A、38,40,46,56,79,84B、40,38,46,79,56,84C、40,38,46,56,79,84D、40,38,46,84,56,79標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:快速排序的思想是:從線性表中選取一元素,如本題中的46,將線性表后面小于46的元素移到前邊,而前面大于46的元素移到后邊。本題中46是第一個(gè)元素,因此只需將線性表后面小于46的元素移到前邊。6、下列關(guān)于嚴(yán)格控制goto語句使用的理解中,錯(cuò)誤的是()。A、用一個(gè)非結(jié)構(gòu)化的程序設(shè)計(jì)語言實(shí)現(xiàn)一個(gè)結(jié)構(gòu)化的構(gòu)造B、若不使用goto語句會(huì)使功能模糊C、在某種可以改善而不是損害程序可讀性的情況下D、goto語句可以完全不用標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:goto語句會(huì)造成程序的混亂,但在某些地方goto語句還是需要的,若不使用goto語句會(huì)使功能模糊。7、下面不屬于軟件設(shè)計(jì)原則的是()。A、抽象B、模塊化C、自底向上D、信息隱蔽標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在軟件開發(fā)過程中,必須遵循軟件工程的基本原則。這些原則使用于所有軟件項(xiàng)目。這些基本原則包括:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性、可驗(yàn)證性。選項(xiàng)C是錯(cuò)誤的,它是一種軟件開發(fā)的方法,而不屬于軟件工程的基本原則。8、規(guī)范化理論中消除其中多余的數(shù)據(jù)相關(guān)性是靠分解()。A、關(guān)系運(yùn)算B、內(nèi)模式C、外模式D、視圖標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考核數(shù)據(jù)庫規(guī)范化理論。數(shù)據(jù)庫規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,根本思想是通過分解關(guān)系運(yùn)算來消除多余的數(shù)據(jù)相關(guān)性。9、常用的關(guān)系運(yùn)算是關(guān)系代數(shù)和()。A、集合代數(shù)B、邏輯演算C、關(guān)系演算D、字段標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核關(guān)系代數(shù)運(yùn)算。關(guān)系運(yùn)算包括關(guān)系代數(shù)和關(guān)系演算。10、源程序中應(yīng)包含一些內(nèi)部文檔,以幫助閱讀和理解源程序,源程序的內(nèi)部文檔通常包括選擇合適的標(biāo)識(shí)符、注解和()。A、程序的視覺組織B、盡量不用或少用GOTO語句C、檢查輸入數(shù)據(jù)的有效性D、設(shè)計(jì)良好的輸出報(bào)表標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:源程序文檔化主要包括3個(gè)方面的內(nèi)容:標(biāo)識(shí)符的命名、程序中添加注釋以及程序的視覺組織。二、選擇題(本題共20題,每題1.0分,共20分。)11、下列關(guān)于類概念的描述中,錯(cuò)誤的是()。A、類是抽象數(shù)據(jù)類型的實(shí)現(xiàn)B、類是具有共同行為的若干對(duì)象的統(tǒng)一描述體C、類是創(chuàng)建對(duì)象的模板D、類就是C語言中的結(jié)構(gòu)類型標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:類是創(chuàng)建對(duì)象的模板,它包含著所創(chuàng)建對(duì)象的狀態(tài)描述和方法的定義。類的完整描述包含了外部接口和內(nèi)部算法以及數(shù)據(jù)結(jié)構(gòu)的形式。12、字符串常量"hello"的字符個(gè)數(shù)是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考核的是字符串常量這個(gè)知識(shí)點(diǎn)。字符串常量實(shí)際上是一個(gè)數(shù)組,組成數(shù)據(jù)的字符除顯式給出的外,還包括字符結(jié)尾處標(biāo)識(shí)字符串結(jié)束的符號(hào)’\0’。所以字符串的字符個(gè)數(shù)等于字符個(gè)數(shù)加1,C++語言編譯器會(huì)自動(dòng)在字符串的末尾加上’\0’,作為字符串結(jié)束標(biāo)識(shí)。故本題答案選項(xiàng)是:D。13、“or(intx=0,y=0;!x&&y<=5;y++)”語句執(zhí)行循環(huán)的次數(shù)是()。A、0B、5C、6D、無數(shù)次標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:此題是典型的考題。題中x=0,則!x永遠(yuǎn)為真,對(duì)于條件表達(dá)式“!x&&y<=5”只考慮“y<=5”,由于每次循環(huán)y都增加1,而且y從0開始到5。所以可知,總共循環(huán)了6次。14、有如下程序段,請(qǐng)指出”p所代表的是()。int**p,*s,k=20;S=&k;p=&s;A、sB、&kC、*pD、k標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:在程序中,指針變量p是int類型的指針類型。從程序中可看出:①賦值語句“s=&k;”,使s指向k,即s的值為k在內(nèi)存中地址,*s代表k的值;②賦值語句“p=&s;”,使p指向s,*p代表s中的值,即k在內(nèi)存中的地址:③因?yàn)?p代表s中的值,即k在內(nèi)存中的地址,所以“p代表的是k的值20。15、在函數(shù)聲明中,下面哪項(xiàng)是不必要的()。A、函數(shù)參數(shù)的類型和參數(shù)名B、函數(shù)名C、函數(shù)的類型D、函數(shù)體標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考核函數(shù)的原型聲明格式。解析此題時(shí),要注意函數(shù)定義和函數(shù)聲明的區(qū)別。①C++中每一個(gè)函數(shù)的定義都是由4個(gè)部分組成的,即函數(shù)類型、函數(shù)名、函數(shù)參數(shù)表和函數(shù)體。②函數(shù)的聲明是為了消除函數(shù)定義的位置影響。不管函數(shù)是在何處定義的,只要在調(diào)用前進(jìn)行函數(shù)的聲明,就可保證函數(shù)調(diào)用的合法性。③函數(shù)原型的說明格式為:<類型><函數(shù)名>(<形參表>);16、若有以下函數(shù)調(diào)用語句:f(m+n,x+y,f(m+n,z,(x,y)));在此函數(shù)調(diào)用語句中實(shí)參的個(gè)數(shù)是()。A、6B、5C、4D、3標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考察對(duì)函數(shù)參數(shù)表的掌握程度。調(diào)用函數(shù)時(shí),在函數(shù)名后面跟參數(shù),參數(shù)用逗號(hào)隔開。調(diào)用時(shí),實(shí)參與形參的個(gè)數(shù)相等,類型一致,且按順序一一對(duì)應(yīng)傳遞數(shù)據(jù),同時(shí)實(shí)參是實(shí)際調(diào)用函數(shù)時(shí)所給定的有確定值的常量、變量或表達(dá)式。根據(jù)以上知識(shí)點(diǎn),可以得到此函數(shù)調(diào)用語句中實(shí)參的個(gè)數(shù)是3。故本題答案是:D。17、下列關(guān)于類和對(duì)象描述中,錯(cuò)誤的是()。A、對(duì)象(Object)是現(xiàn)實(shí)世界中的客觀事物,對(duì)象具有確定的屬性B、類是具有相同屬性和行為的一組對(duì)象的集合C、對(duì)象是類的抽象,類是對(duì)象的實(shí)例D、類是對(duì)象的抽象,對(duì)象是類的實(shí)例標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:C++中,類是用戶自定義的一種數(shù)據(jù)類型,對(duì)象是類的實(shí)例,類定義了屬于該類的所有對(duì)象的共同特性。一個(gè)類作為一種數(shù)據(jù)類型,它可以定義多個(gè)對(duì)象。18、下面關(guān)于繼承機(jī)制的描述中,不正確的是()。A、派生類不僅可以繼承基類的成員,也可以添加自己的成員B、設(shè)置protected成員是為派生類訪問基類成員之用C、采用不同的繼承方式,將限制派生類對(duì)基類成員的訪問D、采用私有繼承,派生類只能得到基類的公有成員標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題主要考察C++中繼承機(jī)制的特點(diǎn)。C++中允許利用已有的數(shù)據(jù)類型來定義新的數(shù)據(jù)類型,這種機(jī)制稱為繼承機(jī)制,并稱已存在的用來派生新類的類稱為基類,由已存在的類派生出的新類稱為派生類。派生類有3種繼承方式可以采用,即public、private和protected方式。派生類除了繼承基類中的數(shù)據(jù)成員和成員函數(shù)外,還可以添加具有自身特點(diǎn)的成員,這是繼承機(jī)制的真正用意所在。因此選項(xiàng)A的敘述正確。采用不同的繼承方式,將限制派生類對(duì)基類成員的訪問權(quán)限,因此選項(xiàng)C的敘述正確。對(duì)于類本身,protected成員和private成員對(duì)外的訪問權(quán)限是相同的,即外界函數(shù)都無法直接訪問這兩類成員。對(duì)于類作為基類被繼承產(chǎn)生派生類時(shí),protected成員又和public成員性質(zhì)相同,即在所有繼承方式下都可以被派生類所繼承,在public繼承時(shí)可以被派生類對(duì)象訪問,在protected和private繼承方式下無法被派生類的子類訪問。這也正是C++設(shè)置protected訪問權(quán)限成員的真正用途,即為派生類繼承基類隱蔽成員之用途。因此選項(xiàng)B的敘述正確。19、實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性要使用()。A、重載函數(shù)B、析構(gòu)函數(shù)C、構(gòu)造函數(shù)D、虛函數(shù)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考核虛函數(shù)的應(yīng)用。動(dòng)態(tài)聯(lián)編一直要到程序運(yùn)行時(shí)才能確定調(diào)用哪個(gè)函數(shù)。虛函數(shù)是實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編的必要條件之一。沒有虛函數(shù)一定不能實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編,但有虛函數(shù)存在時(shí),必須同時(shí)滿足下列條件,才能實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編:類之間滿足子類型關(guān)系;調(diào)用虛函數(shù)操作的是指向?qū)ο蟮闹羔樆驅(qū)ο笠?,或者是由成員函數(shù)調(diào)用虛函數(shù)。20、下列對(duì)模板的聲明中,正確的是()。A、temvlate<T>B、template<classT1,T2>C、temvlate<classT1,classT2>D、template<classT1;classT2>標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核模板的定義。模板定義的<類型參數(shù)表>中包含一個(gè)或多個(gè)由逗號(hào)分隔的類型參數(shù)項(xiàng),每一項(xiàng)由關(guān)鍵詞class后跟一個(gè)用戶命名的標(biāo)識(shí)符,此標(biāo)識(shí)符為類型參數(shù),它不是一種數(shù)據(jù)類型,但可以同一般數(shù)據(jù)類型一樣使用。在使用類模板時(shí),必須將其實(shí)例化,即用實(shí)際的數(shù)據(jù)類型代替它。21、若有以下程序段:#include<iostream>usingnamespacestd;intmain(){inta[]={1,4,5};int*p=&a[0],x=6,y,z;for(y=0;y<3;y++)z=((*(p+y)<x)?*(p+y):x);cout<<z<<end1;return0;}程序運(yùn)行后的輸出結(jié)果是()。A、1B、4C、5D、2標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核指針的運(yùn)算。程序首先定義了一整型數(shù)組a,并賦初值1,4,5。即a[0],a[1]和a[2]的值分別為1,4和5。程序還定義了一個(gè)整型指針p,并將其初始化且指向數(shù)組元素a[0]。在for循環(huán)語句中,賦值語句“z=((*(p+y)<x)?*(p+y):x);”可等價(jià)為“z=(a[y]<x)?a[y]:x”。因?yàn)楸磉_(dá)式中的“*(p+y)=p[y]=a[y]”。for語句每循環(huán)一次,就給變量z重新賦值一次,z的值其實(shí)就是數(shù)組和x相比較,將數(shù)組a中的最大值賦給z。當(dāng)y=2后,退出循環(huán),輸出結(jié)果是5。22、以下4個(gè)程序中,不能實(shí)現(xiàn)兩個(gè)實(shí)參值進(jìn)行交換的是()。A、voidswap(float*p,float*q){float*t,a;t=&a;t=p;*p=*q;*q=*t;}voidmain(){floatx=8.0;y=9.0;swap(&x,&y);cout<<x<<","<<y<<B、voidswap(float*p,float*q){floata;a=*p;*p=*q;*q=a;}voidmain(){floatx=8.0;y=9.0;swap(&x,&y);cout<<x<<","<<y<<end1;C、voidswap(float*p,float*q){floatx;x=*p;*p=*q;*q=x;}voidmain(){floata,b.;*a=8.0;*b=9.0;swap(a,b);D、voidswap(float&p,float&q){floata;a=p;p=q;q=a;}voidmain(){floata=8.0,b=9.0;swap(a,b);cout<<x<<","<<y<<標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核指針和引用作為函數(shù)形參。做此類題時(shí),應(yīng)學(xué)會(huì)整體比較,要不然花費(fèi)的時(shí)間不亞于一個(gè)大的編程題。①首先,這4個(gè)程序都是調(diào)用swap函數(shù),而且目的都一致,交換傳入的兩個(gè)實(shí)參值。②分析被調(diào)函數(shù)swap()。在選項(xiàng)A、B和C中都是指針作為形參,只有在選項(xiàng)D中,函數(shù)swap()是以引用作為形參。由指針和引用作為函數(shù)形參的特點(diǎn)可知,只要調(diào)用了函數(shù),就能達(dá)到交換兩個(gè)實(shí)參變量的值,所以這幾個(gè)被調(diào)函數(shù)沒有問題。③再看主函數(shù)。在選項(xiàng)C中,沒有定義指針類型變量,而是直接給指針變量賦值:“floata,b;*a=8.0;*b=9.0;”,這顯然是非法的。想直接開辟存儲(chǔ)空間,交換兩個(gè)常量值,是不可能的。所以只有選項(xiàng)C是錯(cuò)誤的。23、有以下程序:#include<iostream>#include<string>usingnamespacestd;intmain(){chars[]="\n123\\";cout<<strlen(s)<<","<<sizeof(s)<<end1;return0;}A、賦初值的字符串有錯(cuò)B、6,7C、5,6D、6,6標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核字符串的長(zhǎng)度和字符型數(shù)組所占的字節(jié)數(shù)。本題在定義字符數(shù)組時(shí)沒有定義數(shù)組長(zhǎng)度,但賦給數(shù)組初值,初值的個(gè)數(shù)即為數(shù)組的長(zhǎng)度。故數(shù)組長(zhǎng)度為6(包括’\0’)。字符串的長(zhǎng)度為有效字符的個(gè)數(shù),為5。所以程序最后輸出5,6。24、若有如下程序:#include<iostream>usingnamespacestd;ints=0;classsample{staticintn;public:sample(inti){n=i;}staticvoidadd(){s+=n;}};intsample::s=0;intmain(){samplea(2),b(5);sample::add();cout<<s<<end1;return0;}程序運(yùn)行后的輸出結(jié)果是()。A、2B、5C、7D、3標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考核靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的應(yīng)用。程序中定義一個(gè)類sample,它包括一個(gè)靜態(tài)數(shù)據(jù)成員n和一個(gè)靜態(tài)成員函數(shù)add(),并在類的構(gòu)造函數(shù)中給類私有靜態(tài)數(shù)據(jù)成員n賦值。在主函數(shù)中,定義對(duì)象a(2)時(shí),通過構(gòu)造函數(shù)使靜態(tài)數(shù)據(jù)成員n的值變?yōu)?,在定義對(duì)象b(5)時(shí),通過構(gòu)造函數(shù)使靜態(tài)數(shù)據(jù)成員n=5(覆蓋了前面的n=2),再執(zhí)行“sample::add()”使全局變量s=5。25、有以下程序:#include<iostream>usingnamespacestd;classB{private:inta,b;public:B(){}B(inti,intj);voidprintb();};classA{BC;public:A(){}A(inti,intj);voidprinta();};A::A(inti,intj):c(i,j){}voidA::printa(){c.printb();}B::B(inti,intj){a=i;b=j;}voidB::printb(){cout<<a<<","<<b<<end1;}intmain(){Am(7,8);m.printa();return0;}該程序運(yùn)行后的輸出結(jié)果是()。A、5,6B、7,8C、8,9D、9,10標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考核類的定義和應(yīng)用。程序首先定義了兩個(gè)類A和B。在類A中,其私有數(shù)據(jù)成員c為類B的對(duì)象。類A的成員函數(shù)printa()中,調(diào)用私有成員對(duì)象c的成員函數(shù)printb()輸出類B私有數(shù)據(jù)成員a和b的值。26、為了使程序的輸出的正確結(jié)果為:Nowis2004.7.1010:10:10.那么應(yīng)在下列程序劃線處填入的正確語句是()。那么應(yīng)在下列程序劃線處填入的正確語句是()。#include<iostream>usingnamespacestd;classTIME;classDATE{public:DATE(inty=2004,intm=1,intd=1){year=y;month=m;day=d;}friendvoidDateTime(DATE&d,TIME&t);private:intyear,month,day;};classTIME{public:TIME(ihth=0,intm=0,ints=0){hour=h;minute=m;second=s;}friendvoidDateTime(DATE&d,TIME&t);private:inthour,minute,second;};______________________//函數(shù)DateTime的首部{cout<<"Nowis"<<d.year<<’.’<<d.month<<’.’<<d.day<<’’<<t.hour<<":"<<t.minute<<’:’<<t.second<<’.’<<end1;}intmain(){DATEd(2004,7,10);TIMEt(10,10,10);DateTime(d,t);return0;}A、voidDateTime(DATE&d,TIME&t)B、voidTIME::DateTime(DATE&d,TIME&t)constC、friendvoidDateTime(DATE&d,TIME&t)D、voidDATE::DateTime(DATE&d,TIME&t)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題程序中,分別在類DATE和TIME中將普通函數(shù)DateTime聲明為友元函數(shù),但該友元函數(shù)的定義是在類體外進(jìn)行的。友元函數(shù)是一個(gè)普通函數(shù),它雖然可以訪問類對(duì)象的私有成員,但它畢竟不是類中的成員函數(shù),因此在類體外定義友元函數(shù)時(shí),不需要像成員函數(shù)一樣在函數(shù)名前加上“類名::”。函數(shù)首部的其他定義照抄類中友元函數(shù)的聲明。所以函數(shù)DateTime的首部為voidDateTime(DATE&d;TIME&t),即選項(xiàng)A。27、若有以下程序:#include<iostream>usingnamespacestd;classA{private:intx;protected:inty;public:intz;voidsetx(inti){x=i;}intgetx(){returnx;};classB:protectedA{public:voidsetvalue(inta,intb,intc){setx(a);y=b;z=c;}voiddisplay(){cout<<getx()<<","<<y<<","<<z<<","<<end1;}};intmain(){Bobj;obj.setvalue(5,6,7);obj.display();return0;}程序運(yùn)行后的輸出結(jié)果是()。A、產(chǎn)生語法錯(cuò)誤B、7,6,5C、5,6,7D、7,5,6標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核保護(hù)繼承中對(duì)類成員的訪問權(quán)限。①在保護(hù)繼承中,基類公有成員和保護(hù)成員都以保護(hù)成員身份出現(xiàn)在派生類中,而基類私有成員不可訪問。②基類的公有成員和保護(hù)成員被繼承以后作為派生類的保護(hù)成員,這樣,派生類的其他成員可以直接訪問它們。③由保護(hù)派.生的類聲明的對(duì)象,不能訪問任何基類的成員。在本題中,基類A中的數(shù)據(jù)成員y和函數(shù)setx,經(jīng)過保護(hù)繼承以后,在派生類B中成為保護(hù)成員,派生類B的對(duì)象不能訪問它們。而派生類B中的函數(shù)setvalue和display都是公有成員,可以通過對(duì)象對(duì)它們進(jìn)行訪問。所以程序中對(duì)各成員的訪問是正確的。本程序的功能是對(duì)類中各數(shù)據(jù)成員進(jìn)行賦值,然后查看賦值是否正確。28、若有以下程序:#include<iostream>usingnamespacestd;classA{protected:inta;public:A(){a=10;}};classA1:publicA{public:A1(){a=a+1;}};classA2:publicA{public:A2(){a=a+2;}};classB:publicA1,publicA2{public:B(){}voidprint(){cout<<a<<end1;}};intmain(){Bobj;obj.print();return0;}程序運(yùn)行后的輸出結(jié)果是()。A、產(chǎn)生語法錯(cuò)誤B、11C、12D、10標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考核派生類的定義和使用。本程序有語法錯(cuò)誤,這是由于類B中的print函數(shù)中的語句“cout<<a<<end1;”要輸出成員a的值,從而產(chǎn)生了二義性。分析如下:程序中定義了類A,類A1和類A2都是在類A的基礎(chǔ)上以公有繼承方式產(chǎn)生的派生類,而類B是在類A1和類A2的基礎(chǔ)上經(jīng)過多重繼承方式產(chǎn)生的派生類,所以在類B中成員a有兩個(gè)拷貝,系統(tǒng)無法區(qū)分是從A1繼承過來的a,還從A2類繼承過來的a。修改方法有以下兩種:①在被訪問的成員加上作用域分辨符“::”。將類B中的print()函數(shù)體中語句改為:cout<<A1::a<<end1;或cout<<A2::a<<end1;但兩者的輸出結(jié)果不同,前者輸出11,而后者輸出12。②采用虛基類的方法。就是在定義A1和A2時(shí),在派生方式前加上關(guān)鍵詞“virtual”。29、有以下程序:#include<iostream>usingnamespacestd;classBase{public:Base(){}virtualvoidwho(){cout<<"BaseClass"<<end1;}~Base(){}};classDerivel:publicBase{public:voidwho(){cout<<"DerivelClass"<<end1;}};classDerive2:publicBase{public:voidwho(){cout<<"Derive2Class"<<end1;}};intmain(){Base*p;Derivelobj1;Derive2obj2;p=&obj1;p=&obj2;p->who();return0;}執(zhí)行程序后的輸出結(jié)果是()。A、BaseClassB、DerivelClassC、Derive2ClassD、程序編譯時(shí)出錯(cuò)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核虛函數(shù)的應(yīng)用。本題中,先定義了一個(gè)基類Base,它含有一個(gè)虛成員函數(shù)who(),隨后定義的類Derivel和Derive2都是基類Base的公有派生類。在主函數(shù)中定義了一個(gè)指向Base類的指針,它也被允許指向其派生類。在執(zhí)行過程中,不斷改變它所指向的對(duì)象,p->who就能調(diào)用不同的函數(shù)實(shí)現(xiàn)。這是因?yàn)槭褂昧颂摵瘮?shù),因而進(jìn)行動(dòng)態(tài)聯(lián)編。程序最后把指針p指向派生類Derive2的對(duì)象,由于函數(shù)who()在基類Base中是虛函數(shù),所以系統(tǒng)調(diào)用Derive2中的who()函數(shù),最后輸出Derive2Class。30、在進(jìn)行了任何C++流的操作后,都可以用C++流的有關(guān)成員函數(shù)檢測(cè)流的狀態(tài),其中用于是否進(jìn)行了非法操作的函數(shù)名是()。A、failB、eofC、badD、good標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:C++中可以用文件流對(duì)象的下列成員函數(shù)來判別文件流的當(dāng)前狀態(tài)。①函數(shù)isopen判定流對(duì)象是否與一個(gè)打開的文件相聯(lián)系,若是,返回true,否則返回false。②函數(shù)good剛進(jìn)行的操作成功時(shí)返回true,否則返回false。③函數(shù)fail與good()相反,剛進(jìn)行的操作失敗時(shí)返回true,否則返回false。④函數(shù)bad如果進(jìn)行了非法操作返回true,否則返回false。⑤函數(shù)eof進(jìn)行輸入操作時(shí),若到達(dá)文件尾返回true,否則返回false。其中,eof函數(shù)只能用于輸入流操作。三、公共基礎(chǔ)填空題(本題共4題,每題1.0分,共4分。)31、已知序列{17,18,60,40,7,32,73,65,85},采用冒泡排序法對(duì)該序列作降序排序時(shí),第4趟的結(jié)果是【】。標(biāo)準(zhǔn)答案:60,40,73,65,85,32,18,17,7知識(shí)點(diǎn)解析:冒泡排序法的算法基本思想是:通過無序區(qū)中相鄰記錄關(guān)鍵詞間的比較和位置交換,使關(guān)鍵詞最小的記錄如氣泡一般逐漸往上“漂浮”直至“水面”。整個(gè)算法是從最下面的記錄開始,對(duì)每?jī)蓚€(gè)相鄰的關(guān)鍵詞進(jìn)行比較,且使關(guān)鍵詞較小的記錄換至關(guān)鍵詞較大的記錄之前,使得經(jīng)過一趟冒泡排序后,關(guān)鍵詞最小的記錄達(dá)到最上端。接著,再在剩下的記錄中找關(guān)鍵詞最小的記錄,并把它換在第2個(gè)位置上。依此類推,一直到所有記錄都有序?yàn)橹?。根?jù)這種思想,每趟的排序結(jié)果如下:初始:17,18,60,40,7,32,73,65,85第一趟18,60,40,17,32,73,65,85,7第二趟60,40,18,32,73,65,85,17,7第三趟60,40,32,.73,65,85,18,17,7第四趟60,40,73,65,85,32,18,17,7第五趟60,73,65,85,40,32,18,17,7第六趟73,65,85,60,40,32,18,17,7第七趟73,85,65,60,40,32,18,17,7第八趟85,73,65,60,40,32,18,17,732、【】是按照程序語句行的自然順序,依次執(zhí)行語句。標(biāo)準(zhǔn)答案:順序執(zhí)行知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)語言僅僅使用順序、選擇和循環(huán)3種基本結(jié)構(gòu)。其中,順序結(jié)構(gòu)是最基本、最常用的結(jié)構(gòu),它采用順序執(zhí)行的結(jié)構(gòu),即按照程序語句行的自然順序,依次執(zhí)行語句。33、調(diào)試方法中的【】最適合小規(guī)模程序的排錯(cuò)。標(biāo)準(zhǔn)答案:回溯法知識(shí)點(diǎn)解析:這種調(diào)試方法是從出現(xiàn)錯(cuò)誤征兆處開始,人工沿控制流程往回追蹤,直至發(fā)現(xiàn)出錯(cuò)的根源。這是在小程序中常用的一種有效的調(diào)試方法。程序變大后,可能的回溯路線顯著增加,以致人工進(jìn)行完全回溯可望而不可及。例如,程序中發(fā)現(xiàn)錯(cuò)誤處是某個(gè)打印語句。通過輸出值可推斷程序在這一點(diǎn)上變量的值,再從這一點(diǎn)出發(fā)?;厮莩绦虻膱?zhí)行過程,反復(fù)考慮:“如果程序在這一點(diǎn)上的狀態(tài)(變量的值)是這樣,那么程序在上一點(diǎn)的狀態(tài)一定是這樣……”,直到找到錯(cuò)誤的位置。34、若a=12,b=14,c=0,則表達(dá)式“((y=(a>B)?a:B)>C)?y:c”的值為【】。標(biāo)準(zhǔn)答案:14知識(shí)點(diǎn)解析:條件運(yùn)算符是一種在兩個(gè)表達(dá)式中選擇一個(gè)的操作,它是C++中惟一的三元運(yùn)算符。在本題中,先計(jì)算“(a>B)?a:b”,因?yàn)閍c的邏輯值為真,所以表達(dá)式的值為y的值,即14。四、填空題(本題共7題,每題1.0分,共7分。)35、函數(shù)sstrcmp()的功能是對(duì)兩個(gè)字符串進(jìn)行比較。當(dāng)s所指字符串和t所指字符串相等時(shí),返回值為0:當(dāng)s所指字符串大于t所指字符串時(shí),返回值大于0;當(dāng)s所指字符串大于t所指字符串時(shí),返回值大于0(功能等同于strcmp())。請(qǐng)?zhí)羁铡ntSstrcmp(char*S,char*t){while(*s&&*t&&*S==*t){s++;t++;}return【】;}標(biāo)準(zhǔn)答案:*s-*t或s[0]-t[0]知識(shí)點(diǎn)解析:函數(shù)sstrcmp()有兩個(gè)字符型指針變量,用來指向兩個(gè)字符串。比較兩個(gè)字符串的大小方法是:從第1個(gè)字符開始依次向后比較,若對(duì)應(yīng)的字符相等,則接著比較下一個(gè)字符,一直到兩個(gè)字符串中的對(duì)應(yīng)字符不相等,或有一個(gè)為“\0”,此時(shí)對(duì)應(yīng)字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為’\0’,且*s和*t相同。空白處應(yīng)填入返回值,即“*s-*t”或其等價(jià)形式。36、若有以下程序:#include<iostream>usingnamespacestd;intf(intx,inty){return(y-x)*x;}intmain(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));cout<<d<<<end1;return0;}執(zhí)行后的輸出結(jié)果是【】。標(biāo)準(zhǔn)答案:9知識(shí)點(diǎn)解析:本題考核函數(shù)的嵌套調(diào)用。在主函數(shù)中執(zhí)行語句“d=f(f(a,b),f(a,c));”調(diào)用了3次f()函數(shù):調(diào)用f(a,b)得到的值為3,調(diào)用f(a,c)得到的值為6,調(diào)用f(3,6)得到的值為9。37、如果一個(gè)數(shù)組中的每個(gè)元素都是同一類的對(duì)象,則該數(shù)組被稱為【】。標(biāo)準(zhǔn)答案:對(duì)象數(shù)組知識(shí)點(diǎn)解析:對(duì)象數(shù)組是指數(shù)組元素為對(duì)象的數(shù)組,該數(shù)組中的每一個(gè)元素都是同一個(gè)類的對(duì)象。38、表達(dá)式c3=c1.operator+(c2)或c3=operator+(c1,c2)還可以表示為【】標(biāo)準(zhǔn)答案:c3=c1+c2知識(shí)點(diǎn)解析:這是運(yùn)算符重載應(yīng)用的兩種形式。39、下面程序的打印結(jié)果是【】。#include<iostream>usingnamespacestd;classBase{public:Base(intx){a=x;}voidshow(){cout<<a;}private:inta;};classDerived:publicBase{public:Derived(inti):Base(i+1),b(i){}voidshow(){cout<<b;}private:intb;};intmain(){Baseb(5),*pb;Derivedd(1);pb=&d;pb->show();return0;}標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:基類Base派生出派生類Derived,在主函數(shù)中,定義了基類對(duì)象b,基類指針pb,以及派生類對(duì)象d,并讓基類指針pb指向派生類對(duì)象乙在C++中,當(dāng)派生類的對(duì)象賦值給基類對(duì)象時(shí),只能使用派生類對(duì)象中從基類繼承的成員。所以最后執(zhí)行語句“pb->show();”是調(diào)用基類的成員函數(shù)show(),輸出a的值2。40、有如下程序:#include<iostream>usingnamespacestd;classAA{public:virtualvoidf(){cout<<"AA";}};classBB:publicAA{public:BB(){cout<<"BB";}};classCC:publicBB{public:virtualvoidf(){BB::f();cout<<"CC";}};intmain(){AAaa,*p;BBbb;CCcc;p=&cc;p->f();returnO;}運(yùn)行后的輸出結(jié)果【】標(biāo)準(zhǔn)答案:BBBBAACC知識(shí)點(diǎn)解析:本題中,函數(shù)f()在基類AA中派生類CC中都聲明為虛函數(shù),所以采用動(dòng)態(tài)聯(lián)編。主函數(shù)首先定義類AA的對(duì)象aa和指針對(duì)象p,然后定義了類BB的對(duì)象bb,此時(shí)調(diào)用了類BB的構(gòu)造函數(shù)輸出BB。再定義類CC的對(duì)象cc,由于類CC是類BB的派生類,所以此時(shí)又調(diào)用類BB的構(gòu)造函數(shù)輸出BB。最后執(zhí)行語句“p=&cc;p->f();”,輸出AA和CC。41、若有以下程序:#include<iostream>usingnamespacestd;intmain(){charstr[10];cin>>str;cout<<str<<end1;return0;}當(dāng)輸入為:Thisisaprogram!那么執(zhí)行程序后的輸出結(jié)果是【】。標(biāo)準(zhǔn)答案:This知識(shí)點(diǎn)解析:本題考核C++的標(biāo)準(zhǔn)輸入/輸出。提取符可以從輸入流中讀取一個(gè)字符序列,即一個(gè)字符串。在處理這種字符序列時(shí),字符串被認(rèn)為是一個(gè)以空白字符結(jié)束的字符序列。因此,本題得到的輸入僅僅是第一個(gè)空白符之前的字符序列This。所以程序最后的輸出是This。五、填空題(含2小題)(本題共1題,每題1.0分,共1分。)42、函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二位數(shù)組的下半三角,形式如下:其構(gòu)成規(guī)律是:①第0列元素和主對(duì)角線元素均為1。②其余元素為其左上方和正上方元素值之和。③數(shù)據(jù)的個(gè)數(shù)每行遞增1。請(qǐng)將程序補(bǔ)充完整。#defineN6voidYangHui(intx[N][N]){inti,j;x[0][0]=1;for(i=1;i<N;i++){x[i][0]=【】=1;for(j=1;j<i;j++)x[i][j]=【】;}}標(biāo)準(zhǔn)答案:x[i][0]x[i-1][j-1]+x[i-1][j]知識(shí)點(diǎn)解析:本題考核數(shù)組的應(yīng)用,屬于綜合型考題。在函數(shù)YangHui中,通過嵌套的for語句實(shí)現(xiàn)楊輝三角各個(gè)位置元素的賦值。①由于楊輝三角中,第0列元素和主對(duì)角線元素均為1。所以可知,x[i][0]=1,x[i][i]=1。②楊輝三角中,其余元素為其左上方和正上方元素值之和。若元素為x[i][j],那么其左上方的元素為x[-1][j-1),正上方的元素為x[i-1][j]。所以x[i][j]的值為x[i-1][j-1]+x[i-1][j]。國(guó)家二級(jí)(C++)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共32題,每題1.0分,共32分。)1、下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A、源程序要文檔化B、數(shù)據(jù)說明的次序要規(guī)范化C、避免濫用goto語句D、模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:編程風(fēng)格是在不影響程序性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:①程序文檔化。程序文檔應(yīng)包含恰當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。②數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語句次序規(guī)范化。③功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。④注意goto語句的使用。合理使用goto語句可以提高代碼的運(yùn)行效率,但goto語句的使用會(huì)破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語。因此,本題的正確答案是D。2、從工程管理角度,軟件設(shè)計(jì)一般分為兩步完成,它們是A、概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)B、數(shù)據(jù)設(shè)計(jì)與接口設(shè)計(jì)C、軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)D、過程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:從工程管理的角度,軟件設(shè)計(jì)可分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩大步驟。概要設(shè)計(jì)是根據(jù)需求確定軟件和數(shù)據(jù)的總體框架;詳細(xì)設(shè)計(jì)是將其進(jìn)一步簡(jiǎn)化成軟件的算法或表示和數(shù)據(jù)結(jié)構(gòu)。而在技術(shù)上,概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)又由若干活動(dòng)組成,包括總體結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)和過程設(shè)計(jì)。因此,本題的正確答案是A。3、下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是A、軟件測(cè)試B、概要設(shè)計(jì)C、軟件維護(hù)D、詳細(xì)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護(hù)3個(gè)時(shí)期構(gòu)成,每個(gè)時(shí)期又進(jìn)一步劃分為若干個(gè)階段。軟件定義時(shí)期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個(gè)階段。軟件開發(fā)時(shí)期是具體設(shè)計(jì)和實(shí)現(xiàn)在前一時(shí)期定義的軟件,它通常由5個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、組裝測(cè)試和確認(rèn)測(cè)試。軟件維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當(dāng)軟件在使用過程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)加以改正:當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件,以滿足用戶的新要求。根據(jù)上述對(duì)軟件生命周期的介紹,可知選項(xiàng)c中的軟件維護(hù)不是軟件生命周期開發(fā)階段的任務(wù)。因此,本題的正確答案是C。4、在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為A、概念模式B、外模式C、內(nèi)模式D、物理模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式也稱子模式或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式也稱邏輯模式,是數(shù)據(jù)庫中對(duì)全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。內(nèi)模式也稱存儲(chǔ)模式或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲(chǔ)介質(zhì)上的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存取方法的描述。5、數(shù)據(jù)庫設(shè)計(jì)的4個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和A、編碼設(shè)計(jì)B、測(cè)試階段C、運(yùn)行階段D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫的生命周期可以分為兩個(gè)階段:一是數(shù)據(jù)庫設(shè)計(jì)階段,二是數(shù)據(jù)庫實(shí)現(xiàn)階段。數(shù)據(jù)庫的設(shè)計(jì)階段又分為4個(gè)子階段,即需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。因此,本題的正確答案是D。6、下列敘述中正確的是A、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D、上述3種說法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:時(shí)間復(fù)雜度是指一個(gè)算法執(zhí)行時(shí)間的相對(duì)度量;空間復(fù)雜度是指算法在運(yùn)行過程中臨時(shí)占用的存儲(chǔ)空間大小的度量。有時(shí)為了加快算法的運(yùn)行速度,不得不增加空間開銷;有時(shí)為了能有效地存儲(chǔ)算法和數(shù)據(jù),又不得不犧牲運(yùn)行時(shí)間。時(shí)間和空間的效率往往是矛盾存在的,但是,這不適用于所有的情況,也就是說,時(shí)間復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項(xiàng)A、B、C的說法都是錯(cuò)誤的。7、在長(zhǎng)為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A、63B、64C、6D、7標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在長(zhǎng)度為64的有序線性表中,其中的64個(gè)數(shù)據(jù)元素是按照從大到小或從小到大的順序有序排列的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不在線性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個(gè)數(shù)據(jù)元素進(jìn)行比較。若相等,則查找成功;否則,繼續(xù)進(jìn)行比較,即和線性表的第二個(gè)數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功;否則,繼續(xù)進(jìn)行比較。以此類推,直到在線性表中查找到該數(shù)據(jù)或查找到線性表的最后一個(gè)元素,算法才結(jié)束。因此,在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為B。8、數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的A、存儲(chǔ)問題B、共享問題C、安全問題D、保護(hù)問題標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫可以看成是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個(gè)數(shù)據(jù)庫,可以取出它們所需要的子集,而且允許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項(xiàng)B的說法是正確的。9、下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是A、內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移B、內(nèi)聯(lián)函數(shù)必須通過關(guān)鍵字inline來定義C、內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的D、內(nèi)聯(lián)函數(shù)體的最后一條語句必須是return語句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:內(nèi)聯(lián)函數(shù)也具有函數(shù)的基本功能,可以沒有返回值;內(nèi)聯(lián)函數(shù)由編譯器在調(diào)用該函數(shù)時(shí)將函數(shù)體的代碼插入到調(diào)用該函數(shù)的語句處,同時(shí)以實(shí)參代替形參,以便程序在運(yùn)行時(shí)不再進(jìn)行函數(shù)調(diào)用,即在調(diào)用時(shí)不發(fā)生控制轉(zhuǎn)移。10、下列情況中,不會(huì)調(diào)用復(fù)制構(gòu)造函數(shù)的是A、用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí)B、將類的一個(gè)對(duì)象賦予該類的另一個(gè)對(duì)象時(shí)C、函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D、函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí),將類的一個(gè)對(duì)象賦予該類的另一個(gè)對(duì)象時(shí),函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)都會(huì)調(diào)用復(fù)制構(gòu)造函數(shù),生成一個(gè)新的對(duì)象,只有返回值為對(duì)象時(shí),才調(diào)用構(gòu)造函數(shù),而不是復(fù)制構(gòu)造函數(shù),生成一個(gè)新對(duì)象給函數(shù)返回,故答案為D。11、下列有關(guān)繼承和派生的敘述中,正確的是A、如果一個(gè)派生類私有繼承其基類,則該派生類對(duì)象不能訪問基類的保護(hù)成員B、派生類的成員函數(shù)可以訪問基類的所有成員C、基類對(duì)象可以賦值給派生類對(duì)象D、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:派生類的成員函數(shù)在不同的繼承方式下,能訪問的數(shù)據(jù)成員也不一樣。在公有繼承方式下,派生類的成員函數(shù)能訪問基類的公有和保護(hù)成員;在保護(hù)繼承方式下,能訪問基類的公有和保護(hù)成員;而在私有繼承方式下,則不能訪問基類的任何成員??梢詫⑴缮悓?duì)象賦值給基類對(duì)象,但不能將基類對(duì)象賦值給派生類對(duì)象。如果一個(gè)抽象類的派生類中沒有抽象說明純虛函數(shù),則該函數(shù)在派生類中仍然為純虛函數(shù),而這個(gè)派生類也仍然是一個(gè)抽象類。12、模板對(duì)類型的參數(shù)化提供了很好的支持,因此A、類模板的主要作用是生成抽象類B、類模板實(shí)例化時(shí),編譯器將根據(jù)給出的模板實(shí)參生成一個(gè)類C、在類模板中的數(shù)據(jù)成員都具有同樣類型D、類模板中的成員函數(shù)都沒有返回值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類模板是一個(gè)通用類,不知道其數(shù)據(jù)成員和成員函數(shù)的返回類型和形參類型,系統(tǒng)會(huì)根據(jù)實(shí)參的類型來取代類模板中的虛擬類型從而實(shí)現(xiàn)不同類的功能。類模板中的數(shù)據(jù)成員的類型并非一定要一致。13、下列關(guān)于C++流的敘述中,正確的是A、與鍵盤、屏幕、打印機(jī)和通信端口的交互都可以通過流類來實(shí)現(xiàn)B、從流中獲取數(shù)據(jù)的操作稱為插入操作,向流中添加數(shù)據(jù)的操作稱為提取操作C、cin是一個(gè)預(yù)定義的輸入流類D、輸出流有一個(gè)名為open的成員函數(shù),其作用是生成一個(gè)新的流對(duì)象標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,所有設(shè)備的交互都通過流來實(shí)現(xiàn)。從流中提取數(shù)據(jù)稱為輸入操作,或者提取操作;向流中添加數(shù)據(jù)稱為輸出操作,或者插入操作。cin是標(biāo)準(zhǔn)的輸入流對(duì)象,cout標(biāo)準(zhǔn)輸入流對(duì)象。文件流中有open成員函數(shù),其作用是使磁盤文件同某一已經(jīng)定義的文件流對(duì)象建立關(guān)聯(lián)。14、下列符號(hào)中可以用作C++標(biāo)識(shí)符的是A、_radiusB、foo~barC、elseD、3room標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,變量標(biāo)識(shí)符必須以大小寫字母、下畫線開始,是由數(shù)字或者字母下畫線等組成的一個(gè)字符串,其中C++關(guān)鍵字不能作為標(biāo)識(shí)符,不能包含-、+、*、/等運(yùn)算符號(hào)。15、下列語句中,錯(cuò)誤的是A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:用const修飾常量就變?yōu)槌W兞?,常變量一旦被建立,就不能被更改。在被定義時(shí)就應(yīng)該給常變量賦初始值,而常指針則不同,被定義后,它指向的地址不能發(fā)生改變,但是指向的地址中的數(shù)據(jù)可以改變。16、有如下程序:intx=3:d0{x-=2:cout<<x:}while(!(--x));執(zhí)行這個(gè)程序的輸出結(jié)果是A、1B、30C、12D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:Do...while()循環(huán)是先執(zhí)行循環(huán)體,然后判斷條件。第一次進(jìn)入循環(huán)x=1,打印1,第二次進(jìn)入循環(huán)x=0,執(zhí)行x-=2后,x=-2,打印x,退出循環(huán)。17、有如下程序:#include<iostream>usingnamespacestd;intmain(){int*P;*P=9;cout<<"ThevalueatP:"<<*P:return0;}編譯運(yùn)行程序?qū)⒊霈F(xiàn)的情況是A、編譯時(shí)出現(xiàn)語法錯(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;指針變量定義時(shí)沒有被初始化,也沒有指向具體的地址,所以在后面打印時(shí)報(bào)錯(cuò)。應(yīng)當(dāng)做如下初始化:int*p=newint();18、有如下程序:#include<iostream>usingnamcspacestd;intmain(){voidfunction(doubleval);doubleval;function(val);eout<<val;return0;}voidfunction(doubleval){val=3:}編譯運(yùn)行這個(gè)程序?qū)⒊霈F(xiàn)的情況是A、編譯出錯(cuò),無法運(yùn)行B、輸出:3C、輸出:3.0D、輸出一個(gè)不確定的數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在主函數(shù)中的val沒有初始值,而且在調(diào)用函數(shù)function()時(shí)采用的是傳值調(diào)用,所以在函數(shù)中改變val的值不會(huì)影響到主函數(shù)中的val值,故輸出是一個(gè)不確定的值。19、有如下類定義:classAA{inta;public:intgetRef()eonst{return&a;}//①intgetValue()const{returna;}//②voldset(intn)eonst{a=n;}//③friendvoidshow(AAaA)eonst{tout<<a;}//④};其中的4個(gè)函數(shù)定義中正確的是A、①B、②C、③D、④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:友元函數(shù)不能使用const修飾,故④錯(cuò)誤,①的函數(shù)類型和返回類型不匹配。如果一個(gè)類的成員函數(shù)被聲明為const類型,表示該函數(shù)不會(huì)改變對(duì)象的狀態(tài),也就是說該函數(shù)不會(huì)修改類的非靜態(tài)數(shù)據(jù)成員,而③對(duì)類的數(shù)據(jù)成員a進(jìn)行了賦值,故不能用const賦值,故③錯(cuò)。20、有如下程序:#include<iostream>usingnamespacestd;usingnamespacestd;classBase{public:voidfun(){cout<<"Base::fun"<<endl:}};classDerived:publicBase{public:voidfun(){eout<<"Derived::fun"<<endl:}};intmain(){Derivedd;d.fun();return0;}已知其執(zhí)行后的輸出結(jié)果為:Base::funDerived::fun則程序中下畫線處應(yīng)填入的語句是A、Base.fun();B、Base::fun();C、Base->fun();D、fun();標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:從打印結(jié)果可以看出,在對(duì)象d調(diào)用fun()函數(shù)時(shí)調(diào)用了基類的fun()函數(shù),所以,在派生類中應(yīng)該顯式調(diào)用基類的fun()函數(shù),故應(yīng)該寫成:Base::fun();。21、下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是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知識(shí)點(diǎn)解析:類的賦值運(yùn)算符“=”只能被重載為成員函數(shù),不能重載為友元函數(shù)。22、有如下函數(shù)模板:template<typenameT,typenaineU>Tcast(Uu){returnu;}其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)用中正確的是A、cast(i);B、cast<>(i);C、cast<char*,int>(i);D、cast<double,int>(i);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選擇A、B錯(cuò)在沒有給T參數(shù)類型,在函數(shù)的返回值中應(yīng)該為T確定一個(gè)確切的類型。選項(xiàng)C錯(cuò)在賦給T的類型和函數(shù)中返回值的類型不匹配,故答案為D。23、若磁盤上已存在某個(gè)文本文件,其全路徑文件名為d:\ncre\test.txt,下列語句中不能打開該文件的是A、ifstreamfile("d:\ncre\test.txt");B、ifstreamfile("d:\\ncre\\test.txt");C、ifstreamfile;file.open("d:\\ncre\\test.txt");D、ifstream*pFile=newifstream("d:\\ncre\\test.txt");標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:文件流的打開路徑用“\\”隔開,而不是“\”,但可以用“/”隔開。24、有如下類定義:classFoo{public:Foo(intv):value(v){}//①~Foo(){}//②private:Foo(){{//③intvalue=0;//④};其中存在語法錯(cuò)誤的行是A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類的數(shù)據(jù)成員只能被定義類型,而不能對(duì)其設(shè)置默認(rèn)值。如果要設(shè)置默認(rèn)值需要在構(gòu)造函數(shù)的參數(shù)中進(jìn)行設(shè)置。25、有如下類定義:classPoint{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知識(shí)點(diǎn)解析:a(2)執(zhí)行一次,調(diào)用帶參構(gòu)造函數(shù);b[3]生成一個(gè)對(duì)象數(shù)組,所以執(zhí)行3次無參構(gòu)造函數(shù),生成3個(gè)對(duì)象數(shù)組元素;*c[4]定義一個(gè)對(duì)象指針,并沒產(chǎn)生對(duì)象,所以沒有調(diào)用構(gòu)造函數(shù)。26、有如下類定義:classTest{public:Test(){a=0;C=0;t//①intf(intA)const{this->a=a;}//②staticintg(){returna;}//③voidh(intB){Test::b=b;};//④private:inta;staticintb;constintc;};intTest::b=0:在標(biāo)注號(hào)碼的行中,能被正確編譯的是A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類的常變量一旦被定義就不能更改,所以選項(xiàng)A錯(cuò)。定義常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,也不能調(diào)用該類中的普通函數(shù),更不能改變?cè)擃惖臄?shù)據(jù)成員的值。靜態(tài)成員函數(shù)不能訪問非靜態(tài)數(shù)據(jù)成員。27、有如下程序:#include<lostream>usingnamespacestd;classA{public:A(){cout<<"A";}~A(){cout<<"~A";}};classB:publicA{A*P;public:B(){cout<<"B";P=newA();}~B(){cout<<"~B";deleteP;}};intmain(){Bobj;return0;}程序的輸出結(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)解析:基類與派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序是先執(zhí)行基類的構(gòu)造函數(shù),然后執(zhí)行派生類的構(gòu)造函數(shù)。刪除對(duì)象時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),最后執(zhí)行基類的析構(gòu)函數(shù)成員。28、有如下類定義:classMyBase{intk;public:MyBase(intn=0):k(n){}intvalue()const{returnk;}};classMyDerived:MyBase{intj;public:MyDerived(inti):j(i){}intgetK()eonst{returnk;}intgetJ()const{returnj;}};編譯時(shí)發(fā)現(xiàn)有一處語法錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是A、函數(shù)getK試圖訪問基類的私有成員變量KB、在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或privateC、類MyDerived缺少一個(gè)無參的構(gòu)造函數(shù)D、類MyDerived的構(gòu)造函數(shù)沒有對(duì)基數(shù)數(shù)據(jù)成員K進(jìn)行初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:派生類的成員函數(shù)不能訪問基類的私有函數(shù)。29、在一個(gè)派生類對(duì)象結(jié)束其生命周期時(shí)A、先調(diào)用派生類的析構(gòu)函數(shù),后調(diào)用基類的析構(gòu)函數(shù)B、先調(diào)用基類的析構(gòu)函數(shù),后調(diào)用派生類的析構(gòu)函數(shù)C、如果基類沒有定義析構(gòu)函數(shù),則只調(diào)用派生類的析構(gòu)函數(shù)D、如果派生類沒有定義析構(gòu)函數(shù),則只調(diào)用基類的析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在刪除派生類對(duì)象時(shí),應(yīng)先執(zhí)行派生類的析構(gòu)函數(shù),然后執(zhí)行基類的析構(gòu)函數(shù)。30、有如下運(yùn)算重載函數(shù)定義:Doubleoperator+(inti,intk){returndouble(i+k);}但定義有錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤的最準(zhǔn)確的描述是A、+只能作為成員函數(shù)重載,而這里的+是作為非成員函數(shù)重載的B、兩個(gè)int型參數(shù)的和應(yīng)該是int型,而這里將+的返回類型聲明為doubleC、沒有將運(yùn)算符重載函數(shù)聲明為某個(gè)類的友元D、C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和運(yùn)算符+,不能再定義同樣的運(yùn)算符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:“+”作為雙目運(yùn)算符,在對(duì)其進(jìn)行重載時(shí),如果重載為成員函數(shù),則只需要定義一個(gè)形參;如果重載為友元函數(shù),則需要定義兩個(gè)形參。從題干中可以看出,在重載函數(shù)聲明中,沒有friend關(guān)鍵字,卻有兩個(gè)形參,故會(huì)提示友元函數(shù)重載報(bào)錯(cuò)。31、語句ofstreamf("SALARY.DAT",ios_base::app)的功能是建立流對(duì)象f,并試圖打開文件SALARY.DAT與f關(guān)聯(lián),而且A、若文件存在,則將其置為空文件;若文件不存在,則打開失敗B、若文件存在,則將文件指針定位于文件尾;若文件不存在,則建立一個(gè)新文件C、若文件存在,則將文件指針定位于文件首;若文件不存在,則打開失敗D、若文件存在,則打開失??;若文件不存在,則建立一個(gè)新文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:ios_base::app所表示的文件打開方式為:如果文件存在則將文件指針指向文件尾,否則就建立一個(gè)新文件。32、有如下程序:#include<iostream>usingnamespacestd:classA{public:virtualvoidfuncl(){cout<<"A1";}voidfunc2(){cout<<"A2";}};classB:publicA{public:voidfuncl(){cout<<"B1";}voidfllnc2(){cout<<"B2";}};intmain(){A*p=newB;p->funcl();p->func2();return0:}運(yùn)行程序,屏幕上將顯示輸出A、B182B、A1A2C、BlA2D、AlB2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:基類指針可以指向派生類對(duì)象,但是指針只能訪問繼承自基類的成員,而不能訪問派生類中的新增加成員或重新定義后的成員。故p->funcl();p->func2();都執(zhí)行基類的成員函數(shù),打印A1A2。二、公共基礎(chǔ)填空題(本題共9題,每題1.0分,共9分。)33、某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二又樹中有______個(gè)葉子結(jié)點(diǎn)標(biāo)準(zhǔn)答案:19知識(shí)點(diǎn)解析:暫無解析34、在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為______。標(biāo)準(zhǔn)答案:對(duì)象知識(shí)點(diǎn)解析:在面向?qū)ο蟾拍钪?,所有的同類的?shí)體的抽象就構(gòu)成一個(gè)類,而類被實(shí)例化就形成一個(gè)對(duì)象。35、診斷和改正程序中錯(cuò)誤的工作通常稱為______。標(biāo)準(zhǔn)答案:程序調(diào)試知識(shí)點(diǎn)解析:暫無解析36、在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為______。標(biāo)準(zhǔn)答案:關(guān)系知識(shí)點(diǎn)解析:暫無解析37、問題處理方案的正確而完整的描述稱為______。標(biāo)準(zhǔn)答案:算法知識(shí)點(diǎn)解析:暫無解析38、下列程序的輸出結(jié)果是______。#include<iostream>#include<cstring>usingnamespacestd;voidfun(constchar*S,char&C){e=s[strlen(s)/2];}intmain(){charstr[]="ABCDE";charch=str[1];fun(str,ch);cout<<ch;return0;}標(biāo)準(zhǔn)答案:C’知識(shí)點(diǎn)解析:暫無解析39、補(bǔ)充完整下面的類定義:constdoublePI=3.14;classCircle{//圓形物體的抽象基類protected:doubler;//半徑public:Circle(doubleradius=0):r(radius){}(13);//計(jì)算圓形物體表面積的純虛函數(shù)聲明};classCylinder:publicCircle{//圓柱體類doubleh;//高度public:Cylinder(doubleradius=0,doubleheight=0);Circle(radius),h(height){}VirtualdoubleArea(){return2*PI*r*(r+h);}//計(jì)算圓柱體的表面積};標(biāo)準(zhǔn)答案:virtualdoubleArea()=0知識(shí)點(diǎn)解析:聲明純虛函數(shù)的一般形式如下:Virtual函數(shù)類型函數(shù)名(參數(shù)表)=0;40、如下程序聲明了一個(gè)使用兩個(gè)通用數(shù)據(jù)類型的模板類dataClass,其中構(gòu)造函數(shù)用于初始化兩個(gè)數(shù)據(jù)成員,成員函數(shù)show用于輸出兩個(gè)數(shù)據(jù)成員的數(shù)值。#include<iostream>usingnamespaeestd;______T1i:T2j;public:dataClass(T1a,T2B){i=a;j=b;}voidshow(){tout<<i<<","<<j<<’\n’;}};intmain(){dataClass<int,double>obl(10,0.23);dataClass<char,char*>ob2(’X’,"mydata");obl.show();ob2.show();return0;請(qǐng)將程序補(bǔ)充完整,使程序在運(yùn)行時(shí)輸出:10,0.23X,mydata標(biāo)準(zhǔn)答案:template<classT1,classT2>classdataClass{知識(shí)點(diǎn)解析:類模板聲明的一般格式為:template<typename類型參數(shù)>Class類名{類成員聲明};其中類型參數(shù)可以為多個(gè)。題中出現(xiàn)了兩個(gè)類型參數(shù)T1、T2,故應(yīng)該在類模板的頭部聲明中聲明兩個(gè)類型參數(shù)T1、T2。41、下列程序的輸出結(jié)果為:Ohjectid=0Objectid=1請(qǐng)將程序補(bǔ)充完整。#include<iostream>usingnamespaeestd;classPoint{public:Point(intxx=0,intyy=0){X=xx;Y=yy;countP++;}~Point(){countP--;}intGetX(){returnX;}intGetY(){returnY;}staticvoidGetC(){cout<<"Objectid="<<<countP<<endl;}private:intX,Y;staticintcountP;};______//靜態(tài)數(shù)據(jù)成員的初始化intmain(){Point::GetC();PointA(4,5);A.GetC();return0;}標(biāo)準(zhǔn)答案:intP0int::counfP=0;知識(shí)點(diǎn)解析:靜態(tài)數(shù)據(jù)成員的初始化格式為:<數(shù)據(jù)類型><類名>::<靜態(tài)數(shù)據(jù)成員名>=<初始值>;國(guó)家二級(jí)(C++)筆試模擬試卷第3套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、對(duì)于算法的每一步,指令必須是可執(zhí)行的。算法的()要求算法在有限步驟之后能夠達(dá)到預(yù)期的目的。A、可行性B、有窮性C、正確性D、確定性標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析2、下列敘述中錯(cuò)誤的是()。A、一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)B、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)C、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)D、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析3、在結(jié)構(gòu)化程序設(shè)計(jì)方法中,下面內(nèi)聚性最弱的是()。A、邏輯內(nèi)聚B、時(shí)間內(nèi)聚C、偶然內(nèi)聚D、過程內(nèi)聚標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析4、最簡(jiǎn)單的交換排序方法是()。A、快速排序B、選擇排序C、堆排序D、冒泡排序標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析5、在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。A、32B、31C、64D、63標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析6、在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是()。A、詳細(xì)設(shè)計(jì)B、需求分析C、總體設(shè)計(jì)D、編程調(diào)試標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析7、結(jié)構(gòu)化程序設(shè)計(jì)的主要特征是()。A、封裝和數(shù)據(jù)隱藏B、繼承和重用C、數(shù)據(jù)和處理數(shù)據(jù)的過程分離D、把數(shù)據(jù)和處理數(shù)據(jù)的過程看成一個(gè)整體標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析8、在數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu)中,處于最上層的是()。A、應(yīng)用層B、語言翻譯處理層C、數(shù)據(jù)存取層D、數(shù)據(jù)存儲(chǔ)層標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析9、概要設(shè)計(jì)是軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì),以下選項(xiàng)中不屬于概要設(shè)計(jì)的是()。A、把軟件劃分成模塊B、確定模塊之間的調(diào)用關(guān)系C、確定各個(gè)模塊的功能D、設(shè)計(jì)每個(gè)模塊的偽代碼標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析10、數(shù)據(jù)庫關(guān)系模型中可以有三類完整性約束,下列選項(xiàng)中不屬于三類完整性約束的是()。A、實(shí)體完整性規(guī)則B、參照完整性規(guī)則C、對(duì)象完整性規(guī)則D、用戶自定義完整性規(guī)則標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析二、選擇題(本題共25題,每題1.0分,共25分。)11、cout、cerr和clog是()的對(duì)象,cout處理標(biāo)準(zhǔn)輸出,cerr和clog都處理標(biāo)準(zhǔn)出錯(cuò)信息。A、istreamB、ostreamC、celtD、clog標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析12、在C++中,用于實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、模板函數(shù)D、虛函數(shù)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析13、下列數(shù)組的定義中,會(huì)產(chǎn)生錯(cuò)誤的是()。A、inta[]={’0’,’1’,’2’,’3’,’4’,’5’,’6’};B、inta[10]={0,1,2,3,4,5,6};C、chara[5]="hello";D、chara[5]={’h’,’e’,’l’,’l’,’o’};標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析14、若有以下定義和語句:ints[4][5],(*ps)[5];ps=s;則對(duì)s數(shù)組元素的正確引用形式是()。A、ps+1B、*(ps+3)C、ps[0][2]D、*(ps+1)+3標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析15、不合法的main函數(shù)命令行參數(shù)表示形式是()。A、main(inta,char*c[1])B、main(intarc,char**arv)C、main(intargc,c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論