设为首页 加入收藏

TOP

C语言编程笔试题(第五十套)
2014-11-24 01:20:11 来源: 作者: 【 】 浏览:7
Tags:语言编程 试题 第五十

编程题:


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


}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言编程笔试题(第四十九套) 下一篇C语言基础笔试题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: