點(diǎn)擊查看:2015年計(jì)算機(jī)二級考試《C語言》提高練習(xí)題匯總
1[填空題]str為一個(gè)字符序列,序列由字符0和1組成。請補(bǔ)充函數(shù)proc(),該函數(shù)的功能是:查找該字符序列中0字符連續(xù)出現(xiàn)的最長長度(即0字符的個(gè)數(shù)),如果有幾個(gè)0字符串長度相同,只記錄最后一個(gè)0字符串的相關(guān)信息。通過m和k返回最長0字符串的長度和最后0字符的下標(biāo)。
例如,如果輸入“0100001000”,結(jié)果為:0字符串最長長度為4,起始和結(jié)尾下標(biāo)依次為2、5。
注意:部分源程序給出如下。
請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填入所編寫的若干表達(dá)式或語句。
試題程序:
參考解析:
【1】char*str,int*m,int*k 【2】bb[j]++【3】*m<一bb[j]
【解析】形參的個(gè)數(shù)和類型由調(diào)用該函數(shù)的實(shí)參的類型和個(gè)數(shù)決定,由main()函數(shù)中的proc()函數(shù)可知’【1】處填“char*str,int*m,int*k”;由函數(shù)proc()可知,數(shù)組bb中存放每一個(gè)連續(xù)的0字符串中0的個(gè)數(shù),因此【2】處填“bb[j]++”;最后把個(gè)數(shù)最多的放在變量*m中,下標(biāo)放在*k中,因此【3】處填“*m<=bb[j]”。
2[簡答題]規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)的*號之外,將串中其他+號全部刪除。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為“****A * BC * DEF*G*******”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“****ABCDEFG”!
參考解析:
【參考答案】
【考點(diǎn)分析】
本題考查:指針型變量定義;while循環(huán)語句;if語句條件 表達(dá)式;字符串結(jié)束標(biāo)識‘\0’。
【勰題思路】
函數(shù)fun的功能:除了字符串前導(dǎo)的*號之外,將串中其 他*號全部刪除。解答本題,首先定義一個(gè)臨時(shí)指針P,初始 指向原串首地址;其次利用循環(huán)語句把字符串前導(dǎo)*號復(fù)制 到原串;然后繼續(xù)移動(dòng)指針,把串中和串尾的非*號字符復(fù) 制到原串;最后為修改后的字符串賦結(jié)束字符‘\0’。
【解題寶典】
要?jiǎng)h除字符串中的指定字符,通常采用保留非指定字符 的方法?梢詫⒎侵付ㄗ址A粼谠磳⑿枰A舻淖 符從原串的起始位置重新賦值;也可以保留到新串,即新建 一個(gè)字符串,存放要保留的字符。
3[簡答題]下列給定程序中,函數(shù)proc()的功能是:輸出M行M列整數(shù)方陣,然后求兩條對角線上的各元素之和并將其返回。
請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
參考解析:
(1)錯(cuò)誤:int proc(int n,int xx[][])
正確:int proc(int n,int xx[][M])
(2)錯(cuò)誤:printf(″%4f″,xx[i][j]);
正確:printf(″%4d″,xx[i][j]);
【解析】從主函數(shù)中的調(diào)用語句可知,實(shí)參中的一個(gè)為二維數(shù)組,因此其形參類型也應(yīng)該一樣,而二維時(shí),其列下標(biāo)必須是常量,因此把“int proc(int n,int xx[][])”改為“intproe(int n,int xx[][M])”。從形參中可知xx數(shù)組是整型數(shù)組,因此其輸出的控制應(yīng)為整型,故把printf中的”%4f”改為″%4d″。
4[單選題] 若有定義“int a=5,b=7;”,則表達(dá)式a%=(b%2)運(yùn)算后,a的值為( )。
A.0B.1C.11 D.3
參考答案:A
參考解析:本題考查“%”運(yùn)算符的使用。運(yùn)算符“%”是整數(shù)除法的余數(shù)。本題中表達(dá)式a%=(b%2)等價(jià)于a=a%(b%2)=5%(7%2)=5%1=0。
5[單選題] 設(shè)有定義:int a=0,b=1;,以下表達(dá)式中,會(huì)產(chǎn)生“短路”現(xiàn)象,致使變量b的值不變的是
A.a++&&b++B.a++||++bC.++a&&b++D.+a ||++b
參考答案:A
參考解析:運(yùn)算符“++”放在變量前面時(shí),表示將變量+1,再參與其他操作,a++&&b++時(shí),由于a值是0直接判定與運(yùn)算結(jié)果為0,忽視b++的值。因此b值不發(fā)生改變,答案為A選項(xiàng)。
相關(guān)推薦:
2015計(jì)算機(jī)二級《C語言程序設(shè)計(jì)》無紙化操作題匯總
2015年9月計(jì)算機(jī)二級《Access》無紙化試卷匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |