當前位置:才華齋>IT認證>計算機等級>

2016下半年計算機等級二級C語言上機模擬試題及答案

計算機等級 閱讀(6.78K)

給定程式中,函式fun的功能是:在形參s所指字串中尋找與引數c相同的字元,並在其後插入一個與之相同的字元,若找不到相同的字元則函式不做任何處理。

2016下半年計算機等級二級C語言上機模擬試題及答案

例如,s所指字串為:baacda,c中的字元為:a,執行後s所指字串為:baaaacdaa。

請在程式的下劃線處填入正確的內容並把下劃線刪除,使程式得出正確的結果。

注意:源程式存放在考生資料夾下的K1.C中。

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

給定源程式:

#include

void fun(char *s, char c)

{ int i, j, n;

for(i=0; s[i]!=___1___ ; i++)

if(s[i]==c)

{

n=___2___ ;

while(s[i+1+n]!=’�’) n++;

for(j=i+n+1; j>i; j--) s[j+1]=s[j];

s[j+1]=___3___ ;

i=i+1;

}

}

main()

{ char s[80]="baacda", c;

printf(" The string: %s ",s);

printf(" Input a character: "); scanf("%c",&c);

fun(s,c);

printf(" The result is: %s ",s);

}

解題思路:

第一處:在for迴圈中終止值要判斷字串是否結束符,所以應填:’�’。

第二處:n用於統計引數c後還有多少個字元,要對其進行初始化,所以應填:0。

第三處:要求插入相同的字元c,所以應填:c。

在主函式中從鍵盤輸入若干個數放入陣列中, 用0結束輸入並放在最後一個元素中。給定程式MODI1.C中函式fun的功能是:計算陣列元素中值為正數的平均值(不包括0)。

例如:陣列中元素中的值依次為:39,-47,21,2,-8,15,0,

則程式的執行結果為:19.250000。

請改正程式中的錯誤,使它能得出正確的結果。

注意:不要改動main 函式,不得增行或刪行,也不得更改程式的結構!

給定源程式:

#include

double fun ( int x[])

{

int sum = 0.0;

int c=0, i=0;

while (x[i] != 0)

{ if (x[i] > 0) {

sum += x[i]; c++; }

i++;

}

sum = c;

return sum;

}

main( )

{ int x[1000]; int i=0;

printf( " Please enter some data (end with 0): " );

do

{ scanf("%d", &x[i]); }

while (x[i++] != 0);

printf("%f ", fun ( x ));

}

解題思路:

第一處:由於sum是存放實數值,因此不能定義為整型,所以應改為double sum=0.0;或float

sum=0.0;。

第二處:除的運算子是“/”。

編寫函式fun,函式的功能是:根據以下公式計算s,計算結果作為函式值返回;n通過形參傳入。

1 1 1

S=1 + ── + ─── + ... + ──────

1+2 1+2+3 1+2+3+...+n

例如:若n的值為11時,函式的值為:1.833333

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

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

給定源程式:

#include

float fun(int n)

{

}

main()

{ int n; float s;

printf(" Please enter N:"); scanf("%d", &n);

s = fun(n);

printf("the result is: %f ", s);

NONO();

}

解題思路:

本題是根據給定的公式計算結果。使用for迴圈語句依次求出每一項的值,分別進行累加並把結果存入變數s中,最後返回s。

參考答案:

float fun(int n)

{

int i,j,t;

float s=0;

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

t=0;

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

s=s+1./t;

}

return s;

}