2017年10月自考04737C++程序設計試題及答案含解析_第1頁
2017年10月自考04737C++程序設計試題及答案含解析_第2頁
2017年10月自考04737C++程序設計試題及答案含解析_第3頁
2017年10月自考04737C++程序設計試題及答案含解析_第4頁
2017年10月自考04737C++程序設計試題及答案含解析_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

++程序設計年月真題

04737C201710

1、【單選題】按照標識符的要求,不能組成標識符的符號是()。

連接符

下劃線

A:

大小寫字母

B:

數(shù)字字符

C:

答D:案:A

解析:組成標識符的符號可以是大小寫字母、下劃線和數(shù)字,且數(shù)字不能打頭。

2、【單選題】下列輸出語句中,正確的是()。

cout<<("%c\n","student")

cout<<("%s\n","hello")

A:

cout<<("%c\n","c")

B:

cout<<("%s\n",&a)

C:

答D:案:B

解析:%c是輸出單個字符的格式控制符;選項C中"c"是字符串,不能用c%格式輸出。%s

是輸出字符串的格式控制符。

3、【單選題】已知:print()函數(shù)是一個類的常成員函數(shù),無返回值,下列表示中正確的是

()。

voidprint()const

voidprint(const)

A:

voidconstprint()

B:

constvoidprint()

C:

答D:案:A

解析:常成員函數(shù)的聲明形式:類型標識符函數(shù)名(參數(shù)列表)const;.

4、【單選題】if與else在使用過程中為避免嵌套出現(xiàn)二義性,C++中規(guī)定與else子句配對

的是()。

其之前最近的if語句

其之前最近且尚未配對的if語句

A:

B:

縮排位置相同的if語句

其之后最近的if語句

C:

答D:案:B

解析:C++中規(guī)定與else子句配對的是其之前最近且尚未配對的if語句。

5、【單選題】對使用關(guān)鍵字new所開辟的動態(tài)存儲空間,釋放時必須使用()。

free

create

A:

delete

B:

release

C:

答D:案:C

解析:C++為結(jié)構(gòu)動態(tài)分配內(nèi)存的一般格式為:指針名=new結(jié)構(gòu)名;當不再使用這個空

間時,必須使用delete釋放空間,格式為:delete指針名;。

6、【單選題】邏輯運算符兩側(cè)運算對象的數(shù)據(jù)()。

是邏輯型數(shù)據(jù)

只能是整型數(shù)據(jù)

A:

只能是整型或字符型數(shù)據(jù)

B:

可以是任何類型的數(shù)據(jù)

C:

答D:案:D

解析:邏輯運算符兩側(cè)運算對象的數(shù)據(jù)可以是任何類型的數(shù)據(jù)。

7、【單選題】關(guān)于構(gòu)造函數(shù)的說法,不正確的是()。

沒有定義構(gòu)造函數(shù)時,系統(tǒng)將不會調(diào)用它

其名與類名完全相同

A:

它在對象被創(chuàng)建時由系統(tǒng)自動調(diào)用

B:

沒有返回值

C:

答D:案:A

解析:當沒有為一個類定義任何構(gòu)造函數(shù)的情況下,C++編譯器會自動建立一個不帶參數(shù)

的、函數(shù)體為空的構(gòu)造函數(shù),這就是默認構(gòu)造函數(shù)。構(gòu)造函數(shù)不能在程序中顯式調(diào)用,它

是由系統(tǒng)自動調(diào)用的。為了提高安全性和效率,構(gòu)造函數(shù)的名字必須和類名相同,并在定

義構(gòu)造函數(shù)時不能指定返回類型,即不要返回值,即使是void類型也不可以。

8、【單選題】所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個實

體,這實體也就是()。

對象

A:

函數(shù)體

B:

數(shù)據(jù)塊

C:

答D:案:A

解析:類是具有相同的屬性和操作的一組對象的集合,它為屬于該類的全部對象提供了統(tǒng)

一的抽象描述,其內(nèi)部包括屬性(數(shù)據(jù)成員)和操作(成員函數(shù))兩個主要部分。

9、【單選題】下列關(guān)于類的繼承描述中,錯誤的是()。

