"历年二级C语言上机考试题库及答案.doc-建立班级通讯录的程序填空题"

需积分: 0 3 下载量 14 浏览量 更新于2023-12-31 1 收藏 336KB DOC 举报
历年全国计算机等级考试-二级C语言上机考试题库及答案.doc中提供了一个关于建立班级通讯录的题目。题目要求从键盘输入班级的人数和每位学生的信息,然后将这些信息写入一个名为myfile5.dat的二进制文件中。 解题思路如下: 1. 首先,我们需要定义一个结构体来表示学生的信息。该结构体包含两个成员:编号和姓名。可以使用如下的定义: ```c typedef struct { int id; char name[20]; } Student; ``` 2. 接下来,我们需要实现一个函数fun,它的功能是将输入的学生信息写入myfile5.dat文件中。函数的输入参数包括一个指向Student结构体数组的指针和班级人数。函数的返回值是一个int类型的值,表示是否成功将信息写入文件中。可以使用如下的函数定义: ```c int fun(Student *students, int num) { FILE *fp; int i; // 打开myfile5.dat文件 if ((fp = fopen("myfile5.dat", "wb")) == NULL) { printf("无法打开文件!\n"); return 0; } // 将学生信息写入文件 for (i = 0; i < num; i++) { if (fwrite(&students[i], sizeof(Student), 1, fp) != 1) { printf("写入文件失败!\n"); fclose(fp); return 0; } } // 关闭文件 fclose(fp); return 1; } ``` 3. 在给定的程序中,需要在下划线处填入正确的函数声明,才能使程序能够调用fun函数并正确地完成建立班级通讯录的功能。根据fun函数的定义,正确的函数声明应该是: ```c int fun(Student *, int); ``` 4. 最后,为了保证fun函数能够被正确调用,在程序的开头还需要声明check函数。根据题目描述,check函数可能是一个空函数,我们可以将其定义为: ```c void check() { // 空函数,不执行任何操作 } ``` 综上所述,根据题目要求,我们需要将上述的定义和实现添加到给定的BLANK1.c文件中,然后删除下划线部分,并确保源程序文件名为BLANK1.c,最后将BLANK1.c文件编译运行,就能得到正确的结果。