第33练 9.1 文件概述 + 9.2 文件的打开和关闭 《编程语言基础——C语言》 (第5版) 一课一练 (湖南)

2026-06-25
| 2份
| 9页
| 43人阅读
| 0人下载

内容正文:

【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《编程语言基础——C语言》(第5版)《一课一练》第33练,内容是9.1 文件概述 + 9.2 文件的打开和关闭。 《编程语言基础——C语言》(第5版)一课一练 第33练 9.1 文件概述 + 9.2 文件的打开和关闭 一、单选题 1. 在C语言中,对文件进行操作时,文件指针的类型是( ) A. FILE * B. file * C. File * D. int * 2. 要以只读方式打开一个已存在的文本文件,fopen函数的正确调用是( ) A. fopen("data.txt", "w"); B. fopen("data.txt", "r"); C. fopen("data.txt", "a"); D. fopen("data.txt", "rw"); 3. 调用fopen函数打开文件失败时,返回值是( ) A. 0 B. EOF C. NULL D. -1 4. 关于fclose函数,以下说法正确的是( ) A. fclose函数会自动在文件末尾添加结束标志 B. 程序正常结束时会自动关闭所有文件,因此可以不调用fclose C. fclose只能关闭以"w"模式打开的文件 D. fclose将缓冲区数据写入文件并释放文件指针,是良好的编程习惯 5. 用 fopen("test.txt", "w") 打开文件时,若test.txt已存在,则( ) A. 原文件内容被清空,从文件开头开始写入新内容 B. 在原文件末尾追加新内容 C. 打开失败,返回NULL D. 保留原文件内容,新内容从开头覆盖对应位置 6. 以下代码片段中,能安全地打开文件并处理打开失败情况的是( ) A. FILE *fp = fopen("a.txt", "r"); fscanf(fp, "%d", &x); B. FILE *fp = fopen("a.txt", "r"); if (fp != NULL) { fscanf(fp, "%d", &x); fclose(fp); } C. FILE *fp; if (fp = fopen("a.txt", "r")) { } fscanf(fp, "%d", &x); D. FILE fp = fopen("a.txt", "r"); fscanf(&fp, "%d", &x); 7. 要以二进制只读方式打开文件,fopen的模式参数应为( ) A. "r" B. "b" C. "rb" D. "br" 二、程序运行结果题 8. 以下程序的运行结果是【··】。(假设当前目录不存在名为"noexist.txt"的文件) #include <stdio.h> main() { FILE *fp; fp = fopen("noexist.txt", "r"); if (fp == NULL) printf("Open failed"); else { printf("Open success"); fclose(fp); } } 三、程序填空题 9. 以下程序的功能是:打开文件"data.txt"准备写入数据,操作完成后关闭文件。请填空。 #include <stdio.h> main() { 【1】; fp = fopen("data.txt", "w"); if (fp != NULL) { fprintf(fp, "Hello File! "); fclose(fp); printf("写入成功! "); } else printf("文件打开失败! "); } 四、阅读程序改错题 10. 阅读以下程序,该程序的功能是向文件写入数据。程序中有1处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。 L1 #include <stdio.h> L2 main() L3 { L4 FILE *fp; L5 fp = fopen("out.txt", "w"); L6 fprintf(fp, "C Programming "); L7 } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《编程语言基础——C语言》(第5版)《一课一练》第33练,内容是9.1 文件概述 + 9.2 文件的打开和关闭。 《编程语言基础——C语言》(第5版)一课一练 第33练 9.1 文件概述 + 9.2 文件的打开和关闭 一、单选题 1. 在C语言中,对文件进行操作时,文件指针的类型是( ) A. FILE * B. file * C. File * D. int * 【答案】A 【解析】C语言通过FILE类型的指针来操作文件。FILE是stdio.h中定义的结构体类型(注意大写),包含文件缓冲区、当前位置、文件状态等信息。定义文件指针的格式为:FILE *fp; 2. 要以只读方式打开一个已存在的文本文件,fopen函数的正确调用是( ) A. fopen("data.txt", "w"); B. fopen("data.txt", "r"); C. fopen("data.txt", "a"); D. fopen("data.txt", "rw"); 【答案】B 【解析】fopen的打开模式参数:"r"=读取(文件必须存在),"w"=写入(创建新文件,已存在则覆盖原有内容),"a"=追加(文件末尾添加),"r+"=读写。以r模式打开用于读取。注意"rw"不是标准模式。 3. 调用fopen函数打开文件失败时,返回值是( ) A. 0 B. EOF C. NULL D. -1 【答案】C 【解析】fopen打开文件成功时返回指向该文件的FILE指针,打开失败时返回NULL(空指针)。通常在使用fopen后应立即检查返回值是否为NULL,以确保文件成功打开后再进行操作。 4. 关于fclose函数,以下说法正确的是( ) A. fclose函数会自动在文件末尾添加结束标志 B. 程序正常结束时会自动关闭所有文件,因此可以不调用fclose C. fclose只能关闭以"w"模式打开的文件 D. fclose将缓冲区数据写入文件并释放文件指针,是良好的编程习惯 【答案】D 【解析】fclose关闭文件时会将缓冲区中未写入的数据刷新到磁盘,释放文件指针和相关资源。虽然程序结束时系统会关闭文件,但主动调用fclose是好习惯,可避免数据丢失。 5. 用 fopen("test.txt", "w") 打开文件时,若test.txt已存在,则( ) A. 原文件内容被清空,从文件开头开始写入新内容 B. 在原文件末尾追加新内容 C. 打开失败,返回NULL D. 保留原文件内容,新内容从开头覆盖对应位置 【答案】A 【解析】"w"(write)模式打开文件时:如果文件不存在则创建新文件;如果文件已存在则清空原内容,从头开始写。想要保留原内容并追加,应使用"a"(append)模式。 6. 以下代码片段中,能安全地打开文件并处理打开失败情况的是( ) A. FILE *fp = fopen("a.txt", "r"); fscanf(fp, "%d", &x); B. FILE *fp = fopen("a.txt", "r"); if (fp != NULL) { fscanf(fp, "%d", &x); fclose(fp); } C. FILE *fp; if (fp = fopen("a.txt", "r")) { } fscanf(fp, "%d", &x); D. FILE fp = fopen("a.txt", "r"); fscanf(&fp, "%d", &x); 【答案】B 【解析】B中先检查fp是否为NULL,确认文件成功打开后才执行读取操作,读取完毕后关闭文件,是最安全的写法。A未检查直接使用(可能对NULL指针操作);C中fp声明后赋值的写法正确但else分支未处理;D未声明为指针类型。 7. 要以二进制只读方式打开文件,fopen的模式参数应为( ) A. "r" B. "b" C. "rb" D. "br" 【答案】C 【解析】在模式字符串后加b表示二进制模式。"rb"=二进制读,"wb"=二进制写,"ab"=二进制追加。二进制模式与文本模式的区别在于:文本模式会处理换行符转换(如Windows下\r ↔ ),二进制模式不做任何转换。 二、程序运行结果题 8. 以下程序的运行结果是【··】。(假设当前目录不存在名为"noexist.txt"的文件) #include <stdio.h> main() { FILE *fp; fp = fopen("noexist.txt", "r"); if (fp == NULL) printf("Open failed"); else { printf("Open success"); fclose(fp); } } 【答案】Open failed 【解析】以"r"模式打开一个不存在的文件,fopen返回NULL。程序检查fp==NULL为真,执行if分支输出"Open failed"。这体现了文件操作中错误处理的必要性——打开文件后应首先检查是否成功。 三、程序填空题 9. 以下程序的功能是:打开文件"data.txt"准备写入数据,操作完成后关闭文件。请填空。 #include <stdio.h> main() { 【1】; fp = fopen("data.txt", "w"); if (fp != NULL) { fprintf(fp, "Hello File! "); fclose(fp); printf("写入成功! "); } else printf("文件打开失败! "); } 【答案】【1】FILE *fp 【解析】使用文件前需要定义FILE类型的指针变量fp。FILE在stdio.h中定义,*fp表示这是一个文件指针。后续通过fp调用fopen、fprintf、fclose等文件操作函数。 四、阅读程序改错题 10. 阅读以下程序,该程序的功能是向文件写入数据。程序中有1处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。 L1 #include <stdio.h> L2 main() L3 { L4 FILE *fp; L5 fp = fopen("out.txt", "w"); L6 fprintf(fp, "C Programming "); L7 } 【答案】【1】L7: } → 应在L6和L7之间添加 fclose(fp);(写入完毕后必须关闭文件,否则缓冲区数据可能未写入磁盘,导致数据丢失) 【解析】使用fopen打开文件后,操作完成必须调用fclose关闭文件。fclose会将缓冲区中的数据刷新到磁盘并释放文件资源。不关闭文件可能导致数据未完全写入磁盘(数据丢失),在长时间运行的程序中还会造成资源泄漏。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第33练 9.1 文件概述 + 9.2 文件的打开和关闭 《编程语言基础——C语言》 (第5版) 一课一练 (湖南)
1
第33练 9.1 文件概述 + 9.2 文件的打开和关闭 《编程语言基础——C语言》 (第5版) 一课一练 (湖南)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。