基類不一定具有派生類的全部屬性和方法

派生類可以訪問基類的所有數(shù)據(jù)成員,也能調(diào)用基類的所有成員函數(shù)

A:

繼承描述類的層次關(guān)系,派生類可以具有與基類相同的屬性和方法

B:

一個基類可以有多個派生類,一個派生類可以有多個基類

C:

答D:案:B

解析:派生類繼承了基類所有的數(shù)據(jù)成員和成員函數(shù)。相對基類,派生類可以有以下變

化:增加新的成員;重新定義已有的成員函數(shù);改變基類成員的訪問權(quán)限。一個基類可以

有多個派生類,一個派生類可以有多個基類。

10、【單選題】在C++中,函數(shù)原型不能標識()。

函數(shù)的返回類型

函數(shù)參數(shù)的個數(shù)

A:

函數(shù)參數(shù)類型

B:

函數(shù)的功能

C:

答D:案:D

解析:函數(shù)原型可以標識函數(shù)的返回類型、函數(shù)參數(shù)的個數(shù)和函數(shù)參數(shù)類型,但不能標識

函數(shù)的功能。

11、【單選題】若二維數(shù)組y有m列,則位于y[i][j]之前的元素數(shù)量是()。

j*m+i

i*m+j

A:

i*m+j-1

B:

i*m+j+1

C:

D:

答案:B

解析:y[i][j]前面的元素有前i行i*m個元素再加上第i行第j列前面的j個元素,

一共i*m+j個元素。

12、【單選題】下列關(guān)于類的權(quán)限的描述錯誤的是()。

類本身的成員函數(shù)只能訪問自身的私有成員

類的對象只能訪問該類的公有成員

A:

普通函數(shù)不能直接訪問類的公有成員,必須通過對象訪問

B:

一個類可以將另一個類的對象作為成員

C:

答D:案:A

解析:類本身的成員函數(shù)既可以訪問自身的私有成員,更可以訪問自身的公有成員。

13、【單選題】下面不能夠判斷字符串S是空串的是()。

if(S[0]==0)

if(strlen(S)==0)

A:

if(strcmp(S,””)==0)

B:

if(S==’\0’)

C:

答D:案:D

解析:S是字符串,S本身代表字符串本身及其首地址,也可以理解為是存放字符串的數(shù)

組的數(shù)組名,選項A是正確的,因為如果字符串的第一個字符的ASCII碼值是0(字符串

的結(jié)束標記的\0的ASCII碼值就是0),說明就是空串。選項B,if(strlen(S)==0)是利

用系統(tǒng)函數(shù)判斷字符串S的長度是否等于0,當然能夠判斷字符串S是空串。選項C,

if(strcmp(S,””)==0)是利用系統(tǒng)函數(shù)比較字符串S和空串是否相等,當然能夠判斷字

符串S是否是空串。選項D,if(S==’\0’)中的S==’\0’這個表達式左邊是字符串,右

邊是字符,顯然是非法的,如果改寫成if(S==“\0”)就可以判斷字符串S是否是空串。

14、【單選題】下列輸出字符‘d’的方法中,錯誤的是()。

cout<<put(‘d’)

cout<<‘d’

A:

cout.put(‘d’)

B:

chara=‘d’;cout<<a;

C:

答D:案:A

解析:cout.put()是一個輸出字符的函數(shù),cout.put(‘d’)相當于cout<<‘d’。

選項A是非法語句。

15、【單選題】關(guān)于引用,下列的說法中錯誤的是()。

引用是給被引用的變量取一個別名

引用主要是用來作函數(shù)的形參和函數(shù)的返回值

A:

在聲明引用時,要給它另開辟內(nèi)存單元

B:

在聲明引用時,必須同時使它初始化

C:

答D:案:C

解析:引用就是為現(xiàn)有的對象起個別名,別名的地址與引用對象的地址是一樣的,使用引

用時沒有分配新的存儲區(qū)域。引用主要是用來作函數(shù)的形參和函數(shù)的返回值;對象在引用

前必須先初始化。

16、【單選題】下面關(guān)于C++字符數(shù)組的敘述中,錯誤的是()。

