新視野教育全國計算機等級考試復習資料 二級C語言_第1頁
新視野教育全國計算機等級考試復習資料 二級C語言_第2頁
新視野教育全國計算機等級考試復習資料 二級C語言_第3頁
新視野教育全國計算機等級考試復習資料 二級C語言_第4頁
新視野教育全國計算機等級考試復習資料 二級C語言_第5頁
已閱讀5頁,還剩154頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

新視野教育全國計算機等級考試復習資料

二級C語言

第一部分公共基礎知識單項選擇題(10分)

1)、程序流程圖中帶有箭頭的線段表示的是

(A)數據流

(B)調用關系

(C)控制流

(D)圖元關系

標準答案:C

2)、下列關于棧的敘述正確的是

(A)只能在棧底插入數據

(B)棧按〃先進后出〃組織數據

(C)不能刪除數據

(D)棧按〃先進先出〃組織數據

標準答案:B

3)、算法的有窮性是指

(A)算法只能被有限的用戶使用

(B)算法程序的長度是有限的

(C)算法程序所處理的數據量是有限的

(D)算法程序的運行時同是有限的

標準答案:D

4)、設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程

C(課號,課名),選課SC(學號,課號,成績),則表SC的關鍵字(鍵或碼)為

(A)課號,成績

(B)學號,姓名,成績

(C)學號,成績

(D)學號,課號

標準答案:D

5)、結構化程序設計的基本原則不包括

(A)自頂向下

(B)多態性

(C)逐步求精

(D)模塊化

標準答案:B

6)、在軟件開發中,需求分析階段產生的主要文檔是

(A)軟件需求規格說明書

(B)集成測試計劃

(C)概要設計說明書

(D)可行性分析報告

標準答案:A

7)、對長度為n的線性表排序,在最壞情況下,比較次數不是n(n—1)/2的排序方法是

(A)堆排序

(B)快速排序

(C)冒泡排序

(D)直接插入排序

標準答案:A

8)、軟件設計中模塊劃分應遵循的準則是

(A)高內聚低耦合

(B)低內聚高耦合

(C)高內聚高耦合

(D)低內聚低耦合

標準答案:A

9)、

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

RST

BCDBCD

a0kl二a0kl

b1nl

ZJM

EJZJEJ

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

(A)自然連接

(B)笛卡爾積

(C)交

(D)并

標準答案:C

10)、在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于

(A)邏輯設計階段

(B)概念設計階段

(C)物理設計階段

(D)需求分析階段

標準答案:A

11)、在軟件開發中,需求分析階段可以使用的工具是

(A)N-S圖

(B)PAD圖

(C)程序流程圖

(D)DFD圖

標準答案:D

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

后再依次出棧,則元素出棧的順序是

(A)ABCDE12345

(B)54321EDCBA

(C)12345ABCDE

(D)EDCBA54321

標準答案:D

13)、下列敘述中正確的是

(A)順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構

(B)鏈式存儲結構比順序存儲結構節省存儲空間

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

(D)順序存儲結構的存儲?定是連續的,鏈式存儲結構的存儲空間不?定是連續的

標準答案:D

14)、數據流圖中帶有箭頭的線段表示的是

(A)事件驅動

(B)數據流

(C)模塊調用

(D)控制流

標準答案:B

15)、下列敘述中正確的是

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

(B)循環隊列中元素的個數是由隊頭指針和隊尾指針共同決定

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

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

標準答案:B

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

(A)。(力1噸2力)

(B)0(標)

(C)0(n)

(D)0(%力)

標準答案:D

17)、在面向對象方法中,不屬于“對象”基本特點的是

(A)多態性

(B)一致性

(C)標識唯一性

(D)分類性

標準答案:B

18)、

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

ST

BBcABC

113m13

□ZJ2ZJtoJ

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

(A)并

(B)自然連接

(C)交

(D)笛卡爾積

標準答案:B

19)、一間宿舍可住多個學生,則實體宿舍和學生之間的聯系是

(A)一對多

(B)多對多

(C)多對一

(D)一對一

標準答案:A

20)、下列敘述中正確的是

(A)隊列是“先進后出”的線性表

(B)棧是“先進先出”的線性表

(C)循環隊列是非線性結構

(D)有序線性表既可以采用順序存儲結構,也可以采用鏈式存儲結構

標準答案:D

21)、支持子程序調用的數據結構是

(A)隊列

(B)二叉樹

(C)樹

(D)棧

標準答案:D

22)、在數據管理技術發展的三個階段中,數據共享最好的是

(A)人工管理階段

(B)三個階段相同

(C)數據庫系統階段

(D)文件系統階段

標準答案:C

23)、數據庫應用系統中的核心問題是

(A)數據庫設計

(B)數據庫系統設計

(C)數據庫管理員培訓

(D)數據庫維護

標準答案:A

24)、下列排序方法中,最壞情況下比較次數最少的是

(A)冒泡排序

(B)堆排序

(C)宜接插入排序

(D)簡單選擇排序

標準答案:B

25)、軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于

應用軟件的是

(A)編譯程序

(B)匯編程序

(C)操作系統

