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

fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是()。

A.字符串读入后会自动加入'\0'

B.fp是指向该文件的文件型指针

C.fgets函数将从文件中最多读入n个字符

D.fgets函数将从文件中最多读入n-1个字符

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“fgets(str,n,fp)函数从文件中读入一个字符串,以…”相关的问题
第1题
fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是()。A)字符串读入后会自动加入'\0

fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是()。

A)字符串读入后会自动加入'\0'

B)fp是指向该文件的文件型指针

C)fgets函数将从文件中最多读入n个字符

D)fgcts函数将从文件中最多读入n-1个字符

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

●试题八

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

【说明】

以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。

【程序】

#include<stdio.h>

main()

{FILE*fp;

charstr[100];inti=0;

if((fp=fopen("text.txt" (1) ))==NULL)

{printf("can't open this file.\n");exit(0);}

printf("input astring:\n");gest(str);

while(str[i])

{if(str[i]>=′a′ && str[i]<=′z′)

str[i]= (2) ;

fputc(str[i], (3) );

i++;

}

fclose(fp);

fp=fopen("test.txt", (4) );

fgets(str,100,fp);

printf("%s\n",str);

(5) ;

}

点击查看答案
第3题
C语言库函数fgets(str,n,fp)的功能是______。A.从fp指向的文件中读取长度n的字符串存入str指向的

C语言库函数fgets(str,n,fp)的功能是______。

A.从fp指向的文件中读取长度n的字符串存入str指向的内存

B.从fp指向的文件中读取长度不超过n-1的字符串存入str指向的内存

C.从fp指向的文件中读取n个字符串存入str指向的内存

D.从str读取至多n个字符到文件fp

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

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

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

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

试题程序:

include〈stdio.h>

include〈mem.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;

PRO sell [MAX];

void ReadDat ();

void WriteDat ();

void SortDat ()

{

}

main ()

{

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

ReadDat ();

SertDat ();

WriteDat ();

}

veld ReadDat ()

{

FILE *fp;

char str[80] , ch[ill;

int i;

fp = fopen("IN16.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;

}

fclose (fp);

}

void WriteDat()

{

FILE *fp;

int i;

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

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

{

fprintf(fp, "%s %s %4d %5d %101dkn", sell[i] .dm, sell[i] .mc,

sell[i].dj, sell[i].sl, sell[i].je);

}

fclose(fp);

}

点击查看答案
第5题
试题二(共15分)阅读以下说明和C 函数,将应填入(n) 处的字句写在答题纸的对应栏内。[说明]某单位准

试题二(共15分)

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

[说明]

某单位准备进行一次选举,对指定的n 名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n 名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上被涂黑的圆圈数不得超过3 个,也不得少于1 个,否则视为无效选票。投票结束后,所有选票经计算机扫描处理,形成了描述选票状态的文本文件。例如,

n=8 时所形成的文件如下:

01011000

10010100

10011000

11111111

00000000

00111000

其中,每行表示一张选票的数据,每列代表一位候选者的得票情况。第i 行第j 列为1,表示第i 张选票上投了第j 名候选人1 票。函数statistic()的功能是读入选票数据,并统计每位候选者的得票数,函数返回

有效选票数。

[C函数]

int statistic(FILE *fp,int candidate[],int n)

{ /* 从文件中读入选票数据,n 为候选人数量(n<80),从有效选票中统计每位候选者

的得票数并存入candidate[],函数返回有效选票数*/

char str[80]; /* str 保存读入的一张选票数据 */

int i,tag = 0; /* tag用于判断每张选票是否有效 */

int q = 0; /* q用于计算有效选票数 */

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

candidate[i] = 0;

while ((1) ) {

fgets(str,80,fp); /* 读入一张选票数据 */

for(tag = 0,i = 0; (2) ; i++)

if (str[i] == '1') tag++;

if ((3) ){ /* 若是有效选票,则进行统计 */

(4) ;

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

if (str[i] == '1') (5) ;

}

}

return q;

}/* statistic */

点击查看答案
第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题
函数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);

}

点击查看答案
第10题
●试题四 阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 从文件IN.DA

●试题四

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

【说明】

从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编写程序,其功能是:以行为单位把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放。最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT(),把结果XX输出到文件OUT5.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个字符,含标点符号和空格。

【函数】

#include "stdio.h"

#include "string.h"

#include "conio.h"

#include "ctype.h"

#include "mem.h"

unsigned char xx[50][80];

int maxline=0;

int readdat(void);

void writedat(void);

/*将题目要求的字符串中所有小写字母o左边的字符串内容移到该串的右边存放,即

将串中"最后"一个字母o左右两侧的内容互换*/

void StrOR(void)

{

inti;

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

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

{ t[0]=′/0′;

p2=xx[i];

while(*p2)/*找到最后一个′o′*/

{if((1) )p1=p2;

p2++;

}

strcat(t,p1+1);

*p1=′\\0′;

strcat(t,xx[i]);

p1=xx[i];

p2=t;

while(*p2)/*删去字符′o′*/

{if((2) ) (3) =*p2;

p2++;

}

(4) ;

}

}

void main()

{

clrscr();

if(readdat())

{printf("Can't open the file IN.DAT!\\n");

return;

}

StrOR();

writedat();

}

int readdat(void)

{

FILE*fp;

int i=0;

char*p;

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

return 1;

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

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

if(p)

*p=0;

i++;

}

maxline= (5) ;

fclose(fp);

return 0;

}

void writedat(void)

{FILE*fp;

int i;

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

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

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

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

}

fclose(fp);

}

}

}

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