第70卷 算法与程序设计—图形操作—河北省计算机类—考纲百套卷
|
2份
|
22页
|
56人阅读
|
0人下载
内容正文:
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第70卷为专业核心模块训练卷,按《算法与程序设计》中"算法程序卷25——图形操作"范围和要求编写。具体内容为:了解绘图常用类:Graphics、Pen、Brush、Font;了解Graphics类的方法、Drawing类的方法、Brush类方法
河北省对口招生职业技能考试
算法与程序设计 试卷
(算法程序卷25——图形操作)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C#中,用于绘制图形的核心类是()
A.Form B.Graphics C.Pen D.Brush
2. 下列选项中,用于设置画笔颜色和宽度的类是()
A.Graphics B.Brush C.Pen D.Font
3. C#中,Brush类的主要作用是()
A.绘制线条 B.填充图形内部 C.设置字体样式 D.获取绘图对象
4. 下列方法中,属于Graphics类用于绘制直线的方法是()
A.DrawString() B.DrawLine() C.FillRectangle() D.DrawEllipse()
5. C#中,要使用Graphics类进行绘图,首先需要获取()
A.Pen对象 B.Brush对象 C.Graphics对象 D.Font对象
6. 下列关于Pen类的说法,正确的是()
A.Pen用于填充图形 B.Pen可以设置线条的宽度 C.Pen属于填充类 D.Pen不能设置颜色
7. C#中,Font类的作用是()
A.绘制线条 B.填充图形 C.设置文本的字体、大小和样式 D.获取绘图上下文
8. 下列方法中,属于Graphics类用于绘制矩形的方法是()
A.DrawLine() B.DrawRectangle() C.FillEllipse() D.DrawString()
9. 下列关于Brush类的子类,说法正确的是()
A.SolidBrush用于绘制纯色填充 B.PenBrush用于绘制线条
C.FontBrush用于设置字体 D.GraphicsBrush用于获取绘图对象
10. C#中,Graphics类的DrawString()方法主要用于()
A.绘制直线 B.绘制矩形 C.在绘图区域绘制文本 D.填充椭圆
11. 下列选项中,不属于Drawing类相关方法的是()
A.DrawLine() B.FillRectangle() C.WriteLine() D.DrawEllipse()
12. 要绘制一条红色、宽度为2像素的直线,应先创建()对象并设置相关属性
A.Graphics B.Pen C.Brush D.Font
13. 下列关于Graphics类的说法,错误的是()
A.Graphics是绘图的核心类 B.Graphics可以绘制各种图形
C.Graphics不能绘制文本 D.Graphics需要通过控件的CreateGraphics()方法获取
14. C#中,FillEllipse()方法的作用是()
A.绘制椭圆轮廓 B.填充椭圆内部 C.绘制直线 D.绘制文本
15. 下列选项中,用于创建纯色画笔的类是()
A.SolidBrush B.Pen C.Font D.Graphics
16. 下列方法中,属于Brush类的核心方法是()
A.DrawLine() B.Fill() C.CreateGraphics() D.DrawString()
17. C#中,要设置绘图的字体样式,应使用()类
A.Pen B.Brush C.Font D.Graphics
18. 下列关于Pen类和Brush类的区别,说法正确的是()
A.Pen用于填充,Brush用于绘制线条 B.Pen用于绘制线条,Brush用于填充
C.两者功能完全相同 D.两者都不能设置颜色
19. 下列方法中,用于获取控件绘图对象的是()
A.CreatePen() B.CreateBrush() C.CreateGraphics() D.CreateFont()
20. C#中,Drawing类相关方法主要用于()
A.数据库操作 B.图形绘制 C.文本输入 D.窗体设计
二、填空题(共10空,每空1分,共10分)
21. C#中,________类是绘制图形的核心类,提供了各种绘图方法。
22. Pen类主要用于绘制________,可以设置线条的颜色和宽度。
23. Brush类主要用于________图形的内部区域。
C#中,获取Graphics对象的常用方法是调用控件的________方法。
25. Font类用于设置绘图时文本的________、大小和样式。
26. Graphics类的________方法用于绘制直线。
27. SolidBrush是Brush类的子类,用于实现________填充。
28. C#中,绘制矩形轮廓使用Graphics类的________方法。
29. Brush类的方法主要用于实现图形的________操作。
30. 绘图时,若要在指定位置绘制文本,应使用Graphics类的________方法。
三、判断题(共5题,每题2分,共10分)
31. Graphics类是C#中绘图的核心类,所有绘图操作都依赖于该类。( )
32. Pen类和Brush类的功能相同,都可以用于绘制线条和填充图形。( )
33. Font类不仅可以设置字体样式,还可以用于绘制图形。( )
34. Graphics类的FillRectangle()方法用于填充矩形内部区域。( )
35. 要使用Brush类进行填充,必须先创建Brush对象并设置填充颜色。( )
四、程序分析题(共1题,每题10分,共10分)
36. 阅读下面的C#程序,分析其功能并写出运行结果(结合绘图相关类及方法)。
using System;
using System.Drawing;
class Program
{
static void Main()
{
// 假设已获取窗体的Graphics对象g
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
Pen pen = new Pen(Color.Red, 2);
Brush brush = new SolidBrush(Color.Blue);
g.DrawLine(pen, 10, 10, 100, 100);
g.FillRectangle(brush, 120, 10, 50, 50);
Console.WriteLine("绘图完成");
pen.Dispose();
brush.Dispose();
g.Dispose();
}
}
程序运行结果及功能:___________________
五、写运行结果题(共2题,每题5分,共10分)
37. 分析下面C#程序段的输出结果(结合绘图相关类的用法):
using System;
using System.Drawing;
class Program
{
static void Main()
{
Pen pen = new Pen(Color.Green, 3);
Console.WriteLine("画笔颜色:" + pen.Color);
Console.WriteLine("画笔宽度:" + pen.Width);
pen.Dispose();
}
}
程序运行结果:___________________
38. 分析下面C#程序段的输出结果(结合Graphics类方法):
using System;
using System.Drawing;
class Program
{
static void Main()
{
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
Font font = new Font("宋体", 12);
Brush brush = new SolidBrush(Color.Black);
g.DrawString("图形操作测试", font, brush, 50, 50);
Console.WriteLine("文本绘制完成");
font.Dispose();
brush.Dispose();
g.Dispose();
}
}
程序运行结果:___________________
六、程序改错题(共1题,每题5分,共5分)
39. 下面程序用于绘制一条蓝色直线,但有2处错误,请找出并改正(结合Graphics、Pen类用法):
using System;
// 缺少必要的命名空间
class Program
{
static void Main()
{
Graphics g = null;
Pen pen = new Pen(Color.Blue);
// 未获取Graphics对象就调用绘图方法
g.DrawLine(pen, 20, 20, 150, 150);
Console.WriteLine("直线绘制完成");
pen.Dispose();
g.Dispose();
}
}
请找出程序中的错误,并写出正确答案。
七、程序填空题(共3题,每题5分,共15分)
40. 下面程序用于绘制一个红色矩形轮廓,请填写空白处(结合Graphics、Pen类):
using System;
using System.Drawing;
class Program{
static void Main(){
// 获取Graphics对象
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
// 创建红色、宽度为2的画笔
Pen pen = new Pen(_____, 2);
// 绘制矩形轮廓,参数:画笔、x坐标、y坐标、宽度、高度
g._____(pen, 30, 30, 80, 60);
Console.WriteLine("矩形绘制完成");
pen.Dispose();
g.Dispose();
}
}
41. 下面程序用于填充一个黄色椭圆,请填写空白处(结合Graphics、Brush类):
using System;
using System.Drawing;
class Program{
static void Main(){
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
// 创建黄色纯色画笔
Brush brush = new _____ (Color.Yellow);
// 填充椭圆,参数:画笔、x坐标、y坐标、宽度、高度
g._____(brush, 120, 30, 70, 50);
Console.WriteLine("椭圆填充完成");
brush.Dispose();
g.Dispose();
}
}
42. 下面程序用于在绘图区域绘制文本,请填写空白处(结合Graphics、Font、Brush类):
using System;
using System.Drawing;
class Program
{
static void Main()
{
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
// 设置字体:宋体、14号、加粗
Font font = new Font("宋体", 14, _____);
// 创建黑色画笔
Brush brush = new SolidBrush(Color.Black);
// 绘制文本,参数:文本内容、字体、画笔、x坐标、y坐标
g._____("图形操作练习", font, brush, 60, 100);
Console.WriteLine("文本绘制完成");
font.Dispose();
brush.Dispose();
g.Dispose();
}
}
学科网(北京)股份有限公司
$
编写说明:河北省对口招生计算机类《考纲百套卷》,依据《河北省普通高等学校对口招生考试大纲(2028版专业课)计算机类》编写。本专辑涵盖9门课程,第一部分是专业核心模块训练卷,第二部分为各门课程的综合训练卷。本专辑共98份试卷。
本试卷是第70卷为专业核心模块训练卷,按《算法与程序设计》中"算法程序卷25——图形操作"范围和要求编写。具体内容为:了解绘图常用类:Graphics、Pen、Brush、Font;了解Graphics类的方法、Drawing类的方法、Brush类方法
河北省对口招生职业技能考试
算法与程序设计 试卷
(算法程序卷25——图形操作)
考试时间:90分钟 满分:100分
一、单项选择题(共20题,每题2分,共40分)
1. C#中,用于绘制图形的核心类是()
A.Form B.Graphics C.Pen D.Brush
【答案】B
【解析】Graphics类是C#绘图的核心类,提供了绘制直线、矩形、文本等各种绘图方法;A选项Form是窗体类,用于承载控件和绘图区域;C选项Pen用于绘制线条;D选项Brush用于填充图形内部。
2. 下列选项中,用于设置画笔颜色和宽度的类是()
A.Graphics B.Brush C.Pen D.Font
【答案】C
【解析】Pen类专门用于绘制线条,可通过构造函数或属性设置线条的颜色(Color)和宽度(Width);A选项Graphics是绘图核心类,不负责设置画笔属性;B选项Brush用于填充,不涉及线条设置;D选项Font用于设置文本样式。
3. C#中,Brush类的主要作用是()
A.绘制线条 B.填充图形内部 C.设置字体样式 D.获取绘图对象
【答案】B
【解析】Brush类的核心功能是填充图形的内部区域(如矩形、椭圆等);A选项绘制线条是Pen类的功能;C选项设置字体样式是Font类的功能;D选项获取绘图对象是Graphics类的相关操作。
4. 下列方法中,属于Graphics类用于绘制直线的方法是()
A.DrawString() B.DrawLine() C.FillRectangle() D.DrawEllipse()
【答案】B
【解析】Graphics类的DrawLine()方法专门用于绘制直线,需传入Pen对象和直线的起点、终点坐标;A选项DrawString()用于绘制文本;C选项FillRectangle()用于填充矩形;D选项DrawEllipse()用于绘制椭圆轮廓。
5. C#中,要使用Graphics类进行绘图,首先需要获取()
A.Pen对象 B.Brush对象 C.Graphics对象 D.Font对象
【答案】C
【解析】所有绘图操作都依赖于Graphics对象,需先通过控件的CreateGraphics()方法或Graphics.FromHwnd()等方法获取该对象;A、B、D选项均为绘图所需的辅助对象,需在获取Graphics对象后创建。
6. 下列关于Pen类的说法,正确的是()
A.Pen用于填充图形 B.Pen可以设置线条的宽度 C.Pen属于填充类 D.Pen不能设置颜色
【答案】B
【解析】Pen类用于绘制线条,可通过Width属性设置线条宽度,通过Color属性设置线条颜色;A、C选项错误,填充图形是Brush类的功能;D选项错误,Pen可以设置颜色。
7. C#中,Font类的作用是()
A.绘制线条 B.填充图形 C.设置文本的字体、大小和样式 D.获取绘图上下文
【答案】C
【解析】Font类用于定义绘图时文本的样式,包括字体名称(如宋体)、字号、加粗/倾斜等样式;A选项绘制线条是Pen类功能;B选项填充图形是Brush类功能;D选项获取绘图上下文是Graphics类的相关操作。
8. 下列方法中,属于Graphics类用于绘制矩形轮廓的方法是()
A.DrawLine() B.DrawRectangle() C.FillEllipse() D.DrawString()
【答案】B
【解析】Graphics类的DrawRectangle()方法用于绘制矩形轮廓,需传入Pen对象和矩形的坐标、宽高;A选项DrawLine()绘制直线;C选项FillEllipse()填充椭圆;D选项DrawString()绘制文本。
9. 下列关于Brush类的子类,说法正确的是()
A.SolidBrush用于绘制纯色填充 B.PenBrush用于绘制线条 C.FontBrush用于设置字体 D.GraphicsBrush用于获取绘图对象
【答案】A
【解析】SolidBrush是Brush类的常用子类,用于实现纯色填充;B、C、D选项均为干扰项,C#中无PenBrush、FontBrush、GraphicsBrush类,绘制线条用Pen类,设置字体用Font类,获取绘图对象用Graphics类。
10. C#中,Graphics类的DrawString()方法主要用于()
A.绘制直线 B.绘制矩形 C.在绘图区域绘制文本 D.填充椭圆
【答案】C
【解析】Graphics类的DrawString()方法用于在指定绘图区域绘制文本,需传入文本内容、Font对象、Brush对象和文本位置坐标;A选项绘制直线用DrawLine();B选项绘制矩形用DrawRectangle();D选项填充椭圆用FillEllipse()。
11. 下列选项中,不属于Drawing类相关方法的是()
A.DrawLine() B.FillRectangle() C.WriteLine() D.DrawEllipse()
【答案】C
【解析】DrawLine()、FillRectangle()、DrawEllipse()均为System.Drawing命名空间下的绘图相关方法;C选项WriteLine()是Console类的方法,用于在控制台输出文本,与绘图无关。
12. 要绘制一条红色、宽度为2像素的直线,应先创建()对象并设置相关属性
A.Graphics B.Pen C.Brush D.Font
【答案】B
【解析】绘制线条需使用Pen对象,可通过Pen的构造函数(new Pen(Color.Red, 2))设置线条颜色为红色、宽度为2像素;A选项Graphics是绘图核心对象,需先获取,但不直接设置线条属性;C选项Brush用于填充;D选项Font用于文本。
13. 下列关于Graphics类的说法,错误的是()
A.Graphics是绘图的核心类 B.Graphics可以绘制各种图形 C.Graphics不能绘制文本 D.Graphics需要通过控件的CreateGraphics()方法获取
【答案】C
【解析】Graphics类可以通过DrawString()方法绘制文本,因此C选项说法错误;A、B、D选项均正确,Graphics是绘图核心类,可绘制直线、矩形等各种图形,常用CreateGraphics()方法获取。
14. C#中,FillEllipse()方法的作用是()
A.绘制椭圆轮廓 B.填充椭圆内部 C.绘制直线 D.绘制文本
【答案】B
【解析】FillEllipse()是Graphics类的填充方法,用于填充椭圆的内部区域,需传入Brush对象;A选项绘制椭圆轮廓用DrawEllipse();C选项绘制直线用DrawLine();D选项绘制文本用DrawString()。
15. 下列选项中,用于创建纯色画笔的类是()
A.SolidBrush B.Pen C.Font D.Graphics
【答案】A
【解析】SolidBrush是Brush类的子类,专门用于创建纯色填充画笔,可通过构造函数设置填充颜色;B选项Pen用于绘制线条;C选项Font用于设置文本样式;D选项Graphics是绘图核心类。
16. 下列方法中,属于Brush类的核心方法是()
A.DrawLine() B.Fill() C.CreateGraphics() D.DrawString()
【答案】B
【解析】Brush类的核心方法是Fill(),用于实现图形的填充操作;A选项DrawLine()是Graphics类的方法;C选项CreateGraphics()是控件的方法,用于获取Graphics对象;D选项DrawString()是Graphics类的方法。
17. C#中,要设置绘图的字体样式,应使用()类
A.Pen B.Brush C.Font D.Graphics
【答案】C
【解析】Font类用于定义绘图时文本的字体样式,包括字体名称、字号、加粗、倾斜等属性;A选项Pen用于绘制线条;B选项Brush用于填充图形;D选项Graphics是绘图核心类。
18. 下列关于Pen类和Brush类的区别,说法正确的是()
A.Pen用于填充,Brush用于绘制线条 B.Pen用于绘制线条,Brush用于填充 C.两者功能完全相同 D.两者都不能设置颜色
【答案】B
【解析】Pen类和Brush类功能区分明确:Pen用于绘制图形轮廓(线条),Brush用于填充图形内部;A选项说法颠倒;C选项错误,两者功能不同;D选项错误,两者均可设置颜色(Pen设置线条颜色,Brush设置填充颜色)。
19. 下列方法中,用于获取控件绘图对象的是()
A.CreatePen() B.CreateBrush() C.CreateGraphics() D.CreateFont()
【答案】C
【解析】CreateGraphics()是控件的方法,用于获取该控件的Graphics对象,作为绘图的核心对象;A选项CreatePen()用于创建Pen对象;B选项CreateBrush()用于创建Brush对象;D选项CreateFont()用于创建Font对象。
20. C#中,Drawing类相关方法主要用于()
A.数据库操作 B.图形绘制 C.文本输入 D.窗体设计
【答案】B
【解析】System.Drawing命名空间下的相关方法(如DrawLine()、FillRectangle()等),核心用途是图形绘制;A选项数据库操作与Drawing类无关;C选项文本输入常用Console类或控件;D选项窗体设计主要依赖Form类及控件。
二、填空题(共10空,每空1分,共10分)
21. C#中,________类是绘制图形的核心类,提供了各种绘图方法。
【答案】Graphics
【解析】Graphics类是C#绘图的核心,所有绘图操作(绘制直线、矩形、文本等)都依赖于该类提供的方法。
22. Pen类主要用于绘制________,可以设置线条的颜色和宽度。
【答案】线条(或图形轮廓)
【解析】Pen类的核心功能是绘制线条或图形轮廓,通过Color属性设置线条颜色,Width属性设置线条宽度。
23. Brush类主要用于________图形的内部区域。
【答案】填充
【解析】Brush类及其子类(如SolidBrush)的核心功能是填充矩形、椭圆等图形的内部区域。
24. C#中,获取Graphics对象的常用方法是调用控件的________方法。
【答案】CreateGraphics()
【解析】在WinForms中,常用控件的CreateGraphics()方法获取该控件的Graphics对象,用于在控件上绘图。
25. Font类用于设置绘图时文本的________、大小和样式。
【答案】字体(或字体名称)
【解析】Font类用于定义文本样式,包括字体名称(如宋体、黑体)、字号大小和加粗、倾斜等样式。
26. Graphics类的________方法用于绘制直线。
【答案】DrawLine()
【解析】Graphics类的DrawLine()方法专门用于绘制直线,需传入Pen对象和直线的起点、终点坐标。
27. SolidBrush是Brush类的子类,用于实现________填充。
【答案】纯色
【解析】SolidBrush用于创建纯色填充画笔,通过构造函数传入Color参数,实现单一颜色的图形填充。
28. C#中,绘制矩形轮廓使用Graphics类的________方法。
【答案】DrawRectangle()
【解析】Graphics类的DrawRectangle()方法用于绘制矩形轮廓,需传入Pen对象和矩形的x坐标、y坐标、宽度、高度。
29. Brush类的方法主要用于实现图形的________操作。
【答案】填充
【解析】Brush类的核心功能是填充图形内部,其方法(如Fill())用于实现各种图形的填充操作。
30. 绘图时,若要在指定位置绘制文本,应使用Graphics类的________方法。
【答案】DrawString()
【解析】Graphics类的DrawString()方法用于在指定位置绘制文本,需传入文本内容、Font对象、Brush对象和文本坐标。
三、判断题(共5题,每题2分,共10分)
31. Graphics类是C#中绘图的核心类,所有绘图操作都依赖于该类。( )
【答案】√
【解析】Graphics类提供了所有绘图相关的方法(绘制直线、矩形、文本等),任何绘图操作都必须先获取Graphics对象,因此该说法正确。
32. Pen类和Brush类的功能相同,都可以用于绘制线条和填充图形。( )
【答案】×
【解析】Pen类用于绘制线条和图形轮廓,Brush类用于填充图形内部,两者功能不同,因此该说法错误。
33. Font类不仅可以设置字体样式,还可以用于绘制图形。( )
【答案】×
【解析】Font类的唯一功能是设置绘图时文本的字体样式,不能用于绘制图形,绘制图形依赖于Graphics、Pen、Brush类,因此该说法错误。
34. Graphics类的FillRectangle()方法用于填充矩形内部区域。( )
【答案】√
【解析】Graphics类的FillRectangle()方法需传入Brush对象,用于填充矩形的内部区域,绘制矩形轮廓用DrawRectangle()方法,因此该说法正确。
35. 要使用Brush类进行填充,必须先创建Brush对象并设置填充颜色。( )
【答案】√
【解析】使用Brush类填充图形时,需先创建Brush对象(如SolidBrush),并通过构造函数设置填充颜色,否则无法实现填充效果,因此该说法正确。
四、程序分析题(共1题,每题10分,共10分)
36. 阅读下面的C#程序,分析其功能并写出运行结果(结合绘图相关类及方法)。
using System;
using System.Drawing;
class Program
{
static void Main()
{
// 假设已获取窗体的Graphics对象g
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
Pen pen = new Pen(Color.Red, 2);
Brush brush = new SolidBrush(Color.Blue);
g.DrawLine(pen, 10, 10, 100, 100);
g.FillRectangle(brush, 120, 10, 50, 50);
Console.WriteLine("绘图完成");
pen.Dispose();
brush.Dispose();
g.Dispose();
}
}
程序运行结果及功能:___________________
【答案】
程序功能:获取绘图对象,创建红色、宽度为2像素的画笔和蓝色纯色填充画笔,绘制一条从(10,10)到(100,100)的红色直线,填充一个左上角坐标为(120,10)、宽50、高50的蓝色矩形,最后释放相关对象并在控制台输出"绘图完成"。
程序运行结果:控制台输出“绘图完成”,同时在绘图区域显示红色直线和蓝色矩形。
【解析】程序核心是Graphics、Pen、Brush类的综合使用:1. 通过Graphics.FromHwnd()获取绘图对象;2. Pen对象设置线条颜色和宽度,用于绘制直线;3. SolidBrush对象设置填充颜色,用于填充矩形;4. DrawLine()绘制直线,FillRectangle()填充矩形;5. Dispose()方法释放对象资源,避免内存泄漏。
五、写运行结果题(共2题,每题5分,共10分)
37. 分析下面C#程序段的输出结果(结合绘图相关类的用法):
using System;
using System.Drawing;
class Program
{
static void Main()
{
Pen pen = new Pen(Color.Green, 3);
Console.WriteLine("画笔颜色:" + pen.Color);
Console.WriteLine("画笔宽度:" + pen.Width);
pen.Dispose();
}
}
程序运行结果:___________________
【答案】
程序运行结果:
画笔颜色:Green
画笔宽度:3
【解析】程序创建了一个颜色为绿色、宽度为3像素的Pen对象,通过pen.Color和pen.Width属性获取画笔的颜色和宽度,并在控制台输出;最后调用Dispose()方法释放Pen对象资源。
38. 分析下面C#程序段的输出结果(结合Graphics类方法):
using System;
using System.Drawing;
class Program
{
static void Main()
{
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
Font font = new Font("宋体", 12);
Brush brush = new SolidBrush(Color.Black);
g.DrawString("图形操作测试", font, brush, 50, 50);
Console.WriteLine("文本绘制完成");
font.Dispose();
brush.Dispose();
g.Dispose();
}
}
程序运行结果:___________________
【答案】
程序运行结果:控制台输出“文本绘制完成”,同时在绘图区域(50,50)位置,以12号宋体、黑色文本绘制“图形操作测试”。
【解析】程序通过Graphics.FromHwnd()获取绘图对象,创建12号宋体的Font对象和黑色SolidBrush对象,调用Graphics类的DrawString()方法在(50,50)坐标绘制指定文本,最后释放所有对象并在控制台输出提示信息。
六、程序改错题(共1题,每题5分,共5分)
39. 下面程序用于绘制一条蓝色直线,但有2处错误,请找出并改正(结合Graphics、Pen类用法):
using System;
// 缺少必要的命名空间
class Program
{
static void Main()
{
Graphics g = null;
Pen pen = new Pen(Color.Blue);
// 未获取Graphics对象就调用绘图方法
g.DrawLine(pen, 20, 20, 150, 150);
Console.WriteLine("直线绘制完成");
pen.Dispose();
g.Dispose();
}
}
请找出程序中的错误,并写出正确答案。
【答案】
错误1:缺少System.Drawing命名空间,Graphics、Pen、Color类均属于该命名空间,未引用会导致编译错误;
错误2:Graphics对象g被赋值为null,未获取实际的绘图对象,直接调用g.DrawLine()会引发空引用异常;
正确程序:
using System;
using System.Drawing; // 补充必要的命名空间
class Program
{
static void Main()
{
// 获取绘图对象,避免赋值为null
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
Pen pen = new Pen(Color.Blue);
g.DrawLine(pen, 20, 20, 150, 150);
Console.WriteLine("直线绘制完成");
pen.Dispose();
g.Dispose();
}
}
【解析】1. 绘图相关类(Graphics、Pen等)都在System.Drawing命名空间下,必须添加using System.Drawing;引用;2. Graphics对象是绘图核心,需通过Graphics.FromHwnd()或控件的CreateGraphics()方法获取实际对象,不能赋值为null,否则无法调用绘图方法。
七、程序填空题(共3题,每题5分,共15分)
40. 下面程序用于绘制一个红色矩形轮廓,请填写空白处(结合Graphics、Pen类):
using System;
using System.Drawing;
class Program{
static void Main(){
// 获取Graphics对象
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
// 创建红色、宽度为2的画笔
Pen pen = new Pen(_____, 2);
// 绘制矩形轮廓,参数:画笔、x坐标、y坐标、宽度、高度
g._____(pen, 30, 30, 80, 60);
Console.WriteLine("矩形绘制完成");
pen.Dispose();
g.Dispose();
}
}
【答案】
第一空:Color.Red
第二空:DrawRectangle
【解析】1. Pen类构造函数需传入颜色参数,绘制红色矩形轮廓,需设置颜色为Color.Red;2. Graphics类绘制矩形轮廓的方法是DrawRectangle(),需传入Pen对象和矩形的坐标、宽高参数。
41. 下面程序用于填充一个黄色椭圆,请填写空白处(结合Graphics、Brush类):
using System;
using System.Drawing;
class Program{
static void Main(){
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
// 创建黄色纯色画笔
Brush brush = new _____ (Color.Yellow);
// 填充椭圆,参数:画笔、x坐标、y坐标、宽度、高度
g._____(brush, 120, 30, 70, 50);
Console.WriteLine("椭圆填充完成");
brush.Dispose();
g.Dispose();
}
}
【答案】
第一空:SolidBrush
第二空:FillEllipse
【解析】1. 实现黄色纯色填充,需使用Brush类的子类SolidBrush,其构造函数传入填充颜色Color.Yellow;2. Graphics类填充椭圆的方法是FillEllipse(),需传入Brush对象和椭圆的坐标、宽高参数。
42. 下面程序用于在绘图区域绘制文本,请填写空白处(结合Graphics、Font、Brush类):
using System;
using System.Drawing;
class Program
{
static void Main()
{
Graphics g = System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
// 设置字体:宋体、14号、加粗
Font font = new Font("宋体", 14, _____);
// 创建黑色画笔
Brush brush = new SolidBrush(Color.Black);
// 绘制文本,参数:文本内容、字体、画笔、x坐标、y坐标
g._____("图形操作练习", font, brush, 60, 100);
Console.WriteLine("文本绘制完成");
font.Dispose();
brush.Dispose();
g.Dispose();
}
}
【答案】
第一空:FontStyle.Bold
第二空:DrawString
【解析】1. Font类构造函数第三个参数用于设置字体样式,加粗样式为FontStyle.Bold;2. Graphics类绘制文本的方法是DrawString(),需传入文本内容、Font对象、Brush对象和文本坐标参数。
学科网(北京)股份有限公司
$