(D)教務管理系統

標準答案:D

26)、下面敘述中錯誤的是

(A)程序調試通常也稱為Debug

(B)軟件測試應嚴格執行測試計劃,排除測試的隨意性

(C)對被調試的程序進行“錯誤定位”是程序調試的必要步驟

(D)軟件測試的目的是發現錯誤并改正錯誤

標準答案:D

27)、耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是

(A)降低耦合性提高內聚性有利于提高模塊的獨立性

(B)耦合性是指一個模塊內部各個元素間彼此結合的緊密程度

(C)內聚性是指模塊間互相連接的緊密程度

(D)提高耦合性降低內聚性有利于提高模塊的獨立性

標準答案:A

28)、某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是

(A)8

(B)4

(C)10

(D)6

標準答案:D

29)、將E-R圖轉換為關系模式時,實體和聯系都可以表示為

(A)屬性

(B)關系

(C)域

(D)鍵

標準答案:B

30)、下列數據結構中,能夠按照“先進后出”原則存取數據的是

(A)棧

(B)隊列

(C)二叉樹

(D)循環隊列

標準答案:A

31)、下列數據結構中,屬于非線性結構的是

(A)帶鏈棧

(B)帶鏈隊列

(C)二叉樹

(D)循環隊列

標準答案:C

32)、對于循環隊列,下列敘述中正確的是

(A)隊頭指針一定大于隊尾指針

(B)隊頭指針是固定不變的

(C)隊頭指針可以大于隊尾指針,也可以小于隊尾指針

(D)隊頭指針一定小于隊尾指針

標準答案:C

33)、

有兩個關系R,S如下:

RS

mttjm

r±jPJL±Jm

1cJJLZJL±]DJ

由關系R通過運算得到關系S,則所使用的運算為

(A)連接

(B)選擇

(C)投影

(D)插入

標準答案:C

34)、算法的空間復雜度是指

(A)算法在執行過程中所需要的計算機存儲空間

(B)算法在執行過程中所需要的臨時工作單元數

(C)算法所處理的數據最

(D)算法程序中的語句或指令條數

標準答案:A

35)、在E-R圖中,用來表示實體聯系的圖形是

(A)橢圓形

(B)三角形

(C)菱形

(D)矩形

標準答案:C

36)、

有三個關系R,S和T如下:

(A)交

(B)并

(C)選擇

(D)投影

標準答案:B

37)、數據庫管理系統是

(A)在操作系統支持下的系統軟件

(B)操作系統的一部分

(C)一種編譯系統

(D)一種操作系統

標準答案:A

38)、軟件設計中劃分模塊的一個準則是

(A)高內聚低耦合

(B)高內聚高耦合

(C)低內聚高耦合

(D)低內聚低耦合

標準答案:A

39)、下列選項中不屬于結構化程序設計原則的是

(A)模塊化

(B)逐步求精

(C)自頂向下

(D)可封裝

標準答案:D

40)、

軟件詳細設計產生的圖如下:

該圖是------

(A)PAD圖

(B)程序流程圖

(C)E-R圖

(D)N-S圖

標準答案:B

41)、軟件生命周期是指

(A)軟件的開發過程

(B)軟件產品從提出、實現、使用維護到停止使用退役的過程

(C)軟件的運行維護過程

(D)軟件從需求分析、設計、實現到測試完成的過程

標準答案:B

42)、下列敘述中正確的是

(A)棧與隊列都是非線性結構

(B)棧是一種先進先出的線性表

(C)隊列是一種后進先出的線性表

(D)以上三種說法都不對

標準答案:D

43)、面向對象方法中,繼承是指

(A)類之間共享屬性和操作的機制

(B)各對象之間的共同性質

(C)一個對象具有另一個對象的性質

(D)一組對象所具有的相似性質

標準答案:A

44)、數據庫設計中反映用戶對數據要求的模式是

(A)外模式

(B)內模式

(C)設計模式

(D)概念模式

標準答案:A

45)、層次型、網狀型和關系型數據庫劃分原則是

(A)聯系的復雜程度

(B)記錄長度

(C)數據之間的聯系方式

(D)文件的大小

標準答案:C

46)、在軟件開發中,需求分析階段產生的主要文檔是

(A)軟件需求規格說明書

(B)軟件集成測試計劃

(C)用戶手冊

(D)軟件詳細設計說明書

標準答案:A

47)、

(A)自然連接

(B)并

(C)交

(D)差

標準答案:D

48)、一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作

人員與實體計算機之間的聯系是

(A)一對多

(B)多對多

(C)多對一

(D)一對一

標準答案:B

49)、下列敘述中正確的是

(A)線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構

(B)線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構

(C)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的

標準答案:A

50)、軟件測試的目的是

(A)改正程序中的錯誤

(B)發現并改正程序中的錯誤

(C)評估軟件可靠性

(D)發現程序中的錯誤

標準答案:D

51)、下面描述中錯誤的是

(A)系統總體結構圖支持軟件系統的詳細設計

(B)軟件設計是將軟件需求轉換為軟件表示的過程

(C)數據結構與數據庫設計是軟件設計的任務之一

