2024-05-29_二进制文件和文本文件作业

1.关于文本文件和二进制文件描述错误的是?( )

A.文本文件是可以读懂的,二进制文件没办法直接读懂
B.数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件
C.将内存中的数据转化成ASCII码值的形式,并以ASCII码值的形式存储的文件就是文本文件。
D.文本文件和二进制文件没啥区别,机器都能识别

解析:选择D项。文本文件和二进制文件机器确实都能识别,但是存储的形式还是有所差异的。

2.C语言以二进制方式打开一个文件的方法是?( )

A.FILE *f = fwrite( “test.bin”, “b” );
B.FILE *f = fopenb( “test.bin”, “w” );
C.FILE *f = fopen( “test.bin”, “wb” );
D.FILE *f = fwriteb( “test.bin” );

解析:选择C项。首先,因为要打开文件,AD直接拖出去,由于不存在一个“fopenb”函数,所以直接选C。二进制描述中的b要放在权限后,也就是“wb”才是合法的。

3.关于fopen函数说法不正确的是:( )

A.fopen打开文件的方式是"r",如果文件不存在,则打开文件失败
B.fopen打开文件的方式是"w",如果文件不存在,则创建该文件,打开成功
C.fopen函数的返回值无需判断
D.fopen打开的文件需要fclose来关闭

解析:选择C项。C选项中fopen的返回值可以检验文件是否打开成功,打开方式为"r"时尤其重要。ABD为文件操作的基本概念和原则。

4.下列关于文件名及路径的说法中错误的是:( )

A.文件名中有一些禁止使用的字符
B.文件名中一定包含后缀名
C.文件的后缀名决定了一个文件的默认打开方式
D.文件路径指的是从盘符到该文件所经历的路径中各符号名的集合

解析:选择B项。B选项中,文件名可以不包含后缀名。A的话,文件名中不能包含这些字符: / : *?"<>|,C表述了后缀名的作用,D是路径的基本概念。故选B。

5.C语言中关于文件读写函数说法不正确的是:( )

A.fgetc是适用于所有输入流字符输入函数
B.getchar也是适用于所有流的字符输入函数
C.fputs是适用于所有输出流的文本行输出函数
D.fread是适用于文件输入流的二进制输入函数

解析:选择B项。B选项中,getchar只针对标准输入流stdin。即使对stdin重定向,getchar针对的也只是stdin。f系列的输入输出函数都是作用于所有流的的,所以AC没问题,D的表述也没问题,fread做的就是二进制的活。

函数名功能适用于
“fgetc"字符输入函数所有输入流
“fputc"字符输出函数所有输出流
“fgets"文本行输入函数所有输入流
“fputs"文本行输出函数所有输出流
“fscanf"格式化输入函数所有输入流
“fprintf"格式化输出函数所有输出流
“fread"二进制输入文件
“fwrite"二进制输出文件

6.下面程序的功能是什么? ( )

int main()
{ long num=0;FILE *fp = NULL;if((fp=fopen("fname.dat", "r"))==NULL){printf("Can’t open the file!");exit(0);}while(fgetc(fp) != EOF){ num++;}printf("num=%d\n",num);fclose(fp);return 0;
}

A.拷贝文件
B.统计文件的字符数
C.统计文件的单词数
D.统计文件的行数

解析:选择B项。程序只通过只读方式打开了一个文件,所以A排除,文中使用的fgetc,且没有’ ‘和’\n’相关的统计,所以排除CD,直接选B。

7.练习使用上课所学文件操作的相关函数

解答:

//打开⽂件
FILE * fopen ( const char * filename, const char * mode );
//关闭⽂件
int fclose ( FILE * stream );

mode表⽰⽂件的打开模式,下⾯都是⽂件的打开模式:

文件使用方式含义如果指定文件不存在
“r" (只读)为了输入数据,打开一个已经存在的文本文件出错
“w" (只写)为了输出数据,打开一个文本文件建立一个新的文件
“a" (追加)向文本文件尾添加数据建立一个新的文件
“rb" (只读)为了输入数据,打开一个二进制文件出错
“wb" (只写)为了输出数据,打开一个二进制文件建立一个新的文件
“ab" (追加)向一个二进制文件尾添加数据建立一个新的文件
“r+" (读写)为了读和写,打开文本文件出错
“w+" (读写)为了读和写,建立一个新的文件建立一个新的文件
“a+" (只读)打开一个文件,在文件尾进行读写建立一个新的文件
“rb+" (读写)为了读和写打开一个二进制文件出错
“wb+" (读写)为了读和写,新建一个新的二进制文件建立一个新的文件
“ab+" (读写)打开一个二进制文件,在文件尾进行读和写建立一个新的文件
实例代码:
/* fopen fclose example */
#include <stdio.h>
int main ()
{FILE * pFile;//打开⽂件pFile = fopen ("myfile.txt","w");//⽂件操作if (pFile!=NULL){fputs ("fopen example",pFile);//关闭⽂件fclose (pFile);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/20217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3-Setup-“集大成者”

何为Setup&#xff1a; setup是Vue3中一个新的配置项&#xff0c;值是一个函数&#xff0c;它是 Composition API 行为的根基&#xff0c;组件中所用到的&#xff1a;数据、方法、计算属性、钩子、自定义方法、自定义插槽、自定义Ref、监视......等等&#xff0c;均配置在setup…

Nginx 1.26.0 爆 HTTP/3 QUIC 漏洞,建议升级更新到 1.27.0

据悉&#xff0c;Nginx 1.25.0-1.26.0 主线版本中涉及四个与 NGINX HTTP/3 QUIC 模块相关的中级数据面 CVE 漏洞&#xff0c;其中三个为 DoS 攻击类型风险&#xff0c;一个为随机信息泄漏风险&#xff0c;影响皆为允许未经身份认证的用户通过构造请求实施攻击。目前已经紧急发布…

qt中的网络请求QNetworkAccessManager——两种方法同步与异步

目录 一、qt中的网络请求 1.网络的一些基础知识 网络的GET和POST方式 网络中的鉴权 2.qt实现网络请求方式get和post GET 请求 3.qt网络请求中添加鉴权信息 1. 生成鉴权字符串 2. 设置鉴权头部到 QNetworkRequest 3. 简单的网络处理响应和错误 二、同步阻塞网络请求 三…

密码与网络安全(一):专栏导读

1.专栏目的 这个专栏的核心目的是提升博主自己的密码与网络安全知识&#xff0c;其次也想将相关的学习收获分享给感兴趣的小伙伴。博主自己的工作主要量子技术相关&#xff0c;身边的同事基本上也是物理专业出身&#xff0c;最近和单位密码领域同事聊天时他提到一个思路很好的启…

【Linux 网络】网络基础(三)(其他重要协议或技术:DNS、ICMP、NAT)

一、DNS&#xff08;Domain Name System&#xff09; DNS 是一整套从域名映射到 IP 的系统。 1、DNS 背景 TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序&#xff0c;但是 IP 地址不方便记忆。于是人们发明了一种叫主机名的东西&#xff0c;是一个字符串&…

当没用git工具是怎么快速下载项目

https://github.com/lucasb-eyer/pydensecrf/archive/refs/heads/master.zip 是一个用于直接下载 GitHub 仓库中最新代码的链接。让我们详细解释一下这个 URL 的结构以及它的用途&#xff1a; ### URL 结构说明 1. **基本仓库 URL**&#xff1a; https://github.com/l…

学习笔记——网络参考模型——TCP/IP模型

二、TCP/IP模型 TCP/IP模型(TCP/IP协议栈)&#xff1a;很多个互联网协议的集合&#xff0c;其中以TCP和IP为主&#xff0c;将这些协议的集合称为TCP/IP协议栈。目前使用最多的协议模型。 因为OSI协议栈比较复杂&#xff0c;且TCP和IP两大协议在业界被广泛使用&#xff0c;所以…

JavaScript 动态网页实例 —— 窗口控制

除了打开和关闭窗口之外,还有很多其他控制窗口的方法。例如,可以使用 window.focus()方法使窗口获得焦点,也可以利用与其相对的window.blur 方法使窗口失去焦点。本节介绍移动窗口、改变窗口大小、窗口滚动、窗口超时操作、常用窗口事件、常用窗口扩展等窗口控制的方法和手段。…

Docker 部署 OCRmyPDF、提取PDF内容

一、镜像导入 # 拉取镜像 docker pull jbarlow83/ocrmypdf# 导出镜像 docker save -o /data/ocrmypdf/ocrmypdf.tar jbarlow83/ocrmypdf:latest # 导入镜像 docker load -i ocrmypdf.tar二、调取镜像 # 【调用镜像】&#xff08;以下2选1&#xff09;# 1-执行后删除容器【官方…

vue3 树节点如何通过子节点的parentid找到父节点数据

在Vue 3中&#xff0c;如果你有一个树形结构的数据&#xff0c;并且想要通过子节点的parentId找到其父节点数据&#xff0c;你可以使用递归组件或者在组件的方法中实现递归逻辑来遍历树形数据。 以下是一个简单的示例&#xff0c;展示如何在Vue 3组件中实现这个功能&#xff1…

[每周一更]-(第99期):MySQL的索引为什么用B+树?

文章目录 B树与B树的基本概念B树&#xff08;Balanced Tree&#xff09;B树&#xff08;B-Plus Tree&#xff09;对比 为什么MySQL选择B树1. **磁盘I/O效率**2. **更稳定的查询性能**3. **更高的空间利用率**4. **并发控制** 其他树结构的比较参考 索引是一种 数据结构&#x…

【启明智显分享】WIFI6开发板ZX6010:开源OpenWrt SDK,接受定制!

在数字化飞速发展的当下&#xff0c;网络速度和稳定性已成为各行各业不可或缺的关键因素。今天&#xff0c;我们为大家推荐一款基于IPQ6010的AX1800方案ZX6010 Wi-Fi6开发板&#xff0c;为您的网络世界注入强大动力。 一、超强硬件配置 ZX6010搭载IPQ6010四核ARM Cortex A53处…

LeeCode热题100(两数之和)

本文纯干货&#xff0c;看不懂来打我&#xff01; 自己先去看一下第一题的题目两数之和&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 简单来说就是让你在一个数组里面找两个数&#xff0c;这两个数的和必须满足等于目标值target才行。 我认为你要是没有思路的话&a…

营造科技展厅主题氛围,多媒体应用有哪些新策略?

长久以来&#xff0c;展厅作为线下向公众传递信息的窗口&#xff0c;其设计风格与内容主题紧密相连&#xff0c;展现出千姿百态的面貌。然而&#xff0c;随着数字多媒体技术的日新月异&#xff0c;展厅不再仅仅是传统的信息展示平台&#xff0c;而是成为了引领内容展示潮流的风…

modelscope只读盘无法启动模型问题

简介 将提前下载好的modelscope模型目录&#xff0c;映射到容器中作为只读模式时会报错。 原因分析 使用modelscope加载模型时会去修改ast_index和具体模型的一些隐藏文件。 解决方案 如果你使用的框架支持直接传model的绝对路径&#xff08;例如vllm&#xff09;&#xf…

数仓建模—需求管理

文章目录 数仓建模—需求管理需求管理的背景日常需求管理项目需求管理要明确用户明确指标明确业务规则明确取数来源明确用户与指标对应关系总结数仓建模—需求管理 今天我们简单介绍一下数仓的需求管理,其实需求管理是一个软技能,为什么说是软技能,因为即使你不会需求管理或…

DW怎么Python:探索Dreamweaver与Python的交织世界

DW怎么Python&#xff1a;探索Dreamweaver与Python的交织世界 在数字世界的广袤天地中&#xff0c;Dreamweaver&#xff08;简称DW&#xff09;与Python这两大工具各自闪耀着独特的光芒。DW以其强大的网页设计和开发能力著称&#xff0c;而Python则以其简洁、易读和强大的编程…

【Git】git合并分支指定内容到主分支

git合并分支指定内容到主分支 在现实开发中&#xff0c;往往需要合并分支内容&#xff0c;如下图&#xff1a; 我们平时在其他分支修改了部分代码&#xff0c;如何将分支部分代码合并到主分支上面呢&#xff1f; 合并步骤&#xff1a; 1、切换当前到主分支 git checkout m…

大型制造业集团IT信息化总体规划方案(65页PPT)

方案介绍&#xff1a; 本大型制造业集团IT信息化总体规划方案旨在通过构建先进、高效、稳定的IT信息化系统&#xff0c;支撑集团各业务领域的运营和管理需求&#xff0c;促进集团整体运营效率和竞争力的提升。通过实施本项目&#xff0c;集团将能够更好地应对市场变化和客户需…

初级前端开发岗

定位&#xff1a; 日常任务的辅助执行者&#xff0c;前端基础建设的参与者。 素质要求&#xff1a; 是否遵循部门敏捷流程、规范、P0制度&#xff1b;具备良好的沟通和协作能力;负责日常迭代任务的落地执行;拥有较强的执行力&#xff0c;能够灵活解决问题; 职责&#xff1a…