首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是
已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是
admin
2010-09-05
42
问题
已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是奇数的数的个数totCnt以及满足此条件的这些数(右移前的值)的算术平均值totAve。最后调用函数writeDat()把所求的结果输出到OUT.dat文件中。
注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
#include <stdio.h>
#include <conio. h>
#define MAXNUM 200
int number [MAXNUM];
int totNum = 0; /* 文件IN.dst 中共有的正整数个数*/
int totCnt = 0; /* 符合条件的正整数的个数*/
double totAve = 0.0; /* 平均值 */
int ReadDat (void);
void writeDat(void);
void CalValue(void)
{
}
void main ()
{ int i;
for (i=0; i<MAXNUM; i++)
number
= 0;
if (ReadDat())
{ printf (" 数据文件 IN.dst 不能打开! \007\n");
return;
}
CalValue ();
printf(" 文件 IN.dst 中共有的正整数个数=%d个\n", totNum);
printf (" 符合条件的正整数的个数 =%d个\n", totCnt);
printf("平均值=%.2f\n", totAve);
writeDat ();
}
int ReadDat (void)
{ FILE *fp;
int i = 0;
if ((fp = fopen("IN.dat", "r")) == NULL)
return 1;
while (!feof(fp))
fscanf(fp, "%d,", &number [i++]);
fclose (fp);
return 0;
}
void writeDat (void)
{ FILE *fp;
fp = fopen("OUT.dat", "w");
fprintf(fp, "%d\n%d\n%6.2f\n", totNum, totCnt, totAve);
fclose (fp);
}
选项
答案
void CalValue(void) { int i, data; for (i=0; i<MAXNUM; i++) { if (!number[i]) break; if (number[i] > 0) totNum++; data = number[i]>>1; if (data%2) { totCnt++; totAve += number[i]; } } totAve /= totCnt; } [解题思路] 在for循环语句中,自变量i从0递增到MAXNUM对数组number中的每个数进行判断,如果number[i]的值大于0,说明number[i]的值为正整数,统计正整数个数的变量totNum加1;然后number[i]右移1位得到data的值;再对data的值除2求余数,如果其值为1,则统计变量totCnt加1,同时把number[i]的值加到totAve上,得到这些数的和。退出循环后,用totAve的值除以totCnt,就得到了这些数的算术平均值totAve。
解析
转载请注明原文地址:https://kaotiyun.com/show/iuvZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
双链表的每个结点包括两个指针域。其中rlink指向结点的后继,llink指向结点的前驱。如果要在p所指结点后插入q所指的新结点,下列哪一个操作序列是正确的?
在计算机数据处理过程中,外存储器直接和______交换信息。
绝大多数数据库系统的总体结构都具有外模式、模式、内模式三级模式结构。描述数据库中全体数据的全局逻辑结构和特性的是_____。
在数据库的三级模式体系结构中,模式与内模式之间的映像实现了数据库的_____独立性。
一个关系模式为Y(X1,X2,X3,X4),假定该关系存在如下函数依赖:X1←→X2,X1→X3,X1→X4,则该关系属于【】。
在关系模式R(A,C,D)中,存在函数依赖关系{A→D,A→C}则候选码为【】,关系模式R(A,C,D)最高可以达到【】范式。
数据库中,每个事务都感觉不到系统中其他事务在并发执行,这一特性称为事务的______。
在ISA联系中,子类的对象_____其超类的对象的全部属性和方法。
Sybase公司目前的企业级服务器ASE支持下述哪些功能?()Ⅰ.Java语言和XML语言Ⅱ.服务器之间的失败转移Ⅲ.保证分布式事务处理的完整性
分布式数据库系统是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力(称为______),可以执行局部应用。同时,每个结点也能通过网络通信子系统执行全局应用。
随机试题
对某慢性胃炎病人进行护理评估,在收集到的下列资料中,与发病密切有关的因素是()。
预应力混凝土梁钢筋张拉时,其钢筋的实测伸长值与相应的理论计算差值应控制在()以内。
建筑外墙装饰是考虑城市、小区整体规划的效果或商业经营宣传的需要,在建筑外墙增加附属的东西使其更加美观、宣传更加直观。广告牌的设置位置不符合现行国家工程建设消防技术标准的要求的是()。
甲公司是一家关注于高科技移动领域的互:联网公司。公司没有森严的:等级制度,强调员工平等,崇尚创新,在处理多样化的问题时,鼓励员工跨部门合作,在工作中发挥自己的专长和创意,努力打造客户需要的产品。甲公司的企业文化类型属于()。
在教育过程中教师如果用简单粗暴、讽刺挖苦的做法来处理问题就违反了()原则。
相对于小汽车和公共汽车这两种交通方式.轨道交通具有较强的规模经济性,即只有当乘客流量相当大时才会实现盈亏平衡,所以适宜在已经成熟的社区建设,但这样一来,就不能起到为土地开发导向的作用。如果想用轨道交通导向,就要忍受较长时间的亏损,并且冒较大投资风险,且难以
Whatcanwelearnabouttheradiostation?
Theywaitedinthe______forthefrontdoortoopen.
Iunderstand______preparationthatstaffmustputinunderpressuretomeetthedeadline.
SomeyearsagoIwasofferedawritingassignmentthatwouldrequirethreemonthsoftravelthroughEurope.[hadbeenabroadaco
最新回复
(
0
)