2013計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)練習(xí)題及答案(18)

字號(hào):

為大家收集整理了《2013計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)練習(xí)題及答案(18)》供大家參考,希望對(duì)大家有所幫助!??!
    填空題
    給定程序中,函數(shù)fun的功能是:將形參s所指字符串中的所有字母字符順序前移,其他字符順序后移,處理后新字符串的首地址作為函數(shù)值返回。
    例如,s所指字符串為:asd123fgh543df,處理后新字符串為:asdfghdf123543。
    請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
    注意:源程序存放在考生文件夾下的BLANK1.C中。
    不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
    給定源程序:
    #include
    #include
    #include
    char *fun(char *s)
    { int i, j, k, n; char *p, *t;
    n=strlen(s)+1;
    t=(char*)malloc(n*sizeof(char));
    p=(char*)malloc(n*sizeof(char));
    j=0; k=0;
    for(i=0; i
    { if(((s[i]>='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))) {
    t[j]=__1__; j++;}
    else
    { p[k]=s[i]; k++; }
    }
    for(i=0; i<__2__; i++) t[j+i]=p[i];
    t[j+k]= __3__;
    return t;
    }
    main()
    { char s[80];
    printf("Please input: "); scanf("%s",s);
    printf("\nThe result is: %s\n",fun(s));
    }
    解題思路:
    第一處:函數(shù)中申請(qǐng)了兩個(gè)內(nèi)存空間,其p是存放字母字符串,t是存放非字母字符串,根
    據(jù)條件可知,p依次存放字母字符串,其位置由j來控制,所以應(yīng)填:s[i]。
    第二處:利用for循環(huán)再把t中的內(nèi)容依次追加到p中,其中t的長(zhǎng)度為k,所以應(yīng)填:k。
    第三處:字符串處理好后必須添加字符串結(jié)束符,所以應(yīng)填:'\0'。
    編程題
    函數(shù)fun的功能是:將s所指字符串中ASCII值為奇數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。
    例如,若s所指字符串中的內(nèi)容為:"ABCDEFG12345",其中字符A的ASCII碼值為奇數(shù)、…、字符1的ASCII碼值也為奇數(shù)、… 都應(yīng)當(dāng)刪除,其它依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是:"BDF24"。
    注意: 部分源程序存在文件PROG1.C中。
    請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入
    你編寫的若干語(yǔ)句。
    給定源程序:
    #include
    #include
    void fun(char *s, char t[])
    {
    }
    main()
    {
    char s[100], t[100];
    printf("\nPlease enter string S:"); scanf("%s", s);
    fun(s, t);
    printf("\nThe result is: %s\n", t);
    NONO();
    }
    解題思路:
    本題是從一個(gè)字符串按要求生成另一個(gè)新的字符串。我們使用for循環(huán)語(yǔ)句來解決這個(gè)問題。
    參考答案:
    void fun(char *s, char t[])
    {
    int i, j = 0 ;
    for(i = 0 ; i < strlen(s); i++) if(s[i] % 2==0) t[j++] = s[i] ;
    t[j] = 0 ;
    }