2024年3月7日发(作者:)
C#复习题基本补全
LT
2
3
4
答:RadioButton控件主要用于从多个选项中选择一个选项的功能,是一种“多选一”的控件。
CheckBox控件列出了可供用户选择的选项,用户根据需要可以直接从选项组中选择一项或多项。
5.7、简述GroupBox控件的作用。
答:GroupBox控件用于为其他控件提供可识别的分组,把其他控件用框架框起来,可以提供视觉上的区分和总体上的激活或屏蔽特征。
5.8、GroupBox与Panel控件的主要区别是什么?
答:GroupBox与Panel控件的主要区别是:只有GroupBox控件可以显示标题,只有Panel控件可以有滚到条;
GroupBox控件必须有边框,但Panel控件可以没有边框。
5.9、简述TabControl控件的作用。
答:TabControl控件用于显示多个选项卡页,每个选项卡页中可以放置其他控件。
6.1、C#提供的四种跳转语句中,不推荐使用的是 B 。
A、return B、goto C、break D、continue
6.2、下列控件中,不能实现多项选择功能的是 B 。
A、ListBox B、ComboBox C、CheckBox D、CheckListBox
6.3、如果让计时器每隔10s触发一次Tick事件,需要将Interval属性设置为 D 。
A、10 B、100 C、1000 D、10000
6.4、已知进度条的下限是0,上限是1000,如果要让进度条显示百分之三十的分段快,需要将其Value属性设置为 C 。
A、30 B、30% C、300 D、0.3
6.5、循环结构中,break语句和continue语句各有什么作用?
答:break语句可以强制终止for循环。Continue语句用来结束本次循环,在整个循环体没有执行完就重新开始新的循环。
6.6、简述ListBox与ComboBox控件的作用
答:ListBox控件为用户提供了可选的项目列表,用户可以从列表中选择一个或多个项目。
ComboBox控件为用户提供了可选的项目列表,用户可以从列表中选择一个项目输入,也可以直接在文本框中输入。
6.7、简述Timer组件的作用。
答:Timer组件是一种无需用户干预,按一定时间间隔,周期性地自动触发事件的控件。Timer组件通过检查系统时间来判断
是否执行某项任务。
6.8、简述ProgressBar控件的作用
答:ProgressBar控件是个水平放置的指示器,其内部包含多个可滚动的分段块,用于直接地显示某个操作的当前进度。
7.1、类的字段和方法的默认访问修饰符是 B 。
A、public B、private C、protected D、internal
7.2、C#中TestClass是一个自定义类,其中有一个属性
public int Property{get;set;}
以及如下的实例化对象
TestClass obj=new TestClass();
则以下语句中正确的是 C 。
A、ty; B、obj::Property; C、ty; D、ty();
7.3、下列关于构造函数的描述中, A 是正确的。
A、构造函数名必须和类名相同 B、构造函数不能重载
C、构造函算不能带参数 D、构造函数可以声明返回类型。
7.4、不能用来定义变量的类是 C 。
A、sealed类 B、abstract类 C、static类 D、partial类
7.5、不能实例化对象的是 B 。
A、sealed类 B、abstract类 C、基类 D、partial类
7.6、不能被继承的类是 A 。
A、sealed类 B、abstract类 C、object D、partial类
7.7、如何理解面向对象程序设计中的类和对象?二者之间是何关系?
答:对象:每一个有明确意义和边界的事物都可以看作是一个对象。
5
类:类是具有相同特点的对象的集合,可以把具有相同特征的事物归为一类,也就是把具有相同属性和行为的对象看成一个类。
关系:类是一种提供功能的数据类型,可以用来声明、产生对象。
7.8、面向对象程序设计的主要特点有哪些?
答:封装性、继承性、多态性。
7.9、类的声明格式中包含哪些部分?各有何意义?
访问修饰符、class、类名、基类、类的成员
访问修饰符用来限制类的作用范围或访问级别,可省略。
class是定义类的关键字。
类名使用Pascal命名规范,Pascal命名规范要求名称的每个单词的首字母要大写。
基类表明所定义的类是一个派生类,可省略。
类的成员构成类的主体,用来定义类的数据和行为。
7.10、什么是实例方法?什么是静态方法?答:用修饰符static声明的方法为静态方法,不用修饰符static声明的方法为实例方法。
7.11、类可以使用哪些修饰府?各代表什么意义?
答:public、protected、internal、private、protected internal
public:定义的成员可以在类的外部进行访问。
protected:为了方便派生类的访问,但又不希望其他无关类随意访问,就可以使用protected修饰符,将成员声明为保护的。
internal:成员只能在当前程序集中访问。
private:只有类内部的成员才可以访问私有成员,在类的外部是禁止直接访问私有成员的。
protected internal:访问权限仅限于当前程序集或该类的派生类访问。
7.12、简述new、this、static、ref、out、params、get、set和value这些关键词的作用。
new:对象创建时,用来获得内存空间和初始值。
this:表示对当前对象的引用,其类型就是当前类型。
static:字段声明前加上static,使其成为静态字段或只读字段。
ref:用于声明引用参数,传递数据的引用。
out:用于声明输出型参数
params:形参数组添加params,实参可以是数组名,也可以是数组元素的列表。
get:get访问器获得属性值,并将它返回给调用的函数。
set:set访问器用于设置和修改属性值。
value:代表隐式的参数。
7.13、简述构造函数与析构函数的作用。
答:构造函数的作用是初始化字段和保证对象在它的生存期里是一个可知状态。析构函数用于销毁对象。
8.1、下列关于虚方法的描述中,正确的是 A 。
A、虚方法能在程序运行时动态确定要调用的方法,因而比非虚方法更灵活。
B、在定义虚方法时,基类和继承类的方法定义中都要带上virtual修饰符。
C、重写基类的虚方法时,为了消除隐藏基类成员的警告,需要带上new修饰符。
D、在重写虚方法时,需要同时带上override和virtual修饰符。
8.2、下列方法中, A 是抽象方法。
A、static void fun(){…} B、override void fun(){…}
C、abstract void fun(){…} D、virtual void fun(){…}
8.3、下列关于接口的说法中, A 是错误的。
A、一个类可以有多个基类和多个接口
B、抽象类和接口都不能实例化对象
C、抽象类可以定义成员,接口也可以。
D、类不可以多重继承,而接口可以。
8.4、下列代码的输出结果是 A 。
class Base
6
{
public void Hello()
{
(“Hello in Base!”)
}
}
Class Derived:Base
{
public new void Hello()
{
(“Hello in Derived!”)
}
}
Base x=new Derived();
();
A、Hello in Base! B、Hello in Base! Hello in Derived!
C、Hello in Derived! D、Hello in Derived! Hello in Base!
8.5、什么是类的继承?如何定义派生类?
答:类的继承是根据现有的类创建新类的能力,可以在不修改现有类的情况下,添加增强内容。通过创建继承现有类,可以添加或修改类的变量和方法。 继承后产生的类叫做派生类,派生类是基类的细化。
8.6、简述构造派生类对象时,构造函数的调用。
答:创建派生类对象时,为了初始化从基类中继承来的成员,系统需要调用其基类的构造函数。
8.7、怎样定义基类的虚方法,并在派生类中重写基类虚方法。
答:在基类中,需要使用关键字virtual将某个方法显示声明为虚拟方法(也称虚方法)然后在派生类中必须使用关键字override显示声明一个方法
以重写某个虚拟方法。方法重写时,必须注意派生类中的方法应该与基类中被重写的方法有相同的方法名,返回值类型,参数列表和访问权限。
8.8、抽象方法与虚方法有何异同?
答:抽象方法是一种虚方法,但不能用关键字virtual显示声明。虚拟方法有实现,抽象方法没有实现。
8.9、什么是抽象类?它有什么特点?它和接口有何异同?
答:抽象类是基类的一种特殊类型,必须用关键字abstract修饰。它除了拥有普通的类成员之外,还有抽象类成员。接口只能包含
抽象方法、抽象属性和抽象索引器,而抽象类还可能包含数据成员,以及完全实现的方法、属性和索引器。
8.10、简述通过委托来调用对象方法的基本过程。
一、类型定义:在使用委托对象调用时必须保证参数的类型个数,顺序与方法声明匹配。
二、对象创建
三、方法绑定、方法调用,委托允许将方法名直接写在委托赋值表达式的右边而不必写出完整的委托。
9.1、一般情况下,异常类存放在 C 中。
A、stics名字空间 B、ion名字空间
C、System名字空间 D、Program名字空间
9.2、当输入abc时,下列程序会抛出 A 异常。
Int num;
try
{
num=32(ne());
}catch{//捕捉异常}
A、FormatException B、IndexOutOfRangeException
C、OverflowException D、TypeLoadException
9.3、用户自定义异常类应该继承 D 类。
7
A、ArgumentException B、IOException C、SystemException D、ApplicationException
9.4、.Net Fromework中,一个try代码块可以有多个catch块,最后一个catch快中捕获的应该是 A 类
A、Exception B、SystemException C、ApplicationException D、StackOverflowException
9.5、程序的错误有哪几种?
答:语法错误、运行错误和逻辑错误。
9.6、什么是异常,所有异常类都派生于什么类?
答:异常又称为例外,是指程序运行过程出现的非正常事件,是程序错误的一种。所有异常类都派生于ion类
9.7、异常类中的两个基本属性是什么?
systemexception、applicationexception
10.1、如果要禁用菜单,需要将菜单的 B 属性设置为false。
A、Visible B、Enabled C、Checked D、DropDown
10.2、要在鼠标点击的地方显示弹出式菜单,需要调用弹出式菜单的方法Show,假定point标记鼠标点击的位置,this标记当前窗口,cttMenuStrip是一个ContextMenuStrip控件,则调用格式为 D 。
A、(this, point);
C、(point ,this);
B、(point);
D、();
10.3、下列关于RichTextBox控件的说法中,不正确的是 B 。
A、设计时可以直接将文本赋值给RichTextBox控件;
B、设计时可以直接将图像赋值给RichTextBox控件;
C、运行时可以直接在RichTextBox控件中输入文本;
D、运行时可以直接在RichTextBox控件嵌入图像;
10.4、MDI的相关属性中,既可在属性窗口中设置,也可通过代码设置的是 B 属性
A、IsMDIChild B、IsNDIContainer C、MdiChildren D、MDIParent
10.5、菜单控件有哪两个,作用是什么?
答:MenuStrip控件用于创建下拉式菜单。ContextMenuStrip控件用于创建弹出式菜单。
10.6、简述ToolStrip控件的使用方法。
答: ToolStrip控件用于创建工具栏。
10.7、简述StatusStrip控件的使用方法与作用。
答:StatusStrip控件用于创建状态栏。
10.8、什么是模式/非模式对话框?
答:模式对话框时指用户只能在当前的对话框窗体进行操作,在该窗体关闭之前不能切换到程序其他窗体。
非模式对话框时指当前所操作的对话框窗体可以与其他窗体切换。
10.9、简述OpenFileDialog与SaveFileDialog的Filter的设置方式。
答:设置为“office文件(*.doc;*.xls;*.ppt)|*.doc;*.xls;*.ppt|图片文件(*.gif;*.jpg)|*.gif;*.jpg|所有文件(*.*)|*.*”
编程题
1、创建一个Windows应用程序,在窗体上动态显示当前时间。
2、创建一个Windows应用程序,在窗体上用中文显示当前日期。
3、设计一个动物类,用多态实现不同动物,如鸡、猪以及狗等,的不同叫唤。
4、创建一个控制台应用程序,实例化一个List
5、创建一个Windows应用程序,在窗体上绘制一个五角星。
6、设计一个交通工具类,用多态实现不同交通工具,如货车、轿车以及出租车等,的不同添加动力的功能。
7、创建一个学生类,其属性成绩在赋值时,接受介于0到100以内的值,对于这个范围外的值抛出异常。
8、创建一个员工类,其属性年龄在赋值时,接受介于16到60以内的值,对于这个范围外的值抛出异常。
9、设计一个员工类,用多态实现不同员工,如总经理、经理以及一般员工等,的不同添加工酬计算标准。
10、代码填空。下面的代码利用矩形法实现函数sinx在区间[0,]上的积分,并在屏幕上输出其积分值。填空完成代码。
namespace TestCShap
8
{
class Program
{
static void Main(string[] args)
{
Intergrate obj = new Intergrate( ,0, );
ine( ue );
}
}
class Intergrate
{
public delegate double RealFunction(double x);
public RealFunction Function;
double A ;
double B;
public Intergrate(RealFunction function, double a, double b)
{
Function = function;
A = a; B = b;
}
public double IntValue
{
get
{
double sum = 0;
double delt = 0.001;
double x = A;
while (x < B)
{
sum += x ;
x += delt;
}
return sum ;
}
}
}
}
9


发布评论