為大家收集整理了《2013計(jì)算機(jī)二級(jí)C語言上機(jī)練習(xí)題及答案(1)》供大家參考,希望對(duì)大家有所幫助!??!
一、填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:計(jì)算每個(gè)學(xué)生科目的平均分,并把結(jié)果保存在數(shù)組bb中。
例如,當(dāng)score[N][M]={{78.5,84,83,65,63},{88,91.5,89,93,95},{72.5,65,56,75,77}}時(shí),三個(gè)學(xué)生的平均分為:74.7 91.3 69.1。
僅在橫線上填入所編寫的若干表達(dá)式或語句,勿改動(dòng)函數(shù)中的其他任何內(nèi)容。
#include
#define N 3
#define M 5
main()
{
int i, j;
static float score[N][M] =
{
{78.5, 84, 83, 65, 63},
{88, 91.5, 89, 93, 95},
{72.5, 65, 56, 75, 77}
};
float bb[N];
for (i=0; i
___1___;
for (i=0; i
{
for (j=0; j
___2___;
bb[i] /= M;
}
for (i=0; i
printf("\nstudent%d\taverage=%5.1f", i+1, bb[i]);
}
參考答案:
1、bb[i]=0 或 *(bb+i)=0
2、bb[i]+=score[i][j] 或bb[i]=b[i]+score[i][j] 或bb[i]=score[i][j]+bb[i]
二、改錯(cuò)題
下列給定程序中,函數(shù)fun的功能是:根據(jù)整型行參m,計(jì)算如下公式的值。
y=
例如,若m=2000,則應(yīng)該輸出:0.000160。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
#include
#include
/********found********/
fun(int m)
{
double y = 0, d;
int i;
/********found********/
for (i=100, i<=m, i+=100)
{
d = (double)i*(double)i;
y += 1.0/d;
}
return (y);
}
main()
{
int n = 2000;
printf("\nThe result is %lf\n", fun(n));
}
參考答案:
1、fun(int m)應(yīng)改為 double fun(int m)
2、for(i=100,i<=m,i+=100)應(yīng)改為for(i=100;i<=m;i+=100)
三、編程題
請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:統(tǒng)計(jì)個(gè)年齡段的人數(shù)。N個(gè)年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把0至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[1]中,把20至29歲年齡段的人數(shù)放在d[2]中,其余依此類推,把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
#include
#define N 50
#define M 11
void fun(int *a, int *b)
{
}
double rnd()
{
static t=29, c=217, m=1024, r=0;
r=(r*t+c)%m;
return((double)r/m);
}
main()
{
int age[N], i, d[M];
FILE *out ;
for(i=0; i
age[i]=(int)(115*rnd());
printf("The original data :\n");
for(i=0; i
printf((i+1)%10==0?"%4d\n":"%4d",age[i]);
printf("\n\n");
fun( age, d);
out=fopen ("out.dat","w");
for(i=0;i<10;i++)
{
printf("%4d---%4d : %4d\n", i*10, i*10+9, d[i]);
fprintf(out, "%4d---%4d : %4d\n", i*10, i*10+9, d[i]);
}
printf(" Over 100 : %4d\n", d[10]);
fprintf(out, " Over 100 : %4d\n", d[10]);
fclose (out );
}
參考答案:
void fun (int *a, int *b)
{
int i, j;
for(j=0;j
b[j]=0;
for(i=0;i
if(a[i]>=0&&a[i]<=9)
b[0]+=1;
else if(a[i]>=10&&a[i]<=19)
b[1]+=1;
else if(a[i>=20&&a[i]<=29)
b[2]+=1;
else if(a[i]>=30&&a[i]<=39)
b[3]+=1;
else if(a[i>=40&&a[i]<=49])
b[4]+=1;
else if(a[i]>=50&&a[i]<=59)
b[5]+=1;
else if(a[i]>=60&&a[i]<=69)
b[6]+=1;
else if(a[i]>=70&&a[i]<=79)
b[7]+=1;
else if(a[i]>=80&&a[i]<=89)
b[8]+=1;
else if(a[i]>=90&&a[i]<=99)
b[9]+=1;
else
b[10]+=1;
}
一、填空題
請(qǐng)補(bǔ)充main函數(shù),該函數(shù)的功能是:計(jì)算每個(gè)學(xué)生科目的平均分,并把結(jié)果保存在數(shù)組bb中。
例如,當(dāng)score[N][M]={{78.5,84,83,65,63},{88,91.5,89,93,95},{72.5,65,56,75,77}}時(shí),三個(gè)學(xué)生的平均分為:74.7 91.3 69.1。
僅在橫線上填入所編寫的若干表達(dá)式或語句,勿改動(dòng)函數(shù)中的其他任何內(nèi)容。
#include
#define N 3
#define M 5
main()
{
int i, j;
static float score[N][M] =
{
{78.5, 84, 83, 65, 63},
{88, 91.5, 89, 93, 95},
{72.5, 65, 56, 75, 77}
};
float bb[N];
for (i=0; i
___1___;
for (i=0; i
{
for (j=0; j
___2___;
bb[i] /= M;
}
for (i=0; i
printf("\nstudent%d\taverage=%5.1f", i+1, bb[i]);
}
參考答案:
1、bb[i]=0 或 *(bb+i)=0
2、bb[i]+=score[i][j] 或bb[i]=b[i]+score[i][j] 或bb[i]=score[i][j]+bb[i]
二、改錯(cuò)題
下列給定程序中,函數(shù)fun的功能是:根據(jù)整型行參m,計(jì)算如下公式的值。
y=
例如,若m=2000,則應(yīng)該輸出:0.000160。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
#include
#include
/********found********/
fun(int m)
{
double y = 0, d;
int i;
/********found********/
for (i=100, i<=m, i+=100)
{
d = (double)i*(double)i;
y += 1.0/d;
}
return (y);
}
main()
{
int n = 2000;
printf("\nThe result is %lf\n", fun(n));
}
參考答案:
1、fun(int m)應(yīng)改為 double fun(int m)
2、for(i=100,i<=m,i+=100)應(yīng)改為for(i=100;i<=m;i+=100)
三、編程題
請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:統(tǒng)計(jì)個(gè)年齡段的人數(shù)。N個(gè)年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把0至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[1]中,把20至29歲年齡段的人數(shù)放在d[2]中,其余依此類推,把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
#include
#define N 50
#define M 11
void fun(int *a, int *b)
{
}
double rnd()
{
static t=29, c=217, m=1024, r=0;
r=(r*t+c)%m;
return((double)r/m);
}
main()
{
int age[N], i, d[M];
FILE *out ;
for(i=0; i
age[i]=(int)(115*rnd());
printf("The original data :\n");
for(i=0; i
printf((i+1)%10==0?"%4d\n":"%4d",age[i]);
printf("\n\n");
fun( age, d);
out=fopen ("out.dat","w");
for(i=0;i<10;i++)
{
printf("%4d---%4d : %4d\n", i*10, i*10+9, d[i]);
fprintf(out, "%4d---%4d : %4d\n", i*10, i*10+9, d[i]);
}
printf(" Over 100 : %4d\n", d[10]);
fprintf(out, " Over 100 : %4d\n", d[10]);
fclose (out );
}
參考答案:
void fun (int *a, int *b)
{
int i, j;
for(j=0;j
b[j]=0;
for(i=0;i
if(a[i]>=0&&a[i]<=9)
b[0]+=1;
else if(a[i]>=10&&a[i]<=19)
b[1]+=1;
else if(a[i>=20&&a[i]<=29)
b[2]+=1;
else if(a[i]>=30&&a[i]<=39)
b[3]+=1;
else if(a[i>=40&&a[i]<=49])
b[4]+=1;
else if(a[i]>=50&&a[i]<=59)
b[5]+=1;
else if(a[i]>=60&&a[i]<=69)
b[6]+=1;
else if(a[i]>=70&&a[i]<=79)
b[7]+=1;
else if(a[i]>=80&&a[i]<=89)
b[8]+=1;
else if(a[i]>=90&&a[i]<=99)
b[9]+=1;
else
b[10]+=1;
}