2016年全國計算機二級《C語言》押題及答案

  一、程序填空題

2016年全國計算機二級《C語言》押題及答案

給定程序中。函數fun的功能是:在任意給定的9個正整數中找出按升序排列時處於中間的數,將原數據序列中比該中間數小的數用該中間數替換,位置不變,在主函數中輸出處理後的數據序列,並將中間數作爲函數值返回。

例如,有9個正整數:1 5 7 23 87 5 8 21 45

按升序排列時的中間數爲:8  處理後主函數中輸出的數列爲:8 8 8 23 87 8 821 45

請在程序的下畫線處填入正確的內容並把下畫線刪除,使程序得出正確的結果。

注意:源程序存放在考生文件夾下的BLANKl.C中。不得增行或刪行,也不得更改程序的結構!

試題程序:

  二、程序修改題

給定程序MODll.C中,fun函數的功能是:刪除b所指數組中小於10的數據。主函數中輸出刪除後數組中餘下的數據。

請改正函數flm中指定部位的錯誤,使它能得出正確的結果。

注意:不要改動main函數,不得增行或刪行.也不得更改程序的結構!

  三、程序設計題

請編寫函數fun,其功能是:統計s所指字符串中的數字字符個數,並作爲函數值返回。

  參考答案

  一、程序填空題

【參考答案】

(1)b[k](2)4或N/2(3)<

【解題思路】

數組中的9個數任意排列,要找到按升序排列時處於中間位置的數,應首先對數組進行升序排列。因爲只需找到中間位置的`數即可,故不必對整個數組進行排序,只需要排列出數組的前半部分。找到中間數後,遍歷原數組,將小於中間數的元素進行替換。

填空1:利用選擇算法排序,先指定一個元素爲最小,用這個數與其後的所有數進行比較,若找小於此數,則進行替換。此處考查替換操作。

填空2:元素mid存放中間位置的數,數組長度爲9,因此中間元素數爲b[4]。

填空3:遍歷數組,當元素小於中間位置的數(即mid)時,進行替換。

  二、程序修改題

【解題思路】

要刪除數組b中小於10的數,應依次取出數組數組b中的元素與10進行比較,若不小於10,則將其存入數組t中,遍歷完成後,數組t中的元素即爲所求,再將數組t中的元素保存到數組b中即可。

(1)元素hum存放不小於10的元素的個數,應將其初始化爲0。

(2)將數組b中不小於10的元素存人數組t中,同時使數組t的下標加1。

(3)語法錯誤,沒有nun這個變量,應該爲num。

  三、程序設計題

【解題思路】

要統計字符串中數字字符的個數,首先應定義變量n,並初始化爲0,然後遍歷字符串,逐個判斷字符是否爲數字字符,判斷條件爲該元素的ASCII碼在字符0和9的ASCII碼之間,若判斷條件成立,則使n的值加1,否則,繼續判斷下一個字符,直到字符串結束。