首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知在文件in70.dat中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是:(1)求出这个文件中共有多少个正整数 totNum。(2)求这些数右移一位后,
已知在文件in70.dat中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是:(1)求出这个文件中共有多少个正整数 totNum。(2)求这些数右移一位后,
admin
2010-06-17
29
问题
已知在文件in70.dat中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是:(1)求出这个文件中共有多少个正整数 totNum。(2)求这些数右移一位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz。最后调用函数WriteDat()把所有结果输出到文件out70.dat中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include<stdio.h>
#include<conio.h>
#define MAXNUM 200
int xx[MAXNUM];
int totNum=0;
int totCnt=0;
double totPjz=0.0;
int ReadDat(void);
void WriteDat(void);
void CalValue(void)
{
}
void main ( )
{
int i;
clrscr();
for (i=0; i<MAXNUM; i++)
xx
=0;
if (ReadDat ( ))
{
printf ("数据文件IN70.DAT不能打开!\007\n");
return;
}
CalValue();
printf ("文件IN70.DAT中共有正整数=%d个\In", totNum);
printf ("符合条件的正整数的个数=%d个\n", totCnt);
printf ("平均值=%.2lf\n",totPjz);
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
if((fp=fopen("IN70.DAT","r")==NULL) return 1;
while(!feof(fp))
{
fscanf (fp, "%d", &xx [i++])
}
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE *fp;
fp=fopen("OUT70.DAT","w");
fprintf(fp,"%d\n%d\n%.2lf\n",totNum, totCnt,totPjz);
fclose(fp);
}
选项
答案
void CalValue(void) { int i,data; for(i=0;i<MAXNUM;i++) { if(!xx[i])break; /*如果数为0,则表示数组存的数据已经结束,退出循环*/ if(xx[i]>0) totNum++; /*统计正整数的个数*/ data=xx[i]>>1; /*将数右移一位*/ if(data%2) /*如果产生的新数是奇数*/ { totCnt++; /*统计满足条件的数的个数*/ totPjz+=xx[i]; /*求满足条件的数的总和*/ } } totPjz/=totCnt; /*求满足条件的数的平均值*/ }
解析
本题考查的知识点如下:
(1)右移运算符“>>”的使用。
(2)数组结束的判断和强行退出一层循环结构。
(3)特殊运算符“%”的使用。
在本题中,并没有给出确切的数据个数,是以数据的最大个数定义的数组。在主函数中,给所有的数组成员赋初值为0,而从文件中读取得数据是正整数,所以只要数组的某个元素为0,则说明数组存的数据已经结束。此时就可以结束循环结构。这里要使用右移运算符实现数据的右移位,右移运算符是双目运算符。运算符左侧是要移的数据,右侧是移动的位数。右侧移出的数据(低位数据)舍弃。1个数除以2取余所得的数是1,则这个数是奇数。
转载请注明原文地址:https://kaotiyun.com/show/gIvZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
数字图像的像素深度指每个像素用多少个二进位来表示。它决定了图像中可能出现的不同颜色(或不同亮度)的最大数目。像素深度是8位的灰度图像,其不同的亮度等级总数为__________【43】种。最多可以有大约1600万种颜色的图像称为真彩色图像,真彩色图像的像
在μC/OS—II启动过程中,BootLoader执行完毕后,执行应用程序主文件中main()时,依次执行的三个主要的函数是:①OSInit();②___________【67】;③___________【68】。
下面是关于基于ARM内核的典型嵌入式系统硬件组成的叙述()。Ⅰ.典型嵌入式硬件系统包括完成模拟量和数字量输入功能的前向通道Ⅱ.典型嵌入式硬件系统包括完成模拟量和数字量输出功能的后向通道Ⅲ.典型嵌入式硬件系统包括人机交互
在嵌入式系统(如数码相机)中,获取数字图像的过程大体分为四步,如下图所示,其中前3个步骤分别是()。
数字视频(及其伴音)在嵌入式系统中使用或在互联网上传输时,其文件格式有多种。下面几种文件格式中不属于数字视频文件格式的是()。
设R1中为一正整数,将其数值的一半存入R2的ARM指令正确的是()。
在μC/OS—II操作系统中有多种方法可以保护任务间的共享数据并支持任务之间的通信。下列各项中不能用于保护任务间的共享数据或支持任务间通信的是()。
假设一台数码相机一次可连续拍摄24位色(真彩色)的4096×4096的彩色相片160张,数据压缩比平均是4,则它使用的存储器容量大约是()。
嵌入式应用程序经过交叉工具链生成映像文件之后,需要下载到【77】进行调试。调试完毕后映像文件必须由专用工具烧写到ROM中去,这种烧写工具俗称【78】。
随机试题
A、looksB、zoosC、photosD、fillsD
“和调于五脏,洒陈于六府”指的是何气的分布
婴幼儿化脓性颌骨骨髓炎多见于
常用的加热炮制方法有()
服磺胺类药物需要多饮水的原因是()。
某综合楼总建筑面积为10000m2,其中可出售的居住建筑面积为7000m2,可出租的商业建筑面积为1500m2,剩余建筑面积为附属设备等用房。该综合楼的有效面积系数为()。
场景某城市道路改造工程,随路施工的有0.4MPa的DN500中压燃气,DNl000给水管道铺设在道路下,燃气管道与给水管道均为钢管,水平距离按有关规范规定设计,热力管道工程采用暗挖工艺施工,并对其施工单位的选择作了相应的规定;给水管道施工完毕后进行了沟槽
(材料)2019年1-12月份,全国房地产开发投资132194亿元,比上年増长9.9%,增速比上年加快0.4个百分点。其中,住宅投资97071亿元,增长13.9%,增速比上年加快0.5个百分点。2019年,商品房销售面积171558万平方米,比上年下降0
第二次世界大战期间,法国海外流亡政府委派约瑟夫、汤姆、杰克和刘易斯4位特工,返回巴黎,获取情报。这4人分别选择了飞机、汽车、轮船和火车四种不同的出行方式,已知:(1)明天或者刮风或者下雨。(2)如果明天刮风,那么约瑟夫就选择火车出行。(3
Youeachhaveachancetotalkbyyourselves.Theexaminergivesyouacolourphotographtolookatandasksyoutotalkabouti
最新回复
(
0
)