首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知在文件in.dat中存有若干个(个数<200)四位非零整数,函数readdat()读取这若干个整数并存入数组xx中。请编制函数calvflue(),其功能要求:①求出该文件中共有多少个正整数totnum;②求这些数右移1~6位,产生的一系列新数中含至少
已知在文件in.dat中存有若干个(个数<200)四位非零整数,函数readdat()读取这若干个整数并存入数组xx中。请编制函数calvflue(),其功能要求:①求出该文件中共有多少个正整数totnum;②求这些数右移1~6位,产生的一系列新数中含至少
admin
2010-06-17
32
问题
已知在文件in.dat中存有若干个(个数<200)四位非零整数,函数readdat()读取这若干个整数并存入数组xx中。请编制函数calvflue(),其功能要求:①求出该文件中共有多少个正整数totnum;②求这些数右移1~6位,产生的一系列新数中含至少一个完全平方数(某个整数的平方)的个数totcnt,以及满足此条件的这些数(右移前的值)的算术平均值totpjz,最后调用函数writedat()把所求的结果输出到文件out.dat中。
部分源程序已给出。
请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。
#include<stdio.h>
#include<conio.h>
#define MAXNUM 200
int xx[MAXNUM];
iht totnum=0;
iht totcnt=0;
double totpjz=0.0;
int readdat(void);
void writedat(void);
void calvalue(void)
{
}
void main ()
{
int i;
clrscr ();
for (i=0; i if (readdat ())
{
printf("Can’t open the data file in.dat!\007\n");
return;
}
calvalue ();
printf ( "totnum=%d\n", totnum);
printf ( "totcnt=%d\n" , totcnt );
printf ( "totpj z=%. 21f\n", totpj z);
writedat ();
}
int readdat (void)
{
FILE *fp;
int i=0;
if( (fp=fopen ("in.dar", "r") )==NULL) return 1;
while ( ! feof (fp))
fscanf (fp, "%d, ", &xx [i++] ;
fclose (fp);
return 0;
}
void writedat (void)
{
FILE *fp;
fp=fopen ( "out. dar", "w" )
fprint f ( fp, "%d\n%d\n%. 21 f\n", totnum, totcnt, totpjz);
fclose (fp);
}
选项
答案
#include <math.h> void calvalue(void) { int i, j, data, sqt; for(i=0;i { if(!xx[i]) break; /*数据结束*/ if(xx[i]>0) totnum++; /*计数*/ for (j=1; j<=6; j++) { data=(xx[i]>>); /*移位*/ sqt =(int) (sqrt ( (double) data) +0.5); /*求平方根并四舍五入取整*/ if(sqt*sqt == data) /*完全平方数*/ { totcnt++; totpjz+=xx[i]; /*计数,求和*/ break; } } } totpjz/=totcnt; }
解析
类型:整数移位运算。
关键点:
(1)数据结束判断:分析main()和readdat(),得到xx
为有效数据的条件是0<=xx
<MAXNUM且xx
!=0。
(2)移位运算:>>,注意运算符优先级。
(3)完全平方数判断:可以开平方再平方与原数比较,也可以枚举出10000以内所有四位完全平方数再查表,解答中采用第一种,需要加上头文件math.h。
转载请注明原文地址:https://jikaoti.com/ti/vX97FFFM
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
Linux操作系统内核的网络模块可分为两部分:一部分提供对各种网络资源访问的控制,称为网络【75】_______;另一部分提供对各种网络硬件的支持,称为网络【76】_______。
下面是关于嵌入式系统的叙述,其中错误的是()。
关于ARM处理器的MMU,以下说法错误的是()。
基于ARM内核的嵌入式芯片是以ARM内核为基础,通过AMBA总线将其他硬件组件连接在一起的,下面列出的4个组件中,哪一个组件是挂在AMBA的系统总线上的?()。
若某嵌入式系统的应用程序基于μC/OS–II操作系统平台来开发,那么,应用程序的main()函数中,需要用函数【79】来创建任务。创建任务前用函数【80】来初始化μC/OS–II。
ADSL是利用普通电话线将家庭用户计算机接入互联网的技术之一。此时,用户端需配置一个【43】_______设备,计算机则必须有【44】_______接口。
在经典ARM处理器中ARM920T是典型代表,采用ARM9TMDI内核,它具备的主要性能和部件包括()。①支持ARM/Thumb指令集②具有快速乘法器③哈佛结构④指令Cache与数据Cache分离⑤五级流水线⑥具有MMU⑦唤醒
下面关于引导加载程序(Bootloader)的叙述中,正确的是()。
某ARM处理器内部某功能部件对存储器的保护功能,提供了简单代替存储器管理部件的方法来管理存储器,这个部件用英语缩写为()。
在完全二叉树的顺序存储中,若结点i有左子女,则其左子女是结点()。
随机试题
下列选项中,对交易假设内涵的理解,说法错误的是【】
坚持正确的真理观,必须反对绝对主义真理观和相对主义真理观。
36岁妇女,月经周期规律。近2个月有接触性出血。妇科检查宫颈重度糜烂,阴道脱落细胞涂片发现核大深染,核型不规则或双核。按巴氏五级分类法,可能是下列哪项
患者,女性,30岁,因面部皮疹,双下肢浮肿2年,尿量减少1周入院。BP150/90mnlHg,尿蛋白定量6.5g/d,RBC满视野,血清ALB26g/L,血肌酐256μmol/L,C3下降,ANA(+),B超示双肾稍大。最可能的诊断是
某建筑工人,施工中被建筑材料砸伤,其现场急救方法错误的是
通常情况下,如果企业实现了利润,表明企业的所有者权益将减少,业绩得到了提升;反之,如果企业发生了亏损(即利润为负数),表明企业的所有者权益将增加,业绩下降。()
根据生命周期假说,消费者的消费对积累的财富的比率的变化情况是()。
1,,()
教学设计的步骤有哪些?
UsingFacebookmakespeoplesadder,atleastaccordingtosomeresearch.Butjustwhatisitaboutthesocialnetworkthattakes
最新回复
(
0
)