2018年計算機二級C語言模擬題2_第1頁
2018年計算機二級C語言模擬題2_第2頁
2018年計算機二級C語言模擬題2_第3頁
2018年計算機二級C語言模擬題2_第4頁
2018年計算機二級C語言模擬題2_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

2018年計算機二級C語言模擬題2

(總分:100.00,做題時間:120分鐘)

一、選擇題

(每題1分,共40分)

(總題數:40,分數:40.00)

L一個棧的初始狀態為空。現將元素1、2、3、4、5、A、B、C,D、E依次入棧,然后再依次出棧,則元

素出棧的順序是()。

(分數:1.00)

A.12345ABCDE

B.EDCBA543214

C.ABCDE12345

D.54321EDCBA

解析:棧按后進先出的原則組織數據,因此入棧最晚的最先出棧,因此本題答案為B)。

2.下列敘述中正確的是(

(分數:1.00)

A.循環隊列有隊頭和隊尾兩個指針,因此,循環隊列是非線性結構

B.在循環隊列中,只需要隊頭指針就能反映隊列中元素的動態變化情況

C.在循環隊列中,只需要隊尾指針就能反映隊列中元素的動態變化情況

D.循環隊列中元素的個數由隊頭指針和隊尾指針共同決定V

解析:循環隊列有隊頭和隊尾兩個指針,但是循環隊列仍是線性結構,因此A)錯誤;在循環隊列中需要

隊頭與隊尾兩個指針來共同反映隊列中元素的動態變化情況,因此B)與C)錯誤,故本題答案為D)。

3.在長度為n的有序線性表中進行二分法查找,最壞情況下需要比較的次數是()o

(分數:1.00)

A.0(n)

B.0(n2)

D.

解析:當有序線性表為順序存儲時才能用二分法查找。可以證明的是,對于長度為n的有序線性表,在最

壞情況下,二分法查找只需要比較1。居次,而順序查找需要比較n次,因此本題答案為C)。

4.數據流圖中帶有箭頭的線段表示的是().

(分數:1.00)

A.控制流

B.事件驅動

C.模塊調用

D.數據流J

解析:數據流圖中帶箭頭的線段表示的是數據流,即沿箭頭方向傳送數據的通道,一般在旁邊標注數據流

的名稱,因此本題答案為D)。

5.下列敘述中正確的是()。

(分數:1.00)

A.順序存儲結構的存儲空間一定是連續的,鏈式存儲結構的存儲空間不一定是連續的V

B.順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構

C.順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表

D.鏈式存儲結構比順序存儲結構節省存儲空間

解析:鏈式存儲結構既可以針對線性結構也可以針對非線性結構,因此B)與C)錯誤。鏈式存儲結構中

每個結點都由數據域與指針域兩部分組成,增加了存儲空間,因此D)錯誤。本題答案為A)。

6.在軟件開發中,需求分析階段可以使用的工具是()。

(分數:1.00)

A.N-S圖

B.DFD圖V

C.PAD圖

D.程序流程圖

解析:在需求分析階段可以使用的工具有數據流圖(DFD圖),數據字典(DD),判定樹與判定表,因此

本題答案為B)。

7.一間宿舍可住多名學生,則實體宿舍和學生之間的聯系是()。

(分數:1.00)

A.一對一

B.一對多V

C.多對一

D.多對多

解析:因為一間宿舍可以住多名學生即多名學生住在一間宿舍中,但一名學生只能住一間宿舍,所以實體

宿舍和學生之間是一對多的關系,因此本題答案為B)。

8.在面向對象方法中,不屬于“對象”基本特點的是()。

(分數:1.00)

A.一致性V

B.分類性

C.多態性

D.標識唯一性

解析:在面向對象方法中,對象的基本特點包括:標識唯一性、分類性、多態性、封裝性、模塊獨立性

好。一致性不屬于對象的基本特點,因此本題答案為A)。

9.在數據管理技術發展的三個階段中,數據共享最好的是()。

(分數:1.00)

A.人工管理階段

B.文件系統階段

C.數據庫系統階段V

D.三個階段相同

解析:數據管理技術發展至今經歷了三個階段:人工管理階段、文件系統階段和數據庫系統階段。其中最

后一個階段結構簡單,邏輯性強物理性少,使用方便,在各方面的表現都最好,一直占據數據庫領域的主

導地位,因此本題答案為C)。

10.有三個關系R、S和T如下:

由關系R和S通過運算得到關系T,則所使用的運算為().

(分數:1.00)

A.笛卡爾積7

B.交

C.并

D.自然連接

解析:自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在

