四川省計算機二級C語言筆試真題及答案

來源:文萃谷 2.05W

計算機C語言考試之際,yjbys小編為大家提供的是最新的上機考試題,希望對大家的複習有所幫助!

四川省計算機二級C語言筆試真題及答案

甲乙丙丁四人同時開始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次, 丙 每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函數fun的功能是根據形參 提供的值,求出總共聽到多少次鞭炮聲作為函數值返回。注意,當幾個鞭炮同時 炸響,只算一次響聲,第一次響聲是在第0秒。

例如,若t1=7,t2=5,t3=6,t4=4,n=10,則總共可聽到28次鞭炮聲。

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

注意:源程序存放在考生文件夾下的BLANK1.C中。

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

給定源程序:

#include

#define OK(i, t, n) ((___1___%t==0) && (i/t

int fun(int t1, int t2, int t3, int t4, int n)

{ int count, t , maxt=t1;

if (maxt < t2) maxt = t2;

if (maxt < t3) maxt = t3;

if (maxt < t4) maxt = t4;

count=1; /* 給count賦初值 */

for(t=1; t< maxt*(n-1); ___2___)

{

if(OK(t, t1, n) || OK(t, t2, n)|| OK(t, t3, n) || OK(t, t4, n) )

count++;

}

return ___3___;

}

main()

{ int t1=7, t2=5, t3=6, t4=4, n=10, r;

r = fun(t1, t2, t3, t4, n);

printf("The sound : %dn", r);

}

解題思路

第一處:根據定義的要求,所以應填:i。

第二處:for循環語句的增量,所以應填:t++。

第三處:返回統計次數,所以應填:count。

***************************************************

給定程序MODI1.C中函數fun的功能是: 根據輸入的三個邊長(整型值), 判斷能否構成三角形; 構成的是等邊三角形, 還是等腰三角形。若能構成等邊三角形函數返回3,若能構成等腰三角形函數返回2, 若能構成一般三角形函數返回1, 若不能構成三角形函數返回0。

請改正函數fun中指定部位的錯誤, 使它能得出正確的結果。

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

給定源程序:

#include

#include

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

{ if(a+b>c && b+c>a && a+c>b) {

if(a==b && b==c)

return 3;

else if(a==b||b==c||a==c)

return 2;

else retrun 1

}

else return 0;

}

main()

{ int a,b,c,shape;

printf("nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c);

printf("na=%d, b=%d, c=%dn",a,b,c);

shape =fun(a,b,c);

printf("nnThe shape : %dn",shape);

}

解題思路:

第一處:函數有返回值,不能定義為void,所以應改為:int fun(int a,int b,int c)。

第二處:語句後缺少分號。

***************************************************

請編寫函數fun, 其功能是: 計算並輸出3到n之間(含3和n)所有素數的平方根之和。

例如, 在主函數中從鍵盤給n輸入100後,輸出為: sum=148.874270。

注意: 要求n的值大於2但不大於100。

部分源程序在文件PROG1.C中。

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

給定源程序:

#include

#include

double fun(int n)

{

}

main()

{ int n; double sum;

printf("nnInput n: "); scanf("%d",&n);

sum=fun(n);

printf("nnsum=%fnn",sum);

NONO();

}

解題思路:

本題是計算並輸出3到n之間(含3和n)所有素數的平方根之和。

參考答案

double fun(int n)

{

int i,j=0;

double s=0;

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

for (j=2; j

if (i%j == 0) break;

if (j == i) s=s+sqrt(i);

}

return s;

}

熱門標籤