c#期末复习题答案.docx
《c#期末复习题答案.docx》由会员分享,可在线阅读,更多相关《c#期末复习题答案.docx(18页珍藏版)》请在冰豆网上搜索。
c#期末复习题答案
一、选择题
●Command类的常用方法中用来执行Sql语句,多用于聚合函数,返回单一值的是:
(B)
A、ExecuteNonQuery()B、ExecuteScalar()C、ExecuteReader()D、Execute()
●与MSSQLServer2000数据库连接时,应采用ADO.net中的___B___数据对象
A、ADOConnectionB、SqlConnectionC、OleDbConnectionD、OrcaleConnection
●水晶报表的后缀名是___A___
A、rptB、rbtC、brtD、prt
●关系运算符均是双目运算符,它们的优先级正确的是__D__
A、<小于<=B、<=小于>C、>=大于!
=D、优先级相同
●枚举型的常量的值默认是_A___类型
A、intB、longC、ushortD、double
●在VisualC#中主要用来为对象分配存储空间,完成初始化操作(如给类的成员变量赋值等)的函数是___D___
A、析构函数B、main函数C、sub函数D、构造函数
●关于try…catch…finally语句的说明中,不正确的是__D__
A、catch块可以有多个B、finally块是可选的C、catch块也是可选的D、可以只有try块
●要使窗体刚运行时,显示在屏幕的中央,应设置窗体的___B__属性
A、WindowStateB、StartPositionC、CenterScreenD、CenterParent
●与Oracle数据库连接时,应采用ADO.net中的__D____数据对象
A、ADOConnectionB、SqlConnectionC、OleDbConnectionD、OrcaleConnection
●在过程内定义的变量(不在语句块中)为__C____
A.全局变量B.模块级变量C.局部变量D.静态变量
●下列语句创建了___D___个string对象?
string[,]str=newstring[3,4];
A.3B.4C.7D.12
●以下类MyClass的属性count属于___A__属性.
classMyClass
{
inti;
intcount
{
get{returni;}
}
}
A.只读B.只写C.可读写D.不可读不可
●在ADO.NET中,DataAdapter对象下列___B__属性用于将DataSet中的新增记录保存到数据源?
A.SelectCommand
B.InsertCommand
C.UpdateCommand
D.DeleteCommand
●C#中的类型float对应.NET类库中的___A___。
A.System.SingleB.System.DoubleC.System.Int32D.System.Int64
●C#语言中声明类的关键字是___B___。
A.usingB.classC.namespaceD.Main
●在C#中,用户自定义方法的访问修饰符为___D___时候,该方法能在类及其子类中使用。
A.abstractB.privateC.staticD.protect
●要退出应用程序,可以使用下列的__A__语句。
A.Application.Exit()B.Application.Exit
C.Application.Close()D.Application.Close
●int[]x=newint[4];那么,数组X在内存中占用的字节数为___D___。
A.8B.12C.14D.16
●为了能够在程序中捕获所有的异常,在catch语句的括号中使用的类名为____A_____。
A.Exception
B.DivideByZeroException
C.FormatException
D.以上三个均可
●关于继承的理解,错误的是__A____。
A.子类可以从父类中继承其所有的成员。
B.无论是否声明,子类都继承自object(System.object)类。
C.假如,类M继承自类N,而类N又继承自类P,则类M也继承自类P。
D.子类应是对基类的扩展。
子类可以添加新的成员,但不能除去已经继承的成员的的定义。
●在C#应用程序中,新建一个字符串变量str,并赋初值“Tom’slivingroom”,下面A是正确的写法。
A.stringstr=”Tom\’slivingroom”;B.stringstr=”Tom’slivingroom”;
C.stringstr(”Tom\’slivingroom”);D.stringstr(”Tom\’’slivingroom”);
●下面所列的选项中,属于类的成员个数是___D___。
①属性 ②域(字段) ③构造函数和析构函数 ④成员常量 ⑤事件 ⑥索引
A.3个B.4个C.5个D.6个
●ADO.NET使用___B____命名空间的类访问SQLServer数据库中的数据。
A.System.Data.OleDbB.System.Data.SqlClient
C.System.Xml.SerializationD.System.IO
●在继承中,当子类的成员声明中,隐藏与父类成员同名的成员。
这时,须使用的关键字是B。
A.voidB.newC.baseD.static
●下面集合中,相当于队列,遵循“后进先出”原则的是C。
A.ArrayListB.StackC.QueueD.Hashtable
●在使用C#语言开发Windows程序的过程中,如果需要显示如下图所示的提示消息,应当使用的代码是D。
A.MessageBox.Show(“请输入用户名和密码!
”,“输入提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);
B.MessageBox.Show(“输入提示”,“请输入用户名和密码!
”,MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
C.MessageBox.Show(“请输入用户名和密码!
”,“输入提示”,MessageBoxButtons.YesNo,MessageBoxIcon.Information);
D.MessageBox.Show(“请输入用户名和密码!
”,“输入提示”,MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
●下列的____D___不是构造函数的特征。
A.构造函数的函数名和类名相同
B.构造函数可以重载
C.构造函数可以带有参数
D.可以指定构造函数的返回值
●变量openFileDialog1引用一个OpenFileDialog对象。
为检查用户在退出对话框时是否单击了“打开”按钮,
应检查openFileDialog1.ShowDialog()的返回值是否等于___A____。
A.DialogResult.OKB.DialogResult.YesC.DialogResult.NoD.DialogResult.Cancel
●.NET的目的就是将A作为新一代操作系统的基础,对互联网的设计思想进行扩展。
A.互联网.B.WindowsC.C#D.网络操作系统
●C#的数据类型有B
A.值类型和调用类型;B.值类型和引用类型;
C.引用类型和关系类型;D.关系类型和调用类型;
●在C#中,下列能够作为变量名字的是__C___。
A.3aB.charC._cD.a@
●要退出应用程序,可以使用下列的__A_语句。
A.Application.Exit()B.Application.Exit
C.Application.Close()D.Application.Close
●int[]x=new[10]{1,2,3,4,5,6,7,8,9,10};,那么,数组X在内存中占用的字节数为___C___。
A.10B.20C.40D.80
●类的定义中__C__描述了类的行为能力。
A.属性。
B.字段。
C.方法。
D.命名空间。
●C#采用__A__技术隐藏类的内部数据。
A.属性。
B.命名空间。
C.方法。
D.静态成员。
●在继承中,当子类的成员声明中,隐藏与父类成员同名的成员。
这时,须使用的关键字是___B____。
A.voidB.newC.baseD.static
●在定义类时,可采用___C____修饰符使派生类能够对某个方法进行进一步改进。
A.publicB.overrideC.virtualD.static
●C#程序中,try…catch结构能够处理___B____错误。
A.语法B.运行时C.逻辑D.拼写
●一个DataSet对象包括一组A对象,该对象代表创建在DataSet中的表。
A.DataTableB.DataRelation
C.DataColumnD.DataRow
●下面集合中,相当于堆栈,遵循“先进后出”原则的是B。
A.ArrayListB.Stack
C.QueueD.Hashtable
●为了能够在程序中捕获格式异常,在catch语句的括号中使用的类名为___C______。
A.ExceptionB.DivideByZeroExceptionC.FormatExceptionD.以上三个均可
●以下那个方法是数据阅读器DataReader用于读取数据集中某一列数据的方法__A____
A.getXXX方法B.Read方法C.Close方法D.NextResult方法
●变量openFileDialog1引用一个OpenFileDialog对象。
为检查用户在退出对话框时是否单击了“取消”按钮,应检查openFileDialog1.ShowDialog()的返回值是否等于__D_____;
A.DialogResult.OKB.DialogResult.Yes
C.DialogResult.NoD.DialogResult.Cancel
二、填空题
●在.Net托管代码中我们不用担心内存漏洞,这是因为有了___GC___。
●在.Net中所有可序列化的类都被标记为__[serializable]___。
●C#提供了3种循环语句,用来实现重复性的任务:
while、dowhile、for。
●在C#中要产生随机数需要使用Random类
●C#提供了四种参数传递方式:
值传递、引用传递、输出参数、参数数组。
●委托声明的关键字是__delegate____。
●TextBox控件的Text属性是用来获取或设置一个字符串,该字符串指示控件中的文本。
●RichTextBox控件的Find方法用来从RichTextBox控件中查找指定的字符串。
●ListBox控件的SelectedChanged事件是在列表框中改变选中项时发生。
●、在switch语句中,每个语句标号所含关键字case后面的表达式必须是整型或字符型。
●布尔类型(bool)只含有两个数值:
true和____false_____
●运算符必须有运算对象,根据运算对象的多少可以把运算符分成单目运算符、双目运算符和____三目运算符_____。
●在C#中,表达式Math.Pow(2,-2)的值是____1/4_____。
●在C#的Windows应用程序中Timer控件的Interval属性是用来设置定时器两次Tick事件发生的时间间隔,以ms为单位。
●数据类型说明符用来说明方法返回值的类型,如果没有返回值,则其说明符默认应为___void_____。
●定义一个逐字字符串时,需要在字符串的前边加____@____符号。
●程序中的第一条语句“usingSystem;”的作用是___对System命名空间的引用______。
●若希望在菜单标题显示为“工具[T]”,应该把菜单项的Text属性设置为__工具[&T]___。
●在C#中,可以使用数据适配器对象的___Fill__方法从数据源中提取数据以填充数据集。
●在访问数据库时,ADO.NET有两种模式:
保持连接模式和断开模式模式。
●为了便于管理多个项目,在VS2005集成环境中引入了___解决方案_____,用来对企业级解决方案涉及的多个项目进行管理。
●continue语句的作用是__结束本次循环,开始下一次循环______。
●异常对象均是由___Exception_____类派生而来的。
●.NET框架包括公共语言运行库(CommonLanguageRun,CLR)和.NET基类库。
●、C#是一个块结构的编程语言,这些代码块使用“{”和“}”来界定
●变量间的类型转换有两种形式:
隐式转换、显式转换。
●C#的每个字符占2个字节。
●C#提供了4个命令,来控制循环的执行:
break、continue、goto、return。
●在C#中,可以使用两种方式来注释代码:
单行注释和多行注释。
单行注释使用“//”来标记注释;多行注释时,C#以“/*”标记注释的起始位置,以“*/”标记注释结束。
●C#的每条语句都用一个;来结束
●以下代码片断strings="abcdefg";stringss=s.Remove(2,3);returnss;的返回值是“abfg”
●声明变量时,使用static关键字声明的变量为静态变量。
●PictureBox控件的Image属性是用来设置控件要显示的图像。
●TextBox控件的SelectedText属性是用来获取或设置一个字符串,该字符串指示控件中当前选定的文本。
●在ADO.NET中,SqlDataReader对象用于从数据库中检索只读的数据。
假设存在一个SqlCommand对象command,SqlDataReaderreader=command.ExecuteReader();语句可以创建一个SqlDataReader对象。
●在WinForms高级控件中,StatusStrip控件常常放在窗体的底部,用来显示一些基本信息。
三、简答题
●与C和C++相比,C#具有什么特点?
●使用ADO.net开发数据库应用程序的一般步骤?
●C#中都有那些数据类型(列举5种)?
●类中都有那些成员(列举5种)?
●隐式转换
答案:
这种转换可以在所有情况下进行,执行的规则非常简单,编译器可以自动进行,不
需要编程人员参与
●显式转换
答案:
这种转换只能在某些特定情况下进行,转换规则比较复杂,需要编程人员的参与。
●类
答案:
通常把具有同样性质和功能的东西所构成的集合叫作类。
●方法
答案:
方法是对象能够执行的一些操作,它体现了对象的功能。
●break、continue、goto、return的区别
答案:
break——立即终止循环;continue——立即终止当前循环,而进行下一次循环;
goto——可以跳出循环,到已经标记好的代码位置上;return——跳出循环及其所包含的函数体。
●ADO.NET的特点
答案:
1、使用ADO.NET访问数据库,分两种模式:
连接模式和断开模式.
2、在ADO.NET中引入一个新的,断开模式用的数据集对象DataSet
3、在ADO.NET中提供了对XML的完全支持
●比较参数传递中的值参数和引用参数的区别
答案:
定义值类型参数的方式很简单,只要注明参数类型和参数名即可。
当该方法被调用时,便会为每个值类型参数分配一个新的存储空间,然后将对应的表达式运算的值复制到该内存控件。
在方法中更改参数的值不会影响到这个方法外的变量。
与传递值类型参数不同,引用类型的参数并没有再分配内存空间,实际上传递的是指向原变量的指针,即引用参数和原变量保存在同一地址。
●委托的使用方法,一般分为那三步
答案:
(1)声明委托
(2)定义一个委托类型的实例变量,让该实例变量指向某一个具体的方法
(3)调用委托类型变量指向的方法。
其一般格式如下
●while循环非常类似于do循环,它和do循环的重要区别。
答:
while循环先判断条件然后执行循环体dowhile循环先执行循环体再判断条件
●在连接字符串中DataSource(Server)、InitialCatalog(Database)和Integratedsecurity代表的意义。
DataSource:
数据服务器名称
DataBase:
要链接的数据库名称
Integratedsecurity:
身份验证方式
●BindingSource组件、BindingNavigator控件、DataGridView控件作用
BindingSource组件的作用之一就是实现了统一的数据源绑定表达式。
BindingNavigator控件提供了一个ToolStrip导航条,该导航条默认提供第一条记录、最后一条记录、上一条记录、下一条记录的按钮,以及添加和删除记录的按钮。
DataGridView控件提供了强大而灵活的显示与编辑二维表数据的方法,大大简化了复杂的数据操作。
●请解释何为重载(overload),何为过载(override)
答:
重载是方法的名称相同。
但是方法的参数类型或数量不同,进行多次重载以适应处理不同类型数据的需要。
过载是进行基类中函数的重写。
是面向对象的程序设计语言中实现类的继承过程中多态的机制。
其外在表现是
override+具有相同的名称及参数类型的方法,但是方法的实现是不同的。
●C#中的委托是什么?
事件是不是一种委托?
答:
⑴委托是C#中用来处理如C、C++语言中函数指针可以完成的功能的机制,可以把一个方法作为参数代入另一个方法。
所以委托可以理解为指向一个函数的引用,但是委托是完全面向对象的,是委托类的实例及类型安全的。
⑵事件是一种特殊的委托,以实现类实例之间的消息通知功能。
●试解释何为LINQ技术?
LINQ是.NETFramework3.5提供的一种新的针对数据源操作的技术,它提供一种新的数据查询模型,使用
相同的基本编码模型来查询和转换各种数据源,并定义了一组通用标准的查询运算符,使用这些运算符可以
投影、筛选及遍历数据源数据,同时具有完全的类型检查能力,可以大大提高数据处理能力和开发效率。
●在VisualC#.NET中定义标识符时,必须符合以下命名规则。
(1)标识符必须是由字母、数字、下划线组成的一串符号,且必须以字母或下划线开头。
(2)由于标识符代表对象的名称,所以用户在选取标识符时应选取有意义的字符序列,以便在程序中能从标识符看出所标识的对象,从而便于阅读和记忆。
(3)用户定义的标识符不能与C#语言的关键字同名
●简要谈一下您对微软.NET构架下remoting和webservice两项技术的理解以及实际中的应用。
答:
WS主要是可利用HTTP,穿透防火墙。
而Remoting可以利用TCP/IP,二进制传送提高效率。
remoting是.net中用来跨越machine,process,appdomain进行方法调用的技术,对于三层结构的程序,就可以使用remoting技术来构建.它是分布应用的基础技术.相当于以前的DCOM。
WebService是一种构建应用程序的普通模型,并能在所有支持internet网通讯的操作系统上实施。
WebService令基于组件的开发和web的结合达到最佳,基于组件的对象模型。
●什么是XML?
答:
XML(eXtensibleMarkupLanguage)即可扩展标记语言,是从SGML中简化修改出来的。
标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。
如何定义这些标记,即可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。
●ADO.NET数据访问的两种模式
答:
保持连接模式进行数据访问时必须时刻与数据库保持连接,主要使用的类是DBConnection,DBCommand,DataReader.
断开模式取得数据后可以与数据库断开连接,数据消费者主要使用DataSet存储数据,在客户端进行处理,然后在需要的时候更新数据源。
●.net的错误处理机制是什么?
答:
.net错误处理机制采用try->catch->finally结构,主要有以下三种实现形式:
(1)try->catch
(2)try->finally(3)try->catch->finally
发生错误时,异常类的实例会被层层抛出,直到找到匹配的Catch为止。
如果没有匹配的catch语句,则程序异常终止。
无论何种情况,finally中的语句都会被执行。
●abstractclass和interface有什么区别?
答:
声明方法的存在而不去实现它的类被叫做抽像类(abstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract类的实例。
不能有抽像构造函数或抽像静态方法。
Abstract类的子类为它们父类中的所有抽像方法提供实现.
●接口(interface)是抽像类的变体。
在接口中,所有方法都是抽像的。
多继承性可通过实现这样的接口而获得。
接口中的所有方法都是抽像的,没有一个有程序体。
接口只可以定义staticfinal成员变量。
接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。
当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。
然后,它可以在实现了该接口的类的任何对像上调用接口的方法。
四、读程序写结果
●以下程序的输出结果是___6___。
classProgram
{
staticvoidMain(string[]args)
{
inta=5,b=4,c=6,d;
Console.WriteLine("{0}",d=a>b?
(a>c?
a:
c):
b);
}
}
●以下程序的输出结果是x=0y=0
__x=0y=-1____。
classA
{
publicA()
{PrintFields();}
publicvirtualvoidPrintFields(){}
}
classB:
A
{
intx=1;
inty;
publicB()
{
y=-1;
}
publicoverridevoidPri