《可视化程序设计Ⅰ》期末复习资料C#.docx

上传人:b****1 文档编号:14430652 上传时间:2023-06-23 格式:DOCX 页数:21 大小:25.43KB
下载 相关 举报
《可视化程序设计Ⅰ》期末复习资料C#.docx_第1页
第1页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第2页
第2页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第3页
第3页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第4页
第4页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第5页
第5页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第6页
第6页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第7页
第7页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第8页
第8页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第9页
第9页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第10页
第10页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第11页
第11页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第12页
第12页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第13页
第13页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第14页
第14页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第15页
第15页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第16页
第16页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第17页
第17页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第18页
第18页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第19页
第19页 / 共21页
《可视化程序设计Ⅰ》期末复习资料C#.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《可视化程序设计Ⅰ》期末复习资料C#.docx

《《可视化程序设计Ⅰ》期末复习资料C#.docx》由会员分享,可在线阅读,更多相关《《可视化程序设计Ⅰ》期末复习资料C#.docx(21页珍藏版)》请在冰点文库上搜索。

《可视化程序设计Ⅰ》期末复习资料C#.docx

《可视化程序设计Ⅰ》期末复习资料C#

《可视化程序设计》期末复习资料(C#)

一、填空题

1.C#不但具有面向对象程序语言所应有的一切特性:

继承性、封装性、多态性,而且C#的一个重要创新就是使面向组件编程更加容易。

2.借助C#,可以创建多种应用程序,如:

Windows应用程序、Web应用程序、控制台应用程序、智能设备应用程序(PocketPC袖珍PC)、移动Web应用程序(PDA个人数字助理)等等。

3.每个C#程序均必须包含一个称为Main的方法,该过程为应用程序的起始点并为应用程序提供总体控制。

该方法在“类”的内部声明,它必须具有static关键字,表明是静态方法。

4.MessageBox类用于显示可包含文本、按钮等的消息框,它是.NET框架类库中的类,要在自己的程序中使用MessageBox类,必须在自己的程序中定位该类的位置:

MessageBox类位于System.Windows.Forms.dll程序集。

因此,在自己的程序中,必须添加对这个程序集的一个引用。

同时使用usingSystem.Windows.Forms将其命名空间导入自己的程序中。

5.C#支持多种数据类型,主要有整型、非整型和其它类型。

其中decimal类型适合财务和货币计算。

浮点类型包括float和double类型,两者的主要差别不在数据范围,而在于其各自所表示的数值精度。

6.程序中常常需要临时存储一些值,在编程语言中使用变量来储存值。

变量的声明就是为指定的名称声名它的数据类型。

C#语法规定,变量必须以英文字母或下划线开头,不可以数字为开头来命名的,如果变量第一字符是下划线,则后面一定要有字符,字母或数字皆可。

变量对大小写是敏感的。

7.常量用来存储在整个应用程序的执行过程中保持不变的值。

常量用const来定义,它的命名规则、类型、作用范围和变量的相同。

8.Unicode字符是16位字符,用于表示世界上多数已知的书面语言。

数组可以通过同一名称引用一组相关的数据,并使用一个称为“索引”或“下标”的数字进行区分。

9.方法是实现可以由对象或类执行的计算或操作的成员。

一般说来,应用程序的每一行代码都必须在某个方法的内部。

方法对执行重复或共享的任务很有用。

所有方法都必须在一个类中定义。

10.向方法传递参数有两个办法,一个是传值,另一个是传引用。

前者形参将创建新的存储位置,被调用的方法将接受参数的一个副本;后者并不创建新的存储位置,实参和形参具有相同的位置。

11.类的成员或者是静态成员,或者是实例成员,一般说来,将前者看作属于类和将后者看作属于对象很有用。

在“类”中,如果声明有多个同名的方法但它们的签名不同,则称为方法的重载。

12.在现有的类(基类)的基础上建立新类(派生类)的处理过程称为继承,这带来的好主要有代码复用、继承性多态。

可以用base关键字从派生类中访问基类的成员。

在派生类中定义与基类同名的方法,使用new修饰符显式隐藏从基类继承的方法成员。

13.virtual关键字用于指定属性或方法可以在派生类中重写,具有该关键字的方法或属性被称作虚拟成员。

当实例方法声明包含override修饰符时,称该方法为重写方法,重写方法用相同的签名重写继承的虚拟方法。

14.在类声明中使用abstract修饰符以指示类只能是其他类的基类,我们称它为抽象类。

15.用GDI+绘制简单几何图形需要如下步骤:

创建Graphics对象、创建笔或画笔、调用图形方法。

16.菜单可以分成两种基本类型:

下拉式菜单和弹出式菜单。

Timer控件是实现在用户定义的时间间隔引发事件的计时器。

17.C#中引用类型有:

类、委托、数组、接口。

委托声明的关键字是delegate。

18.用sealed修饰的类的特点是不能继承(密封)

19.c#中的三元运算符是?

:

二、选择题

1..NET平台开发的基础是()

A、CLRB、WebService

C、FrameWorkD、ClassLibrary

2.在.NET平台中,提供很多服务来简化代码的开发和应用程序的部署是()

A、CLRB、WebService

C、FrameWorkD、ClassLibrary

3..NETCommonLanguageRuntime的作用是()

A、是.NET托管程序的执行引擎B、供.NET托管程序调用的API集合

C、.NET托管程序的编译程序D、支持.NET托管程序的操作系统

4..NETFramework不支持哪种类型的用户界面?

()

A、Web窗体B、Windows窗体

C、控制台应用程序D、COM组件

5.设置文本框的哪种属性用于输入口令类的文本。

()

A、ReadOnlyB、Text

C、PasswordCharD、DataSource

6.在C#中,使用______语句捕获异常()

A、doB、while

C、ifD、try和catch

7.在对用户单击鼠标动作进行处理时,需要对______事件进行编码。

()

A、ClickB、DoubleClick

C、KeyPressD、EnterPress

8.在列表框中,修改______属性可使用户一次选择多项。

()

A、SelectionModeB、DataSource

C、ItemsD、Text

9.修改窗体的下列哪个属性可改变窗体的标题()

A、NameB、Text

C、CaptionD、Items

10.在面向对象编程中,利用已有的类创建一个新类是利用对象的()

A、继承性B、多态性

C、重载性D、接口

11.能不能直接访问对象的属性和方法,这取决于对象的()

A、封装性B、继承性

C、多态性D、接口

12.声明成员只在类内部访问使用______关键字。

()

A、privateB、friend

C、protectedD、public

13.以下关于Main方法的叙述,正确的有AC

A、在类的内部声明,必须具备有static关键字

B、在类的内部声明,必须具备有void关键字

C、是静态方法

D、Main方法是程序的入口点,不含参数

14.类MessageBox的类库的程序集(动态链接库)在哪里?

A、System.Windows.Forms.dllB、System.Windows.MessageBox.dll

C.System.Data.dllD.System.MessageBox.Show.dll

15.C#中的类型float对应.NET类库中的______正确答案:

A

A.System.SingleB.System.Double

C.System.Int32D.System.Int64

16.允许查看项目文件层次组织的IDE窗口名称是什么?

A、解决方案资源管理器B、服务器资源管理器

C.对象浏览器D.类视图

17.抽象类shape和派生类Sqare定义如下:

abstractclassshape

{

publicabstractvoidDraw();

}

classSqare:

shape

{

…………

}

应向类Sqare中添加下列哪种合法Draw方法,以实现shape中的抽象方法Draw?

A.protectedoverridesvoidDraw()

{

…………

}

B.publicoverridevoidDraw()

{

…………

}

C.protectedoverloadsvoidDraw()

{

…………

}

D.publicoverloadsvoidDraw()

{

…………

}

正确答案:

B

18.为了将字符串str=“123456”转换成整数123456,可以使用以下哪条语句?

答:

A,C

A.intNum=Int32.Parse(str)B.intNum=str.Parse(integer)

C.intNum=(int)(str)D.intNum=str.ToInt()

19.分析下列语句:

namespaceTestCS

{

publicdelegatevoidHello(refstringtarget)

}

该语句的作用是:

正确答案:

D

A.在TestCS命名空间中定义了一个名为Hello的全局方法;

B.在TestCS命名空间中声明了函数Hello的原型;

C.在TestCS命名空间中定义了一个名为Hello的函数指针;

D.在TestCS命名空间中定义了了一个名为Hello的委托类型;

20.以下关于接口的叙述,正确的有哪些?

abcd

A.接口成员必须是方法、属性、事件或索引器。

B.接口不能包含常数、字段、运算符

C.接口不能包含实例构造函数、析构函数或类型

D.接口不能包含任何种类的静态成员。

21.下列关于构造函数的描述正确的是()

A.构造函数可以声明返回类型。

B.构造函数不可以重载

C.构造函数的方法名和类名相同D.构造函数不能带参数

22.C#的数据类型有()

A.值类型和调用类型;B.值类型和引用类型;

C.引用类型和关系类型;D.关系类型和调用类型;

23.下列描述错误的是()

A、类不可以多重继承而接口可以;B、抽象类自身可以定义成员而接口不可以;

C、抽象类和接口都不能被实例化;D、一个类可以有多个基类和多个基接口;

24.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。

A、方法、属性、索引器和事件;B、方法、常量、属性;

C、索引器和字段;D、事件和字段;

25.下列关于C#中索引器理解正确的是()

A、索引器的参数必须是两个或两个以上B、索引器的参数类型必须是整数型

C、索引器没有名字D、以上皆非

26.下面是关于类及其修饰符的一些描述,不正确的是()

A、abstract类只能用来派生子类,不能用来创建abstract类的对象

B、sealed类不但可以用来派生子类,也可以用来创建sealed类的对象

C、abstract不能与sealed同时修饰一个类

D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法

27.关于类的继承,下面叙述不正确的是()

A、子类可以继承父类中的所有变量和方法

B、一个子类只能有一个父类

C、子类可以继承父类的父类中的变量和方法

D、所有类都是通过直接或间接地继承Object类而得到的

28.下列关于构造函数的描述不正确的是()

A、构造函数不声明返回类型。

B、构造函数可以用private修饰

C、构造函数必须与类名相同D、构造函数可以被显式调用

29.下列关于析构函数的描述不正确的是()

A、一个类中只能有一个析构函数B、析构函数可以被继承和重载

C、析构函数的名字与类名相同,只是在前面加一个“~”

D、析构函数没有任何参数,也不返回任何值

30.下面对抽象类的描述不正确的是()

A、抽象类只能作为其它类的基类,它不能直接被实例化。

B、对抽象类不能使用new操作符。

C、抽象类允许包含抽象成员(当然可以包含非抽象成员),虽然这不是必须的。

D、抽象类可以同时又是密封的。

三、判断题

1.C#代码行中,字符“//”会将这一行的其余内容转换为注释内容。

2.Main方法是程序的入口点,程序控制在该方法中开始和结束。

3.Main方法在类的内部声明,它必须具备有static关键字,是静态方法。

4.Show方法是MessageBox类的一个静态方法。

5.静态方法的调用一般通过在类名后加上点操作符(.)和方法名来调用它们。

6.“?

:

”运算符称为条件运算符,其一般格式为(表达式1)?

(表达式2):

(表达式3),如果表达式1为真,则结果是表达式2,否则结果是表达式3。

7.循环语句while有条件执行嵌入语句零次或多次,do/while语句有条件地执行嵌入语句一次或多次。

8.方法是实现可以有对象或类执行的计算或操作的成员。

应用程序中每一行代码都必须在某个方法的内部。

9.直接基类中,除实例构造函数、静态构造函数和析构函数外,所有其它成员都被派生类继承。

10.除了直接基类中的私有成员,所有其他继承成员都能在派生类中被存取。

11.默认构造函数只是调用直接基类的无参数构造函数,如果直接基类没有可访问的无参数构造实例函数,则会发生编译错误。

12.基类或基类对象均不能存取派生类成员。

13.base访问可用于访问被当前类隐藏的基类成员,但只能在实例方法、实例访问器或实例构造函数块中使用。

14.base访问只能在实例方法、实例访问器或实例构造函数的块中使用。

15.从静态方法中使用base关键字是错误的。

16.用户界面元素,如按钮、文本框、复选框等被称为控件。

17.代码#region和#endregion关键字的作用是隐藏已通过测试的代码部分。

18.派生类中定义与继承的虚拟方法同名的方法时,方法参数的个数、数据类型以及返回值的类型必须相符。

19.类是对象的符号表示形式,它是计算机用来创建对象的模版。

20.private修饰符是类成员的默认修饰符。

如果移除了该修饰符,仍然会得到私有成员。

21.类的成员或者是静态成员,或者是实例成员,一般说来,将前者看作属于类和将后者看作属于对象很有用。

22.引用类型变量间的简单赋值语句并不创建新的对象。

23.在类中如果声明有多个同名的方法但它们的签名不同,则称为方法的重载。

24.在现有的类(基类)的基础上建立新类(派生类)的处理过程称为继承,这带来的好主要有代码复用,继承多态性。

25.派生类不能继承直接基类构造函数,我们在声明派生类构造函数时,可以通过base调用直接基类构造函数。

26.base访问只能在实例方法、实例访问器或实例构造函数的块中使用。

27.在派生类中定义与基类同名的方法,使用new修饰符显式隐藏从基类继承的方法成员。

28.在类声明中使用abstract修饰符以指示类只能是其他类的基类,我们称它为抽象类。

含有一个或多个抽象成员的类,必须定义为抽象类。

但必须注意抽象类不一定包含抽象成员。

29.一个接口定义一个协定,实现接口的类或结构必须遵守其协定。

30.滚动条常用属性:

Minimum、Maximum、Value、LargeChange、SmallChange;常用事件Scroll

31.用GDI+绘图需要如下步骤:

创建Graphics对象、创建笔或画笔、调用图形方法。

32.当重新绘制窗体时发生窗体的Paint事件,为该事件提供信息的类是PaintEventArgs,其Graphics属性指定绘制窗体时所用的Graphics对象。

33.有几种不同类型的画笔,如SolidBrush、HatchBrush、LinearGradientBrush等等,所有画笔类均从Brush类继承的,该类是“抽象”类,不能实例化。

34.Timer控件是实现在用户定义的时间间隔引发事件的计时器。

四、简答题

1.简述private、protected、public、internal修饰符的访问权限。

参考答案:

private:

私有成员,在类的内部才可以访问。

protected:

保护成员,该类内部和继承类中可以访问。

public:

公共成员,完全公开,没有访问限制。

internal:

在同一命名空间内可以访问。

2.面向对象的思想主要包括什么?

参考答案:

继承、封装、多态

封装:

用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。

继承:

子类拥有父类的所有数据和操作。

多态:

一个程序中同名的不同方法共存的情况。

有两种形式的多态----重载与重写。

3.简述重载、重写和隐藏的区别?

参考答案:

重载、重写和隐藏是很容易混淆的类似概念。

虽然所有这三种技术都使我们得以创建同名的成员,但它们之间有一些重要的差异。

重载的成员用于提供属性或方法的不同版本,这些版本具有相同名称但是接受不同数量的参数或者接受不同数据类型的参数。

重写的属性和方法用于替换在派生类中不适合的继承的属性或方法。

重写的成员必须接受同一数据类型和参数数量。

派生类继承重写的成员。

隐藏的成员用于局部替换具有更广范围的成员。

任何类型都可隐藏任何其他类型。

例如,可声明隐藏同名继承方法的属性。

无法继承隐藏的成员。

4.值类型和引用类型的区别?

参考答案:

值类型的变量本身包含他们的数据,而引用类型的变量包含的是指向包含数据的内存块的引用或叫句柄。

值类型变量存储在堆栈。

每个程序在执行时都有自己的堆栈,其他程序不能访问。

引用类型存储在堆。

引用类型存贮实际数据的引用值的地址。

C#中的引用类型有4种(类、委托、数组、接口)

5.C#的优点是什么?

至少列出4点

参考答案:

●C#中指针已经消失.允许对原始指针的有限制的使用.

●基于.NET平台的,继承了自动内存管理和垃圾回收的特点.

●C#拥有内建的支持来将任何组件转换成一个webservice,运行在任何平台上的任何应用程序都可以通过互联网来使用这个服务.

●面向对象的

6.什么是CLR?

参考答案:

公共语言运行时(CommonLanguageRuntime,CLR),提供了一个可靠而完善的多语言运行环境。

CLR是一个软件引擎,用于加载应用程序、检查错误、进行安全许可认证、执行和清空内存。

它属于纯动态运行时的一种,它的主要组成部分是虚拟执行引擎VEE(VirtualExecutionEnging),它可以打破语言和平台的限制。

7.如何理解.net中的垃圾回收机制。

参考答案:

如果发现内存不够,则垃圾回收器,将全部对象作为无效对象(被回收对象),然后先将全局变量,static,处于活动中的局部变量,以及当前CG指针指向的对象放入一个表中.然后会搜索新列表中的对象所引用的对象.加入列表中,其他没有被加入列表的对象都会被回收.非托管对象要记得释放资源.

四、阅读程序

1.使用Graphics对象的MeasureString()方法可以计算出给定字体的字符串宽度。

下例在获取字符串的宽度和高度后绘制出一个黑色矩形,然后将字符串以蓝色绘制在矩形中。

试根据上下文及注释完善之。

protectedoverridevoidOnPaint(PaintEventArgse)

{

Graphicsg=e.Graphics;

stringstr="Thisisastring";

SizeFsize=g.MeasureString(str,Font);

g.DrawRectangle(Pens.Black,0,0,size.Width,size.Height);

g.DrawString(str,Font,Brushes.Blue,newRectangleF(0,0,size.Width,size.Height));

}

2.使用Graphics对象的DrawString()方法可以绘制出文本字符串。

下例在当前窗体左上角处绘制出一个黑色矩形,然后将字符串以自定义颜色制在矩形中。

试根据上下文及注释完善之。

privatevoidbutton1_Click(objectsender,System.EventArgse)

{

//获取对将用于绘图的图像对象的引用

Graphicsg=this.CreateGraphics();

StringdrawString="程序运行结果!

";

SolidBrushmyBrush=newSolidBrush(Color.FromArgb(70,Color.Black));

FontmyFont=newFont("宋体",14);

RectangledrawRect=newRectangle(10,10,150,20);

g.DrawRectangle(Pens.Black,drawRect);

g.DrawString(drawString,myFont,myBrush,drawRect);

}

五、编程设计题

1.类通常包括3种成员:

构造函数、字段或属性以及方法。

①请设计一个个人资料类Person。

包含下列数据:

两个私有字符串类型字段:

姓名(name),血型(blood);2个公有方法:

显示姓名,显示血型;2个公有构造函数:

Person()和Person(stringname,stringblood)。

②设计一个程序使用上面的类,创建一个Person的对象p如下:

Personp=newPerson(“李四”,“AB”);调用相应的方法显示姓名和血型。

参考答案:

新建一个空白项目,添加对System.Windows.Forms.dll的引用,然后,添加一个代码文件。

输入以下具体代码:

usingSystem.Windows.Forms;

publicclassPerson

{

privatestringname;

privatestringblood;

publicPerson(){}

publicPerson(stringname,stringblood)

{

this.name=name;

this.blood=blood;

}

publicstringDispName()

{

returnname;

}

publicstringDispBlood()

{

returnblood;

}

staticvoidMain()

{

Personp=newPerson("李四","AB");

MessageBox.Show(p.DispName()+"的血型是:

"+p.DispBlood());

}

}

2.设计一个Person类,包含下列数据:

字段:

name、blood、weight、height;方法:

PrintName()、PrintBlood、PrintWeight、PrintHeight;构造函数:

Person(),Person(stringname,stringblood,intweight,intheight)。

编程测试上面的类。

参考答案:

新建一个空白项目,添加对System.Windows.Forms.dll的引用,然后,添加一个代码文件。

输入以下具体代码:

usingSystem.Windows.Forms;

publicclassPerson

{

privatestringname;

privatestringb

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2