字符數(shù)組可以放字符串

字符數(shù)組的字符可以整體輸入、輸出

A:

可以在賦值語句中通過賦值運算符“=”對字符數(shù)組整體賦值

B:

可以用關(guān)系運算符對字符數(shù)組比較大小

C:

答D:案:C

解析:

以下列這個程序為例:#include<iostream>#include<string>usingnamespace

std;voidmain(){chars1[]="ABCD",s2[6];cin>>s2;if(s1!=s2)

cout<<s1<<endl;elsecout<<s2<<endl;}程序運行結(jié)果:

可見字符數(shù)組可以放字符串,字符數(shù)組的字

符可以整體輸入、輸出。C++字符數(shù)組可以用關(guān)系運算符對字符數(shù)組比較大小。把上面程

序中的cin>>s2;改為s2="EDCBA";編譯出錯,錯誤信息為:

17、【單選題】下列說法不正確的是()。

主函數(shù)main中定義的變量在整個文件或程序中有效

A:

不同函數(shù)中,可以使用相同名字的變量

形式參數(shù)是局部變量

B:

在一個函數(shù)內(nèi)部,可以在復合語句中定義變量,這些變量只在復合語句中有效

C:

答D:案:A

解析:主函數(shù)main中定義的變量只在主函數(shù)中有效。

18、【單選題】非數(shù)組指針或引用型變量做實參時,它和對應虛參之間的數(shù)據(jù)傳遞方式是

()。

地址傳遞

單向值傳遞

A:

雙向值傳遞

B:

由用戶指定傳遞方式

C:

答D:案:B

解析:

非數(shù)組指針做實參時和對應虛參之間的數(shù)據(jù)傳遞方式是單向地址值的傳遞。引用型變量做

實參時,它和對應虛參之間的數(shù)據(jù)傳遞方式是單向數(shù)值傳遞。引用型變量做形參時,它和

對應實參之間的數(shù)據(jù)傳遞方式是地址傳遞。下面是引用型變量做實參時的程序?qū)嵗?/p>

#include<iostream>#include<string>usingnamespacestd;voidswap(strings11,

strings22){stringtemp=s11;s11=s22;s22=temp;cout<<"交換為

strl=<<s11<<"str2="<<s22<<endl;}voidmain(){stringstrl("現(xiàn)在"),str2("過去");

string&s1=strl,&s2=str2;cout<<"引用:sl="<<s1<<"s2="<<s2<<endl;swap(s1,

s2);cout<<"返回后:strl="<<strl<<"str2="<<str2<<endl;}運行結(jié)果:

19、【單選題】下面敘述中錯誤的是()。

預處理命令都必須以“#”開始

在程序中凡是以“#”開始的語句行都是預處理命令行

A:

C++程序在程序執(zhí)行過程中對預處理命令進行處理

B:

一行只能寫一條預處理命令

C:

答D:案:C

解析:預處理命令在源程序編譯之前處理,預處理命令都以“#”開頭,后面沒有

“;”,一行只能寫一條預處理命令,預處理命令不是C++的一部分。

20、【單選題】下列關(guān)于友元函數(shù)的描述,正確的是()。

友元函數(shù)可以存取私有成員、公有成員和保護成員

友元函數(shù)不可以是一個類

A:

友元函數(shù)的作用之一是實現(xiàn)數(shù)據(jù)的隱藏性

B:

在類中說明的友元函數(shù),函數(shù)的定義不可在類體之外

C:

答D:案:A

解析:可以在類A中通過關(guān)鍵字friend聲明或定義某個獨立函數(shù)或另一個類B的某個成

員函數(shù)或另一個類B為類A的友元函數(shù),友元函數(shù)可以無限制地存取類A的成員(包括私

有、公有和保護成員)。友元函數(shù)可在類中的私有或公有部分通過關(guān)鍵字friend說明或

定義,但如在類中聲明,而在類外定義,就不能再在類外使用friend關(guān)鍵字。類友元函

數(shù)應被看作類的接口的一部分,使用它的主要目的是提高效率,因為它可以直接訪問對象

的私有成員,從而省去調(diào)用類的相應成員函數(shù)的開銷。

