首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是
已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是
admin
2010-09-05
28
问题
已知在文件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全国计算机三级
相关试题推荐
如下所列条目中,属于当前应用开发工具的发展趋势有哪些?()Ⅰ.采用三层Client/Server结构Ⅱ.对Web应用的支持Ⅲ.开放的、构件式的分布式计算环境
设关系模式R(A,B,C)有函数依赖集F={A→B,B→C),则关系R的规范化程度至多达到()。
用值域的概念来定义关系,关系是属性值域笛卡尔积的一个______。
在SQL语言中,如果要为一个基本表增加列和完整性约束条件,应该使用SQL语句【】。
从学生选课信息表中“找出无成绩的元组”的SQL语句是______。在“查询选修课程号为4,且成绩在80分以上的所有学生的学号和姓名”的SQL语句中,将使用的表是______。
在一棵二叉排序树中,按______遍历得到的结点序列是有序序列。
用值域的概念宋定义关系,关系是属性值域笛卡儿积的一个_____。
下面有关E-R模型向关系模型转换的叙述中,不正确的是________。
如下解除死锁的方法可行的是()。
随机试题
将权力定位于群体的领导作风是()
急性白血病化疗期间多饮水是为了
道氏理论认为开盘价是最重要的价格,并利用开盘价计算平均价格指数。()
《搜神记》是魏晋南北朝志怪小说中最完整、最有代表性的作品集。它汇集了晋朝前民间传说中的神奇怪异故事,很多故事都具有比较积极的意义,对后世影响深远。下列选项中,不是出自《搜神记》的故事是()。
下列选项中加下划线的字的读音全部正确的一组是()。
彼得原理指的是在通常的层级组织中,在一个岗位工作出色的职员往往会被提拔到上一层级的岗位上,直到他被提拔到一个不能胜任的岗位为止,即每一个职员都有可能晋升到不能胜任的层级。根据上述定义,下列体现彼得原理的是:
简述孔子“学而优则仕”的观点。
(05年)设F(x)是连续函数f(x)的一个原函数,表示“M的充分必要条件是N”,则必有
若对音频信号以10kHz采样率、16位量化精度进行数字化,则每分钟的双声道数字化声音信号产生的数据量约为()。
Whatisthemaintopicofthisconversation?
最新回复
(
0
)