填空題
請補充FUN函數,該函數的功能求能整除X,且是偶數的數,把這些數保存在數組BB,并按從大到小輸出。
例如,當x=20時,依次輸出:20 10 4 2。
注意:部分源程序給出如下
請勿改動主函數main和其他函數中的任何內容,僅在fun函數的橫線上填入所編寫的若干表達式或語句。
試題程序:
#include
#include
void fun(int k, int bb[])
{ int i;
int j = 0;
for (___1___; i<=k; i++)
if (k%i==0 ___2___ i%2==0)
bb[j++] = i;
printf("\n\n ");
for (i=___3___; i>=0; i--)
printf("%d ", bb[i]);
}
main()
{
int k = 1;
int bb[100];
printf("\nPlease input X\n");
scanf("%d", &k);
fun(k, bb);
}
第1處填空:i=1
第2處填空:&&
第3處填空:--j或j-1
改錯題
下列給定程序中,函數fun的功能是,先從鍵盤上輸入一個3行2列矩陣的各個元素的值,然后輸出主對角線元素之和。
請改正函數fun 中的錯誤或在橫線處填上適當的內容并把橫線刪除,使它能得出正確的結果。
#include
void fun()
{
int a[3][3], sum;
int i, j;
/********found********/
___ì???___;
for (i=0; i<3; i++)
for (j=0; j<3; j++)
/********found********/
scanf("%d,", a[i][j]);
for (i=0; i<3; i++)
sum = sum+a[i][i];
printf("sum=%d\n", sum);
}
main()
{
fun();
}
第1處:應填sum=0
第2處:scanf(“%d,”,a[i][j]);應改為scanf(“%d,”,&a[i][j]);
編程題
編寫函數fun,它的功能是:
根據下列公式求 的值,(要求滿足精度0.0005,即某項小于0.0005時停止迭代):
程序遠行后,如果輸出精度為0.0005,則輸出為3.14…
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include
#include
double fun ( double eps)
{
}
main()
{
double x;
FILE *out;
printf("Input eps:");
scanf("%lf",&x);
printf("\neps=%lf, PI=%lf\n", x, fun(x));
out=fopen("out.dat", "w");
fprintf(out, "eps=%lf, PI=%lf\n", 0.00003, fun(0.00003));
fclose(out);
}
答案是:
double fun(double eps)
{
double s;
float n,t,pi;
t=1;pi=0;n=1.0;s=1.0;
while((fabs(s))>=eps)
{
pi+=s;
t=n/(2*n+1);
s*=t;
n++;
}
pi=pi*2;
return pi;
}
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |