C语言编程:建立班级通讯录程序

需积分: 7 1 下载量 73 浏览量 更新于2024-07-22 1 收藏 512KB DOC 举报
"该资源是2015年二级C语言考试的一道上机操作题,涉及C语言中文件操作和结构体数组的相关知识。题目要求编写程序,将输入的学生信息(编号、姓名和电话号码)存储到二进制文件myfile5.dat中。" 在这道题目中,主要涉及以下知识点: 1. **结构体(Struct)**: 结构体是C语言中一种自定义的数据类型,可以用来组合不同类型的数据。在本题中,定义了一个名为`STYPE`的结构体,包含三个成员:`num`(整型,编号),`name`(字符数组,姓名),`tel`(字符数组,电话号码)。 2. **指针(Pointer)**: 指针是C语言中的一种特殊变量,用来存储内存地址。在`fun`函数的参数列表中,需要传入一个`STYPE`类型的指针,以访问和操作结构体数组。 3. **文件操作(File Operation)**: C语言通过标准库中的`stdio.h`提供了文件操作接口。在本题中,`fopen`用于打开文件,`fclose`用于关闭文件,`fwrite`用于将数据写入文件,`fread`用于从文件中读取数据。"wb"模式表示以二进制方式写入文件,"rb"模式表示以二进制方式读取文件。 4. **文件流(File Stream)**: 文件操作通常与文件流关联,`fp`就是一个指向文件流的指针。在`fun`函数中,需要初始化`fp`以指向打开的文件,如果文件无法打开,则返回`NULL`。 5. **数组(Array)**: 代码中定义了两个`STYPE`类型的数组,一个是`main`函数中的`s[10]`,用于存储学生信息;另一个是`check`函数中的`s[10]`,用于从文件中读取并显示数据。 6. **函数(Function)**: `fun`函数负责将数据写入文件,`check`函数负责验证数据是否成功写入。`main`函数是程序的入口点,调用了这两个函数。 7. **条件判断(Conditional Statement)**: 在代码中,使用`if`语句检查文件操作是否成功,并根据结果输出相应的信息。 8. **内存管理(Memory Management)**: 虽然在本题中没有涉及到动态内存分配,但了解`malloc`和`free`等内存管理函数对于理解C语言的内存管理机制很重要。 9. **输入输出(Input/Output)**: `printf`用于输出信息,`scanf`通常用于从键盘接收输入,但在本题中没有使用到。 解答题目时,需要填写的正确内容分别是: 1. `STYPE*`,因为`fun`函数需要接受一个`STYPE`类型的指针作为参数,以便处理结构体数组。 2. `FILE*`,定义`fp`为指向文件流的指针,以便进行文件操作。 3. `fp`,将当前文件流`fp`作为`fwrite`函数的第三个参数,将结构体数组的数据写入文件。 完成这些填充后,程序能够实现题目所要求的功能,即从键盘读入学生信息并将其存储到二进制文件中,然后从文件中读取数据并显示在屏幕上。