糯米文學吧

位置:首頁 > 計算機 > 計算機二級

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

  一、程序填空題(共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’。