2017年計算機二級考試C語言考試試題及答案

C語言是把高階語言的基本結構和語句與低階語言的實用性結合起來的工作單元。以下是關於計算機二級考試C語言考試試題及答案,歡迎大家參考!

2017年計算機二級考試C語言考試試題及答案

  單選題

1). 若已定義的函式有返回值,則以下關於該函式呼叫的敘述中錯誤的是

A.函式呼叫可以作為獨立的語句存在

B.函式呼叫可以作為一個函式的實參

C.函式呼叫可以出現在表示式中

D.函式呼叫可以作為一個函式的形參

正確答案:D

2). 下列是使用者自定義識別符號的是

A._w1

B.3_xy

-3

正確答案:A

3). 以下敘述中不正確的是

A.在不同的函式中可以使用相同的名字的變數

B.函式中的.形式引數是區域性變數

C.在一個函式內定義的變數只在本函式範圍內有效

D.在一個函式內的複合語句中定義的變數在本函式範圍內有效

正確答案:D

4). 以下描述錯誤的是

A.C程式中,函式可以直接或間接的呼叫自己

B.函式呼叫時,函式名必須與所呼叫的函式名字完全一致

C.函式說明語句中的型別必須與函式返回值的型別一致

D.實引數可以與形參個數不一致

正確答案:D

5). 下列說法中正確的是( )。

A.C程式書寫時,不區分大小寫字母

B.C程式書寫時,一行只能寫一個語句

C. C程式書寫時,一個語句可分成幾行書寫

D. C程式書寫時每行必須有行號

正確答案:C

答案解析:C語言嚴格區分大小寫字母,如"A1"和"a1"被認為是兩個不同的識別符號,C程式的書寫非常靈活,既可以一行多句,又可以一句多行,且每行不加行號。

6). 已知:char a[20]= "abc",b[20]= "defghi";則執行下列語句後的輸出結果為printf("%d",strlen(strcpy(a,b)));

A.11

B.6

C.5

D.以上答案都不正確

正確答案:B

  二操作題

1: 第1題請編寫函式fun,其功能是:將兩個兩位數的正整數a b合併形成一個整數放在c中。合併的方式是:將a數的十位和個位數依次放在c的十位和千位上,b數的十位和個位數依次放在c數的個位和百位上。

答案:

void fun(int a, int b, long *c)

{

*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;

}

2: 第2題請編寫函式fun,它的功能是計算:s=(ln(1)+ln(2)+ln(3)+…+ln(m))(0.5),s作為函式值返回。

答案:

double fun(int m)

{

int I;

double s=0.0, log(double x);

for(i=1;i<=m;i++)

s=s+log(i);

s=sqrt(s);

return s;

}

3: 第3題請編寫函式fun,它的功能是計算下列級數和,和值由函式值返回。

S=1+x+x(2)/2!+x(3)/3!+…x(n)/n!

答案:

double fun(double x, int n)

{

double s=1.0, p=1.0;

int I,j,t;

for(i=1;i<=n;i++)

{

t=1;

for(j=1;j<=i;j++)

t=t*j;

p=p*x;

s=s+p/t;

}

return s;

}

4: 第4題規定輸入字串中只包含字母和*號。請編寫函式fun,它的功能是:將函式字串中的前導*號全部刪除,中間和尾部的*號不刪除。

答案:

void fun(char *a)

{

int i=0;

char *p=a;

while(*p&&*p==‘*’)

p++;

while(*p)

{

a[i]=*p;

i++;

p++;

}

a[i]=‘