2021-12-1 SCAU oj 实验12

1105 [填空]文本文件操作_字符读入

描述

在当前目录中存在文件名为"case1.in"的文本文件,现要求你使用fopen函数命令打开该文件,读出里面的所有字符, 遇到大写字母的,将其变为小写字母,其它字符不变,最后将所有字符按顺序在屏幕上输出。请填空完成程序, (注意,填空题,请不要使用return 0结束,否则会影响评判而判错)

(如case1.in内容如下)
Hello my Dear:
Have a GooD Time!
(在屏幕上输出结果如下)
hello my dear:
have a good time!

(提示,在提交前要测试自己的代码是否正确,可在源文件所有目录自己创建一个名为case1.in的文本文件,
在文件中自己打入一些字母,以便测试自己的代码是否正确)
#include "stdio.h"

main()
{
    FILE *fp;
    char ch;
    if((fp=fopen("case1.in","r"))==NULL)
        return 0;
    while((ch=fgetc(fp))!=EOF)
    {
        if ('A'<=ch && ch<='Z')
            ch = ch + 32;
            putchar(ch);
    }
    fclose(fp);
}

 

1106 文本文件操作_字符写入

时间限制:1000MS  代码长度限制:10KB
提交次数:3887 通过次数:1450

题型: 填空题   语言: GCC

Description

 由键盘输入任意个字符(以连着的三个小写字符bye做为结束标志),将所有字符(包括bye),写入新建的文件answer.txt中(注:文件放在当前目录)。 请完成该功能,(注意,填空题,请不要使用return 0结束,否则会影响评判而判错)

(如键盘输入内容如下)
He, can you write the code?
Yes, you can.bye
No, you can't.
(程序执行后,在文件answer.txt中内容如下)
He, can you write the code?
Yes, you can.bye

(注:因No, you can't.在bye之后,所以不输出)
(注:代码中不要使用return及exit()函数,以免误判)


#include "stdio.h"

main()
{
_______________________
}

	FILE *fp;
	char ch, ch1=' ', ch2=' ', ch3=' ';
	if((fp=fopen("answer.txt", "w"))==NULL)
		return 1;
	while((ch=getchar())!=EOF)
	{	fputc(ch, fp);
		ch1=ch2;ch2=ch3;ch3=ch;
		if (ch1=='b'&&ch2=='y'&&ch3=='e')
			break;
	}
	fclose(fp);

11129 文本文件操作_读取与选择显示

时间限制:1000MS  代码长度限制:10KB
提交次数:993 通过次数:447

题型: 填空题   语言: GCC

Description

    在当前目录中存在文件名为"case1.in"的文本文件,现要求打开该文件,读出里面的所有字符,只将其中的数字字符按先后顺序显示在屏幕上。

(如case1.in内容如下) 
13 cats and 22 bikes
(在屏幕上输出结果如下) 
1322


#include "stdio.h"

main()
{
    FILE *fp;
    char ch;

    if((_______________________)==NULL)
        return 0;
    while(_______________________)
    {
        _______________________
    }
    fclose(fp);
}

#include "stdio.h"

main()
{
    FILE *fp;
    char ch;

    if((fp=fopen("case1.in","r"))==NULL)
        return 0;
    while((ch=fgetc(fp))!=EOF)
    {
        if(ch>='0'&&ch<='9')
        putchar(ch);
    }
    fclose(fp);
}

1107 文本文件操作_单词的排序

时间限制:1000MS  代码长度限制:10KB
提交次数:4897 通过次数:1269

题型: 填空题   语言: GCC

Description

 在当前目录有文件“case1.in”,文件里存放有多个(总个数不超过10000个)英文单词(每个英文单词不会超过10个字文字符), 每行一个,单词未排序。现要求,将文件中的所有单词按字典顺序排序,然后将排序好的单词写入新建的文件answer.txt中(注:文件存放于当前目录)。 请完成程序,实现该功能,(注意,填空题,请不要使用return 0结束,否则会影响评判而判错)

(如case1.in文件中原内容如下)
hello
bye
yes
(程序执行后,在文件answer.txt中内容如下)
bye
hello
yes


#include "stdio.h"
#include "string.h"

main()
{
_______________________
}

FILE *fp;
    if((fp=fopen("case1.in","r"))==NULL) return 1;
    int n=0;
    char str[10000][11];
    char tmp[11];
        while((fgets(str[n],11,fp))!=NULL)
    {
        n++;

    }
    fclose(fp);
    if((fp=fopen("answer.txt","w"))==NULL) return 1;
    for(int j=0; j<n-1; j++)
    {
        for(int k=0; k<n-j-1; k++)
        {
            if(strcmp(str[k],str[k+1])>0)
            {

                strcpy(tmp,str[k]);
                strcpy(str[k],str[k+1]);
                strcpy(str[k+1],tmp);
            }
        }
    }
    for(int j=0; j<n; j++)
{
    fputs(str[j],fp);

    }
    fclose(fp);
    return 1;

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值