内容正文:
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第79卷为专题训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.文件操作;2.图形操作。
2027版河北省《计算机类考纲百套卷》 第79卷
《算法与程序设计-C#》
文件操作与图形操作 专题训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共15小题,每题2分,共30分)
1.下列关于文件流(FileStream)的描述,正确的是( )
A. FileStream 只能用于读取文本文件
B. FileStream 是以字节(Byte)为单位对文件进行读写的
C. FileStream 只能用于写入二进制文件
D. FileStream 会自动处理字符编码问题
【答案】B
【解析】FileStream 是最底层的文件操作类,它提供对文件的字节级访问,既可以处理文本文件,也可以处理二进制文件,但它本身不处理字符编码。
2.若要使用 FileStream 打开一个现有文件,如果文件不存在则抛出异常,应使用( ) FileMode 枚举值。
A. FileMode.Create B. FileMode.Open
C. FileMode.Append D. FileMode.CreateNew
【答案】B
【解析】FileMode.Open 用于打开现有文件,若文件不存在会抛出 FileNotFoundException。Create 是文件不存在则创建,存在则覆盖;Append 是追加模式。
3.在 FileStream 的构造函数中,FileAccess 枚举的 ReadWrite 表示( )
A. 只能读取文件 B. 只能写入文件
C. 可以读取也可以写入文件 D. 以追加模式写入文件
【答案】C
【解析】FileAccess 用于指定对文件的访问权限,ReadWrite 表示对文件拥有读写双重权限。
4.下列关于文本文件和二进制文件的区别,描述最准确的是( )
A. 文本文件只能包含字母和数字,二进制文件可以包含图片
B. 文本文件以人类可读的字符编码存储,二进制文件以数据的原始字节形式存储
C. 文本文件比二进制文件更小
D. 二进制文件不能用记事本打开
【答案】B
【解析】文本文件是经过字符编码(如UTF-8)映射的,目的是给人看;二进制文件是数据在内存中的原始字节映像,目的是给程序高效读取。
5.使用 StreamReader 读取文件时,ReadLine() 方法的返回值在( )情况下为 null?
A. 读取到空行时 B. 读取到文件末尾时
C. 文件被占用时 D. 读取到第一行时
【答案】B
【解析】ReadLine() 读取一行文本,如果遇到文件末尾(End of Stream),则返回 null。如果读取到空行,它会返回一个空字符串 ""。
6.FileInfo 类和 File 类的区别在于( )
A. File 是实例类,FileInfo 是静态类
B. File 是静态类,提供静态方法;FileInfo 是实例类,需实例化后使用
C. FileInfo 只能获取文件信息,不能操作文件
D. 两者没有任何区别
【答案】B
【解析】File 类提供的是静态方法,适合对文件进行单次操作;FileInfo 是实例类,适合对同一个文件进行多次操作,因为它可以缓存文件的安全检查和路径信息。
7.在C#中,using System.IO; 语句的作用是( )
A. 引入输入输出相关的类和接口 B. 引入网络通信相关的类
C. 引入数据库操作相关的类 D. 引入图形界面相关的类
【答案】A
【解析】System.IO 是处理文件、目录、数据流等输入输出操作的基础命名空间。
8.下列关于 BinaryReader 的描述,正确的是( )
A. 它读取数据时不需要关心写入时的数据类型
B. 它读取数据的顺序必须与 BinaryWriter 写入的顺序一致
C. 它只能读取字符串类型的数据
D. 它会自动将二进制数据转换为 XML 格式
【答案】B
【解析】二进制读写是严格的“先进先出”字节流。写入时是 int, string, double,读取时也必须严格按照 ReadInt32, ReadString, ReadDouble 的顺序,否则数据会错乱。
9.下列关于"流(Stream)"概念的描述,最准确的是( )
A. 流是一种存储数据的容器 B. 流是数据传输的通道,是一个字节序列
C. 流只能用于读取数据,不能写入数据 D. 流必须一次性传输所有数据
【答案】B
【解析】流是数据传输的通道或管道,数据以字节序列的形式从一端流向另一端。流既可以读取也可以写入。
10. 以下代码片段的功能是( )
FileStream fs = new FileStream("info.txt", FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[1024];
int count = fs.Read(buffer, 0, 1024);
fs.Close();
A. 向文件写入1024字节 B. 从文件读取最多1024字节到缓冲区
C. 读取文件全部内容 D. 清空文件内容
【答案】B
【解析】fs.Read(buffer, 0, 1024) 表示从文件读取最多1024字节到buffer数组中。返回值count表示实际读取的字节数。
11.下列关于 Pen(画笔)和 Brush(画刷)的区别,描述正确的是( )
A. Pen 用于填充封闭图形内部,Brush 用于绘制图形轮廓
B. Pen 用于绘制线条和图形轮廓,Brush 用于填充封闭图形内部
C. Pen 只能画直线,Brush 只能画矩形
D. 两者没有区别,可以互相替代
【答案】B
【解析】Pen 定义了绘制线条、曲线和图形边框(轮廓)的颜色、宽度和样式;Brush 则定义了填充图形(如矩形、椭圆)内部区域的颜色、纹理或渐变。
12.在GDI+中,若要绘制一个空心矩形(只有边框,没有填充),应调用 Graphics 对象的( )方法?
A. FillRectangle B. DrawRectangle C. DrawLine D. DrawPolygon
【答案】B
【解析】Draw 开头的方法(如 DrawRectangle)用于绘制轮廓,需要传入 Pen 对象;Fill 开头的方法(如 FillRectangle)用于填充内部,需要传入 Brush 对象。
13.若要绘制一条虚线,应设置 Pen 对象的( )属性。
A. Color B. Width C. DashStyle D. LineJoin
【答案】C
【解析】Pen.DashStyle 属性用于定义虚线的样式。
14. 下列代码的作用是( )
g.FillEllipse(new SolidBrush(Color.Blue), 10, 10, 100, 100);
A. 绘制一个蓝色的空心圆 B. 绘制一个蓝色的实心圆
C. 绘制一个蓝色的空心椭圆 D. 绘制一个蓝色的实心椭圆
【答案】B
【解析】FillEllipse 表示填充椭圆,当外接矩形的宽度和高度相等(都是100)时,绘制出来的是一个正圆。使用 SolidBrush 填充,所以是蓝色的实心圆。
15.若要获取一个已经存在的图片文件的 Graphics 对象以便在图片上绘图,应使用( )
A. Graphics g = this.CreateGraphics();
B. Graphics g = Graphics.FromImage(image);
C. Graphics g = new Graphics();
D. Graphics g = e.Graphics;
【答案】B
【解析】Graphics.FromImage 静态方法可以从指定的 Image 对象创建一个新的 Graphics 对象,常用于给图片添加水印或文字。
2、 判断题(本大题共10小题,每题2分,共20分)
16.FileMode.Create会创建一个新文件,如果文件已存在,则会清空文件内容重新开始。( )
【答案】对
【解析】FileMode.Create的行为:如果文件不存在,创建新文件;如果文件已存在,覆盖(截断为0长度),相当于删除原文件重新创建。
17.FileMode.Append只能在文件末尾追加内容,不能读取文件原有内容。( )
【答案】对
【解析】Append模式打开文件后,文件指针自动移到文件末尾,只能在末尾追加写入,不能读取文件内容。如果需要同时读写,应使用OpenOrCreate模式。
18.FileStream的Flush方法用于清空缓冲区,将缓冲区中的数据立即写入文件。( )
【答案】对
【解析】Flush()方法强制将缓冲区中的数据写入磁盘文件。对于FileStream,如果不调用Flush()或Close(),数据可能仍在缓冲区中,系统不会立即写入文件。
19.StreamWriter的WriteLine方法会在写入内容后自动添加换行符,而Write方法不会。( )
【答案】对
【解析】WriteLine()会在内容后追加换行符(Environment.NewLine),Write()不会。这是两者最直接的区别。
20.File类的静态方法如Exists、Delete、Copy等可以直接调用,不需要创建File类实例。( )
【答案】对
【解析】File类是静态工具类,所有方法都是静态方法,可以直接通过File.方法名()调用,不需要实例化。这也是File类与FileInfo类的重要区别。
21.StreamReader和StreamWriter底层也是基于FileStream实现的,只是封装了字符编码转换功能。( )
【答案】对
【解析】StreamReader/StreamWriter内部封装了FileStream(或类似的流),在此基础上添加了字符编码转换。它们将字节与字符之间的转换工作封装起来,方便开发者以字符为单位读写文本文件。
22.FillRectangle 方法需要传入一个 Pen 对象和一个 Rectangle 对象。( )
【答案】错
【解析】FillRectangle 方法不需要传入 Pen 对象,它需要的是 Brush 对象,而不是 Pen 对象。
23.Font 对象一旦创建,其属性就是只读的,不能修改。( )
【答案】对
【解析】Font 对象是不可变的。如果需要不同样式的字体,必须创建一个新的 Font 对象。
24.Graphics 类的 DrawLine 方法可以接受两个 Point 结构作为参数来定义直线的起点和终点。( )
【答案】对
【解析】DrawLine(Pen, Point, Point) 是 DrawLine 的重载方法之一。
25.LinearGradientBrush 可以实现从一种颜色平滑过渡到另一种颜色的效果。( )
【答案】对
【解析】这是线性渐变画刷的核心功能。
三、填空题(本大题共10个题,每题2分,共20分)
26.流(Stream)可以理解为数据传输的通道或管道,数据以________序列的形式在流中传输。
【答案】字节
【解析】流(Stream)是.NET中处理数据流的核心概念。数据以字节序列的形式从源头流向目的地,实现数据的读写操作。
27.FileStream的________属性返回文件的字节长度。
【答案】Length
【解析】Length属性返回FileStream指向的文件的总字节数。是一个只读属性。
28.StreamReader的________方法用于读取从当前位置到文件剩余的全部内容。
【答案】ReadToEnd()
【解析】ReadToEnd从当前位置读取到文件末尾的所有内容。如果指针不在开头,会读取剩余部分而不是全部文件。
29.使用 StreamReader 读取文件时,如果不指定编码格式,默认通常使用 ________ 编码。
【答案】UTF-8
【解析】在 .NET 中,使用 StreamReader 读取文件不指定编码时,默认使用 UTF-8 编码。
30.使用FileStream读取文件时,可以使用______方法读取多个字节到字节数组。
【答案】Read
【解析】Read:它专用于将文件流中的多个字节一次性读取到字节数组,适合批量处理数据。
31.使用FileStream打开文件时,______枚举用于指定文件打开方式(如只读、只写、读写)。
【答案】FileAccess
【解析】FileAccess:专门决定当前 FileStream 对文件的操作权限(读/写/读写)。
32.Graphics对象使用完毕后应调用 ____ 方法释放资源,但Paint事件中的e.Graphics ____ (需要/不需要)手动释放。
【答案】Dispose;不需要
【解析】手动创建的Graphics对象需要Dispose()释放,但Paint事件中的e.Graphics由系统管理,不需要也不应该手动释放。
33.要绘制图片,应使用Graphics的 ____ 方法,第一个参数是Image对象,后面的参数指定图片的 ____ 和 ____ 坐标。
【答案】DrawImage;x;y
【解析】DrawImage用于在Graphics上绘制图片。常用重载:DrawImage(Image image, float x, float y),x,y是图片左上角在画布上的位置。
34.Pen类的 ____ 属性用于设置画笔颜色, ____ 属性用于设置画笔宽度,默认值为 ____ 像素。
【答案】Color;Width;1
【解析】Pen的两大基本属性:Color设置颜色,Width设置宽度(float类型)。默认Width=1,可在构造函数中或通过属性赋值。
35.填充椭圆应使用Graphics的 ____ 方法;如果要填充多边形,应使用 ____ 方法。
【答案】FillEllipse;FillPolygon
【解析】Fill系列方法用于填充内部,需要Brush参数。FillEllipse填充椭圆,FillPolygon填充多边形。
四、程序填空题(本大题共2题,每空5分,共30分)
36.程序实现的功能是:窗体自动生成一个按钮,点击按钮,在窗体上绘制红色边框空心矩形、蓝色实心椭圆。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Text = "图形绘制填空题";
this.Size = new Size(400, 350);
Button btn = new Button();
btn.Text = "点击绘图";
btn.Location = new Point(120, 280);
btn.Click += Btn_Click;
______(1)________
}
private void Btn_Click(object sender, EventArgs e)
{
Graphics g = ______(2)________
Pen pen = new Pen(Color.Red, 3);
Brush brush = ______(3)________
g.DrawRectangle(pen, 30, 30, 120, 80);
g.FillEllipse(brush, 180, 30, 100, 80);
pen.Dispose();
brush.Dispose();
g.Dispose();
}
【答案】
(1)this.Controls.Add(btn);
(2)this.CreateGraphics();
(3)new SolidBrush(Color.Blue);
【解析】添加按钮到窗体,否则按钮不会显示。CreateGraphics() 用于从当前窗体获取 Graphics 对象,用于绘图。创建蓝色实心画刷,用 new SolidBrush(Color.Blue) 填充椭圆。
37.程序实现的功能:统计一个文本文件中字母'A'(包括大小写)出现的次数。
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "text.txt";
______(1)________
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
int b;
while (______(2)_________)
{
char c = (char)b;
if (______(3)_________)
{
count++;
}
}
}
Console.WriteLine("字母A出现的次数: {0}",count);
}
}
【答案】
(1)int count = 0;
(2)(b = fs.ReadByte()) != -1
(3)c == 'A' || c == 'a'
【解析】ReadByte() 方法每次读取一个字节,返回 int 类型的 ASCII 码。读到文件末尾时返回 -1,作为循环结束条件。判断当前字符是否等于大写字母 'A' 或小写字母 'a'可以用条件c == 'A' || c == 'a'。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第79卷为专题训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.文件操作;2.图形操作。
2027版河北省《计算机类考纲百套卷》 第79卷
《算法与程序设计-C#》
文件操作与图形操作 专题训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共15小题,每题2分,共30分)
1.下列关于文件流(FileStream)的描述,正确的是( )
A. FileStream 只能用于读取文本文件
B. FileStream 是以字节(Byte)为单位对文件进行读写的
C. FileStream 只能用于写入二进制文件
D. FileStream 会自动处理字符编码问题
2.若要使用 FileStream 打开一个现有文件,如果文件不存在则抛出异常,应使用( ) FileMode 枚举值。
A. FileMode.Create B. FileMode.Open
C. FileMode.Append D. FileMode.CreateNew
3.在 FileStream 的构造函数中,FileAccess 枚举的 ReadWrite 表示( )
A. 只能读取文件 B. 只能写入文件
C. 可以读取也可以写入文件 D. 以追加模式写入文件
4.下列关于文本文件和二进制文件的区别,描述最准确的是( )
A. 文本文件只能包含字母和数字,二进制文件可以包含图片
B. 文本文件以人类可读的字符编码存储,二进制文件以数据的原始字节形式存储
C. 文本文件比二进制文件更小
D. 二进制文件不能用记事本打开
5.使用 StreamReader 读取文件时,ReadLine() 方法的返回值在( )情况下为 null?
A. 读取到空行时 B. 读取到文件末尾时
C. 文件被占用时 D. 读取到第一行时
6.FileInfo 类和 File 类的区别在于( )
A. File 是实例类,FileInfo 是静态类
B. File 是静态类,提供静态方法;FileInfo 是实例类,需实例化后使用
C. FileInfo 只能获取文件信息,不能操作文件
D. 两者没有任何区别
7.在C#中,using System.IO; 语句的作用是( )
A. 引入输入输出相关的类和接口 B. 引入网络通信相关的类
C. 引入数据库操作相关的类 D. 引入图形界面相关的类
8.下列关于 BinaryReader 的描述,正确的是( )
A. 它读取数据时不需要关心写入时的数据类型
B. 它读取数据的顺序必须与 BinaryWriter 写入的顺序一致
C. 它只能读取字符串类型的数据
D. 它会自动将二进制数据转换为 XML 格式
9.下列关于"流(Stream)"概念的描述,最准确的是( )
A. 流是一种存储数据的容器 B. 流是数据传输的通道,是一个字节序列
C. 流只能用于读取数据,不能写入数据 D. 流必须一次性传输所有数据
10. 以下代码片段的功能是( )
FileStream fs = new FileStream("info.txt", FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[1024];
int count = fs.Read(buffer, 0, 1024);
fs.Close();
A. 向文件写入1024字节 B. 从文件读取最多1024字节到缓冲区
C. 读取文件全部内容 D. 清空文件内容
11.下列关于 Pen(画笔)和 Brush(画刷)的区别,描述正确的是( )
A. Pen 用于填充封闭图形内部,Brush 用于绘制图形轮廓
B. Pen 用于绘制线条和图形轮廓,Brush 用于填充封闭图形内部
C. Pen 只能画直线,Brush 只能画矩形
D. 两者没有区别,可以互相替代
12.在GDI+中,若要绘制一个空心矩形(只有边框,没有填充),应调用 Graphics 对象的( )方法?
A. FillRectangle B. DrawRectangle C. DrawLine D. DrawPolygon
13.若要绘制一条虚线,应设置 Pen 对象的( )属性。
A. Color B. Width C. DashStyle D. LineJoin
14. 下列代码的作用是( )
g.FillEllipse(new SolidBrush(Color.Blue), 10, 10, 100, 100);
A. 绘制一个蓝色的空心圆 B. 绘制一个蓝色的实心圆
C. 绘制一个蓝色的空心椭圆 D. 绘制一个蓝色的实心椭圆
15.若要获取一个已经存在的图片文件的 Graphics 对象以便在图片上绘图,应使用( )
A. Graphics g = this.CreateGraphics();
B. Graphics g = Graphics.FromImage(image);
C. Graphics g = new Graphics();
D. Graphics g = e.Graphics;
2、 判断题(本大题共10小题,每题2分,共20分)
16.FileMode.Create会创建一个新文件,如果文件已存在,则会清空文件内容重新开始。( )
17.FileMode.Append只能在文件末尾追加内容,不能读取文件原有内容。( )
18.FileStream的Flush方法用于清空缓冲区,将缓冲区中的数据立即写入文件。( )
19.StreamWriter的WriteLine方法会在写入内容后自动添加换行符,而Write方法不会。( )
20.File类的静态方法如Exists、Delete、Copy等可以直接调用,不需要创建File类实例。( )
21.StreamReader和StreamWriter底层也是基于FileStream实现的,只是封装了字符编码转换功能。( )
22.FillRectangle 方法需要传入一个 Pen 对象和一个 Rectangle 对象。( )
23.Font 对象一旦创建,其属性就是只读的,不能修改。( )
24.Graphics 类的 DrawLine 方法可以接受两个 Point 结构作为参数来定义直线的起点和终点。( )
25.LinearGradientBrush 可以实现从一种颜色平滑过渡到另一种颜色的效果。( )
三、填空题(本大题共10个题,每题2分,共20分)
26.流(Stream)可以理解为数据传输的通道或管道,数据以________序列的形式在流中传输。
27.FileStream的________属性返回文件的字节长度。
28.StreamReader的________方法用于读取从当前位置到文件剩余的全部内容。
29.使用 StreamReader 读取文件时,如果不指定编码格式,默认通常使用 ________ 编码。
30.使用FileStream读取文件时,可以使用______方法读取多个字节到字节数组。
31.使用FileStream打开文件时,______枚举用于指定文件打开方式(如只读、只写、读写)。
32.Graphics对象使用完毕后应调用 ____ 方法释放资源,但Paint事件中的e.Graphics ____ (需要/不需要)手动释放。
33.要绘制图片,应使用Graphics的 ____ 方法,第一个参数是Image对象,后面的参数指定图片的 ____ 和 ____ 坐标。
34.Pen类的 ____ 属性用于设置画笔颜色, ____ 属性用于设置画笔宽度,默认值为 ____ 像素。
35.填充椭圆应使用Graphics的 ____ 方法;如果要填充多边形,应使用 ____ 方法。
四、程序填空题(本大题共2题,每空5分,共30分)
36.程序实现的功能是:窗体自动生成一个按钮,点击按钮,在窗体上绘制红色边框空心矩形、蓝色实心椭圆。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Text = "图形绘制填空题";
this.Size = new Size(400, 350);
Button btn = new Button();
btn.Text = "点击绘图";
btn.Location = new Point(120, 280);
btn.Click += Btn_Click;
______(1)________
}
private void Btn_Click(object sender, EventArgs e)
{
Graphics g = ______(2)________
Pen pen = new Pen(Color.Red, 3);
Brush brush = ______(3)________
g.DrawRectangle(pen, 30, 30, 120, 80);
g.FillEllipse(brush, 180, 30, 100, 80);
pen.Dispose();
brush.Dispose();
g.Dispose();
}
37.程序实现的功能:统计一个文本文件中字母'A'(包括大小写)出现的次数。
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "text.txt";
______(1)________
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
int b;
while (______(2)_________)
{
char c = (char)b;
if (______(3)_________)
{
count++;
}
}
}
Console.WriteLine("字母A出现的次数: {0}",count);
}
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$