(D)PAD圖是軟件詳細設計的表示工具

標準答案:A

52)、軟件按功能可以分為應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于應

軟件的是

(A)學生成績管理系統

(B)UNIX操作系統

(C)數據庫管理系統

(D)C語言編譯程序

標準答案:A

53)、某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假沒根

結點

在第1層)

(A)3

(B)4

(C)7

(D)6

標準答案:C

54)、下列關于棧敘述正確的是

(A)棧頂元素最先能被刪除

(B)棧頂元素最后才能被刪除

(C)棧底元素永遠不能被刪除

標準答案:A

55)、結構化程序所要求的基本結構不包括

(A)重復(循環)結構

(B)GOTO跳轉

(C)順序結構

(D)選擇(分支)結構

標準答案:B

56)、下列敘述中正確的是

(A)在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態變化

(B)在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態變化

(C)在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態變化

標準答案:B

57)、負責數據庫中查詢操作的數據庫語言是

(A)數據控制語言

(B)數據管理語言

(C)數據操縱語言

(D)數據定義語言

標準答案:C

58)、下列敘述中正確的是

(A)只有一個根結點的數據結構不一定是線性結構

(B)有.一個以上根結點的數據結構不一定是非線性結構

(C)雙向鏈表是非線性結構

(D)循環鏈表是非線性結構

標準答案:A

59)、定義無符號整數類為UInt,下面可以作為類UInt實例化值的是

(A)整數集合{1,2,3,4,5}

(B)0.369

(C)369

(D)-369

標準答案:C

60)、

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

RST

ABC00

a12回

b21LZJ□JEJ□

c31

則由關系R和S得到關系T的操作是

(A)并

(B)自然連接

(C)差

(D)交

標準答案:C

61)、一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的

聯系是

(A)1:1聯系

(B)m:n聯系

(C)m:1聯系

(D)1:m聯系

標準答案:B

62)、下列敘述中正確的是

(A)設計算法時只需要考慮數據結構的設計

(B)設計算法時只需要考慮結果的可靠性

(C)算法就是程序

(D)以上三種說法都不對

標準答案:D

63)、

某系統總體結構圖如下圖所示:

該系統總體結構圖的深度是

(A)7

(B)2

(C)6

(D)3

標準答案:D

64)、軟件生命周期中的活動不包括

(A)軟件測試

(B)軟件維護

(C)需求分析

(D)市場調研

標準答案:D

65)、數據庫系統的三級模式不包括

(A)內模式

(B)數據模式

(C)外模式

(D)概念模式

標準答案:B

66)、下列關于二叉樹的敘述中,正確的是

(A)葉子結點總是比度為2的結點多一個

(B)葉子結點總是比度為2的結點少一個

(C)葉子結點數是度為2的結點數的兩倍

(D)度為2的結點數是度為1的結點數的兩倍

標準答案:A

67)、程序調試的任務是

(A)診斷和改正程序中的錯誤

(B)驗證程序的正確性

(C)發現程序中的錯誤

(D)設計測試用例

標準答案:A

68)、下列關于數據庫設計的敘述中,正確的是

(A)在概念設計階段建立數據字典

(B)在需求分析階段建立數據字典

(C)在物理設計階段建立數據字典

(D)在邏輯設計階段建立數據字典

標準答案:B

69)、下列關于線性鏈表的敘述中,正確的是

(A)各數據結點的存儲空間可以不連續,但它們的存儲順序與邏輯順序必須一致

(B)進行插入與刪除時,不需要移動表中的元素

(C)各數據結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續

標準答案:B

70)、在下列模式中,能夠給出數據庫物理存儲結構與物理存取方法的是

(A)外模式

(B)概念模式

(C)邏輯模式

(D)內模式

標準答案:D

71)、

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

RST

則由關系R和S得到關系T的操作是

(A)交

(B)投影

(C)自然連接

(D)并

標準答案:C

72)、下列選項中屬于面向對象設計方法主要特征的是

(A)自頂向下

(B)逐步求精

(C)模塊化

(D)繼承

標準答案:D

73)、一棵二叉樹共有25個結點,其中5個是葉子結點,則度為1的結點數為

(A)16

(B)6

(C)4

(D)10

標準答案:A

74)、下列敘述中正確的是

(A)循環隊列是隊列的一種鏈式存儲結構

(B)循環隊列是非線性結構

(C)循環隊列是一種邏輯結構

(D)循環隊列是隊列的一種順序存儲結構

標準答案:D

75)、在黑盒測試方法中,設計測試用例的主要根據是

(A)程序內部邏輯

(B)程序數據結構

(C)程序流程圖

(D)程序外部功能

標準答案:D

76)、

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

則由關系R和S得到關系T的操作是

(A)自然連接

(B)并

(C)除

(D)交

標準答案:C

77)、下面描述中,不屬于軟件危機表現的是

(A)軟件質量難以控制

(B)軟件開發生產率低

(C)軟件成本不斷提高

(D)軟件過程不規范

標準答案:I)

78)、在軟件設計中不使用的工具是

(A)程序流程圖

(B)數據流圖(DFD圖)

(C)系統結構圖

(D)PAD圖

標準答案:B

79)、在滿足實體完整性約束的條件下

(A)一個關系中只能有一個候選關鍵字

(B)一個關系中可以沒有候選關鍵字

(C)一個關系中應該有一個或多個候選關鍵字

(D)一個關系中必須有多個候選關鍵字

標準答案:C

80)、下面不屬于需求分析階段任務的是

(A)需求規格說明書評審

(B)確定軟件系統的功能需求

(C)制定軟件集成測試計劃

(D)確定軟件系統的性能需求

標準答窠:C

第二部分二級C語言單項選擇題(30分)

1)、以下選項中,能用作數據常量的是

(A)0115

(B)0118

(C)115L

(D)1.5el.5

標準答案:C

2)、下列敘述中錯誤的是

(A)一個C語言程序只能實現一種算法

(B)一個C函數可以單獨作為一個C程序文件存在

(C)C程序可以由一個或多個函數組成

(D)C程序可以由多個程序文件組成

標準答案:A

3)、

若有代數式|(其中。僅代表自然對數的底數,不是變量),則以下能夠正確表示

該代數式的C語言表達式是

(A)sqrt(fabs(pow(x,n)+exp(x)))

(B)sqrt(abs(n"x+e-x))

(C)sqrt(fabs(pow(n,x)+pow(x,e)))

(D)sqrt(fabs(pow(n,x)+exp(x)))

標準答案:D

4)、設變量已正確定義并賦值,以下正確的表達式是

(A)int(15.8%5)

(B)x=y+z+5,++y

(C)x=25%5.0

(D)x=y*5=x+z

標準答案:B

5)、以下敘述中錯誤的是

(A)C語言中的每條可執行語句和非執行語句最終都將被轉換成二進制的機器指令

(B)C語言源程序經編譯后生成后綴為.obj的目標程序

(C)用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中

(D)C程序經過編譯、連接步驟之后才能形成一個真正可執行的二進制機器指令交件

標準答案:A

6)、有以下程序

^include<stdio.h>

main()

{ints,t,A=10;doubleB=6;

s=sizeof(A);t=sizeof(B);

printf(〃%d,%d\n",s,t);

)

在VC6平臺上編譯運行,程序運行后的輸出結果是

(A)4,8

(B)10,6

(C)2,4

(D)4,4

標準答案:A

7)、按照C語言規定的用戶標識符命名規則,不能出現在標識符中的是

(A)大寫字母

(B)下劃線

(C)數字字符

(D)連接符

標準答案:I)

8)、以下選項中,合法的一組C語言數值常量是

(A)0x8A10,0003.e5

(B).1774el.5Ocibc

(C)028.5e-3-Oxf

(D)12.0Xa234.5e0

標準答案:D

9)、以下選項中不合法的標識符是

(A)print

(B)FOR

(C)&&a

(D)00

標準答案:C

10)、若有定義:doublea=22;inti=0,k=18則不符合C語言規定的賦值語句是

(A)i=(a+k)<=(i+k);

(B)a=a++,i++;

(C)i=a%ll;

(D)i=!a;

標準答案:C

11)、設有定義:intx=2;,以下表達式中,值不為6的是

(A)x*=(l+x)

(B)x*=x+l

(C)x++,2*x

(D)2*x,x+=2

標準答案:D

12)、有以下程序

^include<stdio.h>

main()

{intx,y,z;

x=y=l;

z=x++,y++,++y;

printf("%d,%d,%d\n*?x,y,z);

)

程序運行后的輸出結果是

(A)2,3,3

(B)2,2,1

(C)2,3,2

(D)2,3,1

標準答案:D

13)、以下敘述中錯誤的是

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

(B)C語言是一種結構化程序設計語言

(C)結構化程序由順序、分支、循環三種基本結構組成

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

標準答案:A

14)、以下選項中,能用作用戶標識符的是

(A)8_8

(B)unsigned

(C)0

(D)void

標準答案:C

15)、C源程序中不能表示的數制是

(A)二進制

(B)十六進制

(C)十進制

(D)八進制

標準答案:A

16)、以下四個程序中,完全正確的是

(A)ttinclude<stdio.h>

main();

{/*/programming/*/

printf("programming!\n");)

(B)^include<stdio.h>

main()

{/*programming*;

printf(^programming!\n,z);)

(C)ttinclude<stdio.h>

main()

{/*/*programming*/*/

printf(""programming!\n,z);)

(D)include<stdio.h>

mainO

{/*programming*/

printf(""programming!\nw);)

標準答案:B

17)、有以下程序

#include<stdio.h>

main()

{inta=l,b=0;

printf("%d,",b=a+b);

printf(,,%d\n/,,a=2*b);

)

程序運行后的輸出結果是

(A)1,0

(B)0,0

(C)1,2

(D)3,2

標準答案:C

18)、有以下程序

#include<stdio.h>

mainO

