當前位置:才華齋>計算機>計算機二級>

全國計算機二級考試《C++》考前測試題2017

計算機二級 閱讀(4.93K)

1). 在位運算中,運算元每右移一位,其結果相當於

全國計算機二級考試《C++》考前測試題2017

A.運算元乘以2

B.運算元除以2

C.運算元乘以4

D.運算元除以4

正確答案:B

答案解析:右移運算子">>"是雙目運算子。其功能是把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數。例如:設a=15,a>>2 表示把000001111右移為00000011(十進位制3)。

2). 下面描述中,不屬於軟體危機表現的是( ).

A.軟體過程不規範

B.軟體開發生產率低

C.軟體質量難以控制

D.軟體成本不斷提高

正確答案:A

答案解析:軟體危機主要表現在:軟體需求的增長得不到滿足;軟體開發成本和進度無法控制;軟體質量難以保證;軟體不可維護或維護程度非常低;軟體的成本不斷提高;軟體開發生產率的提高趕不上硬體的發展和應用需求的增長。所以選擇A。

3). 以下定義語句中正確的是( )。

a-b=0;

A=65+1,b=′b′;

t a=1,″b= &a,″c=&b;

le a=0.0.b=1.1;

正確答案:B

答案解析:本題考查資料型別的定義。選項A中是要定義變數並且賦初值,但方式不對,必須單獨定義其型別。選項C給實型變數賦值時不用雙引號,也不能將地址賦予實型變數,在選項D中,C語言允許在一個型別說明符後說明多個相同型別的變數,各變數之間要用逗號隔開,而不是用分號隔開,選項B正確。

4). 已知Value是一個類,Value是Value的一個物件。下列以非成員函式形式過載的運算子函式原形中,正確的是( )。

e operator+( Value v,int i);

e operator+( Value v= value,int i);

e operator+( Value vint i=O);

e operator+( Value v= value,int i=O);

正確答案:B

答案解析:非成員函式的過載運算子函式的格式為operator+(),是運算子十過載函式。

5). 如果表示式一x/y中的″-″和″″是作為友元函式過載的運算子,採用運算子函式呼叫格式,該表示式還可表示為( )。

A.jsj-ej-0253.jpg

B.jsj-ej-0254.jpg

C.jsj-ej-0255.jpg

D.jsj-ej-0256.jpg

正確答案:B

答案解析:本題考核運算子的過載。假定已經作為某個類的成員函式過載了二元運算子+,且cl、c2都是該類的物件,則ator+(c2)與cl+c2含義相同。如果十作為該類的非成員函式過載,則operator+( cl,c2)與cl+c2含義相同。同理,運算子″″作為友元函式過載,則--x)y與表示式operator/((- - x),y)相同。字首運算子″一一″作為友元函式過載,則- -x與operator - -( x)相同,所以組合起來是operator/(operator-( x),y);,即B選項。

6). 下面關於C++流的敘述中,正確的是( )。

是一個輸入流物件

B.可以用ifstream定義一個輸出流物件

C.執行語句序列char* y=″PQMN″;cout<

D.執行語句序列char x[80];ine(x,80);時,若輸入Happy new year,則x中的字串是″Happy″

正確答案:A

答案解析:本題考查C++流的概念和I/()的格式化。cin是istream類的物件,即輸入流物件。ifstream是輸入檔案流,類不能定義個輸出流物件。getline函式的功能是允許從輸入流中讀取多個字元,並且允許指定輸入終止,在讀取完成後,從讀取的內容中刪除該終止字元,所以D選項中的語句序列後x中字串應該是Happy new year。

7). 資訊隱蔽的概念與下述哪一種概念直接相關( )。

A.軟體結構定義

B.模組獨立性

C.模組型別劃分

D.模擬耦合度

正確答案:B

答案解析:資訊隱蔽的概念與模組獨立性這一概念直接相關。

8). 若變數已正確定義並賦值,以下符合C++語言語法的表示式是( )。

A.a:=b+1

B.a= b= c+2

18.5 %3

D.a= a+7=c+b

正確答案:B

答案解析:本題考查C++語言的正確賦值方法。a= b=c+2實際上相當於a=(b=c+2),進而可分解為兩個表示式b= c+2和a=b。選項A中包含一個不合法的運算子″:=″;選項C應改為(int) 18.5%3;選項D可理解為兩個表示式a+7=c+b和a= a+7,其中第一個是錯的,因為C++語言規定賦值號的左邊只能是單個變數,不能是表示式或常量。

9). 兩個或兩個以上模組之間聯絡的緊密程度稱為( )。

A.耦合性

B.內聚性

C.複雜性

D.資料傳輸特性

正確答案:A

答案解析:耦合性是模組間互相連線的緊密程度的度量,取決於各個模組之間介面的複雜度、呼叫方式以及哪些資訊通過介面。

10). 開發大型軟體時,產生困難的根本原因是( )

A.大系統的複雜性

B.人員知識不足

C.客觀世界千變萬化

D.時間緊、任務重

正確答案:A

11). 若已定義的函式有返回值,則以下關於該函式呼叫的敘述中錯誤的是( )。

A.函式呼叫可以作為獨立的語句存在

B.函式呼叫可以無返回值

C.函式呼叫可以出現在表示式中

D.函式呼叫可以作為、一個函式的形參

正確答案:D

答案解析:本題考查函式的呼叫方式。函式的形參和實參具有以下特點:①形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放分配的記憶體單元,因此,形參只有在函式內部有效,函式呼叫結束返回主調函式後則不能再使用該形參變數;②實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參,因此應通過預先用賦值、輸入等辦法使實參獲得確定值;③實參和形參在數量上、型別上、順序上應嚴格一致,否則會發生″型別不匹配″的錯誤;④函式呼叫中發生的資料傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。

12). 對於語句″cout< < <1<< < <2;″的.輸出結果是( )。

A.*********1*2

B.********12

C.*******1*2

D.12********

正確答案:A

答案解析:C++語言中,setfill的意思是在空格的地方填上setfill函式中的引數字元,setw的意思是設定整個輸出字串的字元個數,本題中用*來代替空格。

13). 下列關於運算子過載不正確的是( )

A.運算子過載不能改變運算子的運算元個數

B.運算子過載不能改變運算子的優先順序

C.運算子過載不能改變運算子的結合性

D.運算子過載能改變對預定義型別資料的操作方式

正確答案:D

14). 通常拷貝建構函式的引數是

A.某個物件名

B.某個物件的成員名

C.某個物件的引用名

D.某個物件的指標名

正確答案:C

答案解析:拷貝初始化建構函式的作用是用一個已知的物件來初始化一個被建立的同類的物件,該函式只有一個引數,並且是對同類的某個物件的引用。

15). 下面關於模板的描述,錯誤的是

A.函式模板和類模板的引數可以是任意的資料型別

B.類模板不能直接使用,必須先例項化為相應的模板類,然後定義了模板類的物件後才能使用

C.函式模板不能直接使用,需要例項化為模板函式後才能使用

D.類模板的成員函式都是模板函式

正確答案:A

答案解析:類模板不能被過載,而函式模板可以,它們不能被未知的資料型別替換。