问答题

已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存人数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUTII.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WfiteDat()的内容。
[试题程序]
#include<stdio.h>
#include<stdlib.h>
#define MAXNUM 200
int xx[MAXNUM];
int totNum=0;/*文件IN11.DAT中共有多少个正整数*/
int totCnt=0;/*符合条件的正整数的个数*/
double totPjz=0.0;/*平均值*/
int ReadDat(void);
void WriteDat(void);
void CalValue(void)


voidmain()

int i;
system("CLS");
for(i=0;i<MAXNUM;i++)
xx[i]=0;
if(ReadDat())

printf("数据文件IN11.DAT不能打开!\007\n");
return;

CalValue();
printf("文件IN11.DAT中共有正整数=%d个\n",totNum);
printf("符合条件的正整数的个数=%d个\n",totCnt);
printf("平均值=% .21f\n",totpjz);
WriteDat();

int ReadDat(void)

FILE*fp;
int i=0;
if((fp=fopen("IN11.DAT","r"))==NULL)
return 1;
while(! feof(fp))

fscanf(fp,"% d,",&xx[i++]);

fclose(fp);
return 0;

void WriteDat(void)

FILE*fp:
fp=fopen("OUT11.DAT","w");
fprintf(fP,"% d\n% d\n% .21f\n",totNum,totCnt,totPjz);
fclose(fP);

【参考答案】

void CalValue(void)
{
inti; /*定义循环控制变量*/
int......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
(1)在考生文件夹下有一个工程文件sjt3.vbp,窗体上有一个矩形和一个圆,还有垂直和水平滚动条各一个。程序运行时,移动某个滚动条的滚动块,可使圆做相应方向的移动。滚动条刻度值的范围是圆可以在矩形中移动的范围。以水平滚动条为例,滚动块在最左边时,圆靠在矩形的左边线上,如图3—153(a)所示;滚动块在最右边时,圆靠在矩形的右边线上,如图3—153(b)所示。垂直滚动条的情况与此类似。文件中已经给出了全部控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的“”改为正确的内容。注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。(2)在考生文件夹下有一个工程文件sjt4.vbp。窗体中已经给出了所有控件,如图3—154所示。运行时,单击“发射”按钮,航天飞机图标将向上运动,速度逐渐加快,全部进入云中后则停止,并把飞行距离(用坐标值表示)、所用时间(单位为秒)分别显示在标签Label1和Label2中;单击“保存”按钮,则把飞行距离、所用时间存入考生文件夹下的out4.txt文件中。文件中已经给出了程序,但不完整,请去掉程序中的注释符,把程序中的“”改为正确的内容。注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。