當前位置:才華齋>計算機>計算機二級>

全國計算機二級《C語言》機考試題及答案

計算機二級 閱讀(1.55W)

  一、程式填空題(共18分)

全國計算機二級《C語言》機考試題及答案

下列給定程式中,函式fun的功能是:將形參n中個位上為偶數的數取出,並按原來從高位到低位相反的順序組成一個新數,作為函式值返回。

例如,輸入一個整數27638496,函式返回值為64862。

請在程式的下劃線處填入正確的內容並將下劃線刪除,使程式得出正確的結果。注意:部分源程式在檔案BLANKl.C中。

不得增行或刪行,也不得更改程式的結構!#include

unsigned long fun(unsigned long n){unsigned long x=0;int t;

  二、程式修改題(共18分)

下列給定程式中函式fun的功能是:將長整型數中各位上為奇數的數依次取出,構成一個新數放在t中。高位仍在高位,低位仍在低位。

例如,當s中的數為87653142時,t中的數為7531。請改正程式中的錯誤,使它能得出正確的結果。注意:部分源程式在檔案MODll.C中,不得增行或刪行,也不得更改程式的結構!

  三、程式設計題(共24分)

編寫函式fun,其功能是:實現兩個字串的連線(不要使用庫函式strcat),即把p2所指的字串連線到pl所指的字串的後面。

例如,分別輸人下面兩個字串:FirstString--SecondString

程式執行後的輸出結果是:FirstString————SecondString

注意:部分源程式在檔案PROGl.C中。

請勿改動主函式main和其他函式中的任何內容,僅在函式fun的花括號中填入你編寫的`若干語句。

  參考答案

  一、程式填空題

(1)0

(2)10*x

(3)n/10

考點分析】

本題考查:已知某數,如何求該數各個位數值,已知各個位數值,如何表示該數;除法運算。

【解題思路】

填空l:定義變數t用來存放某數的各個位數值,此處判斷t是否為偶數,即對2求餘結果是否為0。

填空2:將t作為x的個位數,原來x的各個位上升l位,即x=10{x+1。

填空3:每迴圈一次,通過除法運算,去掉數值最後一位。

【解題寶典

如果知道某數n的各個位的數值,可以得到該數值n,如n的個位為a、十位為b、百位為c,那麼n=c}100+b*10+a。如果知道數值n,可以採用求餘和除法操作來表示其各個位,如n%10(取個位)、n/J0(取十位),讀者可以自己考慮一下,如果是三位數,如何提取各個位?四位數呢?

  二、程式修改題

【參考答案】(1)}t=0;(2)if(d%2 1=O)或if(d%2==1)

【考點分析】

本題考查:指標型變數作為函式引數;if語句條件表示式,結合奇偶數的表示方法來確定該表示式內容。

【解題思路】

(1)由函式定義可知,變數t是指標變數,所以對t進行賦初值0是不對的。因為t指向的是存放新數的變數,所以此處應給新數賦初值0,即。t=0。

(2)變數d表示數S各個位上的數,此處的if條件應為判斷d是否為奇數。

  三、程式設計題

【參考答案】voidfun(char pl[],char p2[])

in“,j;

for(i=0;pl[i]f=。、0’;i++);

for(j=0;p2[j]!=。、0’;j++)p1[i++]=p2[j];

p1[i],_。、0’;}

【考點分析】“

本題考查:不使用字串函式實現字串連線操作。通過for迴圈語句來完成,不要忘了最後需要加上字串結束標識‘、0’。

【解題思路】

本題用兩個迴圈完成操作,第1個迴圈的作用是求出第l個字串的長度,即將i指到第1個字串的末尾。第2個迴圈的作用是將第2個字串的字元連到第l個字元申的末尾。最後在第l個字串的結尾加上字串結束標識‘、0’。