首页 > 计算机等级考试
题目内容 (请给出正确答案)
[主观题]

已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并

已知在文件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 [i] = 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);

}

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“已知在文件IN.dat中存有若干个(少于200个)四位数字的…”相关的问题
第1题
已知数据文件in.dat中存有300个四位数,并已调用读函数rcadDat把这些数存入数组a中,请编制一函数j
svalue,其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。最后main函数调用写函数writeDat把数组b中的数输出到文件out.dat中。已知数据文件in.dat中存有300个四位数,并已调用读函数rcadDat把这些数存入数组a中,请编已知数据文件in.dat中存有300个四位数,并已调用读函数rcadDat把这些数存入数组a中,请编

点击查看答案
第2题
已知数据文件in.dat中存有300个四位数,并已调用读函数readDat把这些数存入数组a中,请编制一数jsV
alue,其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。最后main函数调用写函数writeDat把数组 b中的数输出到文件0ut.dat。已知数据文件in.dat中存有300个四位数,并已调用读函数readDat把这些数存入数组a中,请编已知数据文件in.dat中存有300个四位数,并已调用读函数readDat把这些数存入数组a中,请编

点击查看答案
第3题
已知数据文件in.dat中存有300个四位数,并已调用读函数readDat0把这些数存入数组a中,请编制一函数
jsValue,其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。最后main函数调用写函数writeDat把结果cnt,pjz1, pjz2输出到out.dat文件。 例如:1239,9-1-2-3>0,则该数满足条件,参加计算平均值pjz1,且个数cnt=cnt+1。 8129,9-8-1-2<0,则该数不满足条件,参加计算平均值pjz2。已知数据文件in.dat中存有300个四位数,并已调用读函数readDat0把这些数存入数组a中,请

点击查看答案
第4题
已知数据文件IN.dat中存有200个四位数,并己调用读函数rData()把这些数存入数组a中,请编写函数spe

