《C语言程序设计II》期末复习资料 下载本文

printf(\输入目标文件的名字:\); scanf(\,outfile);

if((in=fopen(____(1)____))==NULL) // 打开输入文件 {

printf(\无法打开源文件\\n\); exit(0); }

if((out=fopen(____(2)____))==NULL) // 打开输出文件 {

printf(\无法打开目标文件\\n\); exit(0); }

ch=fgetc(____(3)____); while(____(4)____) {

fputc(____(5)____); ch=fgetc(in); }

printf(\文件复制完毕\\n\\n\);

____(6)____; // 关闭输入文件 ____(7)____; // 关闭输出文件 return 0; } 操作要求:

(1)请将实验6目录下的文件myfile.txt、test.exe拷贝到F:\\目录中; (2)运行程序,输入源文件名:F:\\\\myfile.txt,目标文件名:F:\\\\myfile2.txt。查看myfile.txt与myfile2.txt是否完全相同?(可通过比较文件大小、用UltraEdit比较两文件的内容来判定);

(3)再次运行程序,输入源文件名:F:\\\\test.exe,目标文件名:F:\\\\test2.exe。这两个文件完全相同吗?请分析其中的原因,并加以改进。 问题:

(1)打开源文件、目标文件时,打开方式各是什么? (2)文本文件、二进制文件的打开方式有什么不同? (3)对于文本文件、二进制文件,如何判断遇到了文件尾?

35、实验_6 3、(基础题)分析、运行下列程序,指出其功能,熟悉文件读写函数的使用: (1)

#include #include #include int main() {

FILE *fp;

char str[101]; int i,n=5;

if((fp=fopen(\,\))==NULL) {

printf(\不能打开此文件!\\n\); exit(0); }

printf(\请输入几个字符串:\\n\);

while(strlen(gets(str))>0) {

fputs(str,fp); fputs(\,fp); }

printf(\字符串内容已保存!\\n\); fclose(fp);

if((fp=fopen(\,\))==NULL) {

printf(\不能打开此文件!\\n\); exit(0); }

printf(\文件中保存的字符串有:\\n\); while(fgets(str,101,fp)!=NULL) printf(\,str); fclose(fp); printf(\);

return 0; }

(2)

#include #include int main() {

FILE *fp; int i,k;

int num[]={100,101,102,103,104,105,106,107,108,109}; if((fp=fopen(\, \))==NULL) {

printf(\不能将数据保存到myarray.txt文件中!\\n\); exit(0); }

for(i=0; i<=9; i++) {

fprintf(fp,\, num[i]); fprintf(fp,\); }

fclose(fp);

if((fp=fopen(\, \))==NULL) {

printf(\不能打开myarray.txt文件!\\n\); exit(0); }

for (i=0; i<=9; i++) {

fscanf(fp, \, &k); printf(\,k); }

printf(\); fclose(fp); return 0; } (3)

#include #include int main() {

FILE *fp; int i,k;

int num[]={100,101,102,103,104,105,106,107,108,109},b[10];

}

if((fp=fopen(\, \))==NULL) {

printf(\不能将数据保存到myarray.dat文件中!\\n\); exit(0); }

fwrite(num,sizeof(int),10,fp); fclose(fp);

if((fp=fopen(\, \))==NULL) {

printf(\不能打开myarray.dat文件!\\n\); exit(0); }

fread(b,sizeof(int),10,fp); fclose(fp);

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

printf(\,b[i]); printf(\); return 0;

36、实验_6 4、(基础题)编程实现:有 5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生学号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算得到的平均分数存放在磁盘文件D:\\stud.dat中。程序运行结果如下图所示:

37、课件第7讲 例1: 对一个文本文件先显示输出其内容,再复制到另一个文件中去。

38、课件第7讲 例2:在磁盘文件stu.dat上已存有10个学生的数据。要求将

第1,3,5,7,9个学生数据输入计算机,并在屏幕上显示出来。

39、课件第7讲 综合案例(1)——通讯录信息管理系统

40、实验_6 2、(基础题)建立一个C项目,请将文件夹“通讯录管理系统(源代码)”下的

my_contact.c文件复制、添加到项目中,之后分析、运行程序,并回答下列问题: (1) 该系统操作、管理的数据(信息)是什么?怎样表示? (2) 怎样才能长期保存这些数据(信息)? (3) 本系统包含哪些功能?

(4) 程序代码通过什么方式来组织?并举例说明。 (5) 如何让用户方便操作?怎样设计、实现系统的主菜单?