首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0—9岁年
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0—9岁年
admin
2020-06-02
73
问题
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0—9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。
注意:部分源程序在文件PROG1.C中。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#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);
}
void main()
{
FILE*wf;
int age[N],i,d[M];
int b[N]={32,45,15,12,86,4 9,97,3,44,52,17,95,63};
for(i=0;i<N;i++)
age
=(int)(115*rnd());
/*产生一个随机的年龄数组*/
printf("The original data:\n");
for(i=0;i<N;i++)
printf((i+1)%10==0?"%4d\n":"%4d",age
);/*每行输出10个数*/
printf("\n\n");
fun(age,d);
for(i=0;i<10;i++)
printf("%4d---%4d:%4d\n",i*10,i*10+9,d
);
printf("Over 100:%4d\n",d[10]);
/*****************/
wf=fopen("out.dat","w");
fun(b,d);
for(i=0;i<10;i++)
fprintf(wf,“%4d一%4d:%4d\n”,i*10,i*10+9,d
);
fprintf(wf,"Over 100:%4d",d[10]);
fclose(wf);
/*****************/
}
选项
答案
void fun(int*a,int*b) { int i,j; for(j=0;j<M;j++) b[j]=0;/*数组b初始化为0*/ for(i=0;i<N;i++) if(a[i]>=100) b[10]++;/*如果年龄大于等于100,b[10]自增1*/ else b[a[i]/10]++;/*如果年龄小于100,则将其分别统计到b[a[i]/10]中*/ }
解析
本题是一个分段函数的问题,用两个循环来完成。第1个循环的作用是使b中的所有元素值都为0。这个循环不能省略,因为若未对b中的元素赋初值,则它们的值是不可预测的。第2个循环的作用是分别统计a中各年龄段的人数。当a
≥100时,按题意要将其统计到b[10]中。else的作用是如果年龄小于100,则将其分别统计到b[a
/10]中。由运算优先级可知先进行a
/10的运算,所得结果作为b的下标。若a
为0~9时,a
/10的值为0,且0~9岁的人数正好要存入b[0]中。若a
为10~19时,a
/10的值为1,且10~19岁的人数正好要存入b[1]中,依此类推。
转载请注明原文地址:https://www.kaotiyun.com/show/lqCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){ease0:a++;break;ease1:b++;break;}ease2:a++
当变量13的值不为2、4、6时,值为“真”的表达式是()。
有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2:returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf("%d\
有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(
有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));pfinff("%d\n",m);}intf(intx){returnx*2;}程序的运行结
设循环队列的存储空间为Q(1:50),初始状态为front=Fear=50。现经过一系列入队与退队操作后,front=rear=1,此后又正常地插入了两个元素。最后该队列中的元素个数为()。
有如下程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);其输出结果是()。
有以下程序intfun(intx[],intn)main(){staticintsum=0,i;{inta[]={1,2,3,4,5),b[]={6,7,8,9),s=
程序中对fun函数有如下说明voidfun();此说明的含义是
随机试题
Dandy—Walker畸形较少合并
对配送货物进行重新包装、打捆是为了()。
简述急性糜烂性胃炎的常见病因。
A.产生络合物,妨碍吸收B.产生或增加毒性C.产生沉淀,降低药物疗效D.抑制药物活性E.引发药源性肝炎金银花、黄芩等中药及其制剂与乳酶生联用能()。
某大型石油化工公司开展QC小组活动已经有5年,为了保证成立的小组都能获得良好的业绩,公司质量管理部作为该项活动的管理部门,希望注册的小组都要进行初选。对那些主要由工人组成、没有技术人员参加的小组,以及选题太小、预期经济效益不高的小组就筛选掉,从而保证该企业
新加坡又称“狮子城”,其著名旅游景点有()。
请结合案例和所学的知识回答问题。B商场曾向某企业购买一批价值为30万元的货物,该企业在发货后向B商场通过电话和邮件的方式催收货款,但是B商场多次以各种理由推迟付款。企业只好派出内部管理人员到B商场上门催收货款。B商场与该企业是长期的合作
普通电池上显示的符号AA或AAA表明的意思是()。
From:JessicaTaylorTo:hr@thompsongift.comSubject:ResumeTowhomitmayconcern:Hello!IamJessicaTaylorandIsawyou
Childrenmodelthemselveslargelyontheirparents.Theydosomainlythroughidentification.Childrenidentify【C1】______parents
最新回复
(
0
)