21、【問答題】#include<iostream.h>命令中,include的意義是:___________。

答案:包含頭文件

22、【問答題】this指針始終指向調(diào)用成員函數(shù)的___________。

答案:對象

23、【問答題】假定AB為一個類,則執(zhí)行語句ABa[10];時,系統(tǒng)自動調(diào)用該類的構(gòu)造函

數(shù)的次數(shù)為___________。

答案:10

24、【問答題】一個抽象類的派生類可以實例化的必要條件是實現(xiàn)了所有的___________。

答案:純虛函數(shù)

25、【問答題】cin是輸入流istream的一個對象,處理標準輸入;___________是輸出流

ostream的一個對象,處理標準輸出。

答案:cout

26、【問答題】定義虛函數(shù)所用的關(guān)鍵字是___________。

答案:virtual

27、【問答題】設在程序中使用如下語句申請了一個對象數(shù)組:Point*ptr=newPoint[2];

當要釋放ptr指向的動態(tài)數(shù)組對象時,所使用的語句是___________。

答案:delete[]ptr;

28、【問答題】書寫程序語句時,適當增加空行和程序注釋以增加程序的___________。

答案:可讀性

29、【問答題】C++語言中如果調(diào)用函數(shù)時,需要改變實參或者返回多個值,應該采取

___________方式。

答案:傳地址或引用

30、【問答題】如果要把A類成員函數(shù)f()且返回值為void聲明為類B的友元函數(shù),則應在

類B的定義中加入語句___________。

答案:friendvoidA::f();

31、【問答題】C++語言的___________提供了與要操作的元素類型無關(guān)的算法。

答案:標準模板庫(STL)

32、【問答題】為了在對象生存期結(jié)束時釋放其指針成員所指向的動態(tài)存儲空間,通常為該

類定義___________。

答案:析構(gòu)函數(shù)

33、【問答題】在保護派生中,基類權(quán)限為public的成員在派生類中為___________。

答案:保護類型(protect)

34、【問答題】在函數(shù)前面用___________保留字修飾時,則表示該函數(shù)為內(nèi)聯(lián)函數(shù)。

答案:inline

35、【問答題】面向?qū)ο蟮乃膫€基本特性是多態(tài)性、繼承性、封裝性、___________。

答案:抽象

36、【問答題】派生類的主要用途是可以定義其基類中___________。

答案:不具有的成員

37、【問答題】若inta=8;intb=(++a)++;則b=___________。

答案:9

38、【問答題】在C++中,利用向量類模板定義一個具有10個int的向量A,其元素均被置

為1,實現(xiàn)此操作的語句是___________。

答案:vector?A(10,1)

39、【問答題】將指向?qū)ο蟮囊米鳛楹瘮?shù)的形參,形參是對象的引用,實參是

___________。

答案:對象名

40、【問答題】重載的運算符保持其原有的___________、優(yōu)先級和結(jié)合性不變。

答案:操作數(shù)

41、【問答題】

答案:intx,y=20;錯。在類內(nèi)部不能對數(shù)據(jù)成員直接賦值。[修改]intx,y;

解析:新版的C++11已經(jīng)支持,答案以出題時間為準

42、【問答題】

答案:voidshow();錯。它是普通函數(shù)不是成員函數(shù),但是要訪問類成員,需要定義為

友元函數(shù)。[修改]friendvoidshow();

43、【問答題】

答案:scores[i]=i;或i<=mum;錯。數(shù)組訪問越界。[修改]scores[i-1]=i;或i<mum;

44、【問答題】

答案:intX,Y;錯。因為X,Y都是私有的,在類外無法直接訪問。[修改]public:int

X,Y;

45、【問答題】

答案:constint*p=c;錯。p是指針不能用變量賦值。[修改]constint*p=&c;

46、【問答題】下面程序中用來求數(shù)組和。請在下面程序的橫線處填上適當內(nèi)容,以使程

序完整,并使程序的輸出為:s=150。

答案:intGetValue(inti),for(;i<5;i++)

47、【問答題】在下面程序的橫線處填上適當字句,完成類的定義。

答案:friendintsame_color(

溫馨提示

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

評論

0/150

提交評論