c语言50页编程题,C语言编程笔试题(第五十套)

2015-09-18 06:30:02

阅读( 87 )

编程题:

61.请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#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];

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);

for(i=0;i<10;i++)printf(“%4d—%4d  :  %4d\n”, i*10, i*10+9, d[i]);

printf(“  Over  100  :  %4d\n”, d[10]);

}

86.请编写函数fun,其功能是:计算并输出给定10个数的方差:

其中:

例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,则输出为S=11.730729。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include

#include

double fun(double x[10])

{

}

main()

{

doule s, x[10]={95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0};

int i;

printf(“\nThe original data is :\n”);

for(i=0;i<10;i++)

printf(“%6.1f”,x[i]);

printf(“\n\n”);

s=fun(x);

printf(“s=%f\n\n”,s);

}

改错题:

49.下面给定程序中,函数fun的功能是:对N名学生的学习成绩,从高到低的顺序找出前m(m≤0)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#include

#include

#include

#define  N 10

typedef struct ss

{

char num[10];

int s;

} STU;

STU *fun(STU a[], int m)

{

STU b[N], *t;

int i,j,k;

/********found********/

*t=malloc(sizeof(STU));

for(i=0; i

b[i]=a[i];

for(k=0; k

{

for(i=j=0; i

if(b[i].s > b[j].s)

j=i;

/********found********/

t[k].num=b[j].num;

t[k].s=b[j].s;

b[j].s=0;

}

return t;

}

outresult(STU a[], FILE *pf)

{

int i;

for(i=0; i

fprintf(pf,”No=%s Mark=%d\n”,a[i].num,a[i].s);

fprintf(pf,”\n\n”);

}

main()

{

STU a[N]={ {“A01″,81},{“A02″,89},{“A03″,66},{“A04″,87},{“A05″,77},

{“A06″,90},{“A07″,79},{“A08″,61},{“A09″,80},{“A10″,71}};

STU *pOrder;

int  i, m;

clrscr();

printf(“***** The Original data *****\n”);

outresult(a, stdout);

printf(“\nGive the number of the students who have better score: “);

scanf(“%d”,&m);

while(m>10)

{

printf(“\nGinve the number of the students who have better score: “);

scanf(“%d”,&m);

}

pOrder=fun(a,m);

printf(“***** THE RESULT *****\n”);

printf(“The top :\n”);

for(i=0; i

printf(” %s  %d\n”,pOrder[i].num,pOrder[i].s);

free(pOrder);

}

55.下列给定程序中,函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

请改正函数fun中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#include

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

{

int i,j,d,y;

for(i=3;i

{

/********found********/

y=0;

for(j=2;j<=sqrt((double)i);j++)

if(i%j==0)

y=0;

if(y==1)

{

/********found********/

d=i-a;

for(j=2;j<=sqrt((double)i);j++)

if(d%j==0)

y=0;

if(y==1)

{

*b=i;

*c=d;

}

}

}

}

main()

{

int a,b,c;

do

{

printf(“\nInput a: “);

scanf(“%d”,&a);

}

while(a%2);

fun(a,&b,&c);

printf(“\n\n%d=%d + %d\n”,a,b,c);

}

分享给朋友:

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息:

面试题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值