糯米文學吧

位置:首頁 > 計算機 > 計算機二級

2017年9月計算機二級C語言程序設計習題及答案

2017年計算機二級考試馬上就要開始了,你準備好了嗎?下面是小編為大家帶來的計算機二級C語言程序設計習題,歡迎閲讀。

2017年9月計算機二級C語言程序設計習題及答案

  習題一:

1[單選題] 設有定義:int x,Y,z;,且各變量已賦正整數值,則以下能正確表示代數式‘

C語言表達式是( )。

A.…1.…0/x。/y,/zB.1/x * Y * zC.1/(x * Y * z)D.1/x/y/(double)z

參考答案:A

參考解析:代數表達式1/(X·Y·z)是小數,轉為cf語言的表達式必須是小數。A選項由於l.0為浮點數,計算結1果自動轉換為浮點數,故A選項正確。選項B,C,D的表達式均為0。答案為A選項。

2[單選題] 以下敍述中正確的是(  )

A.用户自己定義的函數只能調用庫函數

B.實用的C語言源程序總是由一個或多個函數組成

C.不同函數的形式參數不能使用相同名稱的標識符

D.在C語言的函數內部,可以定義局部嵌套函數

參考答案:B

參考解析:A選項中,”用户自己定義的函數只能調用庫函數”描述是不正確的,也可以調用自定義函數;C選項中,對於不同函數的形式參數可以使用相同名稱的標識符;D選項中,關於函數的定義不可以嵌套,但函數的調用可以嵌套。因此B選項正確。

3[單選題] 以下關於C語言數據類型使用的敍述中錯誤的是( )。

A.若要處理如“人員信息”等含有不同類型的相關數據,應自定義結構體類型

B.若要保存帶有多位小數的數據,可使用雙精度類型

C.若只處理“真”和“假”兩種邏輯值,應使用邏輯類型

D.整數類型表示的自然數是準確無誤差的

參考答案:C

參考解析:C語言中沒有邏輯類型,所以c錯誤。若要保存帶有多位小數的數據,可以用單精度類型也可以用雙精度類型。處理包含不同類型的相關數據可以定義為結構體類型。整數類型可以無誤差的表示自然數。

4[單選題] 下面選項中關於編譯預處理的敍述正確的是

A.預處理命令行必須使用分號結尾

B.凡是以#號開頭的行,都被稱為編譯預處理命令行

C.預處理命令行不能出現在程序的最後一行

D.預處理命令行的作用域是到最近的函數結束處

參考答案:B

參考解析:本題考查預編譯的預編譯處理命令行,預處理命令行不能以分號結尾,所以A選項錯誤,預處理命令行可以出現在程序的最後一行,預處理命令行作用域是整個文件。

5[單選題] 有以下程序

2016年計算機二級《C語言》基礎練習題及答案(10)

程序的輸出結果是

A.0B.1C.9D.10

參考答案:B

參考解析:本題考查宏定義,宏定義只是做個簡單的替換。執行SQR(k+m)/SQR(k+m)=k+m*k+m/k+m}k+m=15/2,a/=SQR(k+m)/SQR(k+1TI)的結果為1,選項B正確。

6[單選題] 設--X樹共有150個結點,其中度為l的結點有l0個,則該---X樹中的葉子結點數為( )。

A.71B.70C.69D.不可能有這樣的二叉樹

參考答案:D

參考解析:在樹結構中,一個結點所擁有的後件個數稱為該結點的度,所有結點中最大的度稱為樹的度。對任何一棵二叉樹,度為0的結點總是比度為2的結點多一個。如果有一棵二叉樹,結點總數為l50,假設度為0的結點個數為n,則有n+10+n一1=150,n=70.5,由於結點個數必須是整數,所以不可能有題目中這樣的二叉樹。故選擇D選項。

7[單選題] 有以下程序:

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

A.2.3B.1,3C.1,4D.1,2

參考答案:B

參考解析:在f(int+P,int 4 q)函數中,執行P=P+1是將P所對應的地址加1,而0 q=+q+1是將q所指向的n的地址所對應的值加1,所以m的得知所對應的值沒有變,而n的值則為3了。因此B選項正確。

8[單選題] 以下選項中,能用作用户標識符的是( )。

A.-0-B.8-;gned

參考答案:A

參考解析:C語言中標識符由字母、下劃線、數字組成,且開頭必須是字母或下劃線。另外,關鍵字不能作為標識符。8中以數字8開頭,所以錯誤。c與D中用的是關鍵字void與unsigned,所以錯誤。

9[單選題] 以下敍述正確的是( )。

A.表達式sizeof(FILE*)==sizeof(int*)的值為真

B.文件指針的值是一個整數,它的值一定小於文件字節數

C.文件指針的值是所指文件的當前讀取位置

D.使用fscanf函數可以向任意類型的文件中寫入任意數量的字符

參考答案:A

參考解析:

slzeof(FILE})=4,因為file·為指針,指針的大小4,sizeof(int·)=4,理由同前面。文件指針的值是地址,是一個16進制的數,它的值不一定小於文件字節數,因此選項8錯誤。文件指針是所指文件的當前讀取位置,而不是文件指針的值因此選項C錯誤。mgscanf(FILE-stream,constchar}format,[argument…]fmanf函數可以向任意類型的文件,寫入任意數量不能超過系統的緩衝區,寫文件先寫入緩衝區,最後一起寫入文件,因此選項D錯誤。答案為A選項。

10[簡答題]下列給定程序中函數fun的功能是:將tt所指字符串中的小寫字母全部改為對應的大寫字母,其他字符不變。

例如,若輸入“Ab,cD”,則輸出“AB,CD”。

請改正程序中的錯誤,使它能得出正確的結果。

注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結構!

  習題二:

1[單選題] 有以下程序:

2016年計算機二級《C語言》基礎練習題及答案(11)

以上程序執行後文件的內容是( )。

a

ang

aBeijing

ingChina

參考答案:B

參考解析:本題考查文件操作函數,fwrite和rewind函數,題目中先是將s2字符串寫入中,然後將寫指針回到文件開頭,然後寫入sl字符串,那麼sl字符串就將前5個字符覆蓋,所以最終結果為Chinan9,選項B正確。

2[單選題] 如果定義

float a[10],x;

則以下敍述中正確的是

A.語句a=&x;是非法的B.表達式a+1是非法的C.三個表達式a[1]、*(a+1)、*&a[1]表示的意思完全不同D.表達式,&a[1]是非法的,應該寫成+(&(a[1]))

參考答案:A

參考解析:B選項中,表達式a+1不是非法的;C選項中,*(a+1)即指a[1];D選項中,*&a[1]不是非法的。因此A選項正確。

3[單選題] 有以下程序(strcpy為字符串複製函數,streat為字符串連接函數)

2016年計算機二級《C語言》基礎練習題及答案(11)

程序運行後的.輸出結果是

2yzC.a2yzD.12yz

參考答案:C

參考解析:本題考查字符串處理函數strcpy和streat,執行完strcpy(a+1,b+2);後,a變為a2,執行完strcat(a,c+1)後,a變為a2yz,所以答案為C選項。第3題 筆記記錄我的筆記(0) | 精選筆記(3)選擇筆記標籤:試題內容(2)答案解析(1)

4[單選題] 以下敍述中正確的是(  )

A.'