做一题追加100分(C语言)

来源:百度知道 编辑:UC知道 时间:2024/05/29 20:40:59
1.编写程序实现任意类型的文件拷贝。要求如下:
(1) 实现拷贝文件的函数,格式为:
int CopyFile(char* SrcFile,char* DesFile)
其中,SrcFile和DesFile分别表示源文件名和目标文件名。
(2) 编写主程序,从主程序中输入源文件名和目标文件名,并调用CopyFile实现文件拷贝。
2. 假设学生链表中的结点结构及含义定义如下:
struct Student
{
long number; //学号
Student *next; //指向下一个结点的指针
};
函数Delete()是从链表中将指定学号的学生结点删除,它有两个参数:head是学生链表的链首指针,number是被删除结点的学生学号,请完成该函数并验证之。
3. 定义一结构体数组,从终端输入50个学生的基本情况,包括学号(XH),姓名(XM),籍贯(JG)和成绩(CJ)。要求按每个学生的成绩由高到低排序输出。
4. 编写程序,要求:(1)从键盘上输入6个整数放入数组a[6]中(用while循环实现); (2)并将各元素和平均值输出到一文本文件中保存;(3)然后打开该文件,读取其中内容并显示在屏幕上。

还是给1题给1元RMB吧

1、
#include <stdio.h>
#include <stdlib.h>

int CopyFile(char* SrcFile,char* DesFile)
{
FILE *fp;
int flen;
char *p;

if(SrcFile==NULL||DesFile==NULL)
{
return 0;
}
fp = fopen (SrcFile,"rb");
if(fp==NULL)
{
return 0;
}
fseek(fp,0L,SEEK_END);//定位到文件末尾
flen=ftell(fp); //求文件大小
p=(char *)malloc(flen+1); //分配文件大小那么大的内存
if(p==NULL)
{
fclose(fp);
return 0;
}
fseek(fp,0L,SEEK_SET); //定位到文件头
fread(p,flen,1,fp); //一次性读取文件
fclose(fp);

fp = fopen (DesFile,"wb");
if(fp==NULL)
{
free(p);
return 0;
}
fread(p,flen,1,fp); //一次性读取文件
fclose(fp);
free(p);
return flen;
}

int main(int argc, char *argv[])
{
if(argc<3)
printf("参数不够!\n");
else
CopyFile(ar