{chara,b,c,d;

scanf("枇枇“,&&a,&&b);

c=getchar();d=getchar();

printfC%c%c%c%c\n",a,b,c,d);

)

當執行程序時,按下列方式輸入數據(從第1列開始,<CR>代表回車,注意:回車也是

一個字符)

12<CR>

34<CR>

則輸出結果是

(A)12

(B)12

3

(C)12

34

(D)1234

標準答案:B

19)、若有定義語句:intx=10;,則表達式x—=x+x的值為

(A)0

(B)10

(C)-20

(D)-10

標準答案:I)

20)、有以下程序

#include<stdio.h>

mainO

{intx=l,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;bretik;

case1:b++;break;

}

case2:a+丁;b++;break;

case3:a+-;b++;

)

printf(/za=%d,b=%d\n",a,b);

)

程序的運行結果是

(A)a=2,b=2

(B)a=l,b=l

(C)a=l,b=0

(D)a=2,b=l

標準答案:D

21)、以下關于邏輯運算符兩側運算對象的敘述中正確的是

(A)可以是結構體類型的數據

(B)只能是整數0或1

(C)可以是任意合法的表達式

(D)只能是整數0或非0整數

標準答案:C

22)、有以下程序

#include<stdio.h>

main()

{inta=0,b=0,c=0,d=0;

if(a=l)b=l;c=2;

elsed=3;

,,

printf(〃%d,%d,%d,%d\n,a,b,c,d);

)

程序輸出

(A)1,1,2,0

(B)0,0,0,3

(C)0,1,2,0

(D)編譯有錯

標準答案:D

23)、以下程序段中的變量已正確定義

for(i=0;i<4;i++,i++)

