首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知在文件in.dat中存有若干个(个数<200)四位非零整数,函数readdat()读取这若干个整数并存入数组xx中。请编制函数calvflue(),其功能要求:①求出该文件中共有多少个正整数totnum;②求这些数右移1~6位,产生的一系列新数中含至少
已知在文件in.dat中存有若干个(个数<200)四位非零整数,函数readdat()读取这若干个整数并存入数组xx中。请编制函数calvflue(),其功能要求:①求出该文件中共有多少个正整数totnum;②求这些数右移1~6位,产生的一系列新数中含至少
admin
2010-06-17
67
问题
已知在文件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://www.kaotiyun.com/show/EBvZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
下面关于AMBA的叙述中,错误的是()。
电梯群控系统由楼层控制器、电梯轿箱控制器、电机房控制器和中央控制子系统组成,其中电梯轿箱控制器的基本功能要求如下:a、需要若干个对应楼层的按键和开门、关门、紧急呼叫等功能按键,用户可同时按下若干个楼层按键。需要用7段LED显示器显示电梯所运行到的楼层。
ARM处理器中用作程序计数器PC的通用寄存器是()。
下面是关于ARM嵌入式芯片中的GPIO的叙述,其中错误的是()。
当有普通外部中断发生,系统将进入外部中断模式,相应寄存器的低5位变成10010B,该寄存器为()。
仿真平台(仿真开发平台)一般指嵌入式系统开发过程中使用的【69】、仿真软件或者【70】。
在μC/OS—II操作系统中,当处于运行态的任务执行节拍延时函数OSTimeDly()后,该任务将转入__________【73】态。一旦预定的延时时间达到,该任务立即转入__________【74】态。
关于ARM指令中的条件域,以下表述错误的是()。
Linux内核由若干个子系统组成,一般来说下面哪一个不是Linux内核的子系统()。
用二维表结构表示实体及实体间联系的数据模型称为
随机试题
某工程划分为3个施工过程在5个施工流水段组织加快的成倍节拍流水施工,流水节拍值分别为4D,2D,6d,该工程的施工总工期为()d。
患者女性,50岁,主动脉瓣关闭不全病史25年,PDE示重度反流。如能听到AustinFlint杂音,该杂音为
A.阴B.阳C.阴中之阳D.阳中之阴E.阴中之阴
A.糖苷键B.疏水堆积力C.氢键D.3’,5’—磷酸二酯键E.Β-折叠维持DNA双链结构纵向稳定性的是
新生儿硬肿症的发生顺序为
根据《劳动法》,下列关于妇女、未成年人劳动保护的说法,正确的有()。
下列费用中,应计入建筑安装工程施工机具使用费的有()。
阿克姆厂的审计员:上周在阿克姆面包厂的夜班中,烤制的面包有6%发现有问题,而在白班中却没有发现有问题的面包。面包在被烤制的同一天接受检查,所以,夜班监控质量的质检员明显地比白天的质检员更警觉,尽管他们在夜间工作。上述论证依赖于以下哪项假设?
Whatarethesepeopleplanningtodo?
Whatdoesthespeakerdomostprobably?
最新回复
(
0
)