1[填空題]下列給定程序中,函數fun的功能是:把形參a所指數組中的奇數按原順序依次存放到a[0]、a[1]、a[2]…中,把偶數從數組中刪除,奇數個數通過函數值返回。
例如,若a所指數組中的數據最初排列為:9,1,4,2,3,6,5,8,7,刪除偶數后,a所指數組中的數據為:9,1,3,5,7,返回值為5。
請在程序的下畫線處填入正確的內容并將下畫線刪除.使程序得出正確的結果。
注意:部分源程序給出如下。
不得增行或刪行,也不得更改程序的結構!
試題程序:
參考解析:
【參考答案】
(1)1 (2)J++ (3)J
【考點分析】
本題考查:if語句,條件表達式;自增、自減運算符;函數返回值。
【解題思路】
填空l:根據題目要求,需進行奇偶數的判定,可以通過if條件語句來判斷數組元素是否為奇數,如果元素不能被2整除,則為奇數,所以填入if(a[i]%2==1)。
填空2:將為奇數的元素重新存放到數組的前面,同時下標增1。
填空3:函數返回值需要返回數組中奇數的個數,因此返回變量J。
【解題寶典】 、
奇數和偶數的判定方法,對2求余運算,結果為0是偶數,結果為1是奇數。
自增l、自減1運算符:自增l運算符記為“++”,其功能是使變量的值自增1;自減1運算符記為“一一”,其功能是使變量值自減l。自增1、自減1運算符均為單目運算符,具有右結合性,有以下幾種形式:
++i:i自增l后再參與其他運算。
_-i:1’自減1后再參與其他運算。
i++:i參與運算后,i的值再自增1 0
i一一:i參與運算后,i的值再自減1。
2[簡答題]請編寫一個函數fun,它的功能是:將ss所指字符串中所有下標為奇數位置的字母轉換為大寫(若該位置上不是字母,則不轉換)。
例如,若輸入“aboaEf9”,則應輸出“aBe4EF9”。
注意:部分源程序在文件PROGl.C中。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
試題程序:
%參考解析:
【參考答案】
【解題思路】
該題要求將給定字符串中奇數位置的字母轉換為大寫,需要先判斷奇數位置以及此位置的字符是否是小寫字母,如果是再通過其轉換方法進行轉換。
從c語言的學習中知道,只要將小寫字母減去32即轉成大寫字母,將大寫字母加上32即轉成小寫字母。本程序用if語句實現轉換功能。
3[單選題]一個棧的初始狀態為空。現將元素1、2、3、4、5、A、B、c、D、E依次入棧,然后再依次出棧,則元素出棱的順序是( )。
A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
參考答案:B
參考解析:棧是先進后出的原則組織數據,所以人棧最早的最后出棧,所以選擇B。
4[單選題] 有以下程序
程序運行后的輸出結果是
A.#N#B.#F#C.MMMD.MO#
參考答案:A
參考解析:for語句中把array數組首地址值賦給ptr,ptr++表示每次執行完循環體后,ptr指向下一數組元素,當指針指向值為0時,輸出#,否則´M´再加上指針對應數組值進行輸出,當* ptr=1時,´M´+l=´N´,結果輸出為#N#,答案為A選項。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |