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

函数ReadDat()的功能是实现从文件IN32.DAT中读取一篇英文文章存入到字符串数组xx中。请编数StrOR(

函数ReadDat()的功能是实现从文件IN32.DAT中读取一篇英文文章存入到字符串数组xx中。请编数StrOR(),该函数的功能是:以行为单位把字符串中所有小写字母。左边的字符串内容移至该串的右边

存放,然后把小写字母。删除,余下的字符串内容移到已处理字符串的左边存放,最后把已处理的字符串仍按行重新存入字符串数组xx中。最后调用函数WriteDat()把结果输出到文件OUT32.DAT中。

例如, 原文: You can create an index on any field

you have the correct record

结果: n any field Yu can create an index

rd yu have the crrect rec

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

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

请勿改动主函main(),读函数ReadDat()和写函数WriteDat()的内容。

试题程序:

include<stdio. h>

include<string, h>

include<conio, h>

char xx[50] [80];

int maxline=0;

int ReadDat (void);

void WriteDat (void);

void StrOR (void)

{

}

void main ()

{

clrscr ();

if (ReadDat ())

{

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

return;

}

StrOR ();

WriteDat ();

}

int ReadDat (void)

{

FILE *fp;

iht i=0;

char *p;

if ((fp=fopen("IN32.DAT","r"))==NULL) return 1;

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

{

p=strchr (xx [i], ' In' );

if (p) *p=0;

i++;

}

maxline=i;

fclose (fp);

return 0;

}

void WriteDat (void)

{

FILE *fp;

int i;

clrscr ();

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

for (i=0;i {

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

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

}

fclose (fp);

}

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“函数ReadDat()的功能是实现从文件IN32.DAT中读…”相关的问题
第1题
函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数e

函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS18.DAT中。

替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(P)的值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将f(p)所对应的字符进行替代。

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

原始数据文件存放的格式是:每行的宽度均小于80个字符。

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

试题程序:

include〈conio.h>

include〈ctype.h>

unsigned char xx[50] [80];

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

int ReadDat (void);

void WriteDat(void);

void encryptChar()

{

}

main ()

{

clrscr ();

if (ReadDat () )

{

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

return;

}

encryptChar();

WriteDat ();

}

int ReadDat (void)

{

FILE *fp;

int i=0;

unsigned char *p;

if((fp = fopen("ENG18.IN", "r")) ==NULL)

return 1;

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

{

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

if(p) *p = 0;

i++;

}

maxline = i;

fclose(fp);

return 0;

}

void WriteDat(void)

{

FILE *fp;

int i;

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

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

{

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

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

}

fclose(fp);

}

点击查看答案
第2题
函数ReadDat()的功能是实现从文件ENG98.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数e

函数ReadDat()的功能是实现从文件ENG98.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件ps98.dat中。

替代关系,f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或其ASCII值是奇数,则该字符不变,否则将f(p)所对应的字符进行替代。

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

原始数据文件的存放格式是每行的宽度均小于80个字符。

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

试题程序:

include<conio.h>

include<stdio.h>

include<string.h>

include<ctype.h>

unsigned char xx[50][80];

int maxline=0;

int ReadDat(void);

void WriteDat(void);

void encryChar()

{

}

void main(

{

clrscr();

if(ReadDat())

{

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

return;

}

encryChar();

WriteDat();

}

int ReadDat(void)

{

FILE *fp;

int i=0;

unsigned char *p;

if((fp=fopen("ENG98.IN","r"))==NULL) return 1;

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

{

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

if(p) *p=0;

i++;

}

maxline=i;

fclose(fp);

return 0;

}

void WriteDat()

{

FILE *fp;

int i;

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

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

{

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

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

}

fclose(fp);

}

点击查看答案
第3题
函数ReadDat()实现从文件IN47.DAT中读取1000个十进制整数到数组xx中。请编制函数Compute()分别计

函数ReadDat()实现从文件IN47.DAT中读取1000个十进制整数到数组xx中。请编制函数Compute()分别计算出xx中偶数的个数even、奇数的平均值avel、偶数的平均值ave2及所有偶数的方差toffc的值,最后调用函数WriteDat()把结果输出到 OUT47.DAT文件中。

计算方差的公式如下:

函数ReadDat()实现从文件IN47.DAT中读取1000个十进制整数到数组xx中。请编制函数C

设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。

原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。

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

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

试题程序:

include<stdio.h>

include<stdlib.h>

include<string.h>

define MAX 1000

int xx[MAX],odd=0,even=0;

double avel=0.0,ave2=0.0,totfc=0,0

void WriteDat(void);

int ReadDat(void)

{

FILE *fp;

int i,j;

if((fp=fopen("IN47.DAT","r"))==NULL)

return 1;

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

{

for(j=0;j<10;j++)

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

fscanf(fp,"/n");

if(feof(fp)) break;

}

fclose(fp);

}

viod Compute(void)

{

}

void main()

{

int i;

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

xx[i]=0;

if(ReadDat())

{

print f ("数据文件IN47.DAT 不能打形式!\007\n");

return;

}

Compute();

printf("EVEN=%d\nAVE1=%f\nAVE2=%f\nTOTFC=%f\n",even,avel,ave2,totfc);

WriteDat();

}

void WriteDat(void)

{

FILE *fp;

int i;

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

fprintf(fp,"%d\n%lf\n%lf\n%lf\n",even,ave1,ave2,totfc);

fclose(fp);

}

点击查看答案
第4题
函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组xx中;请编写函数 Compute()分别计算

函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组xx中;请编写函数 Compute()分别计算出数组xx中奇数的个数odd、偶数的个数even,以及所有数的平均值aver和方差totfc的值。最后调用函数WriteDat(),把结果输出到OUT. dat文件中。

计算方差的公式如下:

函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组xx中;请编写函数 Co

原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。

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

include <stdio. h>

include <stdlib. h>

include <string. h>

define MAX 1000

int xx[MAX], odd = 0, even = 0;

double aver = 0.0, totfc = 0.0;

void WriteDat(void);

int ReadDat(void)

{ FILE *fp;

int i, j;

if ((fp = fopen("IN. dat", "r")) == NULL)

return 1;

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

{ for (j=0; j<10; j++)

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

fscanf(fp, "\n");

if (feof(fp))

break;

}

fclose(fp);

return 0;

}

void Compute(void)

{

}

void main ()

{ int i;

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

xx[i] = 0;

if (ReadDat())

{

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

return;

}

Compute ();

printf("odd=%d\neven=%d\naver=%f\ntotfc=%f\n", odd, even, aver, totfc);

WriteDat ();

}

void WriteDat(void)

{ FILE *fp;

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

fprintf(fp, "%d\n%d\n%f\n%f\n", odd, even, aver, totfc);

fclose (fp);

}

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

●试题三

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

【说明】

下面的程序功能的功能是以行为单位对字符串按下面的条件进行排序。排序条件为:从字符串中间一分为二,右边部分按字符的ASCⅡ值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上

例如:位置:0 1 2 3 4 5 6 7

源字符串:h g f e a b c d

则处理后字符串:d c b a h g f e

函数ReadDat()实现从文件in.dat中读取数据(每行字符串长度均小于80),函数WriteDat()把结果dat输出到文件out.dat中。

【程序】

#include<stdio.h>

#include<siring.h>

#include<conio.h>

char dat[20][80];

void jsSort()

{

int i,j,k,strl;

char ch;

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

{

strl=strlen(dat[i]);

for(j= (1) ;j<strl;j++)/*对后半部分的字符串进行排序*/

for(k=j+1;k<strl;k++)

if((2) )

{

ch=dat[i][j];

dat[i][j]=dat[i][k];

dat[i][k]=ch;

}

for(j=0; (3) j++)/*前后两部分进行交换*/

{

ch=dat[i][j];

dat[i][j]=dat[i][(strl+1)/2+j];

dat[i][(strl+1)/2+j]=ch;

}

}

}

void main()

{

readDat();

jsSort();

writeDat();

}

readDat()

{

FILE*in;

int i=0;

char*p;

(4) ;

while(i<20 && fgets(dat[i],80,in)!=NULL)

{

p=strchr(dat[i],"\n");

if(p)*p=0;

i++;

}

fclose(in);

}

writeDat()

{

FILE*out;

int i;

clrscr();

out=fopen("out.dat","W");

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

{

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

printf((5) );

}

fclose(out);

}

点击查看答案
第6题
函数Rdata()实现从文件IN.dat中读取一篇英文文章存入字符串数组string中,请编写函数SortCharA(),

函数Rdata()实现从文件IN.dat中读取一篇英文文章存入字符串数组string中,请编写函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字爷串数组string中。最后调用函数Wdata(),把结果string输出到OUT.dat文件中。

例如,原文:dAe, BfC.

CcbbAA

结果:,. ABCdef

AACbbc

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

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

include <stdio.h>

include <string.h>

include <conio.h>

char string [50] [80];

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

int Rdata (void);

void Wdata (void);

void SortCharA(void)

{

}

void main ()

{ if (Rdata ())

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

return;

}

SortCharA ();

Wdata ();

}

int Rdata (void)

{ FILE *fp;

int i = 0;

char *p;

if ((fp = fopen("IN. dat", "r")) == NULL)

return 1;

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

{ p = strchr(string[i], '\n');

if (p)

*p = 0;

i++;

}

maxline = i;

fclose (fp);

return 0;

}

void Wdata (void)

{ FILE *fp;

int i;

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

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

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

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

}

fclose (fp);

}

点击查看答案
第7题
在文件in33.dat中有200个正整数,且每个正整数均在1000至9999之间。函数readDat()的功能是读取这20

在文件in33.dat中有200个正整数,且每个正整数均在1000至9999之间。函数readDat()的功能是读取这200个数并存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按照每个数的后3位的大小进行升序排列,将排序后的前10个数存入数组bb中,如果数组bb中出现后3位相等的数,则对这些数按原始 4位数据进行降序排列,最后调用函数writeDat()把结果bb输出到文件out33.dat中。

例如:处理前6012 5099 9012 7025 8088

处理后9012 6012 7025 8088 5099

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

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

试题程序:

include<stdio. h>

include<string. h>

include<conio. h>

int aa[200] ,bb[10];

void readDat ();

void writeDat();

void jsSort()

{

void main ()

{

readDat ();

jsSort ();

writeDat ();

}

void readDat ()

{

FILE *in;

int i;

in=fopen ("in33 .dat" , "r" );

for(i=0;i<200;i++) fscanf (in, "%d ".&aa[i]);

fclose (in);

}

void writeDat ()

{

FILE *out;

int i;

clrscr ();

ut =fopen ("out33 .dar" , "w" );

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

{

printf ("i=%d, %d\n", i+1, bb[i] ;

fprintf (out, "%d\n" ,bb[i] );

}

fclose (out);

}

点击查看答案
第8题
已知在文件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);

}

点击查看答案
第9题
在数据文件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

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