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

下載本文檔

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

文檔簡(jiǎn)介

國家二級(jí)(C++)筆試模擬試卷2(共9套)(共426題)國家二級(jí)(C++)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、下列敘述中正確的是()。A、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定大B、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D、上述三種說法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度從不同的角度來衡量算法的執(zhí)行情況,它們之間沒有內(nèi)在聯(lián)系。2、下列敘述中正確的是()。A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B、邏輯結(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ù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。采用不同的存儲(chǔ)結(jié)構(gòu),其處理的效率是不同的。3、對(duì)長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。A、125B、n/2C、nD、n+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)線性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。4、最簡(jiǎn)單的交換排序方法是()。A、快速排序B、選擇排序C、堆排序D、冒泡排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序。冒泡排序是一種最簡(jiǎn)單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。5、設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()。A、程序的結(jié)構(gòu)應(yīng)有助于讀者的理解B、限制GOTO語句的使用C、減少或取消注釋行D、程序越短越好標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序設(shè)計(jì)的風(fēng)格主要強(qiáng)調(diào)程序的簡(jiǎn)單、清晰和可理解性,以便讀者理解。程序?yàn)E用GOTO語句將使程序流程無規(guī)律,可讀性差;添加注釋行有利于對(duì)程序的理解,不應(yīng)減少或取消,程序的長短要依據(jù)實(shí)際的需要而定,并不是越短越好。6、下列關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述中錯(cuò)誤的是()。A、選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口B、復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)C、不允許使用GOTO語句D、語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:限制使用GOTO語句是結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一,但不是絕對(duì)不允許使用GOTO語句。其他3項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。7、下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。A、多態(tài)性B、繼承C、封裝性D、模塊化標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:面向?qū)ο笤O(shè)計(jì)方法與面向過程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是,使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。其特點(diǎn)包括分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。8、在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一個(gè)對(duì)象為其服務(wù)的方式是通過發(fā)送()。A、調(diào)用語句B、命令C、口令D、消息標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在面向?qū)ο蠓椒ㄖ?,?duì)象之間通過消息進(jìn)行通信。消息中只包含傳遞者的要求,它告訴接受者需要做哪些處理,但并不指示接受者應(yīng)該怎么完成這些處理,接受者獨(dú)立決定采用什么方式完成所需的處理。9、下列描述中錯(cuò)誤的是()。A、繼承分為多重繼承和單繼承B、對(duì)象間通信靠傳遞消息實(shí)現(xiàn)C、在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征D、類是具有共同屬性、共同方法的對(duì)象的集合標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)象的封裝性是指從外面看只能看到對(duì)象的外部特性;而對(duì)象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對(duì)外是不可見的,是隱蔽的。10、下列敘述中正確的是()。A、軟件交付使用后還需要進(jìn)行維護(hù)B、軟件一旦交付使用就不需要再進(jìn)行維護(hù)C、軟件交付使用后其生命周期就結(jié)束D、軟件維護(hù)是指修復(fù)程序中被破壞的指令標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件生命周期一般可以分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。軟件交付并投入運(yùn)行后,需要不斷地進(jìn)行維護(hù),并根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)展和刪改。二、選擇題(本題共25題,每題1.0分,共25分。)11、下列關(guān)于C++函數(shù)的說明中,正確的是()。A、內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)B、函數(shù)體的最后一條語句必須是return語句C、標(biāo)準(zhǔn)C++要求在調(diào)用一個(gè)函數(shù)之前,必須先聲明其原型D、編譯器會(huì)根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:選項(xiàng)A)中,內(nèi)聯(lián)函數(shù)不是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù),而是將incline放在函數(shù)定義中函數(shù)類型之前:函數(shù)體的最后一條語句可以是任意的語句,選項(xiàng)B)錯(cuò)誤;編譯器不會(huì)根據(jù)函數(shù)返回值的類型來區(qū)分重載形式,選項(xiàng)D)錯(cuò)誤。標(biāo)準(zhǔn)C++要求在調(diào)用一個(gè)函數(shù)之前,必須先聲明其原型,選項(xiàng)C)正確。12、假定MyClass為一個(gè)類,則執(zhí)行MyClassab(2),*p;語句時(shí),自動(dòng)調(diào)用該類構(gòu)造函婁()次。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++在創(chuàng)建一個(gè)對(duì)象時(shí),會(huì)調(diào)用類的構(gòu)造函數(shù)。語句MyClassab(2),*p;創(chuàng)建了兩個(gè)對(duì)象a、b和指針p,在創(chuàng)建對(duì)象a和b后會(huì)調(diào)用構(gòu)造函數(shù),而創(chuàng)建指針p時(shí),由于p本身不是對(duì)象,所以不調(diào)用類的構(gòu)造函數(shù)。13、有如下程序:#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)解析:語句Test*p=newTest;會(huì)調(diào)用類的構(gòu)造函數(shù)Test(){n+=2;},使n的值由原來的1變?yōu)?,然后deletep調(diào)用類的析構(gòu)函數(shù)~Test(){n-=3;},因?yàn)閚是static型變量,所以會(huì)在3的基礎(chǔ)上減3,使得輸出結(jié)果為0。14、關(guān)于運(yùn)算符重載,下列表述中正確的是()。A、C++已有的任何運(yùn)算符都可以重載B、運(yùn)算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型C、在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型D、可以通過運(yùn)算符重載來創(chuàng)建C++中原來沒有的運(yùn)算符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的有關(guān)概念。運(yùn)算符重載是針對(duì)C++原有運(yùn)算符進(jìn)行的,不能通過重載創(chuàng)造新的運(yùn)算符;除了“.”、“.*”、“->*”、“:”、“?:”這5個(gè)運(yùn)算符外,其他運(yùn)算符都可以重載;在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型:運(yùn)算符函數(shù)的返回值類型可以聲明為基本數(shù)據(jù)類型。15、假定MyClass為一個(gè)類,那么下列的函數(shù)說明中,()為該類的析構(gòu)函數(shù)。A、void~MyClass();B、~MyClass(intn);C、MyClass();D、~MyClass();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:c++語言中析構(gòu)函數(shù)為符號(hào)“~”加類名,且析構(gòu)函數(shù)沒有返回值和參數(shù),故前不加void關(guān)鍵字。所以正確的形式應(yīng)該是~MyClass()。16、對(duì)于拷貝初始化構(gòu)造函數(shù),正確的描述是()。A、在C++語言中,如果不自定義類的拷貝初始化構(gòu)造函數(shù),則每個(gè)類都有默認(rèn)的拷貝初始化構(gòu)造函數(shù)B、必須為每個(gè)類定義拷貝初始化構(gòu)造函數(shù)C、如果要使用拷貝初始化構(gòu)造函數(shù),則必須在類中先定義D、當(dāng)定義了類的構(gòu)造函數(shù)時(shí),如果要使用拷貝初始化構(gòu)造函數(shù),則必須定義拷貝初始化構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)已知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象,它不能指定函數(shù)返回類型;只有一個(gè)參數(shù),是同類的某個(gè)對(duì)象名的引用。每一個(gè)類中都必須有一個(gè)拷貝構(gòu)造函數(shù),如果類中未聲明,編譯器會(huì)自動(dòng)生成一個(gè)公有的拷貝構(gòu)造函數(shù)。17、下列對(duì)重載函數(shù)的描述中,錯(cuò)誤的是()。A、重載函數(shù)中不允許使用默認(rèn)參數(shù)B、重載函數(shù)中編譯是根據(jù)參數(shù)表進(jìn)行選擇的C、不要使用重載函數(shù)來描述毫不相干的函數(shù)D、構(gòu)造函數(shù)重載將會(huì)給初始化帶來多種方式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A)中,重載函數(shù)中是允許使用默認(rèn)參數(shù)的;為了使重載函數(shù)有意義,不要使用重載函數(shù)來描述毫不相干的函數(shù);重載函數(shù)中編譯是根據(jù)參數(shù)表進(jìn)行選擇的,包括參數(shù)的個(gè)數(shù)和類型。18、有如下程序:#include<iostream>usingnamespacestd;classComplex{doublere,im;public:Complex(doubler,doublei):re(r),im(i){}doublereal()const{returnre;}doubleimage()const{returnim;}Complex&operator+=(Complexa){re+=a.re;im+=a.im;return*this;}};ostream&operator<<(ostream&s,constComplex&z){returns<<’(’<<z.real()<<’,’<<z.image()<<’)’;}intmain(){Complexx(1,2),y(2,3);tout<<(x+=y)<<endl;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、(1,-2)B、(2,3)C、(3,5)D、(3,1)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是“+”運(yùn)算符的重載。重載后的“+”運(yùn)算符的功能是對(duì)參數(shù)的兩部分分別進(jìn)行加法運(yùn)算,然后返回復(fù)數(shù)值。所以x+=y使得對(duì)象x(1,2)與y(2,3)的re和im分別相加,最后輸出結(jié)果(3,5)。19、下面有關(guān)重載函數(shù)的描述中,正確的是()。A、重載函數(shù)必須具有不同的返回值類型B、重載函數(shù)形參個(gè)數(shù)必須不同C、重載函數(shù)必須具有不同的形參列表D、重載函數(shù)名可以不同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)實(shí)現(xiàn)。進(jìn)行函數(shù)重載時(shí),要求同名函數(shù)在參數(shù)個(gè)數(shù)上不同,或者參數(shù)類型上不同。但函數(shù)的返回類型不能作為判斷重載的依據(jù)。20、()是以一種完全通用的方法來設(shè)計(jì)函數(shù)或類而不必預(yù)先說明將被使用的每個(gè)對(duì)象的類型。A、模板B、類C、對(duì)象D、函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是模板的特點(diǎn)。模板是以一種完全通用的方法來設(shè)計(jì)函數(shù)或類而不必預(yù)先說明將被使用的每個(gè)對(duì)象的類型。21、下列關(guān)于getline()函數(shù)的描述中,錯(cuò)誤的是()。A、該函數(shù)可以用來從鍵盤上讀取字符串B、該函數(shù)讀取的字符串長度是受限制的C、該函數(shù)讀取字符串時(shí),遇到終止符時(shí)便停止D、該函數(shù)中所使用的終止符只能是換行符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是無格式輸入輸出流對(duì)象中的getline()函數(shù)。該函數(shù)的功能是允許從輸入流中讀取多個(gè)字符,并且允許指定輸入終止字符(默認(rèn)是換行符),在讀取完成后,從讀取的內(nèi)容中刪除該終止字符。22、下列選項(xiàng)中合法的用戶標(biāo)識(shí)符是()。A、10ngB、_2TestC、3DmaxD、A.dat標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格;標(biāo)識(shí)符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。符合這些要求的只有選項(xiàng)B)。23、程序中有如下語句for(inti=0;i<5;i++)cout<<*(p+i)<<",";能夠依次輸出int型一維數(shù)組a的前5個(gè)元素。由此可知,變量P的定義及初始化語句是()。A、int*p=a;B、intp=a;C、*p=a;D、p=a;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:從循環(huán)語句中可以看出,是在。到4的循環(huán)中輸出數(shù)組a中的前5個(gè)元素,輸出的值為*(p+i),即為指針p向后移動(dòng)指向的元素。所以初始化要將指針p指向數(shù)組a,即int*p=a;。24、有如下語句序列:intk=0;do{k+=5;cout<<’$’;}while(k<19);while(k-->0)cout<<’*’;執(zhí)行上面的語句序列輸出字符“$”和“*”的個(gè)數(shù)分別是()。A、4和20B、5和20C、4和21D、5和21標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是do...while語句和while語句的使用。題目中do...while語句循環(huán)了4次,while語句循環(huán)了20次,故最后輸出字符“$”4個(gè),字符“*”20個(gè)。25、若有以下定義和語句:ints[4][5],(*p)[5];p=s;則指針對(duì)s數(shù)組中第三個(gè)元素的正確引用形式是()。A、p[0][3]B、p[1][2]C、p[0][2]D、p[1][3]標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:“p=s;”語句將指針p指向數(shù)組s。而數(shù)組為二維數(shù)組,下標(biāo)標(biāo)識(shí)由0開始,所以第二個(gè)元素是下標(biāo)為0行的2列元素,即p[0][2]。26、下列程序的輸出結(jié)果是()。#include<iostream>usingnamespacestd;intmain(){chara[]="Hello,Test";char*p=a;while(*p){if(*p>=’a’&&*p<=’z’)cout<<char(*p+’A’-’a’);elsecout<<*p;p++;}return0;}A、hello,testB、Hello,TestC、HELLO,TESTD、hELLO,tEST標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:用一個(gè)指針變量p指向字符數(shù)組a,在while循環(huán)中,當(dāng)不指向數(shù)組尾時(shí),將小寫字母轉(zhuǎn)換為大寫字母,然后將其輸出。27、下列函數(shù)中,對(duì)調(diào)用它的函數(shù)沒有起到任何作用的是()。A、voidf1(double&x){--x;}B、doublef2(doublex){returnx-1.5;}C、voidf3(doublex){--x;}D、doublef4(double*x){--*x;return*x;}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)的調(diào)用和函數(shù)參數(shù)值的傳遞。選項(xiàng)C)中函數(shù)f3的調(diào)用采用按值傳遞的方式,函數(shù)中對(duì)形參的修改不能改變實(shí)參的值,并且f3函數(shù)沒有返回值,所以f3對(duì)調(diào)用它的函數(shù)沒有起到任何的作用。選項(xiàng)A)采用的是引用傳遞方式;選項(xiàng)B)中f2有返回值;選項(xiàng)D)中函數(shù)f4是指針調(diào)用并且函數(shù)有返回值。28、有如下的運(yùn)算符重載函數(shù)定義:doubleoperator+(inti,intk){returndouble(i+k);}但定義有錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、#NAME?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)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。c++語言規(guī)定,不能作為非成員函數(shù)重載的運(yùn)算符有=、[]、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符,故選項(xiàng)A)錯(cuò)誤;運(yùn)算符重載對(duì)返回值類型沒有限制,故選項(xiàng)B)錯(cuò)誤;C++并不強(qiáng)制要求非成員重載的運(yùn)算符一定是某個(gè)類的友元,所以選項(xiàng)C)錯(cuò)誤:題目中重載的“+”運(yùn)算符的兩個(gè)參數(shù)都是int類型,而C++已經(jīng)提供了求兩個(gè)血型數(shù)據(jù)之和的運(yùn)算符+,編譯器無法區(qū)分應(yīng)該調(diào)用哪一個(gè),所以應(yīng)該選擇選項(xiàng)D)。29、下列程序的執(zhí)行結(jié)果是()。#include<iostream.h>#include<stdlib.h>ClassTestClass{public:intx,y;TestClass(){x=y=0;}TestClass(inta,intb){x=a;y=b;}voiddisp(){cout<<"x="<<x<<",y="<<y<<end1;}};voidmain(){TestClasss1(2,3);s1.disp();}A、x=2,y=2B、x=3,y=3C、x=2,y=3D、x=3,y=2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)入手,定義了類TestClass的對(duì)象s1(2,3),當(dāng)類對(duì)象進(jìn)入其作用域時(shí)調(diào)用構(gòu)造函數(shù),構(gòu)造函數(shù)應(yīng)該是調(diào)用具有參數(shù)的“TestClass(inta,intb){x=a;y=b;)”。然后引用成員函數(shù)disp(),則輸出為“cout<<”x=“<<x<<”,y=“<<y<<endl;”。30、若有以下變量定義和函數(shù)調(diào)用語句:inta=5;fun(&a);則執(zhí)行下面函數(shù)后正確的輸出結(jié)果是()。voidfun(int*x){cout<<++*x<<end1;}A、3B、4C、5D、6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:fun函數(shù)中的x參數(shù)為整型指針變量。調(diào)用fun函數(shù),&a是取a的地址,即將實(shí)際參數(shù)a的地址傳遞。函數(shù)fun中的*x是變量x所指的存儲(chǔ)單元即值5。*運(yùn)算符的等級(jí)高于++,所以先取值5,然后加1輸出,即為6。31、對(duì)下列程序段的描述正確的是()。#include<iostream.h>intfun(int,int);voidmain(){cout<<fun(1,2)<<endl;}intfun(intx,inty){returnx+y;}A、該函數(shù)定義正確,但函數(shù)調(diào)用方式錯(cuò)誤B、該函數(shù)調(diào)用方式正確,但函數(shù)定義錯(cuò)誤C、該函數(shù)定義和調(diào)用方式都正確D、該函數(shù)定義和調(diào)用方式都錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)定義的一般形式為:類型標(biāo)識(shí)符函數(shù)名(形式參數(shù)列表){聲明部分;語句}。函數(shù)調(diào)用的一般格式為:函數(shù)名(實(shí)參列表)。而“intfun(int,int)”為函數(shù)聲明,是可以不寫形參名,只寫形參的類型。所以,可以看出函數(shù)fun的定義和調(diào)用都是正確的。32、有下列的程序:#include<cstring.h>#include<iostream.h>usingnamespacestd;classMyString{public:MyString(constchar*s);~MyString(){delete[]data;}protected:unsignedlen;char*data;};MyString::MyString(constchar*s){len=strlen(s);data=newchar[len+1);strcpy(data,s);}intmain(){MyStringa("C++Programing");MyStringb(a);return0;}在運(yùn)行上面的程序時(shí)出錯(cuò),出錯(cuò)的原因是()。A、構(gòu)造函數(shù)的實(shí)參不允許是本類的對(duì)象B、沒有定義實(shí)現(xiàn)深層復(fù)制(深拷貝)的復(fù)制構(gòu)造函數(shù)C、構(gòu)造對(duì)象a時(shí)實(shí)參與形參類型不符D、系統(tǒng)不能生成默認(rèn)的復(fù)制構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類的構(gòu)造函數(shù)。C++語言中當(dāng)一個(gè)新對(duì)象被另一個(gè)已存在的同類型對(duì)象初始化時(shí)要調(diào)用復(fù)制構(gòu)造函數(shù)。語句“MyStringb(a);”符合條件將調(diào)用MyString的復(fù)制構(gòu)造函數(shù),但類MyString未定義復(fù)制構(gòu)造函數(shù),所以會(huì)出錯(cuò)。33、有如下程序:#include<iostream.h>usingnamespacestd;classDemo{public:Demo(){cout<<"defaultconstructor\n";}Demo(constDemo&X){cont<<"copyconstructor\n";}};DemouserCode(Demob){Democ(b);returnc;}intmain(){Demoa,d;cout<<"callinguserCode()\n";d=userCode(a);return0;}執(zhí)行上面程序的過程中,構(gòu)造函數(shù)Demo()和Demo(constDemo&x)被調(diào)用的次數(shù)分別是()。A、1和1B、1和2C、2和3D、2和4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)的應(yīng)用。C++語言中,在創(chuàng)建一個(gè)對(duì)象時(shí),會(huì)自動(dòng)調(diào)用類的構(gòu)造函數(shù),所以語句“Demoa,d;”將調(diào)用函數(shù)Demo()兩次。當(dāng)一個(gè)對(duì)象作為實(shí)參傳遞給函數(shù)時(shí),為初始化形參,要調(diào)用復(fù)制構(gòu)造函數(shù):在函數(shù)返回一個(gè)對(duì)象時(shí)調(diào)用復(fù)制構(gòu)造函數(shù)。所以語句“d=userCode(a);”調(diào)用復(fù)制構(gòu)造函數(shù)3次。34、已知在函數(shù)func()中語句this->ff=0;與語句ff=0;的效果完全相同。對(duì)于這一現(xiàn)象,下列表述中錯(cuò)誤的是()。A、ff是某個(gè)類的數(shù)據(jù)成員,func()是該類的友元函數(shù)B、ff是某個(gè)類的數(shù)據(jù)成員,func()是該類的成員函數(shù)C、this->ff和ff是同一個(gè)變量D、func不是一個(gè)靜態(tài)成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是this指針的使用。類的每一個(gè)對(duì)象成員函數(shù)都有一個(gè)隱含的常量指針,即this指針。本題選項(xiàng)A)中,若func()是該類的友元函數(shù),this指針沒有指向同一個(gè)對(duì)象的地址,語句this->ff=0;與ff=0;的效果就不同了。35、下列說法中錯(cuò)誤的是()。A、公有繼承時(shí)基類中的public成員在派生類中仍是public成員B、私有繼承時(shí)基類中的protected成員在派生類中仍是protected成員C、私有繼承時(shí)基類中的public成員在派生類中仍是private成員D、保護(hù)繼承時(shí)基類中的public成員在派生類中仍是protected成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生類中的訪問權(quán)限。繼承方式包括公有繼承、保護(hù)繼承和私有繼承。私有繼承時(shí)基類中的protected成員在派生類中變成了private成員,所以選項(xiàng)B)敘述錯(cuò)誤。三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),其中循環(huán)鏈表屬于【】。標(biāo)準(zhǔn)答案:線性結(jié)構(gòu)知識(shí)點(diǎn)解析:循環(huán)鏈表是線性表的一種存儲(chǔ)結(jié)構(gòu),因此,循環(huán)鏈表屬于線性結(jié)構(gòu)。37、程序設(shè)計(jì)分為面向過程程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì),具有繼承性特點(diǎn)的程序設(shè)計(jì)稱為【】程序設(shè)計(jì)。標(biāo)準(zhǔn)答案:面向?qū)ο笾R(shí)點(diǎn)解析:程序設(shè)計(jì)分為面向過程程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì),具有繼承性特點(diǎn)的程序設(shè)計(jì)稱為面向?qū)ο蟪绦蛟O(shè)計(jì)。38、為了在兩個(gè)關(guān)系中提取所有相同的元組,則在交與并這兩種關(guān)系運(yùn)算中,應(yīng)使用【】運(yùn)算。標(biāo)準(zhǔn)答案:交知識(shí)點(diǎn)解析:為了在兩個(gè)關(guān)系中提取所有相同的元組,則在交與并這兩種關(guān)系運(yùn)算中,應(yīng)使用交運(yùn)算。39、在算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)稱為算法的【】復(fù)雜度。標(biāo)準(zhǔn)答案:時(shí)間知識(shí)點(diǎn)解析:在算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)稱為算法的時(shí)間復(fù)雜度。40、數(shù)據(jù)模型分為格式化模型和非格式化模型,則關(guān)系模型屬于【】模型。標(biāo)準(zhǔn)答案:非格式化知識(shí)點(diǎn)解析:數(shù)據(jù)模型分為格式化模型和非格式化模型,關(guān)系模型屬于非格式化模型。四、填空題(本題共10題,每題1.0分,共10分。)41、執(zhí)行"cout<<char(’A’+2)<<end1;"語句后得到的輸出結(jié)果為【】。標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考察強(qiáng)制類型轉(zhuǎn)化,char()在這里作為一個(gè)強(qiáng)制類型轉(zhuǎn)化函數(shù)存在,將整數(shù)轉(zhuǎn)化為字符。42、下列函數(shù)的功能是【】。#include<iostream.h>intFunc(inta,intb){if(a>b)return1;elseif(a==b)return0;elsereturn-1;}標(biāo)準(zhǔn)答案:比較兩個(gè)整數(shù)a和b的大小,若a>b則返回1,若a等于b,則返回0,否則返回-1。知識(shí)點(diǎn)解析:暫無解析43、根據(jù)三角形的基本定理完成填空,則表達(dá)式為【】。#include<iostream.h>#include<math.h>voidmain(){doublea,b,c,s,area;cout<<"請(qǐng)輸入三角形三邊a,b,c:"<<end1;cin>>a>b>>c;if(______){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c)),cout<<"三角形的面積為:"<<area;}elsecout<<"不能構(gòu)成三角形!"<<end1;}標(biāo)準(zhǔn)答案:a>0&&b>0&&c>0&&a+b>c&&b+c>a&&c+a>b知識(shí)點(diǎn)解析:本題考察考生將實(shí)際問題轉(zhuǎn)換為邏輯表達(dá)式的能力。根據(jù)三角形的基本定理“兩邊和大于第三邊”可窮舉出其表達(dá)式。44、下列程序的運(yùn)行結(jié)果為【】。#include<iostream,h>voidmain(){inti;for(i=1;i<6;i++)if(i==3)break:com<<"i="<<i<<end1;}標(biāo)準(zhǔn)答案:i=3知識(shí)點(diǎn)解析:本題考察考生的for語句和if語句綜合使用能力。本題的情況適用于希望在滿足指定值時(shí)停止循環(huán)的情況。45、下列程序編譯錯(cuò)誤,因?yàn)閍dd函數(shù)返回值是一個(gè)引用,故對(duì)return后返回值的要求是【】。#include<iostream.h>int&add(intx,inty){returnx+y;}voidmain()inti=3,j=19;cout<<(add(i,j)+=20)<<end1;}標(biāo)準(zhǔn)答案:不能是表達(dá)式知識(shí)點(diǎn)解析:引用是變量的別名,其實(shí)質(zhì)是變量的地址。return在返回值時(shí),如果其后為表達(dá)式,則系統(tǒng)為該表達(dá)式生成一個(gè)臨時(shí)變量用于存放該表達(dá)式的結(jié)果,函數(shù)執(zhí)行完畢之后該變量被系統(tǒng)回收,因此,返回的該變量的地址對(duì)調(diào)用函數(shù)來說已經(jīng)沒有意義了。46、在下面的類定義中,this指針的用途是【】。#include<iostream.h>classSample{intx,y;public:Sample(inti,intj){x=i;y=j;voidasstgn(Samplesa):};voidSample::assign(Samplep){if(this!=&p){x=p.x;y=p.y;}}標(biāo)準(zhǔn)答案:防止對(duì)類對(duì)象自己給自己賦值知識(shí)點(diǎn)解析:防止對(duì)象給自己賦值,這是一種自毀行為,這種行為如果不加以判斷,可能造成無意識(shí)的破壞。47、參照函數(shù)模板的寫法,完成非模板函數(shù)的定義,語句為【】。#include<iostream,h>#include<string.h>template<classT>Tmin(Ta,Tb){return(a<b?a:b);}char*min(char*a,char*b){__________________________}voidmain(){doublea=1.23,b=3.45;chars1[]="abcd",s2[]="erg";cout<<min(a,b)<<min(s1,s2)<<end1:}標(biāo)準(zhǔn)答案:return(strcmp(a,b)<0?a:b);知識(shí)點(diǎn)解析:由于對(duì)于兩個(gè)變量的比較來說,字符間的比較不同于整型或浮點(diǎn)剩變量那樣可以直接比較,而是要采用專用函數(shù)進(jìn)行,因此不能采用同一個(gè)函數(shù)模板,所以本題采用的就是單獨(dú)寫成一個(gè)非模板函數(shù)。48、下列程序中的this指針的作用是【】。#include<iostream.h>classSample{intn;staticintst;public,Sample(){}Sample(intm){n=m;st=m+10;}voidChange(intk){st=st+k;}voidAddValue(intm){Samples,s.n=n+m;*this=s;}voiddisp(){cout<<"n="<<n<<";st="<<st<<end1;}};intSample::st=0voidmain(){Samples1(10),s2(10)s1.disp()s1.AddValue(5),s2.Change(100);s1.disp();s2.disp()}標(biāo)準(zhǔn)答案:修改本對(duì)象的值知識(shí)點(diǎn)解析:本題巧妙的使用this指針來完成類的不同實(shí)例進(jìn)行的修改自身數(shù)據(jù)成員的操作。49、下列程序的運(yùn)行結(jié)果為【】。#include<iostream.h>classmyclass{private:inta,b,c;public:voidfun(){inta;a=10;this->,a=5;b=6;this->c=7;cout<<"a="<<a<<",this->a="<<this->a<<endl;}};voidmain(){myclassobj1;obj1.fun()}標(biāo)準(zhǔn)答案:a=10,this->a=5知識(shí)點(diǎn)解析:本題考察在類的成員函數(shù)定義中,如果出現(xiàn)類的數(shù)據(jù)成員和成員函數(shù)的局部變量同名的情況下,如何正確引用合適的變量或數(shù)據(jù)成員。本題巧妙的采用了this指針完成這種標(biāo)識(shí)。50、下列程序的運(yùn)行結(jié)果是【】。#include<iostream,h>classSample{inta;public:Sample(intaa=0){a=aa;}~Sample(){cout<<"Sample="<<a<<;}classDerived:publicSample{intb;public:Derived(intaa=0,intbb=0):Sample(aa){b=bb;}~Derived(){cout<<"Derived="<<b<<’’;}voidmain(){Deriveddl(9)}標(biāo)準(zhǔn)答案:Derived=0Sample=9知識(shí)點(diǎn)解析:本題考察派生類和基類的構(gòu)造函數(shù),析構(gòu)函數(shù)的執(zhí)行順序。國家二級(jí)(C++)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、以下()特征不是面向?qū)ο笏枷胫械闹饕卣?。A、多態(tài)B、繼承C、封裝D、垃圾回收標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析2、下列關(guān)于信息和數(shù)據(jù)的敘述不正確的是()。A、信息是數(shù)據(jù)的符號(hào)表示B、信息是數(shù)據(jù)的內(nèi)涵C、信息是現(xiàn)實(shí)世界事物的存在方式或運(yùn)動(dòng)狀態(tài)的反映D、數(shù)據(jù)是描述現(xiàn)實(shí)世界事物的符號(hào)記錄標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析3、下列敘述中正確的是()。A、在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的聯(lián)系B、在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的C、在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小D、上述三種說法都不對(duì)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析4、數(shù)據(jù)庫的故障恢復(fù)一般是由()。A、數(shù)據(jù)流圖完成的B、數(shù)據(jù)字典完成的C、DBA完成的D、PAD圖完成的標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析5、對(duì)線性表進(jìn)行二分法檢索,其前提條件是()。A、線性表以順序方式存儲(chǔ),并按關(guān)鍵碼值排好序B、線性表以順序方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序C、線性表以鏈接方式存儲(chǔ),并按關(guān)鍵碼值排好序D、線性表以鏈接方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析6、在結(jié)構(gòu)化設(shè)計(jì)方法中生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示()A、模塊之間的調(diào)用關(guān)系,B、程序的組成成分C、控制程序的執(zhí)行順序D、數(shù)據(jù)的流向標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析7、對(duì)于常數(shù)據(jù)成員,下面描述正確的是()。A、常數(shù)據(jù)成員可以不初始化,并且不能更新B、常數(shù)據(jù)成員必須被初始化,并且不能更新C、常數(shù)據(jù)成員可以不初始化,并且可以被更新D、常數(shù)據(jù)成員必須被初始化,并且可以被更新標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析8、在數(shù)據(jù)庫系統(tǒng)中,描述數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的數(shù)據(jù)模式為()。A、概念模式B、外模式C、內(nèi)模式D、物理模式標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析9、數(shù)據(jù)庫系統(tǒng)支持?jǐn)?shù)據(jù)的邏輯獨(dú)立性,依靠的是()。A、DDL語言和DML語言完全獨(dú)立B、定義完整件約束條件C、數(shù)據(jù)庫的三級(jí)模式結(jié)構(gòu)D、模式分級(jí)及各級(jí)模式之間的映像機(jī)制標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析10、數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)是()。A、數(shù)據(jù)庫技術(shù)B、數(shù)據(jù)庫分析C、數(shù)據(jù)庫開發(fā)D、數(shù)據(jù)庫管理系統(tǒng)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析二、選擇題(本題共25題,每題1.0分,共25分。)11、在函數(shù)中,可以用auto、extem、register和static四個(gè)關(guān)鍵字中的一個(gè)來說明變量的存儲(chǔ)類型,如果不說明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、externC、概registerD、static標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析12、下列情況中,不會(huì)調(diào)用拷貝構(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)答案:2知識(shí)點(diǎn)解析:暫無解析13、假定n=3,,下列程序的運(yùn)行結(jié)果是()。#include<iostream.h>intFun(intm)voidmain(){cout<<"Pleaseinputanumber:";intn,s=0;cin>>n;s=Fun(n);cout<<s<<endl;}intFun(intm){ihtp=1,s=0;for(intI=1;I<=m;I++){p*=I;S+=p;}returns;}A、7B、9C、8D、10標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析14、下面不是派生類對(duì)基類的繼承方式的是()。A、privateB、publicC、staticD、protected標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析15、關(guān)于getline()函數(shù)的下列描述中,錯(cuò)誤的是()。A、該函數(shù)可以用來從鍵盤上讀取字符串B、該函數(shù)讀取的字符串長度是受限制的C、該函數(shù)讀取字符串時(shí),遇到終止符時(shí)便停止D、該函數(shù)中所使用的終止符只能是換行符標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析16、在C++語言的數(shù)據(jù)類型中,int、short等類型的長度是()。A、固定的B、任意的C、由用戶自定義D、與機(jī)器字長有關(guān)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析17、下列函數(shù)原型聲明中錯(cuò)誤的是()。A、voidFun(intx=0,inty=0);B、voidFun(intx,inty);C、voidFun(intx,inty=0);D、voidFun(intx=0,inty);標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析18、下列語句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constdouble*point;C、intconstbuffer=256;D、double*constpoint;標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析19、線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是()。A、順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)B、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)C、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)D、任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析20、以下程序的輸出結(jié)果是()。#include<iostream>#include<stdlib>usingnamespacestd;voidfunc(char**m){++m;cout<<*m<<endl;}main(){staticchar*a[]={"MORNING","AFTERNOON","EVENING");char**n;n=a;func(n);system("PAUSE");return0;}A、為空B、MORNINGC、AFTERNOOND、EVENING標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析21、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。A、運(yùn)算符重載可以改變運(yùn)算符的操作數(shù)的個(gè)數(shù)B、運(yùn)算符重載可以改變優(yōu)先級(jí)C、運(yùn)算符重載不可以改變優(yōu)先級(jí)D、運(yùn)算符重載不可以改變語法結(jié)構(gòu)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析22、閱讀下面的程序:#include<iostream.h>voidmain(){intx;cin>>x;if(x++>5)cout<<x<<endl;elsecout<<x——<<endl;}如果兩次執(zhí)行上述程序,且鍵盤輸入分別為4和6,則輸出結(jié)果分別是()。A、4,6B、3,6C、4,7D、5,7標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析23、關(guān)于動(dòng)態(tài)存儲(chǔ)分配,下列說法正確的是()。。A、new和delete是C++語言中專門用于動(dòng)態(tài)內(nèi)存分配和釋放的函數(shù)B、動(dòng)態(tài)分配的內(nèi)存空間也可以被初始化C、當(dāng)系統(tǒng)內(nèi)存不夠時(shí),會(huì)自動(dòng)回收不再使用的內(nèi)存單元,因此程序中不必用delete釋放內(nèi)存空間D、當(dāng)動(dòng)態(tài)分配內(nèi)存失敗時(shí),系統(tǒng)會(huì)立刻崩潰,因此一定要慎用new標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析24、關(guān)于運(yùn)算符重載,下列表述中正確的是()。A、C++已有的任何運(yùn)算符都可以重載B、運(yùn)算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型C、在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型D、可以通過運(yùn)算符重載來創(chuàng)建C十十中原來沒有的運(yùn)算符標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析25、如果一個(gè)模板聲明列出了多個(gè)參數(shù),則每個(gè)參數(shù)之間必須使用逗號(hào)隔開,每個(gè)參數(shù)都必須使用()關(guān)鍵字來修飾。A、constB、staticC、voidD、class標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析26、以下()成員函數(shù)表示純虛函數(shù)。A、virtualintvf(int)B、voidvf(int)=0C、virtualvoidvf()=0D、virtualvoidvf(int){}標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析27、使用fstream流類定義流對(duì)象并打開磁盤文件時(shí),文件的隱含打開方式為()。A、ios::inB、ios::outC、ios::inlios::outD、沒有默認(rèn)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無解析28、下列關(guān)于數(shù)組的描述正確的是()。A、數(shù)組的長度是固定的,而其中元素的數(shù)據(jù)類型可以有不同B、數(shù)組的長度是固定的,而其中元素的數(shù)據(jù)類型必須相同C、數(shù)組的長度是可變的,而其中元素的數(shù)據(jù)類型可以有不同D、數(shù)組的長度是可變的,而其中元素的數(shù)據(jù)類型必須相同標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析29、在下面的運(yùn)算符重載函數(shù)的原型中,錯(cuò)誤的是()。A、Volumeoperator-(double,double);B、doubleVolume::operator-(double);C、VolumeVolume::operator-(Volume);D、Volumeoperator-(Volume,Volume);標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析30、有如下程序#include<iostream>usingnamespacestd;classBase{protected:Base(){cout<<’A’;}Base(charc){cout<<c;)};classDerived:publicBase{public:Derived(charc){cout<<c;)};intmain(){Deriveddl(’B’);return0;}執(zhí)行這個(gè)程序屏幕上將顯示輸出()。A、BB、BAC、ABD、BB標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析31、語句ofstreamf("SALARY.DAT",ios::app|ios::binary);的功能是建立流對(duì)象f,試圖打開文件SALARY.DAT并與之連接,并且()。A、若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個(gè)新文件B、若文件存在,將其置為空文件;若文件不存在,打開失敗C、若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個(gè)新文件D、若文件存在,打開失?。蝗粑募淮嬖?,建立一個(gè)新文件標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無解析32、若有如下類定義:classB{voidfunl(){}protected:doublevarl:public:voidfun2(){}};classD:publicB{protected:voidfun3(){}};已知obj是類D的對(duì)象,下列語句中不違反類成員訪問控制權(quán)限的是()。A、obj.funl();B、obj.varl;C、obj.fun2();D、obj.fun3();標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無解析33、下列程序的運(yùn)行結(jié)果為()。#include<iostream.h>voidmain(){inta=2;intb=a+1;cout<<a/b<<endl;}A、0.66667B、0C、0.7D、0.66666666…標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析34、有以下類定義。classMyClass{private:intid;chargender;char*phone;public:MyClass():id(0),gender(’#’),phone(NULL){}MyClass(intno,charge=’#’,char*ph=NULL){id=no;gender=ge;phone=ph;)};下列類對(duì)象定義語句中錯(cuò)誤的是()。A、MyClassmyobj;B、MyClassmyobj(11,);C、MyClassmyobj(12,’m’);D、MyClassmyobj(12);標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析35、下列關(guān)于虛基類的描述,錯(cuò)誤的是()。A、設(shè)置虛基類的目的是為了消除二義性B、虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用C、若同一層中包含多個(gè)虛基類,這些虛基類的構(gòu)造函數(shù)按它們說明的次序調(diào)用D、若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無解析三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、具有n個(gè)結(jié)點(diǎn)的完全二叉樹,其深度為【】。標(biāo)準(zhǔn)答案:log2n+1知識(shí)點(diǎn)解析:暫無解析37、在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為[]。標(biāo)準(zhǔn)答案:繼承知識(shí)點(diǎn)解析:暫無解析38、若深度為5的完全二叉樹的第5層有3個(gè)葉結(jié)點(diǎn),則該二叉樹一共有【】個(gè)結(jié)點(diǎn)。標(biāo)準(zhǔn)答案:18知識(shí)點(diǎn)解析:暫無解析39、程序流程圖(框圖)中的箭頭代表【】。標(biāo)準(zhǔn)答案:控制流知識(shí)點(diǎn)解析:暫無解析40、建立數(shù)據(jù)字典的時(shí)機(jī)是【】。標(biāo)準(zhǔn)答案:需求分析階段知識(shí)點(diǎn)解析:暫無解析四、填空題(本題共6題,每題1.0分,共6分。)41、若有:intx=25,y=14,z=19;則在計(jì)算表達(dá)式x++<=25&&y--<=2&&++z<=18后,z的值為【】。標(biāo)準(zhǔn)答案:19知識(shí)點(diǎn)解析:暫無解析42、下列程序段的輸出結(jié)果是【】。#include<iostream.h>voidmain(){inti=10,sum=0;do{sum=+sum+i;i=i-2;}while(i>=2);cout<<sum<<end1;}標(biāo)準(zhǔn)答案:30知識(shí)點(diǎn)解析:暫無解析43、若有intx[5],*p=x;則數(shù)組元素x[3]可以表示為*(p+【】),也可以表示為p[3]。標(biāo)準(zhǔn)答案:3知識(shí)點(diǎn)解析:暫無解析44、【】是一種特殊的成員函數(shù),戶主要用來為對(duì)象分配內(nèi)存空間,對(duì)類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行對(duì)象的其他內(nèi)部管理操作。標(biāo)準(zhǔn)答案:構(gòu)造函數(shù)知識(shí)點(diǎn)解析:暫無解析45、如果要在類的對(duì)象上使用運(yùn)算符,除了運(yùn)算符=和【】以外,其它的必須都要被重載。標(biāo)準(zhǔn)答案:&知識(shí)點(diǎn)解析:暫無解析46、所有的函數(shù)模板定義都是以關(guān)鍵字【】開始的。標(biāo)準(zhǔn)答案:template知識(shí)點(diǎn)解析:暫無解析五、填空題(含2小題)(本題共1題,每題1.0分,共1分。)47、構(gòu)造函數(shù)與析構(gòu)函數(shù)所調(diào)用的虛函數(shù)是【】的函數(shù),因此調(diào)用時(shí)實(shí)現(xiàn)的是【】聯(lián)編。標(biāo)準(zhǔn)答案:所在的類,靜態(tài)知識(shí)點(diǎn)解析:暫無解析國家二級(jí)(C++)筆試模擬試卷第3套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一種()的存儲(chǔ)結(jié)構(gòu)。A、隨機(jī)存儲(chǔ)B、順序存儲(chǔ)C、索引存儲(chǔ)D、散列存儲(chǔ)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考核數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中的每一個(gè)存儲(chǔ)節(jié)點(diǎn)不僅含有一個(gè)數(shù)據(jù)元素,還包括指針,每一個(gè)指針指向一個(gè)與本節(jié)點(diǎn)有邏輯關(guān)系的節(jié)點(diǎn),此類存儲(chǔ)方式屬于順序存儲(chǔ)。2、一個(gè)棧的入棧序列是1,2,3,…,n,其輸出序列為P1,P2,P3,…,Pn,若P1=n,則Pi為()。A、iB、n=iC、n-i+1D、不確定標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:棧是先進(jìn)后出的線性表。當(dāng)p1=n,即n是最先出棧的,根據(jù)棧的運(yùn)算原理,n必定是最后入棧的,那么輸入順序必定是1,2,3,…,n,則出棧的序列是n,n-1,n-2,…,1,所以答案是C。3、采用線性鏈表表示一個(gè)向量時(shí),要求占用的存儲(chǔ)空間地址()。A、必須是連續(xù)的B、部分地址必須是連續(xù)的C、一定是不連續(xù)的D、可連續(xù)可不連續(xù)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不同于順序存儲(chǔ)結(jié)構(gòu),它的存儲(chǔ)空間可以是不連續(xù)的,并且數(shù)據(jù)節(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。4、首先訪問結(jié)點(diǎn)的左子樹,然后訪問該結(jié)點(diǎn),最后訪問結(jié)點(diǎn)的右子樹,這種遍歷稱為()。A、前序遍歷B、后序遍歷C、中序遍歷D、層次遍歷標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:前序遍歷是指若二叉樹為空樹,則空操作:否則:①訪問根節(jié)點(diǎn):②先序遍歷左子樹:③先序遍歷右子樹。中序遍歷二叉樹是指若二叉樹為空樹,則空操作:否則,①中序遍歷左子樹;②訪問根節(jié)點(diǎn);③中序遍歷右子樹。后序遍歷二叉樹是指若二叉樹為空樹,則空操作;否則,①后序遍歷左子樹;②后序遍歷右子樹;③訪問根節(jié)點(diǎn)。因?yàn)楦?jié)點(diǎn)是在中間訪問的,即中序遍歷。5、在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關(guān)鍵碼值11,所需的關(guān)鍵碼比較次數(shù)為()。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:二分法查找首先用要查找的關(guān)鍵字k與中間位置的節(jié)點(diǎn)關(guān)鍵字相比較,這個(gè)中間節(jié)點(diǎn)把線性表分成了兩個(gè)子表,若比較結(jié)果相等,則查找完成;若不等,再根據(jù)k與中間節(jié)點(diǎn)關(guān)鍵字的比較大小確定下一步查找哪個(gè)子表,這樣遞歸下去,直到找到滿足條件的節(jié)點(diǎn),或者該線性表中沒有這樣的節(jié)點(diǎn)。本題中第1次和15比較:第2次和7比較:第3次和10比較:第4次和12比較;比較后結(jié)束,沒找到。6、自頂向下分析方法從文法的開始符號(hào)出發(fā),判斷其能否()出輸入符號(hào)串。A、歸納B、歸約C、推理D、推導(dǎo)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考核自頂向下分析方法的概念。7、檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。A、確認(rèn)測(cè)試B、集成測(cè)試C、驗(yàn)證測(cè)試D、驗(yàn)收測(cè)試標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:確認(rèn)測(cè)試是要檢查已實(shí)現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。軟件需求規(guī)格說明書就是軟件確認(rèn)測(cè)試的基礎(chǔ)。8、軟件調(diào)試的目的是()。A、發(fā)現(xiàn)錯(cuò)誤B、改正錯(cuò)誤C、改善軟件的性能D、挖掘軟件的潛能標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在對(duì)程序進(jìn)行了成功的測(cè)試之后,將進(jìn)入程序調(diào)試。調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助一定的調(diào)試工具去找出軟件錯(cuò)誤的具體位置。由此可知,軟件調(diào)試的目的是改正錯(cuò)誤。9、將ER圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成()。A、屬性B、關(guān)系C、鍵D、域標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在關(guān)系模型中,無論是從客觀事物中抽象出的實(shí)體,還是實(shí)體之間的聯(lián)系,都用單一的結(jié)構(gòu)類型關(guān)系來表示。在對(duì)關(guān)系進(jìn)行各種處理之后,得到的還是關(guān)系,一張新的二維表。10、以下各項(xiàng)中可以減少相同數(shù)據(jù)重復(fù)存儲(chǔ)現(xiàn)象的是()。A、記錄B、字段C、文件D、數(shù)據(jù)庫標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:數(shù)據(jù)庫中的數(shù)據(jù)具有集成、共享的特點(diǎn),可以被不同應(yīng)用程序所使用,減少相同數(shù)據(jù)重復(fù)存儲(chǔ)的現(xiàn)象。二、選擇題(本題共20題,每題1.0分,共20分。)11、按照標(biāo)識(shí)符的要求,下列選項(xiàng)中,()符號(hào)不能組成標(biāo)識(shí)符。A、連接符B、下劃線C、大小寫字母D、數(shù)字字符標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C++規(guī)定標(biāo)識(shí)符由大小寫字母、數(shù)字字符(0-9)和下劃線組成,并且以字母或下劃線開始,后跟0個(gè)或多個(gè)字母、數(shù)字字符或下劃線。由此可知,選項(xiàng)A中的連接符不能用于組成標(biāo)識(shí)符。12、設(shè)有以下變量定義,并已賦確定的值:charw;intx;floaty;doublez;則表達(dá)式:w*x+z-y所求得的數(shù)據(jù)類型為()。A、charB、intC、floatD、double標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考核表達(dá)式計(jì)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換。C++中,參加運(yùn)算的各個(gè)數(shù)據(jù)類型都轉(zhuǎn)換成數(shù)據(jù)類型最長的數(shù)據(jù)類型,然后計(jì)算,表達(dá)式值的類型也就是數(shù)據(jù)長度最長的數(shù)據(jù)類型,在char、int、float、double中,double型的數(shù)據(jù)最長,所以表達(dá)式所求得的數(shù)據(jù)類型為double。13、下列關(guān)于單目運(yùn)算符++、--的敘述中,正確的是()。A、它們的運(yùn)算對(duì)象可以是任何變量和常量B、它們的運(yùn)算對(duì)象可以是char型變量和血型變量,但不能是float型變量C、它們的運(yùn)算對(duì)象可以是int型變量,但不能是doule型變量和float型變量D、它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考核C++的--和++運(yùn)算符。在C++中,--和++這兩種運(yùn)算符是單目運(yùn)算符,其運(yùn)算對(duì)象可以是整型、字符型、float型和double型等基本數(shù)據(jù)類型。14、下列關(guān)于break語句的描述中,不正確的是()。A、break語句可用于循環(huán)體內(nèi),它將使執(zhí)行流程跳出本層循環(huán)B、break語句可用于switch語句中,它將使執(zhí)行流程跳出當(dāng)前switch語句C、break語句可用于if體內(nèi),它將使執(zhí)行流程跳出當(dāng)前if語句D、break語句在一層循環(huán)體中可以出現(xiàn)多次標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:break語句將使程序從當(dāng)前的循環(huán)語句(do、while和for)內(nèi)跳出來,接著執(zhí)行循環(huán)語句后面的語句。break語句和continue語句都C++的跳轉(zhuǎn)語句。break語句又稱為跳出語句,它可以用在循環(huán)語句和switch語句中。在switch語句中,break用來使執(zhí)行流程跳出switch語句。在循環(huán)語句中,break語句用來使執(zhí)行流五條件跳出本層循環(huán)體。continue語句又稱為繼續(xù)語句,它僅用在循環(huán)語句中。它的功能是:結(jié)束本次循環(huán),接著進(jìn)行下一次是否執(zhí)行循環(huán)的條件判定。15、有以下程序:#include<iostream>usingnamespacestd;intmain(){chara[10]={’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’),*p;inti=8;p=a+i;cout<<p-3<<end1;return0;}執(zhí)行程序后的輸出結(jié)果是()。A、6B、6789C、’6’D、789標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考核如何引用數(shù)組。解此題需要注意的幾點(diǎn)是:沒有下標(biāo)的數(shù)組名就是一個(gè)指向該數(shù)組第1個(gè)元素的指針;字符’0’~’9’與數(shù)字0~9是不相等:a[i]與*(a+i)所指的是同一個(gè)數(shù)組元素。根據(jù)以上幾點(diǎn)可知,本程序?qū)崿F(xiàn)的功能是把字符’6’以及其后面的字符按字符串形式輸出。16、若有數(shù)組名作為實(shí)參,則傳遞給形參的是()。A、數(shù)組的首地址B、第一個(gè)元素的值C、數(shù)組中全部元素的值D、數(shù)組元素的個(gè)數(shù)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考查數(shù)組作為函數(shù)形參方面的應(yīng)用。當(dāng)將數(shù)組傳遞給函數(shù)時(shí),調(diào)用的函數(shù)中可用不帶下標(biāo)的數(shù)組名。這實(shí)際上是傳遞數(shù)組第1個(gè)元素的地址給函數(shù)。在C++語言中,不可能把整個(gè)數(shù)組作為一個(gè)參數(shù)來傳遞,而是用指針來完成。17、若有函數(shù)調(diào)用語句:fun(a+b,(x,y),fun(n+k,d,(a,b,)));那么在此函數(shù)調(diào)用語句中實(shí)參的個(gè)數(shù)是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:調(diào)用函數(shù)時(shí),在函數(shù)名后面跟參數(shù),參數(shù)用逗號(hào)隔開。調(diào)用時(shí),實(shí)參與形參的個(gè)數(shù)相等,類型一致,且按順序一一對(duì)應(yīng)傳遞數(shù)據(jù)。且實(shí)參是實(shí)際調(diào)用函數(shù)時(shí)所給定的有確定值的常量、變量或表達(dá)式。本題函數(shù)調(diào)用語句中的實(shí)參個(gè)數(shù)為3個(gè)。18、下面是類MyClass的定義,對(duì)定義中各種語句描述正確的是()。classMyClass{publiC:voidMyClass(inta)//①{x=a;)intfunc(inta,intb)//②{x=a;y=b;}intfunc(inta,intb,intc=0)//③{x=a;y=b;z=c;}staticvoidresetValue()//④{x=0;}private:intX,y,Z;};A、語句①是類MyClass的構(gòu)造函數(shù)定義B、語句②和語句③實(shí)現(xiàn)類成員函數(shù)的重載C、語句④實(shí)現(xiàn)對(duì)類成員變量x的清零操作D、語句①、②、③和④都不正確標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:類的構(gòu)造函數(shù)沒有返回類型,所以語句①是錯(cuò)誤的;語句②和語句③將會(huì)使函數(shù)func()的調(diào)用產(chǎn)生歧義;成員函數(shù)resetValue()是靜態(tài)成員函數(shù),那么它不能訪問類MyClass中的非靜態(tài)數(shù)據(jù)成員,所以語句④也不正確。19、下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是()。A、構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)B、構(gòu)造函數(shù)可以對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化C、構(gòu)造函數(shù)在說明類變量時(shí)自動(dòng)執(zhí)行D、構(gòu)造函數(shù)可以重載標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C++在創(chuàng)建一個(gè)對(duì)象時(shí),會(huì)自動(dòng)調(diào)用類的構(gòu)造函數(shù),在構(gòu)造函數(shù)中可以執(zhí)行初始化成員變量的操作,但是不能對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化。構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù),也可以重載。20、下列關(guān)于虛基類的描述中,錯(cuò)誤的是()。A、虛基類子對(duì)象的初始化由派生類完成B、虛基類子對(duì)象的初始化次數(shù)與虛基類下面的派生類的個(gè)數(shù)有關(guān)C、設(shè)置虛基類的目的是消除二義性D、帶有虛基類的多層派生類構(gòu)造函數(shù)的成員初始化列表中都要列出對(duì)虛基類構(gòu)造函數(shù)的調(diào)用標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考核虛基類的初始化。從虛基類直接或間接派生的派生類的構(gòu)造函數(shù)的成員初始化列表中都要列出對(duì)虛基類構(gòu)造函數(shù)的調(diào)用,但只有用于建立對(duì)象的派生類的構(gòu)造函數(shù)調(diào)用虛基類的構(gòu)造函數(shù),而該派生類的所有基類中列出的對(duì)虛基類的構(gòu)造函數(shù)的調(diào)用在執(zhí)行中被忽略,從而保證了對(duì)虛基類子對(duì)象只初始化一次。21、有以下程序:#include<iostream>usingnamespacestd;intmain(){inta=5;b=4,c=3,d=2;if(a>b>c)cout<<d<<end1;elseif((c-1>:d)==1)cout<<d+1<<end1;elsecout<<d+2<<end1;return0;}執(zhí)行后的輸出結(jié)果是()。A、2B、3C、4D、編譯時(shí)有錯(cuò),無結(jié)果標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:表面上看,本題很容易得到答案。其實(shí)不然,出題者在題中隱藏了一個(gè)陷阱。粗心的讀者可能會(huì)想當(dāng)然地認(rèn)為if語句中的條件表達(dá)式“a>b>c”成立(因?yàn)閍=5,b=4,c=3)。然后執(zhí)行if后面的語句,就得到錯(cuò)誤答案A。要想正確解答本題,先來了解關(guān)系運(yùn)算符的一些知識(shí):在C++語言中,true(真)是不為0的任何值,而false(假)是0。在使用關(guān)系運(yùn)算符和邏輯運(yùn)算符的表達(dá)式時(shí),若結(jié)果為true(真),則返回1;若結(jié)果為false(假),則返回的是0。根據(jù)以上知識(shí)分析程序:第1步,判斷if后面的條件表達(dá)式(a>b>C)是否成立。根據(jù)運(yùn)算符的結(jié)合性,先計(jì)算表達(dá)式a>b,因?yàn)閍=5,b=4,所以可得到答案true,其返回值為1。再計(jì)算表達(dá)式1>c,由于c=3,所以可得到答案為false(假),其返回值為0。因此if后面的條件表達(dá)式不成立,繼續(xù)下面的條件判斷。第2步,計(jì)算elseif后面的條件表達(dá)式((c-1>=D)==1),把c=3,d=2代入此條件表達(dá)式,可得到答案為true,此條件表達(dá)式成立,故執(zhí)行elseif后面的語句,輸出結(jié)果為3。22、有以下程序:#include<iostream>#include<string>usingnamespacestd;intmain(){chararr[2][4];strcpy(arr[0],"you");strcpy(arr[1],"me");arr[0][3]=’&’;cout<<arr[0]<<end1;return0;}執(zhí)行后的輸出結(jié)果是()。A、you&meB、youC、meD、err標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考核字符串函數(shù)的使用。主函數(shù)中,首先定義了千個(gè)二維字符數(shù)組art。語句“strcpy(arr,"you");”中的alt代表二維字符數(shù)組的首元素地址,此語句的作用是將字符串“you”復(fù)制到arr數(shù)組的前4個(gè)元素中,第4個(gè)元素的值為’\0’。語句“strcpy(arr[1],"me");”的作用是把字符串“me”賦值到arr數(shù)組的第2行。語句“arr[0][3]=’及’;”的作用是用字符’&’取代了原來arr[0][3]中的字符’\0’。所以程序最后輸出you&me。23、有以下程序:#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){intarraysize;int*array;cout<<"Pleaseinputthesizeofthearray:";cin>>arraySiZe;array=newint[arraysize];if(array==NULL){cout<<"allocateError\n";exit(1);}for(inti=0;i<arraysize;i++)array[i]=i*i;intj;cout<<"whichelementyouwanttocheck:";cin>>j;cout<<array[j]<<end1;return0;}執(zhí)行程序輸入:10<空格>5,則輸出結(jié)果為()。A、allocateErrorB、1C、0D、25標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:程序中利用new()申請(qǐng)動(dòng)態(tài)分配數(shù)組。利用for循環(huán)給數(shù)組array賦值。最后輸出想要檢查元素的值。程序輸10,即數(shù)組array元素個(gè)數(shù)為10。程序輸入5,即檢查元素array[5]的值。由for循環(huán)的賦值運(yùn)算可知array[5]的值為25,所以程序最后輸出25。24、有以下程序:#include<iostream>usingnamespacestd;intmain(){intnum[2][3],*p;intt,i,j,k=10;p=num[0];for(i=0;i<2;i++){for(j=0;j<3;j++){k++;*p=k;for(t=2;t<*p;t++){if(!(*p%t)){j--;*p--;break;}*p++;}}cout<<*(p-1)<<end1;return0;}程序運(yùn)行后的輸出結(jié)果是()。A、19B、11C、29D、23標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核數(shù)組與指針的關(guān)系。程序首先初始化指針p,讓其指向二維數(shù)組num的首元素,即num[0][0]。程序中,第1個(gè)for循環(huán)是為二維數(shù)組的每行元素賦值而設(shè)置的循環(huán),第2個(gè)for循環(huán)是為二維數(shù)組的每列元素賦值而設(shè)定的,第3個(gè)for循環(huán)是為判斷數(shù)組元素是否是素?cái)?shù)而設(shè)置的。在第3個(gè)for循環(huán)中,如果*p的值能被小于它的數(shù)整除(即不是素?cái)?shù)),則執(zhí)行“j--;*p--;”,然后跳出第3個(gè)for循環(huán)。j--的含義是讓其前面的賦值語句重新賦值,而*p--的含義是使指針指向前一個(gè)單元。語句“*p++;”將指針移到下一個(gè)單元,在下一次循環(huán)時(shí),k加1,并k賦給*p,看*p是否為素?cái)?shù),這樣一直到滿足條件為止,即數(shù)組num[2][3]中的數(shù)都為素?cái)?shù)。最后數(shù)組num中各元素的值分別為大于10的素?cái)?shù),即分別為:11,13;17,19,23,29。程序最后要求輸出*p的值,由于此時(shí)指針已指向數(shù)組num的最后一個(gè)元素,即num[1][2]。所以輸出的值是29。25、有以下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass();~MyClass();voidSetValue(intval);private:staticinti;};intMyClass::i=0;MyClass::MyClass(){i++;cout<<i;}MyClass::~MyClass(){i--;cout<<i;}voidMyClass::SetValue(intval){i=val;}intmain(){MyClass*my[2];intk;for(k=0;k<2;k++)my[k]=newMyClass;for(k=0;k<2;k++)deletemy[k];return0;}運(yùn)行后的輸出結(jié)果是()。A、1210B、1100C、1234D、輸出結(jié)果不確定標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:類MyClass中變量i是靜態(tài)數(shù)據(jù)成員,它被MyClass類的所有對(duì)象共享,但它不屬于任何一個(gè)對(duì)象,它的作用域是類范圍。程序i是用來統(tǒng)計(jì)類MyClass所創(chuàng)建對(duì)象的個(gè)數(shù),每創(chuàng)建一個(gè)對(duì)象i加1,每刪除MyClass類對(duì)象i減1。26、為使該程序執(zhí)行結(jié)果為10,那么應(yīng)該在程序劃線處填入的語句是()。#include<iostream>usingnamespacestd;classMyClass{public:MyClass(inta){x=a;}___________//取x值private:intx;};intmain(){MyClassmy(10);cout<<my.GetNum()<<end1;return0;}A、returnx;B、intGetNum(){returnx;}C、intreturnx;D、voidGetNum(){returnx;}標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:此題為完成類的定義。由題可知,橫線處要填的語句為類中的成員函數(shù),它實(shí)現(xiàn)的功能是取x的值(即返回x的值)。又由主函數(shù)中的語句“cout<<my.GetNum()<<end1;”可知,此成員函數(shù)的函數(shù)名為GetNum()。其函數(shù)體為:{return

溫馨提示

  • 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)論