余贞侠C语言程序设计课后参考答案

余贞侠C语言程序设计课后参考答案,第1张

余贞侠C语言程序设计课后参考答案

第十章 (答案仅供参考),有问题大家可以在评论区一起讨论。


10.2//用Windows的记事本编辑一个文本文件,编写程序读取该文件中的数据,并在屏幕上显示;
#include
#include
int main()
{
	FILE *fp;
	char name[20];
	char ch;
	printf("请输入文件名称:n");
	scanf("%s",name);
	fp=fopen(name,"r");
	if(fp==NULL)
	{
		printf("File can not be opened!n");
		exit(0);//返回程序;
	}
	ch=fgetc(fp);//以字符方式从文件中读取一个字符;
	while(ch!=EOF)//若读取到末尾,解fgetc()返回EOF(-1);
	{
		putchar(ch);//将字符送往屏幕;
		ch=fgetc(fp);//从文件读取下一个字符;
	}
	putchar('n');
	fclose(fp);//关闭文件;
	return 0;
}

10.3//将一个文本文件的内容复制到另一个文本文件中,文本文件的名字从键盘输入;
#include
#include
int main()
{
	FILE *fp1,*fp2;
	char data;//一个内存数据域
	char c;
	char name1[21],name2[21];
	
	printf("请输入要读的文件名:n");
	scanf("%s",name1);
	fp1=fopen(name1,"w");
	//fp1=fopen("student.txt","w");
	if(fp1==NULL)
	{
		printf("File can not be opened!n");
		exit(0);//返回程序;
	}
	scanf("%c",&c);
	while(c!='$')
	{
		fputc(c,fp1);
		scanf("%c",&c);
	}
	fclose(fp1);


	//fp1=fopen("student.txt","rb");
	//fp2=fopen("stu.txt","wb");
	fp1=fopen(name1,"rb");//以二进制打开文件,供读
	printf("请输入要写的文件名:n");
	scanf("%s",name2);
	fp2=fopen(name2,"wb");//以二进制打开文件,供写
	if(fp1==NULL||fp2==NULL)
	{
		printf("File can not be opened!n");
		exit(0);//返回程序;
	}
	fread(&data,sizeof(char),1,fp1);//从fp1中对一个字节的内容到变量data;
	while(!feof(fp1))//所要读的文件未读完,feof()返回值为0;
	{
		fwrite(&data,sizeof(char),1,fp2);//将变量data的内容复制到fp2中;
		fread(&data,sizeof(char),1,fp1);//从fp1中在读一个字节的内容到变量data
	}
	fclose(fp1);
	fclose(fp2);
	return 0;
}
	
10.4//输入五个学生信息,(姓名,年龄,数学,英语,语文),将学生信息存入名为"student.txt"文本文件中,
//每个学生占一行,各个数据之间用空格分隔,写文件采用fprintf()函数;
#include
#include
#define N 5
struct STU
{
	char name[21];
	int age;	
	float score[3];//三门课成绩;	
};		
int main()
{
	struct STU stu[N];
	FILE *fp;
	int i,s;
	fp=fopen("student.txt","w");
	if(fp==NULL)
	{
		printf("File can not be opened!n");
		exit(0);//返回程序;
	}
	for(i=0;i 

10.5
#include
#include
#define N 5
struct STU
{
	char name[21];
	int age;	
	float score[3];//三门课成绩;
	float avg;//平均成绩
};		
int main()
{
	struct STU stu[N],t;
	FILE *fp;
	int i,j,s;
	float sum;
	fp=fopen("student.txt","r");
	if(fp==NULL)
	{
		printf("File can not be opened!n");
		exit(0);//返回程序;
	}
	printf("students information:n姓名 年龄 英语 数学 语文n");
	//利用fscanf()从文件读出学生信息,利用返回值判断是否读出成功,(成功则返回fscanf以赋值变量的个数
	//负责返回EOF(-1)
	for(i=0;i 
10.6//定义一个结构体类型,其成员变量分别用来描述商品的名称,单价,数量,金额。输入n个商品的信息,将其保存到二进制文件中。
#include
#include
#define N 5
struct Product
{
	char name[21];//名称
	float price;//单价
	int num;//数量
	float money;//金额
};
int main()
{
	struct Product p[N];
	int i,n;
	char a[21];//用来存放文件地址;
	FILE *fp;
	printf("please input product numbers(1~%d):n",N);
	scanf("%d",&n);
	if(n<=0||n>N)
	{
		printf("please input again!n");
		exit(0);
	}
	printf("please input text site:n");
	scanf("%s",a);//二进制文件以dat为文件名后缀;
	fp=fopen(a,"wb");
	if(fp==NULL)
	{
		printf("File can not be opened!n");
		exit(0);//返回文件
	}
	for(i=0;i 
10.7//将第六题的商品信息文件读出并显示,要求在显示数据时,首先按照金额从高到低排序,若金额相同,在按产品单价从高到低排序;

#include
#include
#define N 5
struct Product
{
	char name[21];//名称
	float price;//单价
	int num;//数量
	float money;//金额
};
int main()
{
	struct Product p[N],t;
	int i,j,n;
	char a[21];//用来存放文件地址;
	FILE *fp;
	printf("please input text site:n");
	scanf("%s",a);//二进制文件以dat为文件名后缀;
	fp=fopen(a,"rb");
	if(fp==NULL)
	{
		printf("File can not be opened!n");
		exit(0);//返回文件
	}
	printf("product information:n名称 单价 数量 金额n");
	
	for(i=0;i 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5155577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存