for(k=l;k<3;k++);printf(,/*,/);

程序段的輸出結果是

(A)水水木木水木**

(B)**

(C)****

(D)*

標準答案:D

24)、有以下程序

^include<stdio.h>

main()

{intx=l,y=0;

if(!x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

printf(*%d\n*,y);

)

程序運行后的輸出結果是

(A)0

(B)3

(C)1

(D)2

標準答案:A

25)、有以下程序段

#include<stdio.h>

inti,n;

for(i=0;i<8;i++)

{n=rand()%5;

switch(n)

{case1:

case3:printf(^%d\n”,n);break;

case2:

case4:printf(飛d\n”,n);continue;

case0:exit(0);

)

printf(*%d\n”,n);

)

以下關于程序段執行情況的敘述,正確的是

(A)當產生的隨機數n為0時結束程序運行

(B)當產生的隨機數n為4時結束循環操作

(C)for循環語句固定執行8次

(D)當產生的隨機數n為1和2時不做任何操作

標準答案:A

26)、有以下程序

#include<stdio.h>

main()

{charcl,c2;

cl=A'+'8'「4':

c2='A'+'8'」5';

printf(*%c,%d\n*?cl,c2);

)

己知字母A的ASCII碼為65,程序運行后的輸出結果是

(A)輸出無定值

(B)E,D

(C)D,69

(D)E,68

標準答案:D

27)、若有定義intx,y;并已正確給變量賦值,則以下選項中與表達式(x-y)?(x++):

(y++)中的條件表達式(x-y)等價的是

(A)(x-y<0)

(B)(x-y==0)

(C)(x-y>0)

(D)(x-y<0||x-y>0)

標準答案:D

28)、若有定義:floatx=l.5;inta=l,b=3,c=2;則正確的switch語句是

(A)

switch(a+b)

{case1:printf(〃*\n〃);

casec:printf;)

(B)

switch(a+b)

{case1:printf(〃*\n");

case2+1:printf("**\n");}

(C)

switch(x)

{case1.0:printf(〃*\n");

case2.0:printf("**\n");)

(D)

switch((int)x);

{case1:printf(〃*\n〃);

case2:printfC**\n");)

標準答案:B

29)、有以下程序

#include<stdio.h>

main()

{inty=9;

for(;y>0;y-)

if(y%3-0)printf-y);

)

程序的運行結果是

(A)741

(B)963

(C)875421

(D)852

標準答案:D

30)、下列敘述中正確的是

(A)在switch語句中必須使用default

(B)在switch語句中,不一定使用break語句

(C)break語句只能用于switch語句

(D)break語句必須與switch語句中的case配對使用

標準答案:B

31)、有以下程序

#include<stdio.h>

main()

{inti,j,m=l;

for(i=l;i<3;i++)

{for(j=3;j>0;j—)

{if(i*j>3)break;

m*=i*j;

}

)

printf(,,m=%d\n/\m);

}

程序運行后的輸出結果是

(A)m=4

(B)m=6

(C)m=5

(D)m=2

標準答案:B

32)、有以下程序

^include<stdio.h>

main()

{intal,a2;charcl,c2;

scanf(,,%d%c%d%c,/,&&cl,&&a2,&&c2);

printf("%d,%c,%d,%c”,al,cl,a2,c2);

)

若想通過鍵盤輸入,使得al的值為12,a2的值為34,cl的值為字符a,c2的值為字

符b,程序輸出結果是:12,a,34,b則正確的輸入格式是(以下口代表空格,〈CR〉代表

回車)

(A)12a34b<CR>

(B)12ua34ub<CR>

(C)12,a,34,b<CR>

(D)12uau34ub<CR>

標準答案:A

33)、若變量已正確定義,在if(W)printf(線d\n〃,k);中,以下不可替代川的是

(A)a<>b+c

(B)a++

(C)a==b+c

(D)ch=getchar0

標準答案:A

34)、有以下程序段

#include<stdio.h>

inta,b,c;

a=10;b=50;c=30;

if(a>b)a=b,b二c;c二a;

printf(z,a=%db=%dc=%d\n〃,a,b,c);

程序的輸出結果是

(A)a=10b=30c=10

(B)a=50b=30c=50

(C)a=10b=50c=30

(D)a=10b=50c=10

標準答案:D

35)、有以下程序

#include<stdio.h>

mainO

{intc=0,k;

for(k=l;k<3;k-+)

switch(k)

{default:c+=k;

case2:c+-;break;

case4:c+=2;break;

)

printfc);

)

程序運行后的輸出結果是

(A)5

(B)9

(C)7

(D)3

標準答案:D

36)、設已有定義:floatx;,則以下對指針變量p進行定義且賦初值的語句中正確的

(A)float*p=1024;

(B)floatp=&&x;

(C)int*p=(float)x;

(D)float*p=&&x;

標準答案:D

37)、有以下程序

#include<stdio.h>

intf(intx);

main()

{intn=1,m;

m=f(f(f(n)));printfC%d\n/,,m);

}

intf(intx)

{returnx*2;}

程序運行后的輸出結果是

(A)8

(B)2

(C)1

(D)4

標準答案:A

38)、以下數組定義中錯誤的是

(A)intx[][3]={0};

(B)intx[2][3]={1,2,3,4,5,6};

(C)intx□⑶={{1,2,3},{4,5,6}};

(D)intx[2][3]={{L2),{3,4},{5,6}};

標準答案:D

39)、以下不構成無限循環的語句或語句組是

(A)n=0;

while(1){n++;}

(B)for(n=0,i=l;;i++)n+=i;

(C)n=0;

do{++n;}whi1e(n<=0);

(D)n=10;

while(n);(n-;)

標準答案:C

40)、以下敘述中錯誤的是

(A)函數可以返回地址值

(B)可以給指針變量賦一個整數作為地址值

(C)當在程序的開頭包含頭文件sldio.h時、可以給指針變量賦NULL

(D)改變函數形參的值,不會改變對應實參的值

標準答案:B

41)、下列定義數組的語句中,正確的是

(A)#defineN10

intx[N];

(B)intx[0..10];

(C)intN=10;

intx[N];

(D)intx[];

標準答案:A

42)、有以下程序

#include<stdio.h>

^defineN4

voidfun(inta[][N],intb[])

{inti;

for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-l-i];

)

main()

{intx[N][N]={(1,2,3,4},{5,6,7,8},{9}10,11,12},{13,14,15,16}},

y[N],i;

fun(x,y);

for(i=0;i<N;i++)printf(〃%d,〃,y[il);printf(〃\n");

}

程序運行后的輸出結果是

(A)-3,~1,1,3,

(B)-3,-3,-3,-3,

(C)-12,-3,0,0,

(D)0,1,2,3,

標準答案:A

43)、有以下程序

^include<stdio.h>

voidfun(inta[],intn)

{inti,t;

for(i=0;i<n/2:i++){t=a[i];a[i]=a[n-l-i];a[n-l-i]=t;}

)

main()

{intk[10]={1,2,3,4,5,6,7,8,9,10},i;

fun(k,5);

for(i=2;i<8;i++)printfC%d,z,k[i]);

printfC\n");

}

程序的運行結果是

(A)876543

(B)321678

(C)345678

(D)1098765

標準答案:B

44)、有以下程序

^include<stdio.h>

intfun(intx,inty)

{if(x!=y)return((x+y)/2);

elsereturn(x);

)

main()

{inta=4,b=5,c=6;

printf("%d\n”,fun(2*a,fun(b,c)));

)

程序運行后的輸出結果是

(A)6

(B)8

(C)3

(D)12

標準答案:A

45)、有以下程序

4include<stdio.h>

mainO

{intn,*p=NULL;

*p=&&n;

printf(z,lnputn:");scanf("%d”,&&p);printf(^outputn:");

printf("%d\n”,p);

)

該程序試圖通過指針p為變量n讀入數據并輸出,但程序有多處錯誤,以下語句正確的

(A)printf(,,%d\nz,,p);

(B)scanf(飛d”,&&p)

(C)*p=&&n;

(D)intn,*p=NULL;

標準答案:D

46)、有以下程序

#include<stdio.h>

intadd(inta,intb){return(a+b);}

mainO

{intk,(*f)(),a=5,b=10;

f二add;

???

)

則以下函數調用語句錯誤的是

(A)k=(*f)(a,b);

(B)k=f(a,b);

(C)k=add(a,b);

(D)k=*f(a,b);

標準答案:D

47)、有以下程序

#include<stdio.h>

main0

{inta[]={2,3,5,4},i;

for(i=0;i<4;i+-)

switch(i%2)

{case0:switch(a[i]%2)

{case0:a[i]++;break;

case1:a[i]一;

}break;

case1:a[i]=O;

)

for(i=0;i<4;i++)printfC*%dprintf(*\n*);

}

程序運行后的輸出結果是

(A)2050

(B)0304

(03344

(D)3040

標準答案:D

48)、有以下程序

#include<stdio.h>

main()

{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=l;

for(i=0;i<3;i++)

for(j=i;j<=i:j++)t+=b[i][b[j][i]];

printfr);

)

程序運行后的輸出結果是

(A)3

(B)1

(C)9

(D)4

標準答案:D

49)、若有定義語句:doublea,*p=&&a;以下敘述中錯誤的是

(A)定義語句中的*號是一個說明符

(B)定義語句中的*號是一個間址運算符

(C)定義語句中,*p二/a把變量a的地址作為初值賦給指針變量p

(D)定義語句中的p只能存放double類型變量的地址

標準答案:B

50)、有以下程序

#include<stdio.h>

intf(intx,inty)

{return((y-x)*x);}

main()

{inta=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

printf("%d\n”,d;;

)

程序運行后的輸出結果是

(A)7

(B)8

(C)10

(D)9

標準答案:D

51)、有以下程序

#include<stdio.h>

main()

{intx[3][2]={O),i;

for(i=0;i<3;i?+)scanf("%d〃,x[i]);

printf(*%3d%3d%3d\n*?x[0][0],x[0][1],x[l'[0]);

)

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

(A)246

(B)240

(0200

(D)204

標準答案:D

52)、設有定義:charp[]={'1','2,'3'},*q=p;,以下不能計算出一個char型數

據所占字節數的表達式是

(A)sizeof(p)

(B)sizeof(*q)

(C)sizeof(p[0])

(D)sizeof(char)

標準答案:A

53)、有以下程序

^include<stdio.h>

voidfun(inta,intb)

{intt;

t=a;a=b;b=t;

)

main()

{intc[10]={l,2,3,4,5,6,7,8,9,0},i;

for(i=0;i<10:i+=2)fun(cLiJ,c[i+lJ);

for(i=0;i<10;i++)printf(級d,",c[i]);

printf(〃\n〃);

}

程序的運行結果是

(A)2,1,4,3,6,5,8,7,D,9,

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

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

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

標準答案:B

54)、設有定義:chars[81];inti=0;,以下不能將一行(不超過80個字符)帶

有空格的字符串正確讀入的語句或語句組是

(A)scanfs);

(B)do{scanfMs[i]);}while(s[i++]!=,\n);s[i]=>\0J;

(C)gets(s);

(D)while((s[i++]=getchar())!=,\n);s[i]='\0';

標準答案:A

55)、以下定義數組的語句中錯誤的是

(A)intnum[][4]={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});

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

標準答案:C

56)、若有定義語句:doublex,y,*px,*py;執行了px=&&x;py=&&y;之后,正確的輸

入語句是

(A)scanf("%lf%lf”,x,y);

(B)scanfx.y);

(C)scanf("%f%f〃&&x,&&y);

(D)scanf("%lf%le”,px,py);

標準答案:D

57)、以下不能將s所指字符串正確復制到t所指存儲空間的是

(A)while(*t=*s){t++;s++;}

(B)for(i=0,j=0;t[i+4-]=s[j++];);

(C)for(i=0;t[i]=s[i];i++);

(D)do{*t++=*s++;}while(*s);

標準答案:D

58)、以下語句中存布語法錯誤的是

(A)charss[][20]={*right?*);

(B)char*ss[]={"right?”};

(C)char*ss[6j;ssLlJ="right?”;

(D)charss[6][20];ss[l]="righl?〃;

標準答案:D

59)、有以下程序

#include<stdio.h>

main()

{chars[]=,,012xy\08s34f4w2z,;

inti,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>='O'&&&&s[i]<='9')n++;

printf(〃%d\n”,n);

}

程序運行后的輸出結果是

(A)8

(B)0

(C)3

(D)7

標準答案:C

60)、有以下程序

^include<stdio.h>

#include<string.h>

main()

{charstr[][20]={,,0ne*World,",''One*Dream!"},*p=str[l];

printf(〃%d,”,strlcn(p));printf("%s\n",p);

)

程序運行后的輸出結果是

(A)10,One*World

(B)9,0ne*Dream!

(C)9,One*World

(D)10,One*Dream!

標準答案:D

61)、在C語言中,只有在使用時才占用內存單元的變量,其存儲類型是

(A)auto和static

(B)extern和register

(C)auto和register

(D)static和register

標準答案:C

62)、有以下程序

^include<stdio.h>

fun(intx,inty)

{staticintm=0,i=2;

i+=m+1;m=i+x+y;returnm;

)

mainO

{intj=l,m=l,k;

k=fun(j,m);printf(“%d,”,k);

k=fun(j,m);printf("%d\n',k);

)

執行后的輸出結果是

(A)11,11

(B)11,5

(C)5,5

(D)5,11

標準答案:D

63)、下列語句組中,正確的是

(A)chars[7];s={"Olympic"};

(B)char*s;s=“Olympic”;

(C)char*s;s={"Olympic"};

(D)chars[7];s="Olympic”;

標準答案:B

64)、在一個C源程序文件中所定義的全局變量,其作用域為

(A)所在函數的全部范圍

(B)由具體定義位置和extern說明來決定范圍

(C)所在程序的全部范圍

(D)所在文件的全部范圍

標準答案:B

65)、有以下函數

intfun(char*x,char*y)

{intn=0;

while((*x==*y)&&&&*x!='\0'){x++;y++;n++;}

returnn;

)

函數的功能是

(A)將y所指字符串賦給x所指存儲空間

(B)查找x和y所指字符串中是否有‘\0'

(C)統計x和y所指字符串中相同的字符個數

(D)統計x和y所指字符串中最前面連續相同的字符個數

標準答案:D

66)、有以下程序段

#include<stdio.h>

intj;floaty;charnameL50J;

scanf(“為2d%f%s”,&&j,&&y,name);

當執行上述程序段,從鍵盤上輸入555667777abc后,y的值為

(A)7777.0

(B)55566.0

(C)566777.0

(D)566.0

標準答案:D

67)、有以下程序

#include<stdio.h>

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main()

{char*sl="abc〃,*s2="123〃;

,,,,

swap(si,s2);printf(%s,%s\n,si,s2);

)

程序執行后的輸出結果是

(A)lbc,a23

(B)abc,123

(C)321,cba

(D)123,abc

標準答案:A

68)、有以下程序

#include<stdio.h>

intfun()

{staticintx=l;

x*=2;

returnx;

)

main()

{inti,s=l;

for(1=1;i<=3:i++)s*=fun();

printf("%d\n',s);

)

程序運行后的輸出結果是

(A)0

(B)30

(C)64

(D)10

標準答案:B

69)、有以下程序

#include<stdio.h>

intf(intn);

main()

{inta=3,s;

s=f(a);s=s+f(a;;printf(〃/d\n〃,s);

)

intf(intn)

{staticinta=l;

n+=a++;

returnn;

}

程序運行后的輸出結果是

(A)8

(B)9

(C)10

(D)7

標準答案:B

70)、有以下程序

#include<stdio.h>

typedefstruct{intb,p;}A;

voidf(Ac)/*注意:c是結構變量名*/

{intj;

c.b+=1;c.p+=2;

)

main()

{inti;

Aa={l,2};

f(a);

printfC^d,%d\n*,a.b,a.p);

)

