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]=‘