第十章 C#文件操作《算法与程序设计--C#》(河北科学技术出版社)章节过关卷

2025-09-16
| 2份
| 22页
| 80人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 算法与程序设计(C#)
教材版本 算法与程序设计-C#
年级 -
章节 项目十 C #文件操作
类型 作业-单元卷
知识点 C#文件操作
使用场景 同步教学-单元练习
学年 2025-2026
地区(省份) 河北省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 263 KB
发布时间 2025-09-16
更新时间 2025-09-16
作者 liqp_080269423
品牌系列 学易金卷·阶段检测模拟卷
审核时间 2025-09-16
下载链接 https://m.zxxk.com/soft/53942095.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

《算法与程序设计C#》河北科学技术出版社 第十章 C#文件操作 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共25小题,每题2分,共50分) 1.关于 File 类和 FileInfo 类,说法正确的是( ) A. FileInfo 类是抽象类,不能实例化对象 B. File 类必须先创建对象才能操作文件 C. File 类和 FileInfo 类都是静态类,区别仅在方法使用 D. 二者都有 Create 相关方法 2.Graphics 类中,绘制弧线的方法是( ) A. DrawPic B. DrawArc C. DrawRectangle D. DrawEllipse 3.代码 Graphics g = this.CreateGraphics(); Brush b = new SolidBrush(Color.Red); Pen p = new Pen(b, 2); Rectangle r = new Rectangle(10,10,100,50); g.DrawPie(p, r, 50, 100); 功能描述正确的是( ) A. 绘制矩形 B. 绘制指定起止角度的扇形 C. 绘制椭圆 D. 绘制直线 4.File 类的 Attributes 属性作用是( ) A. 获取是否只读 B. 获取路径文件名 C. 获取文件属性 D. 获取创建时间 5.关于 FileStream 类和 StreamReader 类 Read 方法,说法正确的是( ) A. 完全相同 B. Read 读字节,ReadChar 读字符 C. 都读字符,ReadChar 需考虑编码 D. 仅从 ASCII 文件读 6.语句 Rectangle r = new Rectangle(50,50,100,100); 描述正确的是( ) A. 左上角(50,50),高 100、宽 100 矩形 B. 左上角(50,50),右下角(100,100)矩形 C. 只能绘制矩形 D. 只能填充矩形 7.在 C# 中,若要判断指定文件是否存在,应使用 FileInfo 类的哪个方法 ( ) A. Create() B. Exists() C. Delete() D. MoveTo() 8.下列不属于 FontStyle 枚举值的是( ) A. Bold B. Underline C. Italic D. Dotted 9.删除文件说法错误的是( ) A. File 和 FileInfo 都可删文件 B. File 删除用 Delete 静态方法 C. FileInfo 删除需实例化对象调 Delete D. FileInfo 实例化对象后删文件,文件不存在也不报错 10.Graphics 类中填充椭圆形方法是( ) A. FillPolygon B. FillPie C. FillRectangle D. FillEllipse 11.关于 C# 中 StreamWriter 对象,下列说法正确的是( ) A. WriteLine 方法用于写入不带换行的文本 B. 要强制将写缓冲区内容存入文件并清空缓冲区,应使用 Flush 方法 C. StreamWriter 类位于 System.Data 命名空间 D. Write 方法会自动添加回车和换行符 12.StreamWriter 写文件默认编码是( ) A. ASCII B. UTF8 C. Unicode D. GB2312 13.关于 FileStream 说法正确的是( ) A. 是 Stream 派生类,Stream 是基类不能实例化 B. FileStream 和 StreamWriter 都由 Stream 派生,可互相创建对象 C. FileMode 用 Create 时文件存在会报错 D. FileAccess 用 ReadWrite 时文件必须存在 14.在C#中,若要获取指定文件夹的最近访问时间,应使用哪个属性( ) A. CreationTime B. LastAccessTime C. LastWriteTime D. Name 15.关于C#中文件打开模式,以下哪种模式打开文件时,若文件不存在则不会创建新文件( ) A. Append B. Create C. Open D. OpenOrCreate 16.FileStream 与 StreamReader Read 方法区别正确的是( ) A. 都读字符,无区别 B. FileStream 读字节,StreamReader 读字符 C. 都读字符,StreamReader 读需考虑编码 D. FileStream 读 ASCII,StreamReader 读其他编码 17.在C#里,要处理文件输入输出操作中的字节流,应使用哪个类( ) A. StreamReader B. StreamWriter C. FileStream D. BinaryReader 18.关于顺序文件和随机文件说法正确的是( ) A. 按编码分类 B. 区别在文件访问和更新方式 C. 随机文件字段类型必须相同 D. 物理结构完全不同 19.不是 File 类方法或属性的是( ) A. Copy B. FileAttributes C. CopyTo D. Exists 20.关于文件读写类说法错误的是( ) A. BinaryReader 可读二进制文件 B. StreamReader 按行读文本文件更方便 C. FileStream 处理大文件效率高 D. 任何文件都只能用一种类操作 21.想让FileStream打开文件后,读写指针定位在文件开头且清空原有内容,FileMode选( )。 A. Append B. Create C. CreateNew D. Truncate 22.关于FileMode.OpenOrCreate描述,正确的是( )。 A. 一定创建新文件,覆盖旧文件 B. 仅能打开已存在文件,不存在报错 C. 文件存在则打开,不存在则创建新文件 D. 创建文件但不允许写入 23.要获取指定文件夹所有子文件夹名称,用Directory类的( )方法。 A. Exists() B. GetFiles() C. GetDirectories() D. CreateDirectory() 24.以下不能向文本文件写入内容的是( )。 A. StreamWriter B. File.WriteAllText C. StreamWriter.Write D. StreamReader 25.下列Stream子类里,网络流NetworkStream通常( )。 A. 支持任意位置Seek(定位) B. 不支持随意Seek(定位)操作 C. 比FileStream定位效率更高 D. 只能读取不能写入 二、判断题(本题共10小题,每题1分,共10分) 1.File 类是静态类,调用方法无需创建对象。( ) 2.Graphics 的 DrawString 方法可设置绘制文本为 int 类型。( ) 3.写文件用 StreamWriter 时,true 参数代表覆盖写入,false 代表追加。( ) 4.FileInfo 类的 Copy 方法可复制文件到指定位置。( ) 5.使用 File 类的 Copy 方法可以实现文件的复制操作。( ) 6.FileMode.OpenOrCreate 始终会创建新文件。( ) 7.StreamReader 的 Peek 方法可读取字符且不移动流位置。( ) 8.Directory 类的 Move 方法可以用来删除文件夹。( ) 9.处理大文件,FileStream 比 StreamReader 更占内存。( ) 10.任何文件操作完成后,都必须关闭流对象。( ) 三、填空题(本题共10小题,每题2分,共20分) 1.要获取文件的创建时间,可使用____类的____方法(或____的____属性 ) 。 2.在C#中,StreamWriter 类里用于向文本文件写入一行带回车和换行文本的方法是______ 。 3.用 StreamWriter 追加写入文件,构造方法参数应包含____ 。 4.读取二进制文件,常用的类是____ 。 5.C#中,File 类里用于创建文件的方法是______ 。 6.在.NET文件操作中,若想通过FileStream 实现对文件的追加写入,创建FileStream 时FileMode参数应指定为______ 。 7.FileStream类里,用于获取或设置流当前位置的属性是______ 。 8.若用File类Open方法创建FileStream,想让文件流仅能读取,access参数应填______ 。 9.处理二进制图片文件读写,常用______类和______类 。 10.StreamReader对象里,______方法可一次性读取文本流全部内容,返回包含所有字符的字符串 。 四、程序分析题(本题共2小题,每题5分,共10分) 1.以下代码读取文件内容并统计特定字符,运行后控制台输出: StreamReader sr = new StreamReader("D:\\test.txt"); char[] a = new char[50]; int num; int countA = 0, countB = 0; num = sr.Read(); while (num != 1) { a[0] = Convert.ToChar(num); if (a[0] == 'a') countA++; if (a[0] == 'b') countB++; num = sr.Read(); } sr.Close(); Console.WriteLine(countA + " " + countB); 2.现有如下 C# 程序,分析程序运行后控制台输出为: using System; using System.IO; class Program { static void Main() { int i; FileStream fs1 = new FileStream("D:\\test3.txt", FileMode.Create, FileAccess.Write); BinaryWriter bw = new BinaryWriter(fs1); int[] a = new int[8]; Random myRand = new Random(); for (i = 0; i < 7; i++) { a[i] = myRand.Next(20, 99); Console.Write(a[i] + ", "); bw.Write(a[i]); } bw.Close(); fs1.Close(); Console.ReadLine(); } } 五、程序填空题(本题共1小题,每题5分,共5分) 1.通过 FileInfo 类操作文件,完成以下代码填空,实现判断文件是否存在,若不存在则创建文件的功能。 private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == string.Empty) { MessageBox.Show("文件名不能为空!"); } else { FileInfo file1 = new FileInfo(textBox1.Text); if (_______) { MessageBox.Show("该文件已经存在"); } else { file1.Create(); } } } 6、 程序改错题(本题共1小题,每题5分,共5分) 1.以下是一段使用 FileStream 读取文件并显示内容的 C# 代码,但存在错误,请找出并改正。 using System; using System.IO; class Program { static void Main() { Byte[] ByteArray = new Byte[26]; FileStream fs1 = new FileStream(@"D: \Test\test2.txt", FileMode.Open, FileAccess.Read); fs1.Read(ByteArray, 0, 26); for (int i = 0; i <= ByteArray.Length; i++) { Console.Write(Convert.ToChar(ByteArray[i])); } Console.ReadLine(); fs1.Close(); } } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 《算法与程序设计C#》河北科学技术出版社 第十章 C#文件操作 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共25小题,每题2分,共50分) 1.关于 File 类和 FileInfo 类,说法正确的是( ) A. FileInfo 类是抽象类,不能实例化对象 B. File 类必须先创建对象才能操作文件 C. File 类和 FileInfo 类都是静态类,区别仅在方法使用 D. 二者都有 Create 相关方法 【答案】D 【解析】FileInfo 类可实例化,A 错误;File 类是静态类,无需实例化对象直接用方法,B 错误;File 是静态类,FileInfo 需实例化,C 错误;二者都有创建文件等相关方法,D 正确。 2.Graphics 类中,绘制弧线的方法是( ) A. DrawPic B. DrawArc C. DrawRectangle D. DrawEllipse 【答案】B 【解析】DrawArc 是绘制弧线方法;DrawRectangle 绘制矩形,DrawEllipse 绘制椭圆 ,A 为干扰项,选 B。 3.代码 Graphics g = this.CreateGraphics(); Brush b = new SolidBrush(Color.Red); Pen p = new Pen(b, 2); Rectangle r = new Rectangle(10,10,100,50); g.DrawPie(p, r, 50, 100); 功能描述正确的是( ) A. 绘制矩形 B. 绘制指定起止角度的扇形 C. 绘制椭圆 D. 绘制直线 【答案】B 【解析】DrawPie 方法用于绘制扇形,根据参数,是用红色画笔、指定矩形区域,绘制起始角度 50、终止角度 100 的扇形,选 B。 4.File 类的 Attributes 属性作用是( ) A. 获取是否只读 B. 获取路径文件名 C. 获取文件属性 D. 获取创建时间 【答案】C 【解析】Attributes 可获取文件系统属性,包含只读、隐藏等多种属性信息,A 只是其中部分,B 是 FullName 等属性作用,D 是 CreationTime 等属性作用,选 C。 5.关于 FileStream 类和 StreamReader 类 Read 方法,说法正确的是( ) A. 完全相同 B. Read 读字节,ReadChar 读字符 C. 都读字符,ReadChar 需考虑编码 D. 仅从 ASCII 文件读 【答案】C 【解析】二者都可读取字符相关内容,ReadChar 在处理流位置和编码关联上更需关注编码影响,A 错误;Read 也可处理字符相关(依流情况),B 表述片面;不局限 ASCII 文件,D 错误。 6.语句 Rectangle r = new Rectangle(50,50,100,100); 描述正确的是( ) A. 左上角(50,50),高 100、宽 100 矩形 B. 左上角(50,50),右下角(100,100)矩形 C. 只能绘制矩形 D. 只能填充矩形 【答案】A 【解析】Rectangle 构造参数(x,y,width,height),即左上角(50,50),宽 100、高 100 ,B 错误;可用于绘制、填充等多种图形操作基础,C、D 错误,选 A。 7.在 C# 中,若要判断指定文件是否存在,应使用 FileInfo 类的哪个方法 ( ) A. Create() B. Exists() C. Delete() D. MoveTo() 【答案】B 【解析】FileInfo 类的 Exists 方法专门用于判断指定文件是否存在;Create 方法用于创建文件 ;Delete 方法用于删除文件 ;MoveTo 方法用于移动文件,所以选 B。 8.下列不属于 FontStyle 枚举值的是( ) A. Bold B. Underline C. Italic D. Dotted 【答案】D 【解析】Bold(加粗 )、Underline(下划线 )、Italic(斜体 )是 FontStyle 枚举值,Dotted 一般用于边框等样式,不是 FontStyle 枚举里的,选 D。 9.删除文件说法错误的是( ) A. File 和 FileInfo 都可删文件 B. File 删除用 Delete 静态方法 C. FileInfo 删除需实例化对象调 Delete D. FileInfo 实例化对象后删文件,文件不存在也不报错 【答案】D 【解析】文件不存在时,FileInfo 的 Delete 方法会抛异常,A、B、C 对文件删除描述正确,选 D。 10.Graphics 类中填充椭圆形方法是( ) A. FillPolygon B. FillPie C. FillRectangle D. FillEllipse 【答案】D 【解析】FillEllipse 用于填充椭圆形,FillPolygon 填充多边形 ,FillPie 填充扇形 ,FillRectangle 填充矩形 ,选 D。 11.关于 C# 中 StreamWriter 对象,下列说法正确的是( ) A. WriteLine 方法用于写入不带换行的文本 B. 要强制将写缓冲区内容存入文件并清空缓冲区,应使用 Flush 方法 C. StreamWriter 类位于 System.Data 命名空间 D. Write 方法会自动添加回车和换行符 【答案】B 【解析】A选项,WriteLine 方法用于写入带换行的文本,Write 方法写入不带换行的文本;B选项,StreamWriter 的 Flush 方法可强制将缓冲区内容存入文件并清空缓冲区,说法正确;C选项,StreamWriter 类位于 System.IO 命名空间,而非 System.Data;D选项,WriteLine 方法会自动添加回车和换行符,Write 方法不会,所以选 B。 12.StreamWriter 写文件默认编码是( ) A. ASCII B. UTF8 C. Unicode D. GB2312 【答案】B 【解析】StreamWriter 默认编码是 UTF8 ,选 B。 13.关于 FileStream 说法正确的是( ) A. 是 Stream 派生类,Stream 是基类不能实例化 B. FileStream 和 StreamWriter 都由 Stream 派生,可互相创建对象 C. FileMode 用 Create 时文件存在会报错 D. FileAccess 用 ReadWrite 时文件必须存在 【答案】D 【解析】Stream 可实例化(如 MemoryStream 等 ),A 错误;FileStream 和 StreamWriter 用途不同,不能随意互相创建对象,B 错误;FileMode.Create 会覆盖已有文件,C 错误;FileAccess.ReadWrite 要求文件存在,选 D。 14.在C#中,若要获取指定文件夹的最近访问时间,应使用哪个属性( ) A. CreationTime B. LastAccessTime C. LastWriteTime D. Name 【答案】B 【解析】LastAccessTime 属性用于获取文件夹的最近访问时间;CreationTime 是创建时间;LastWriteTime 是最后写入时间;Name 是获取文件夹名称,所以选B。 15.关于C#中文件打开模式,以下哪种模式打开文件时,若文件不存在则不会创建新文件( ) A. Append B. Create C. Open D. OpenOrCreate 【答案】C 【解析】Open 模式要求文件必须存在,不存在则报错,不会创建新文件;Append 若文件不存在会创建;Create 会创建新文件;OpenOrCreate 不存在就创建,所以选C。 16.FileStream 与 StreamReader Read 方法区别正确的是( ) A. 都读字符,无区别 B. FileStream 读字节,StreamReader 读字符 C. 都读字符,StreamReader 读需考虑编码 D. FileStream 读 ASCII,StreamReader 读其他编码 【答案】B 【解析】FileStream 主要操作字节,Read 读字节;StreamReader 操作字符,Read 读字符。 17.在C#里,要处理文件输入输出操作中的字节流,应使用哪个类( ) A. StreamReader B. StreamWriter C. FileStream D. BinaryReader 【答案】C 【解析】FileStream 用于处理文件输入输出的字节流;StreamReader、StreamWriter 主要处理字符流相关读写;BinaryReader 是基于字节流读取二进制数据的辅助类,核心处理字节流的是 FileStream,所以选C。 18.关于顺序文件和随机文件说法正确的是( ) A. 按编码分类 B. 区别在文件访问和更新方式 C. 随机文件字段类型必须相同 D. 物理结构完全不同 【答案】B 【解析】顺序文件和随机文件区别主要在访问、更新逻辑,A 不是按编码;C 随机文件字段类型可不同;D 物理结构有相似也有差异,不是完全不同,选 B。 19.不是 File 类方法或属性的是( ) A. Copy B. FileAttributes C. CopyTo D. Exists 【答案】B 【解析】FileAttributes 是属性类型,不是 File 类直接的方法/属性 ,Copy、CopyTo、Exists 都是 File 类成员,选 B。 20.关于文件读写类说法错误的是( ) A. BinaryReader 可读二进制文件 B. StreamReader 按行读文本文件更方便 C. FileStream 处理大文件效率高 D. 任何文件都只能用一种类操作 【答案】D 【解析】文件可根据需求,用多种类组合操作(如先 FileStream 读字节,再 StreamReader 转字符 ),D 错误。 21.想让FileStream打开文件后,读写指针定位在文件开头且清空原有内容,FileMode选( )。 A. Append B. Create C. CreateNew D. Truncate 【答案】D 【解析】Append是定位到文件末尾追加;Create是创建新文件(存在则覆盖 );CreateNew要求文件不存在才创建(存在抛异常 );Truncate会清空现有文件内容,保留文件句柄,指针放开头,符合题意,选D 。 22.关于FileMode.OpenOrCreate描述,正确的是( )。 A. 一定创建新文件,覆盖旧文件 B. 仅能打开已存在文件,不存在报错 C. 文件存在则打开,不存在则创建新文件 D. 创建文件但不允许写入 【答案】C 【解析】A选项“一定创建新文件,覆盖旧文件”是Create的效果;B选项“仅能打开已存在文件,不存在报错”是Open的特点;D选项“创建文件但不允许写入”逻辑错误,OpenOrCreate核心就是“存在则开,不存在则建”,选C 。 23.要获取指定文件夹所有子文件夹名称,用Directory类的( )方法。 A. Exists() B. GetFiles() C. GetDirectories() D. CreateDirectory() 【答案】C 【解析】Exists()是判断文件夹是否存在;GetFiles()是获取文件夹里的文件路径数组;CreateDirectory()是创建文件夹;GetDirectories()专门返回子文件夹路径数组,选C 。 24.以下不能向文本文件写入内容的是( )。 A. StreamWriter B. File.WriteAllText C. StreamWriter.Write D. StreamReader 【答案】D 【解析】StreamWriter是写文本流的核心类,WriteLine(写一行带换行 )、Write(写内容不带换行 )都能写;File.WriteAllText可直接覆盖写入字符串到文件;StreamReader是读文本流的,选D 。 25.下列Stream子类里,网络流NetworkStream通常( )。 A. 支持任意位置Seek(定位) B. 不支持随意Seek(定位)操作 C. 比FileStream定位效率更高 D. 只能读取不能写入 【答案】B 【解析】FileStream(文件流 )、MemoryStream(内存流 )支持Seek定位读写位置;BufferedStream(带缓冲的流 )也能配合支持定位的流做Seek;但NetworkStream因网络数据是流式传输(不确定数据长度、接收顺序等 ),一般不支持Seek,选B 。 二、判断题(本题共10小题,每题1分,共10分) 1.File 类是静态类,调用方法无需创建对象。( ) 【答案】√ 【解析】File 类成员多为静态,直接用类名调用方法 。 2.Graphics 的 DrawString 方法可设置绘制文本为 int 类型。( ) 【答案】× 【解析】DrawString 用于绘制字符串,不是 int 类型文本 。 3.写文件用 StreamWriter 时,true 参数代表覆盖写入,false 代表追加。( ) 【答案】× 【解析】true 是追加,false 是覆盖 。 4.FileInfo 类的 Copy 方法可复制文件到指定位置。( ) 【答案】√ 【解析】FileInfo 实例化后,调 Copy 方法可复制文件 。 5.使用 File 类的 Copy 方法可以实现文件的复制操作。( ) 【答案】√ 【解析】在C#中,File 类提供了 Copy 静态方法,能够实现文件的复制功能,所以该说法正确。 6.FileMode.OpenOrCreate 始终会创建新文件。( ) 【答案】× 【解析】文件存在则打开,不存在才创建 。 7.StreamReader 的 Peek 方法可读取字符且不移动流位置。( ) 【答案】√ 【解析】Peek 查看下一个字符,流位置不变 。 8.Directory 类的 Move 方法可以用来删除文件夹。( ) 【答案】× 【解析】Directory 类的 Move 方法是用于移动文件夹,删除文件夹一般用 Directory 类的 Delete 方法,所以该说法错误。 9.处理大文件,FileStream 比 StreamReader 更占内存。( ) 【答案】× 【解析】StreamReader 有缓冲等,合理使用下,处理大文件时 FileStream 若不合理操作也可能占内存,但通常说 StreamReader 按字符处理,在文本处理场景相对更适配,不能简单说 FileStream 更占内存,该说法错误 。 10.任何文件操作完成后,都必须关闭流对象。( ) 【答案】√ 【解析】防止资源泄漏,确保文件正确读写完成 。 三、填空题(本题共10小题,每题2分,共20分) 1.要获取文件的创建时间,可使用____类的____方法(或____的____属性 ) 。 【答案】File;GetCreationTime;FileInfo;CreationTime 【解析】 在 C# 中,File 是静态类,提供了一系列静态方法操作文件和目录,GetCreationTime 方法接收文件路径参数,返回 DateTime 类型的文件创建时间,示例:DateTime createTime = File.GetCreationTime("test.txt");。 FileInfo 类用于获取文件的详细信息,需先实例化(如 FileInfo fileInfo = new FileInfo("test.txt"); ),然后通过其 CreationTime 属性(属性类型为 DateTime )获取创建时间,示例:DateTime createTime = fileInfo.CreationTime;二者功能类似,File 适合简单、一次性获取信息场景;FileInfo 适合多次访问文件属性,或结合其他文件信息(如大小、扩展名等 )一起处理的场景 。 2.在C#中,StreamWriter 类里用于向文本文件写入一行带回车和换行文本的方法是______ 。 【答案】WriteLine 【解析】StreamWriter 的 WriteLine 方法会在写入内容后自动添加回车和换行符,实现写入一行文本并换行的效果 。 3.用 StreamWriter 追加写入文件,构造方法参数应包含____ 。 【答案】true 【解析】StreamWriter 用于以字符流形式写入文本文件,其构造方法有多种重载。当需要追加内容而不是覆盖原有内容时,需传入 true 作为参数(第二个参数,第一个参数是文件路径 ),示例: // 追加模式写入,若文件不存在则创建 using (StreamWriter sw = new StreamWriter("test.txt", true)) { sw.WriteLine("追加的内容"); } 若不传入 true (或传入 false ),则会覆盖文件原有内容 。 4.读取二进制文件,常用的类是____ 。 【答案】BinaryReader 【解析】BinaryReader 用于以二进制方式读取文件内容,需配合 FileStream 使用(FileStream 负责打开文件并提供字节流 )。示例: using (FileStream fs = new FileStream("test.bin", FileMode.Open)) using (BinaryReader br = new BinaryReader(fs)) { byte data = br.ReadByte(); // 读取一个字节 int intData = br.ReadInt32(); // 读取一个 int 类型数据(4 个字节 ) } 5.C#中,File 类里用于创建文件的方法是______ 。 【答案】Create 【解析】File 类的 Create 静态方法,可用于在指定路径创建一个新文件,若文件已存在则会覆盖(不同重载有不同处理逻辑 )。 6.在.NET文件操作中,若想通过FileStream 实现对文件的追加写入,创建FileStream 时FileMode参数应指定为______ 。 【答案】FileMode.Append 【解析】 FileMode是用于指定文件打开方式的枚举类型。 FileMode.Append 的作用就是:若文件存在,会将文件读写指针定位到文件末尾,后续写入操作往末尾追加内容;若文件不存在,则创建新文件 。比如日志文件记录,每次要把新日志追加到已有日志后面,就可以用这个模式,保证原有内容不被覆盖,新内容依次添加。 7.FileStream类里,用于获取或设置流当前位置的属性是______ 。 【答案】Position 【解析】通过操作Position属性,能改变文件读写指针位置,实现随机读写,比如想从文件中间开始读写,就可设置Position的值 。 8.若用File类Open方法创建FileStream,想让文件流仅能读取,access参数应填______ 。 【答案】FileAccess.Read 【解析】FileAccess枚举有Read(读)、Write(写)、ReadWrite(读写)三种值,按需设置控制文件流权限 。 9.处理二进制图片文件读写,常用______类和______类 。 【答案】FileStream、BinaryReader/BinaryWriter 【解析】二进制文件存储非文本内容(图片、音频等),FileStream是基础字节流,BinaryReader/Writer封装了二进制读写常用操作 。 10.StreamReader对象里,______方法可一次性读取文本流全部内容,返回包含所有字符的字符串 。 【答案】ReadToEnd 【解析】适合小文本文件读取,大文件用ReadLine逐行读更省内存,ReadToEnd会把流内容全读入字符串,要注意内存占用 。 四、程序分析题(本题共2小题,每题5分,共10分) 1.以下代码读取文件内容并统计特定字符,运行后控制台输出: StreamReader sr = new StreamReader("D:\\test.txt"); char[] a = new char[50]; int num; int countA = 0, countB = 0; num = sr.Read(); while (num != 1) { a[0] = Convert.ToChar(num); if (a[0] == 'a') countA++; if (a[0] == 'b') countB++; num = sr.Read(); } sr.Close(); Console.WriteLine(countA + " " + countB); 【答案】4 2 【解析】逐字符读取文件,统计 'a' 和 'b' 出现次数。若文件内容是 abcabacda ,'a' 出现 4 次,'b' 出现 2 次,输出 4 2 。 2.现有如下 C# 程序,分析程序运行后控制台输出为: using System; using System.IO; class Program { static void Main() { int i; FileStream fs1 = new FileStream("D:\\test3.txt", FileMode.Create, FileAccess.Write); BinaryWriter bw = new BinaryWriter(fs1); int[] a = new int[8]; Random myRand = new Random(); for (i = 0; i < 7; i++) { a[i] = myRand.Next(20, 99); Console.Write(a[i] + ", "); bw.Write(a[i]); } bw.Close(); fs1.Close(); Console.ReadLine(); } } 【答案】7 个 20~98 的随机整数(带 , 后缀 ) 【解析】 1.控制台输出: 程序会循环 7 次(i < 7),每次生成一个 20~99(含 20,不含 99 )的随机整数。控制台会依次输出这 7 个整数。 五、程序填空题(本题共1小题,每题5分,共5分) 1.通过 FileInfo 类操作文件,完成以下代码填空,实现判断文件是否存在,若不存在则创建文件的功能。 private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == string.Empty) { MessageBox.Show("文件名不能为空!"); } else { FileInfo file1 = new FileInfo(textBox1.Text); if (_______) { MessageBox.Show("该文件已经存在"); } else { file1.Create(); } } } 【答案】file1.Exists 【解析】FileInfo 类的 Exists 属性用于判断文件是否存在,所以这里填 file1.Exists。 6、 程序改错题(本题共1小题,每题5分,共5分) 1.以下是一段使用 FileStream 读取文件并显示内容的 C# 代码,但存在错误,请找出并改正。 using System; using System.IO; class Program { static void Main() { Byte[] ByteArray = new Byte[26]; FileStream fs1 = new FileStream(@"D: \Test\test2.txt", FileMode.Open, FileAccess.Read); fs1.Read(ByteArray, 0, 26); for (int i = 0; i <= ByteArray.Length; i++) { Console.Write(Convert.ToChar(ByteArray[i])); } Console.ReadLine(); fs1.Close(); } } 【答案】 for (int i = 0; i <= ByteArray.Length; i++) 改为:for (int i = 0; i < ByteArray.Length; i++) 【解析】数组的最大下标,到长度减1。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第十章 C#文件操作《算法与程序设计--C#》(河北科学技术出版社)章节过关卷
1
第十章 C#文件操作《算法与程序设计--C#》(河北科学技术出版社)章节过关卷
2
第十章 C#文件操作《算法与程序设计--C#》(河北科学技术出版社)章节过关卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。