首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁年龄段的人数放在a[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在a[2]中,依此类推,把1
请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁年龄段的人数放在a[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在a[2]中,依此类推,把1
admin
2021-07-09
91
问题
请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁年龄段的人数放在a[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在a[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。
注意:部分源程序在文件PROG1.C中。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
1 #include<stdio.h>
2 #define N 50
3 #define M 11
4 void fun(int*a,int*b)
5 {
6
7 }
8 double rnd()
9 {
10 static t=29,c=217,m=1024,r=0;
11 r=(r*t+c)%m;
12 return((double)r/m);
13 }
14 void main()
15 {
16 FILE*wf;
17 int age[N],i,d[M];
18 int b[N]={32,4 5,15,12,86,49,97,3,4 4,52,17,95,63};
19 for(i=0;i
20 age
=(int)(115*rnd());/*产生一个随机的年龄数组*/
21 printf(’’The original data:\n’’);
22 for(i=0;i
23 printf((i+1)%10==07’’%4d\n’’:’’%4d’’,age
);/*每行输出10个数*/
24 printf(’’\n\n’’);
25 fun(age,d);
26 for(i=0;i<10 ; i++)
27 printf(’’%4d---%4d:%4d\n’’,i*10,i*10+9,d
);
28 printf(’’Over 100:%4d\n’’,d[10]);
29 /*****************/
30 wf=fopen(’’out.dat’’,’’w’’);
31 fun(b,d);
32 for(i=0;i<10;i++)
33 fprintf(wf,’’%4d--%4d:%4d\n’’,i*10,i*10+9,d
);
34 fprintf(wf,’’Over 100:%4d’’,[10]);
35 fclose(wf);
36 /*****************/
37 }
选项
答案
1 void fun(int *a,int *b) 2 { 3 int i,j ; 4 for(j=0 ; j
=100) 8 b[10]++;/*如果年龄大于等于100,b[10]自增1*/ 9 else 10 b[a[i]/10]++;/*如果年龄小于100,则将其分别统计到b[a[i]/10]中*/ 11 }
解析
本题是一个分段函数的问题,用两个循环米完成。第1个循环的作用是使b中的所有元素值都为0。这个循环不能省略,因为若未对b中的元素赋初值,则它们的值是不可预测的。第2个循环的作用是分别统计a中各年龄段的人数。当a
≥100时,按题意要将其统计到h[10]中。else的作用是如果年龄小于100,则将其分别统计到b[a
/10]中。由运算优先级可知先进行a
/10的运算,所得结果作为h的下标。若a
为0~9时,a
/10的值为0,且0~9岁的人数正好要存入b[0]中。若a
为10~19时,a
/10的值为1,且10~19岁的人数正好要存入b[1]中,依此类推。
转载请注明原文地址:https://kaotiyun.com/show/yskp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设有定义:inta;floatb;,执行seanf("%2d%f",&a,&b);语句时,若从键盘输入876543.0<回车>,则a和b的值分别是()。
有下列程序:main(){inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1)),i,j,k,t;for(i=0;i
有以下程序structS{inta,b;)data[2]={10,100,20,200};main(){structSp=data[1];printf("%d\n",++(p.a));)程序运行后的输出结果是
在结构化程序设计中,模块划分的原则是
以下叙述中正确的是
以下能正确定义且赋初值的语句是
以下选项中,能用作用户标识符的是
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是()。
在数据管理技术发展的三个阶段中,数据共享最好的是()。
若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是
随机试题
社会控制的适度问题。
A.2.6%甘油B.9%氯化钠溶液C.0.9%葡萄糖溶液D.0.9%氯化钠溶液E.10%氯化钾溶液等渗但不等张的溶液是
新吉尔灭消毒器械时,其浓度为
可能的诊断为如果病情进一步发展,最可能会出现哪组表现
A.恩替卡韦B.奈韦拉平C.泛昔洛韦D.扎那米韦E.利巴韦林用于人禽流感抗病毒治疗的药物是
甲企业为股份制企业,对工商局作出行政处罚行为不服,下列有权以甲的名义申请行政复议的有:()
设D是曲线y=x2与y=1所围闭区域,2xdσ等于:
把当x→0+时的无穷小量α=tanx-x,β=∫0x(1-cos)dt,γ=()x-1排列起来,使排在后面的是前一个的高阶无穷小,则正确的排列次序是
Insuranceisthesharingof【C1】______.Nearlyeveryoneisexposed【C2】______riskofsomesort.Thehouseowner,forexample,know
WhichofthefollowingisTRUEaccordingtothenewsitem?
最新回复
(
0
)