結果中把重復的屬性列去掉,因此根據關系T中的有序組可知關系R與S進行的是自然連接操作,故本題

答案為D)。

11.以下敘述中錯誤的是(

(分數:1.00)

A.使用三種基本結構構成的程序只能解決簡單問題,

B.結構化程序由順序、分支、循環三種基本結構組成

C.C語言是一種結構化程序設計語言

D.結構化程序設計提倡模塊化的設計方法

解析:使用順序、選擇(分支)、循環3種基本結構構成的程序可以解決所有問題,而不只是解決簡單問

題,因此A)選項錯誤。

12.以下四個程序中,完全正確的是()?

(分數:1.00)

BJ

C.

D.

解析:A)選項中,“main。"函數后面不能加分號。C語言中注釋語句的注釋方法是:/*注釋內容*/或〃

注釋一行,且“/*”和“*/”不能嵌套使用,因此C)錯誤。D)選項中預編譯命令"include〈stdio.h>"

前缺少號。因此選擇B八

13.C源程序中不能表示的數制是()。

(分數:1.00)

A.十進制

B.八進制

C.二進制J

D.十六進制

解析:在C語言中整型常量可以用十進制、八進制和十六進制等形式表示,但不包括二進制,因此選擇

C)o

1蟲以下選項中,能用作用戶標識符的是()。

(分數:1.00)

A._0_V

B.8_8

C.void

D.unsigned

解析:C語言中標識符由字母、下畫線或數字組成,且開頭必須是字母或下畫線。另外,關鍵字不能作為

標識符。B)選項中以數字8開頭,所以錯誤。C)與D)中用的是關鍵字void與unsigned,因此錯誤。故本

題答案為A)。

15.若有定義語句“intx=10;”,則表達式“x-=x+x”的值為()?

(分數:1.00)

A.10

B.-20

C.O

D.-10J

解析:算術運算符“+”的優先級高于〃-二〃,且〃-二〃的結合方向為自右向左,因此表達式“x-=x+x”可以

表不成“x=x-(x+x)=10-(10+10)=T0",所以選擇D)。

16.有以下程序

程序運行后的輸出結果是()。

(分數:1.00)

A.1,2J

B.1,0

C.3,2

D.0,0

解析:首先打印"b=a+b=l先打”的值1,此時已給b賦值為1。然后打印"a=2*b=2*l=2”的值2。因此

結果是“1,2”°

17.有以下程序

若想通過鍵盤輸入,使得al的值為12,a2的值為34,cl的值為字符a,c2的值為字符b,程序輸出結果

是12,a,34,b則正確的輸入格式是()(口代表空格字符)。

(分數:1.00)

A.12口a口34口b

B.12a34bJ

C.12,a,34,b

D.12口a34口b

解析:在輸入多個數據時,如果格式控制串中沒有非格式字符,則認為所有輸入的字符均為有效字符。因

此應按選項B)的順序輸人數據。

18.若變量已正確定義,在“if(w)printf(〃%d\n〃,k);”中,以下不可替代\v的是()。

(分數:1.00)

A.a==b+c

B.ch=getchar()

C.a<>b+cV

D.a++

解析:選項C)是非法的表達式,C語言中沒有“?”運算符。

19.有以下程序

程序運行后的輸出結果是(

(分數:1.00)

A.a=10b=50c=10J

B.a=10b=50c=30

C.a=10b=30c=10

D.a=50b=30c=50

解析:本題中a>b的條件不滿足,因此不執行逗號表達式“a=b,b=C;"的操作,而是執行“c二a”的操

作,即c的值為10。故本題答案為A)。

20.下列敘述中正確的是()。

(分數:1.00)

A.在switch語句中,不一定使用break語句V

B.在switch語句中,必須使用default

C.break語句必須與switch語句中的case配對使用

【).break語句只能用于switch語句

解析:default語句在switch語句中可以省略,因此B)錯誤:switch語句中并非每個case后都需要使

用break語句,因此C)錯誤;break語句還可以用于for等循環結構中,因此D)錯誤。故本題答案為

A)o

21.以下不構成無限循環的語句或語句組是()。

(分數:1.00)

A.

B.

C.

D.

解析:選項B)中do后面的語句只執行了一次便結束了循環;A)選項中條件while(l)永遠成立,因此是死

循環;C)選項中n的值為10,而循環體為空語句,所以while(n)永遠為真,進入死循環;D)選項中for語

句第二個表達式為空,因此沒有判定條件,進入死循環。因此本題答案為B)。

22.有以下程序

程序運行后的輸出結果是()。

(分數:1.00)

A.3J

B.5

C.7

D.9

