2016年計算機二級《C語言》非選擇題練習

  一、程序填空題

2016年計算機二級《C語言》非選擇題練習

下列給定程序中,函數fun的功能是:求ss所指字符串數組中長度最短的字符串所在的行下標,作爲函數值返回,並把其串長放在形參n所指的變量中。ss所指字符串數組中共有M個字符串,且串長小於N。請在程序的下劃線處填人正確的內容並將下劃線刪除,使程序得出正確的結果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結構!

  二、程序修改題

下列給定程序中函數fun的功能是:將p所指字符串中的所有字符複製到b中,要求每複製三個字符之後插入一個空格。例如,若給a輸入字符串:ABCDEFGKHJK,調用函數後,字符數組b中的內容爲:ABC DEF GHI JK。請改正程序中的錯誤,使它能得出正確的結果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改程序的結構。

  三、程序設計題

下列給定程序中函數fun的功能是:將p所指字符串中的所有字符複製到b中,要求每複製三個字符之後插入一個空格。例如,若給a輸入字符串:ABCDEFGKHJK,調用函數後,字符數組b中的內容爲:ABC DEF GHI JK。請改正程序中的錯誤,使它能得出正確的`結果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改程序的結構。


  【參考答案】

  程序填空題

(1)M

(2)<

(3)k

  【考點分析】

本題考查:for循環語句的循環條件;if語句條件表達式;return語句完成函數值的返回。

  【解題思路】

填空1:題目指出ss所指字符串數組中共有M個字符串,所以for循環語句循環條件是i

填空2:要求求長度最短的字符串,*n中存放的是已知字符串中長度最短的字符串的長度,這裏將當前字符串長度與*n比較,若小於*n,則將該長度值賦給*n,因此if語句的條件表達式爲len<*n。

填空3:將最短字符串的行下標作爲函數值返回,變量k儲存行下標的值。

  程序修改題

  【考點分析】

本題考查:指針類型變量作爲函數的參數,函數的參數不僅可以是整型、實型、字符型等數據類型,還可以是指針類型。它的作用是將一個變量的地址傳送到另一個函數中。

  【解題思路】

(1)題目中P是指針型變量作函數參數,因此繪b[k]賦值時出現錯誤。

(2)題目要求賦值3個字符後加一個空格,所以應該是先給b[k]賦值空格,然後變量k再加1。

  【解題寶典

C語言中爲了表示指針變量和它所指向的變量之間的關係,在程序中用“*”符號表示“指向”,例如,pointer代表指針變量.而*pointer是pointer所指向的變量。

  程序設計題

  【考點分析】

本題考查:結構體類型成員運算,指向結構體類型的指針變量作函數參數。