2017年計(jì)算機(jī)二級C語言考前必做試題及答案6

字號:


    二、程序填空題(共18分)
    下列給定程序中,函數(shù)fun的功能是:從形參ss所指字符串?dāng)?shù)組中,刪除所有串長超過k的字符串,函數(shù)返回剩余字符串的個數(shù)。ss所指字符串?dāng)?shù)組中共有N個字符串,且串長小于M。請?jiān)诔绦虻南聞澗€處填人正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
    2016年計(jì)算機(jī)二級C語言考前30天必做題(6)
    三、程序修改題(共18分)
    下列給定程序中函數(shù)fun的功能是:逐個比較p,q所指兩個字符串對應(yīng)位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的數(shù)組中,形成一個新的字符串。例如,若主函數(shù)中a字符串為“aBCDeFgH”,b字符串為“Abcd”,則c中的字符串應(yīng)為“aBcdeFgH”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
    2016年計(jì)算機(jī)二級C語言考前30天必做題(6)
    2016年計(jì)算機(jī)二級C語言考前30天必做題(6)
    四、程序設(shè)計(jì)題(共24分)
    規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)的*號之外,將串中其他*號全部刪除。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為:“****A*BC*DEF*G*******”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:“****ABCDEFG”。注意:部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
    2016年計(jì)算機(jī)二級C語言考前30天必做題(6)
     
    二、程序填空題
    (1)N
    (2)k
    (3)ss[i]
    【考點(diǎn)分析】
    本題考查:for循環(huán)語句;if語句條件表達(dá)式;字符串拷貝函數(shù)strcpy的使用。
    【解題思路】
    填空1:for循環(huán)語句作用是遍歷字符串?dāng)?shù)組中的每一個字符串,所以循環(huán)變量i的循環(huán)條件是i
    填空2:題目要求刪除串長度小于k的字符串,所以if條件語句的條件表達(dá)式是len<=k。
    填空3:通過字符串拷貝函數(shù)將串長不大于k的字符串另存,并記錄個數(shù)。
    【解題寶典】
    字符串拷貝函數(shù)strcpy,其格式為:strcpy(字符數(shù)組名1,字符數(shù)組名2)
    功能:把字符數(shù)組2中的字符串拷貝到字符數(shù)組1中。字符串結(jié)束標(biāo)識‘\0’也一同拷貝。字符數(shù)名2.也可以是一個字符串常量。這時相當(dāng)于把一個字符串賦予一個字符數(shù)組。
    三、程序修改題
    【參考答案】
    (1)int k=0;
    (2)while(* p|| * q)
    【考點(diǎn)分析】
    本題考查:變量初始化,需根據(jù)題意確定變量含義,然后對其進(jìn)行初始化操作;while循環(huán)語句。
    【解題思路】
    (1)變量k存放數(shù)組e的下標(biāo),因此應(yīng)初始化為0。
    (2)while循環(huán)語句的循環(huán)條件是判斷兩個字符串是否到達(dá)結(jié)尾。
    四、程序設(shè)計(jì)題
    程序設(shè)計(jì)題解析:
    2016年計(jì)算機(jī)二級C語言考前30天必做題(6)
    【考點(diǎn)分析】
    本題考查:指針型變量定義;while循環(huán)語句;if語句條件表達(dá)式;字符串結(jié)束標(biāo)識‘\0’。
    【解題思路】
    函數(shù)fun的功能:除了字符串前導(dǎo)的*號之外,將串中其他*號全部刪除。解答本題,(1)定義一個臨時指針P,初始指向原串首地址;(2)利用循環(huán)語句把字符串前導(dǎo)*號拷貝到原串;(3)繼續(xù)移動指針,把串中和串尾的非*號字符拷貝到原串;(4)為修改后的字符串賦結(jié)束字符‘\0’。
    【解題寶典】
    要刪除字符串中的指定字符,我們通常采用保留非指定字符的方法??梢詫⒎侵付ㄗ址A粼谠?,即將需要保留的字符從原串的起始位置重新賦值;也可以保留到新串,即新建一個字符串,存放要保留的字符。