已知数据文件IN.dat中存有200个四位数,并己调用读函数rData()把这些数存入数组a中,请编写函数spellNum(),其功能是:把个位数字和千位数字重新组成一个新的二位数(新二位数的十位数字是原四位数的个位数字,新二位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的二位数(新二位数的十位数字是原四位数的百位数字,新二位数的个位数字是原四位数的十位数字),如果新组成的两个二位数一个是奇数,另一个为偶数,并且两个二位数中至少有一个数能被17整除,同时两个新数的十位数字均不为 0,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数count。最后main()函数调用写函数wData(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。

注意:部分源程序已经给出。程序中已定义数组a[200]、b[200],己定义变量count。请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数rData()和写函数wData()的内容。

include <stdio. h>

define MAX 200

int a[MAX], b[MAX], count = 0;

void spellNum ()

{

}

void rData()

{ int i;

FILE *fp;

fp = fopen("IN.dat", "r") ;

for (i=0; i<MAX; i++)

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

fclose (fp);

}

void wData ()

{ FILE *fp;

int i;

fp = fopen("OUT.dat", "w");

fprintf(fp, "%d\n", count);

for (i=0; i<count; i++)

fprintf(fp, "%d\n", b[i]);

fclose (fp);

}

void main ()

{ int i;

rData ();

spellNum ();

printf ("满足条件的数=%d\n", count);

for (i=0; i<count; i++)

printf("%d ", b[i]);

printf ("\n");

wData ();

}

点击查看答案
第5题
在数据文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数readDat是读取这200组数据存
放到结构数组aa中。请编制函数isSort,其函数的功能是:要求在200组数据中找出第一个数大于第二个数与第三个数之和的数,其中满足条件的个数作为函数jsSort的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数与第三个数之和的大小进行升序排列(第一个数与第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat把结果bb输出到out.dat文件中。 注意:部分源程序存在test.c文件中。 请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。在数据文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数readDat是读取这2在数据文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数readDat是读取这2

点击查看答案
第6题
已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称m

已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量s1(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组.sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。

注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

[试题程序]

include

include

include

include

include

define MAX 100

typedef struct

{ char dm[5]; /*产品代码*/

char mc[11]; /*产品名称* /

int dj; /*单价*/

int s1; /*数量*/

long je; /*金额*/

}PRO;

PRO sell[MAX];

void ReadDat();

void WriteDat();

void SortDat()

}

void main()

{

memset(sell,0,sizeof(sell));

ReadDat();

SortDat();

WriteDat();

}

void ReadDat()

{

FILE *fp;

char str[80],ch[11];

Int i;

fp=fopen("IN3.DAT","r");

for(i=0;i<100;i++)

{

fgets(str,80,fp);

memcpy(sell[i].dm,str,4);

memcpy(sell[i].mc,str+4,10);

memcpy(ch,str+14,4);ch[4]=0;

scll[i].dj=atol(ch);

memcpy(ch,str+18,5);ch[5]=0;

sell[i].s1=atol(ch);

sell[i].je=(long)sell[i].dj*sell[i].s1;

}

fclose(fp);

}

void WriteDat(void)

{

FILE *fp;

int i;

fp=fopen("OUT3.DAT","w");

for(i=0;i<100;i++)

fprintf(fp,"%s%s%4d%5d%101d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].s1,sell[i].je);

fclose(fp);

}

点击查看答案
第7题
已知在文件IN6.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称m

已知在文件IN6.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量s1(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。

注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

[试题程序]

include

Include

include

include

include

define MAX 100

typedef struct

{ char dm[5] /*产品代码*/

char mc[11]; /*产品名称*/

int dj; /*单价*/

int s1; /*数量*/

long je; /*金额*/

}PRO;

PRO sell[MAX];

void ReadDat();

void WriteDat();

void SortDat()

{

}

void main()

{

memset(sell,0,sizeof(sell));

ReadDat();

SorrDat();

WriteDat();

}

void ReadDat()

{

FILE *fp;

char str[80],ch[11];

int i;

fp=fopen("IN6.DAT","r");

for(i=0;i<100;i++)

{

fgets(str,80,fp);

memcpy(sell[i].dm,str,4);

memcpy(sell[i].mc,str+4,10);

memcpy(ch,str+14,4);ch[4]=0;

sell[i].dj=atoi(ch);

memcpy(ch,str+18,5);ch[5]=0;

sell[i].s1=atoi(ch);

sell[i].je=(long)sell[i].dj*sell[i].s1;

}

fclose(fp);

}

void WriteDat(void)

{

FILE *fp;

int i;

fp=fopen("OUT6.DAT","w");

for(i=0;i<100;i++)

fprintf(fp,"%s%s%4d%5d%101d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].s1,sell[i].je);

fclose(fp);

}

点击查看答案
第8题
已知在文件IN9.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称m

已知在文件IN9.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中,金额=单价X数量。函数ReadDat()的功能是读取这100个销售汜录并存入数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从小到大进行排列,排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT9.DAT中。

注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

[试题程序]

include<stdio.h>

include<memory.h>

include<string.h>

include<conio.h>

include<stdlib.h>

define MAX 100

typedef struct

{char dm[5] /*产品代码*/

char mc[11]; /*产品名称*/

int dj; /*单价*/

int sl; /*数量*/

long je; /*金额*/

}PRO;

PR()sell[MAX];

void ReadDat();

void WriteDat();

void SortDat()

{

}

void main()

{

memset(sell,0,sizeof(sell));

ReadDat();

SortDat();

WriteDat();

}

void ReadDat()

{

FILE*fp;

char str[80],ch[ll];

int i;

fp=fopen("IN9.DAT","r");

for(i=0;i<100;i++)

{

fgets(str,80,fp);

memcpy(sell[i].dm,str,4);

memcpy(sell[i].mc,str+4,10);

memcpy(ch.str+14,4);

ch[4]=0;

sell[i].dj=atoi(ch);

memcpy(ch,str+18,5);

ch[5]=0;

sell[i].sl=atoi(ch);

sell[i].je=(long)sell[i].dj*sell[i].sl;

}

fclosc(fp);

}

void WriteDat()

{

FILE *fP;

Int i;

fp=fopen("OUT9.DAT","w");

for(i=0;i<100;i++)

fprintf(fp,"%s %s %4d %5d %101d\n",sell[i].dm,sell[i].mc,sell[i].sl,sell[i].sl,sell[i].je);

fclose(fp);

}

点击查看答案
第9题
在Visual FoxPro中,关系数据库管理系统所管理的关系是 ______。A.一个DBF文件B.若干个二维表C.一

在Visual FoxPro中,关系数据库管理系统所管理的关系是 ______。

A.一个DBF文件

B.若干个二维表

C.一个DBC文件

D.若干个DBC文件

点击查看答案
第10题
在 Visual FoxPro 中,关系数据库管理系统所管理的关系是A) 一个 DBF 文件 B) 若干个二维表

在 Visual FoxPro 中,关系数据库管理系统所管理的关系是

A) 一个 DBF 文件

B) 若干个二维表

C) 一个 DBC 文件

D) 若干个 DBC 文件

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改