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

需积分: 9 3 下载量 192 浏览量 更新于2024-07-28 收藏 5.87MB DOC 举报
"2012计算机二级C上机题库答案.doc" 这个文档内容是关于2012年计算机二级C语言考试的一个上机题目,主要涉及文件操作和结构体数据类型的使用。题目要求考生完善一个C语言程序,该程序用于创建一个班级通讯录,将学生的信息(编号、姓名和电话)存储到一个二进制文件中,并在之后读取验证数据是否正确写入。 首先,程序定义了一个名为`STYPE`的结构体,包含了三个成员:`num`(学生编号),`name`(姓名,长度为10个字符),以及`tel`(电话号码,长度也为10个字符)。在`main()`函数中,预先定义了5个`STYPE`类型的实例`s[10]`,并填充了一些示例数据。 接下来,我们需要关注的是`fun()`函数。这个函数的目的是打开一个名为"myfile5.dat"的二进制文件,并将结构体数组`s`中的每个元素写入文件。在函数签名中,`___1___*std`需要填写正确的类型,这里应该是`STYPE*`,因为`std`是结构体数组的指针。 在`fun()`函数内部,`___2___*fp`需要声明为`FILE*`类型,因为`fopen()`函数返回的是指向文件的指针,`fp`将用于后续的文件操作。`fopen()`函数用于打开文件,参数"wb"表示以写入模式打开文件,如果文件不存在则创建,如果存在则清空原有内容。 在`fwrite()`调用中,`___3___`应替换为`fp`,因为我们要将结构体数组的元素写入到之前打开的文件`fp`中。`fwrite()`函数的参数分别是:要写入的数据(`&std[i]`,即结构体数组的当前元素),数据的大小(`sizeof(STYPE)`),以及要写入的数量(1,因为我们一次写入一个结构体)。 在`main()`函数的最后,如果`fun()`函数成功执行,会调用`check()`函数来验证文件写入是否成功。`check()`函数会尝试以读取模式重新打开"myfile5.dat"文件,然后读取数据并打印到屏幕上,以便于检查数据的完整性。 这个题目考察了C语言中结构体的使用,文件操作(包括`fopen()`, `fwrite()`, `fclose()`等函数的使用),以及指针和数组的概念。解答时需注意结构体指针的使用,以及文件操作的正确流程。