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

  一、程序填空題

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

下列給定程序中,函數fun的功能是:將s所指字符串中的所有數字字符移到所有非數字字符之後,並保持數字字符串和非數字字符串原有的次序。例如,s所指的字符串爲“def35adh3kjsdi7”,執行後結果爲“defadhajsdf3537”。請在程序的下劃線處填人正確的內容並將下劃線刪除,使程序得出正確的結果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結構!

  二、程序修改題

下列給定程序中函數fun的功能是:將tt所指字符串中的小寫字母全部改爲對應的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請改正程序中的'錯誤,使它能得出正確的結果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改程序的結構!

  三、程序設計題

編寫函數fun,其功能是:求ss所指字符串中指定字符的個數,並返回此值。例如,若輸入字符串123412132,輸入字符爲1,則輸出3。注意:部分源程序在文件PROG1.C中。請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。

  參考答案

  一、程序填空題

考點分析】

本題考查:指針型變量;數組變量賦值循環語句。

【解題思路】

填空1:根據函數fun中的內容可知,數組t1存儲了s中的非數字字符,數組t2存儲了s中的數字字符,爲了存儲下一個數字字符,下標j要進行加1操作。

填空2:將s串中的數字與非數字字符分開後,要先將非數字字符放入字符串s中,因此填人s[i]=t1[i]。

填空3:最後將數字字符加到s串之後,並且i要小於數字的個數j。

  二、程序修改題

【考點分析】

本題考查:if語句條件表達式;小寫字母轉大寫字母的方法。

【解題思路】

(1)分析本題可知,要判斷字符是否爲小寫字母,即判斷其是否在a~z之間,所以這裏需要進行連續的比較,用&&。

(2)從ASCII碼錶中可以看出,小寫字母的ASCII碼值比對應大寫字母的ASCII值大32。將字符串中的小寫字母改爲大寫字母的方法是:從字符串第一個字符開始,根據ASCII碼值判斷該字母是不是小寫字母,若是,則ASCII碼值減32即可。

  三、程序設計題

【參考答案】

【考點分析】

本題考查:for循環語句遍歷字符串,並通過if條件語句,判斷字符串是否結束。

【解題思路】

從字符串中查找指定字符,需要使用循環判斷結構,循環語句用來遍歷字符串,循環條件爲字符串沒有結束,即當前字符不是‘O’,判斷語句用來判斷當前字符是否爲指定字符。最後返回指定字符的個數。