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

已知数据文件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 ();

}

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“已知数据文件IN.dat中存有200个四位数,并己调用读函数…”相关的问题
第1题
已知在文件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);

}

点击查看答案
第2题
已知数据文件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中,请编

点击查看答案
第3题
已知数据文件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中,请编

点击查看答案
第4题
已知数据文件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中,请

点击查看答案
第5题
已知数据文件IN85.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函

已知数据文件IN85.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函gtjsVal(),其功能是:如果一个4位数的千位数字上的值加十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到 OUT85.DAT文件中。

注意:部分源程序已给出。

程序中已定义数组:a[200],b[200],已定义变量:cnt。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序:

include

define MAX 200

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

void jsVal()

{

}

void readDat()

{

int i;

FILE *fp;

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

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

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

fclose(fp);

}

main()

{

int i;

readDat();

jsVal();

print f ("满足条件的数=%d\n" , cnt);

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

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

printf("\n");

writeDat();

}

writeD&t()

{

FILE *fp;

int i;

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

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

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

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

fclose(fp);

}

点击查看答案
第6题
已知数据文件IN89.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函

已知数据文件IN89.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函数jsVal(),其功能是:如果一个4位数的千位数字上的值加个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且此4位数是奇数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的4位数输出到 OUT89.DAT文件中。

注意:部分源程序已给出。

程序中己定义数组:a[200],b[200],已定义变量:cnt。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序:

include<stdio.h>

define MAX 200

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

void jsVal()

{

}

void readDat()

{

int i;

FILE *fp;

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

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

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

fclose~fp);

}

main()

{

int i;

readDat();

jsVal();

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

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

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

printf("\n");

writeDat();

}

writeDat()

{

FILE *fp;

int i;

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

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

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

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

fclose(fp); ~'

}

点击查看答案
第7题
已知数据文件IN45.DAT中存有200个4位数,并已调用读函数IeadDat()把这些数存入数组a中,请编制一函

已知数据文件IN45.DAT中存有200个4位数,并已调用读函数IeadDat()把这些数存入数组a中,请编制一函数isVa1(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab-ed≥10且ab-cd≤20且两个数均为偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数ent,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT45.DAT文件中。

注意:部分源程序已给出。

程序中已定义数组:a[200],b[200],已定义变量:cnt。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序;

include<stdio. h>

define MAX 200

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

void jsVal()

{

}

void readDat()

{

int i;

FILE *fp;

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

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

fscanf (fp, "%d", &a Iii );

fclose (fp);

}

main ()

{

int i;

readDat();

jsVal();

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

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

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

printf("\n");

writeDat();

}

writeDat()

{

FILE *fp;

int i;

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

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

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

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

fclose(fp);

}

点击查看答案
第8题
己知数据文件IN45.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函

己知数据文件IN45.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab-cd≥10且ab-cd≤20且两个数均为偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从人到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT45.DAT文件中。

注意:部分源程序已给出。

程序中已定义数组:a[200],b[200],已定义变量:cnt。

请勿改动主函数main0、读函数readDat()和写函数writeDat()的内容。

试题程序:

include<stdio.h>

define MAX 200

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

void jsVal()

{

}

void readDat()

{

int i;

FILE *fp;

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

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

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

fclose(fp);

}

main ()

{

int i;

readDat();

jsVal();

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

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

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

printf("\n");

writeDat();

}

writeDat()

{

FILE *fp;

int i;

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

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

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

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

fclose(fp);

}

点击查看答案
第9题
●试题四 阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 该程序的功

●试题四

阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后把结果xx输出到文件OUT6.DAT中。

例如:原文:You He Me

I am a student.

结果:Me He You

student a am I

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

【函数】

#include<string.h>

#include<conio.h>

#include<ctype.h>

#include<stdio.h>

char xx[50][80];

int maxline=0;/*文章的总行数*/

int ReaaDat(void);

void WriteDat(void);

void StrOL(void)

{

char*pl,*p2,t[80];

int i;

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

{p1=xx[i];t[0]=0;

while(*p1)p1++;

while(p1>=xx[i])

{while(!isalpha(*p1)&&p1!=xx[i])p1--;

p2=p1;

while((1) )p1--;

if(p1==xx[i])

if(isalpha(*p1))p1--;

else if(!isalpha(*(p1+1)))break;

p2++;

(2) ;

strcat(t,p1+1);

strcat(t," ");

}

strcpy(xx[i],t);

}

}

void main()

{

if((3) ){

printf("数据文件in.dat不能打开!\n\007");

return;

}

StrOL();

writeDat();

getch();

}

int ReadDat(void)

{

FILE*fp;

int i=0;

char*p;

if((fp=fopen("e:\\a\\in.dat","r"))==NULL)return 1;

while(fgets(xx[i],80,fp)!=NULL){

p=strchr(xx[i],′\n′);

if(p)*p=0;

i++;

}

maxline= (4)

fclose(fp);

return 0;

}

void WriteDat(void)

{

FILE*fp;

int i;

fp=fopen("e:\\a\\out6.dat","w");

for(i=0;i< (5) ;i++){

printf("%s\n",xx[i]);

fprintf(fp,"%s\n",xx[i]);

}

fclose(fp);

}

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