程序運行后的輸出結果是

(A)1,2

(B)2,4

(C)2,3

(D)1,4

標準答案:A

71)、有以下程序(注:字符a的ASCH碼值為97)

4include<stdio.h>

main()

{char*s={〃abc〃};

do

{printf*s%10);++s;}

whi1e(*s);

}

程序運行后的輸出結果是

(A)789

(B)7890

(C)979899

(D)abc

標準答案:A

72)、有以下函數

intfun(char*s)

{char*t=s;

while(*t++);

return(t-s);

)

該函數的功能是

(A)將s所指字符串復制到字符串t中

(B)計算s所指字符串占用內存字節的個數

(C)計算s所指字符串的長度

(D)比較兩個字符串的大小

標準答案:B

73)、設有如下函數定義

#include<stdio.h>

intfun(intk;

{if(k<l)return0;

elseif(k==l;return1;

elsereturnfun(k-l)+l;

)

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

(A)3

(B)2

(C)4

(D)5

標準答案:A

74)、下面結構體的定義語句中,錯誤的是

(A)structord(intx;inty;intz;}structorda;

(B)structord{intx;inty;intz;}a;

(C)structord{intx;inty;intz;};structorda;

(D)struct{intx;inty;intz;}a;

標準答案:A

75)、以下敘述中錯誤的是

(A)用typedcf可以為各種類型起別名,但不能為變量起別名

(B)用lypedef定義新的類型名后,原有類型名仍有效

(C)可以通過typedef增加新的類型

(D)可以用typedef將已存在的類型用一個新的名字來代表

標準答案:C

76)、以下敘述中正確的是

(A)C語言的預處理不能實現宏定義和條件編譯的功能

(B)在C語言中,預處理命令行都以〃#〃開頭

(C)預處理命令行必須位于C源程序的起始位置

(D)^include〈stdio.h〉必須放在C程序的開頭

標準答案:B

77)、有以下程序

#include<stdio.h>

main()

{unsignedchara=8,c;

c=a>>3;

,,,,

printf(%d\n,c);

)

程序運行后的輸出結果是

(A)1

(B)0

(C)32

(D)16

標準答案:A

78)、有以下程序

#include<stdio.h>

structS

{inta,b;}data[2]={10,100,20,200);

main()

{structSp=data[l];

printf(,z%d\nz,,++(p.a));

)

程序運行后的輸出結果是

(A)10

(B)21

(C)20

(D)11

標準答案:B

79)、有以下程序

#include<stdio.h>

#include<stdlib.h>

intfun(intn)

{int*p;

p=(int*)malloc(sizeof(int));

*p=n;

溫馨提示

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

評論

0/150

提交評論