AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、第82题 (1.0分) 题号:736 以下叙述中错误的是()。

A
 二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B
 在程序结束时,应当用fclose函数关闭已打开的文件
C
 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D
 不可以用FILE定义指向二进制文件的文件指针

答案解析

正确答案:D

解析:

这道题考查的是 C 语言中文件操作的基本概念,特别是二进制文件与文本文件(顺序文件)的区别,以及 `FILE` 指针的使用。我们需要逐一分析各个选项,找出叙述**错误**的一项。 **选项分析:** * **A. 二进制文件打开后可以先读文件的末尾,而顺序文件不可以** * **分析**:这是正确的。二进制文件通常支持随机访问(Random Access),可以使用 `fseek` 函数将文件位置指针移动到文件的任意位置(包括末尾),然后进行读取。而传统的顺序文件(通常指文本流或只能顺序访问的设备/文件类型)一般要求按顺序从头到尾读取,不支持直接跳转到末尾读取数据而不经过中间内容(或者说在某些严格定义的顺序访问模式下不支持随机定位)。因此,该叙述在对比两者特性时是合理的。 * **结论**:叙述正确。 * **B. 在程序结束时,应当用fclose函数关闭已打开的文件** * **分析**:这是正确的。虽然程序正常终止时,操作系统通常会关闭所有打开的文件描述符并刷新缓冲区,但在编程规范中,显式调用 `fclose` 是一个良好的习惯。它可以确保缓冲区中的数据被写入磁盘(flush),释放系统资源,并返回操作状态以便检查是否有写入错误。 * **结论**:叙述正确。 * **C. 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据** * **分析**:这是正确的。`fread` 函数的原型是 `size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);`。第一个参数 `ptr` 是一个指向存储数据内存块的指针。数组名在表达式中会退化为指向数组首元素的指针。因此,可以将数组名作为参数传入,一次性读取多个数据块到数组中。 * **结论**:叙述正确。 * **D. 不可以用FILE定义指向二进制文件的文件指针** * **分析**:这是**错误**的。在 C 语言中,无论是文本文件还是二进制文件,都使用相同的文件指针类型 `FILE *` 来指向。区别在于打开文件时 `fopen` 函数的模式字符串不同(例如 `"rb"` 表示以二进制只读方式打开,`"r"` 表示以文本只读方式打开)。一旦文件被打开,返回的都是 `FILE *` 类型的指针,后续的操作函数(如 `fread`, `fwrite`, `fseek` 等)通过这个指针来操作文件,并不区分指针本身的类型差异。 * **结论**:叙述错误。 **总结:** 题目要求选出叙述**错误**的一项。选项 A、B、C 均描述了正确的文件操作特性或规范,只有选项 D 错误地认为二进制文件需要特殊的指针类型,实际上它们共用 `FILE *` 类型。 因此,正确答案是 **D**。
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码