首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数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
77
问题
请编写函数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全国计算机二级
相关试题推荐
若变量已正确定义并赋值,则错误的赋值语句是()。
在E-R图中,用来表示实体联系的图形是
若程序中有宏定义行:#defineN100则以下叙述中正确的是
设有定义语句:char*aa[2]={"abcd","ABCD"};则以下叙述正确的是
设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front-1=rear。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为
有三个关系R、S和T如下:则由关系R和S得到关系T的操作是
设y为整型变量,a=6,a的地址为E2000,b=14,b的地址为E2001;执行语句b=&a;
在数据管理技术发展的三个阶段中,数据共享最好的是()。
在数据管理技术发展的三个阶段中,数据共享最好的是
以下关于简单程序设计的步骤和顺序的说法中正确的是
随机试题
简述遵义会议的主要内容。
A.阴道镜下宫颈活组织检查B.筋膜外全子宫切除C.动脉插管化疗后放疗D.广泛性全子宫切除术,盆腔淋巴结清扫术E.放疗37岁。接触性出血史,宫颈重度糜烂。刮片巴氏Ⅲ级,应进行
麻疹的病变部位在水痘的病变部位在
治疗病毒性脑炎错误的方法是
宏观经济管理的首要任务是()。
小王于2005年5月16日买入某附息债券,包含应计利息3.49元在内共支付92.54元。该债券面值100元,票面利率8%,每年付息两次,计息基础为实际天数,到期日为2010年6月8日,则债券的到期收益率为()。
根据土地增值税法律制度的规定,纳税人在计算房地产开发费用时,财务费用中的借款利息支出,凡能够按照转让房地产项目计算分摊并提供金融机构证明的,允许据实扣除。但不能计入利息支出扣除的有()。
叶酸只有还原成二氢叶酸才能发挥其生理活性。()
Java语言中提供了【】来管理组件在容器中的布局。
下列程序的功能是:当发生窗体的单击事件后,将在窗体上显示“1!+2!+3!+…+10!”的和。PrivateSubForm_Click()DimsAsLong,iAsIntegers=0Fori=1
最新回复
(
0
)