解析:向switch語句塊傳送參數后,編譯器會先尋找匹配的case語句塊,找到后就執行該語句塊,遇到

break跳出;如果沒有匹配的語句塊,則執行default語句塊。case與default沒有順序之分。因此第一

次循環k的值為1,執行c+=k,c的值為1,再執行case2后的語句C++,c的值為2,遇到break語句跳

出循環:第二次循環k的值為2,執行case2后面的語句C++,c的值為3,跳出循環。故本題答案為A)。

23.有以下程序

程序運行后的輸出結果是()°

(分數:1.00)

A.8

B.10

C.9J

D.7

解析:調用“f(a,b)”函數返回3,調用解析,c)”函數返回6,因此外層調用“f(f(a,b),f(a,c));",即

調用“f(3,6)”函數返回9,故本題答案為C)o

24.若有定義語句"doublex,y,*px,*py;",執行了"px=&x;py=&y;"之后,正確的輸入語句是

().

(分數:1.00)

A.scanf("斷px,py);V

B.scanf("%f%f"&x,&y);

C.scan("%f%f”,x>y);

D.scanf("斷x,y);

解析:因為x、y都是double型數據,所以輸入時的格式字符應為%fl,所以B)與C)錯誤。D)選項中

“scanfx,y)應為“scanf("機&x,&y);".故本題答案為A)。

25.若有定義語句“doublea,*p=&a;",以下敘述中錯誤的是()。

(分數:1.00)

A.定義語句中,*p=&a提把變量a的地址作為初值賦給指針變量P

B.定義語句中的*號是一個說明符

C.定義語句中的P只能存放double類型變量的地址

D.定義語句中的*號是一個間址運算符J

解析:在變量定義“doublea,*P=&a;"中,*號是一個指針運算符,而非間址運算符,因此D)錯誤。

26.以下定義數組的語句中錯誤的是()。

(分數:1.00)

A.intnum[]={1,2,3,4,5,6);

B.intnum[][3]={{1,2},3,4,5,6);

C.intnum[2][4]={{1,2),{3,4},{5,6}};V

D.intnum[][4]=(1,2,3,4,5,6);

解析:C)選項中定義的數組為2行4列,而賦值時賦成了3行,因此出錯。

27.有以下程序

程序運行后的輸出結果是()。

(分數:1.00)

A.1,2,3,4,5,6,7,8,9,0,V

B.2,1,4,3,6,5,8,7,0,9,

C.0,9,8,7,6,5,4,3,2,1,

D.0,1,2,3,4,5,6,7,8,9,

解析:函數調用中發生的數據傳遞是單向的,即只能把實參的值傳遞給形參,而不能把形參的值反向地傳

遞給實參。因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化,所以數組c中的元素的

值并沒有變化,故選擇A)。

28.有以下程序

當執行上述程序段,從鍵盤上輸入555667777123后,y的值為()O

(分數:LOO)

A.566.0J

B.55566.0

C.7777.0

D.566777.0

解析:本題考查的是格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變量之中,其中的

格式命令可以說明最大域寬。在百分號(%)與格式碼之間的整數用于限制從對應域讀入的最大字符數。

因此j的值為55,y的值為566.0,字符數組name的值為7777123。故本題答案為A).

29.有以下程序

若運行時輸入:246<回車),則輸出結果為()◎

(分數:1.00)

A.200

B.204V

C.240

D.246

解析:本題中輸入的3個數據2、4、6分別賦給了x[0][0]、和x[2][0]。x[0][1]仍為初始時的

0,因此打印輸出時的結果為B)選項。

30.下列語句組中,正確的是()。

(分數:1.00)

A.char*s;s="Olympic";J

B.chars[7];s=”Olympic";

C.char*s;s={"Olympic”};

D.chars[7];s={"Olympic”};

解析:字符型指針變量可以用選項A)的賦值方法“char*S;S二"Olympic";",選項C)的寫法

“char*s,s={"Olympic"};”是錯誤的。字符數組可以在定義的時候初始化"chars□={"Olympic"};"或

者"CharS[]=〃01ympic〃;”都是正確的,但是不可以在定義字符數組后,對數組名賦值(數組名是常量,

代表數組首地址)。所以選項B)和選項D)都是錯誤的。對于本例,選項B)、D)中字符數組s的大小至少

為8,才能存放下字符串(字符串的末尾都有結束標志‘\0')。

31.有以下程序(字符a的ASCII碼值為97)

程序運行后的輸出結果是()O

(分數:L00)

A.abc

B.789

C.7890V

D.979899

解析:因為小寫字符a、h、c的ASCII碼的值分別為97、98、99,而在“do...while”循環語句中,每次

對字符的ASCH碼的值取余數并輸出,所以分別輸出7、8、9,選項B)正確。

32.有以下函數

該函數的功能是(

(分數:1.00)

A.計算s所指字符串占用內存字節的個數

B.比較兩個字符串的大小

C.計算s所指字符串的長度V

D.將s所指字符串復制到字符串t中

解析:首先“char*s”接受一個字符型數組的首地址并將這個首地址賦給另一個字符型指針

“char*t,While(*t++)”不斷循環,直到*t為'\0',再將t-L這時字符指針t指向字符串的最后一個字

符,又因為s指向字符數組的首地址即字符串的首地址,所以“return(t-S)”便是返I可字符數組中字符

串的長度P故本題答案為C)。

33.設有如下函數定義

若執行調用語句"n=fum(3);",則函數fun總共被調用的次數是()。

(分數:1.00)

A.3V

C.4

D.5

解析:首先調用"n=fun(3)”,3被當作參數傳遞進去,進行了第一次調用,3被當作參數傳進去后,程

序會執行語句“elsereturnfun(kT)+l”進行第二次調用,參數是3T也就是2,2被當作參數傳進去

后,程序會執行語句“elsereturnfun(kT)+l”進行第三次調用,參數是2T也就是1,1被當作參數

傳進去后,程序會執行語句“elseif(k=l)returnl”不再遞歸調用,因此最終結果為3次,選項A)正

確。

34.有以下程序

程序運行后的輸出結果是()。

(分數:1.00)

A.9J

B.8

C.7

D.10

解析:題目中定義的靜態局部變量a,在靜態存儲區內分配存儲單元,在程序整個運行期間都不釋放。因

此第一次調用函數執行“n+=a++”時1a先與n相加再進行自增運算。n的值為4,a的值為2,且a變量執

行完后空間沒有釋放。再執行"s=s+f(A)”時,s的值為4,調用f(A)函數時,n的返回值為

“n=3+2=5”,此時a的值為3,所以s的值為9,選項A)正確。

35.設有定義:

則以下賦值語句中錯誤的是()。

(分數:1.00)

A.data2.real=clatal.unreal;

B.data2=datal;

C.data2.real=datal.real;

D.data2=(2,6);J

解析:選項中可以在聲明變量的同時為data2賦值,但是“data2=(2,6)”應寫作“data2={2,6}",因此

選擇D)o

36.有以下程序

程序運行后的輸出結果是()。

(分數:1.00)

A.Zhao,m,85,90,Qian,f,95,92

B.Zhao,m,85,90,Zhao,m,85,90

C.Qian,f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zhao,m,85,90

解析:本題考查的是函數調用時的參數傳遞問題。程序在調用函數時,傳給函數f的參數只是結構變量c

在棧中的一個拷貝,函數f做的所有操作只是針對這個數據拷貝進行的修改,這些都不會影響變量c的

值。因此本題答案為A)。

37.有以下程序

程序運行后的輸出結果是()O

(分數:1.00)

A.10,9,8,7,6,5,4,3,2,1,

B.1,2,3,4,5,6,7,8,9,10,J

C.2,3,1,6,8,7,5,4,10,9,

D.10,9,8,7,6,1,2,3,4,5,

解析:本題的子函數f的功能是對結構體變量s中第二個成員數組中所有的數據進行從小到大的冒泡排

序,因此結果是B)。

38.以下關于宏的敘述中正確的是()。

(分數:1.00)

A.宏替換沒有數據類型限制V

B.宏定義必須位于源程序中所有語句之前

C.宏名必須用大寫字母表示

D.宏調用比函數調用耗費時間

解析:宏定義寫在函數的花括號外邊,作用域為其后的程序,通常在文件的最開頭,因此B)選項中宏定

義必須位于源程序中所有語句之前是錯誤的。宏名一般用大寫,但不是必須用大寫,因此C)選項錯誤。

宏展開不占運行時間,只占編譯時間,函數調用占運行時間(分配內存、保留現場、值傳遞、返回值),

因此D)選項錯誤。

39.設有以下語句

執行后,C的值為()°

(分數:1.00)

A.8

B.7

C.9J

D.6

解析:b為2,以二進制表示為00000010,執行左移兩位操作后為00001000,然后與aOOOOOOOl做異或操

作,結果為00001001,即十進制的9,因此C)選項正確。

40.有以下程序

程序運行后的輸出結果是()O

(分數:1.00)

A.123V

B.12300

C.1

D.321

解析:程序首先將數組a[10]中的元素1、2、3分別寫人了文件dl.dat文件中,然后又將dl.d

溫馨提示

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

評論

0/150

提交評論