C#试题.docx
- 文档编号:4343614
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:31
- 大小:48.87KB
C#试题.docx
《C#试题.docx》由会员分享,可在线阅读,更多相关《C#试题.docx(31页珍藏版)》请在冰豆网上搜索。
C#试题
注:
红色表示答案
一.选择,填空题
1.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,
下面叙述错误的是(C)。
a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
c)Select操作的Sql语句只能由ExecuteReader()方法来执行;~
d)ExecuteReader()方法返回一个DataReder对象;
2.面向对象的语言具有__继承性_性、_封装性_性、_多态性性。
3.能用foreach遍历访问的对象需要实现________________接口或声明
________________方法的类型。
(@)
答:
IEnumerable、GetEnumerator()
4.在C#中,表示一个字符串的变量应使用以下哪条语句定义?
(B)
A.CStringstr;
B.stringstr;
C.Dimstrasstring
D.char*str;
5.在C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪
条语句?
(A)
A.decimaltheMoney;
B.inttheMoney;
C.stringtheMoney;
D.DimtheMoneyasdouble
6.C#中,新建一字符串变量str,并将字符串”Tom'sLivingRoom”保存到串中,则应该使用下列哪条语句?
(B)
A.stringstr=“Tom\'sLivingRoom”;
B.stringstr=“Tom'sLivingRoom”;
C.stringstr(“Tom'sLivingRoom”);
D.stringstr(“Tom”sLivingRoom”);
7.应用ADO.NET访问数据时,Connection对象的连接字符串中InitialCatalog子串的含义是(A)
A.Connection对象连接到的数据库的名称
B.Connection对象的身份验证信息
C.Connection对象的最大连接时间
D.Connection对象使用的缓存大小
8.使用VisualStudio.NET的”新建C#项目”创建一个名为”SimpleForm”的Windows表单应用程序,则在生成_______文件中可设置该程序集的Copyright、Trademark等属性信息.(D)
A.Form1.resx
B.SimpleForm.sln
C.SimpleForm.csproj
D.AssemblyInfo.cs
9.C#程序中,为使变量myForm引用的窗体对象显示为对话框,必须:
(C)
A.使用myForm.ShowDailog方法显示对话框
B.将myForm对象的isDialog属性设为true
C.将myForm对象的FormBorderStyle枚举属性设置为FixedDialog
D.将变量myForm改为引用System.Windows.Dialog类的对象
10.下列哪些语言可以用来开发XMLWebService?
(A,B,C,D)
A.C
B.C++
C.Java
D.C#
11.Web表单中,按钮的默认事件是(A)
A.Click事件
B.Load事件
C.Init事件
D.Command事件
12.关于ASP.NET窗体应用程序,下列说法哪些是正确的?
(D)
A.Web窗体是在浏览器中进行解释执行的
B.Web窗体程序中脚本和代码必须严格分开
C.Web窗体程序产生的HTML页面只能运行于IE浏览器
D.Web窗体程序的代码可以使用任何一种.NET兼容的编程语言编写
13.关于结构类型,下列说法哪些是正确的?
(A)
A.结构是值类型
B.结构中不允许定义带参数的实例构造函数;
C.结构中不允许定义析构函数
D.结构中可以定义成员方法,但是方法内不能使用this指针
E.不能使用new关键字创建结构类型的实例
14.关于线程和进程,下列说法哪些是正确的?
(AD)
A.线程是操作系统分配处理器时间的基本单位;
B.进程是操作系统分配处理器时间的基本单位;
C.一个线程可以属于多个进程;
D.一个进程可以有多个线程;
15.为从某个网站访问xml信息,应使用(_)类的对象分析下载返回的xml文档(CD)
AStreamReader
BTextReader
CXmlReader
DXmlTextReader
16.面向对象编程中的”继承”的概念是指(B)
A派生类对象可以不受限制地访问所有的基类对象
B派生自同一个基类的不同类的对象具有一些共同特征
C对象之间通过消息进行交互
D对象的内部细节被隐藏
17.以下叙述正确的是(D)。
@
A.一条表达式中可以同时出现浮点数类型和decimal类型
B.类可以继承,并且可以多重继承
C.int[,]b=newint[4,5]//创建了一个二维数组,第一维长为4,第二维长为5
D.intx=23;objecto=x;inty=(int)o;//实现了一次装箱操作
18.以下有关结构类型和枚举类型的叙述错误的是(C)。
A.结构类型和枚举类型都是复合类型
B.结构类型只能是简单值类型的组合
C.枚举类型要求成员只能是整数类型
D.枚举类型的变量在某一时刻只
19.接口和类最主要的区别在于(D)。
A.类可以重载而接口不可以
B.类不可以重载而接口可以
C.类可以多重重载而接口不可以
D.类不可以多重重载而接口可以
20.关于静态域成员与非静态域成员,以下说法正确的是(C)。
A.一个类的所有对象共享非静态域成员
B.一个类的一个对象分别拥有不同的非静态域成员的实例
C.静态域成员都能在不生成实例的情况下直接被使用
D.非静态域成员都能
21.关于重载,以下叙述错误的是(C,D)。
A.重载是指在类的内部存在若干个方法名称一致但是参数列表不同的方法
B.方法重载是指创建多个名称相同的方法,其中每个方法都在某些方面具有唯一性,以便编译器能够正确区别它们
C.重载构造函数主要是为了在创建对象的同时进行赋值
D.方法的重载允许两个方法的名称和参数列表相同,而返回类型不同
22.下面有关C#中方法的参数描述正确的是(B)。
A.利用值类型参数调用方法时,对形参的修改会反映到实参上去
B.输出型参数的实参在传递给形参前,不需要明确赋值
C.引用型参数不另外开辟新的内存区域,这一点是它与输出型参数的不同之处
D.数组型参数可以是任何类型的数组
23.下面是一个派生类的定义语句:
publicclasscar:
vehicle
{privatestringmodel=”L”;
privateintwheelNo=4;}
请指出针对该定义的正确的说法(C)。
A.vehicle类是car类的一个特例,因而它可以被继承
B.car类是父类,vehicle类是子类
C.在car类中定义的成员model和wheelNo会删除vehicle类中同名的成员
D.car类是vehicle类的一个特例,它可以继承vehicle类中除构造函数和析构函
24.(D)关键字可以用来访问当前对象的基类对象。
A.objectB.this
C.asD.base
25.重载是(B)的形式之一。
A.接口B.多态
C.继承D.类
26.x的初值为24,则表达式x+=x--+=x%=17运算的结果值为(D)。
A.28B.27
C.26D.错误的表达式
27.下面是几条定义初始化二维数组的语句,指出其中正确的是(D)。
A.intarray2[][]=newint[3,2];
B.intarray2[,]=newint[3,2];
C.int[][]array2=newint[3,2];
D.int[,]array2=newint[3,2];
28.一个初始化语句:
enummonthes{January,February=3,March=5,April=7,May,June},则此时May的值为(C)。
A.4B.5C.8D.9
29.在A中所有的自定义用户控件都必须继承自________?
答:
Control。
30.在.Net中所有可序列化的类都被标记为_____?
答:
[serializable]
31.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?
答:
GC。
32.在.Net中,类System.Web.UI.Page可以被继承么?
答:
可以。
33.声明静态变量的关键字是(static),声明常量的关键字是(const)
34.在流程控制中CONTINUE的作用(跳出当前循环继续下一次循环)
35.软件工程的三大文档(需要分析说明书)(概要设计说明书)(详细设计说明书)。
36.B/S通常使用的结构设计模型分为(模型)(视图)(控制器)。
(MVC经典的
Web/Business/DataAccess)
37.XML的全称是(ExtensibleMarkupLanguage”可扩展标记语言”),提供了快速和有
效地读写XML的方式的类分别是(XMLReader)(XMLWriter)
38.C#中所有的类型实质上都是从(Object)类派生而来的。
39.NET运行库支持被称为(委托)的引用类型,其作用类似于C++中函数指针的用途。
40.B/S通常使用的结构设计模型分为()()()?
*
41.类的三大特性是()()()
42..NET运行库支持被称为()的引用类型,其作用类似于C++中函数指针的用途43.C#中处理内存管理功能的是(托管代码GC(垃圾回收))
44.在C#中用于显式地将一个值或引用转换为另一种不同的类型称为(拆箱)45.在ADO。
NET中,command对象是用(ExcuteNonQuery)(ExcuteScalar)
(ExcuteDataReader)方法执行命令
二.简答题
1.简述private、protected、public、internal修饰符的访问权限。
答:
private:
私有成员,在类的内部才可以访问。
protected:
保护成员,该类内部和继承类中可以访问。
public:
公共成员,完全公开,没有访问限制。
internal:
在同一命名空间内可以访问。
2.C#中,stringstr=null与stringstr="",请尽量用文字说明区别。
答:
stringstr=""分配空间而stringstr=null不分配空间。
3.用sealed修饰的类有什么特点?
答:
不可被继承
?
*4.请叙述const与readonly的区别。
e)每一个class至多只可以定义一个static构造函数,并且不允许增加访问级别关
键字,参数列必须为空。
为了不违背编码规则,通常把static数据成员声明为private,然后通过statciproperty提供读写访问。
const关键字用于修改字段或局部变量的声明。
它指定字段或局部变量的值不能被修改。
常数声明引入给定类型的一个或多个常数。
const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。
因为它是在编译时就需要完全评估。
const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖。
readonly在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把object的初始化动作推迟到运行期进行。
readonly关键字与const关键字不同:
const字段只能在该字段的声明中初始化。
readonly字段可以在声明或构造函数中初始化。
因此,根据所使用的构造函数,readonly字段可能具有不同的值。
另外,const字段是编译时常数,而readonly字段可用于运行时常数。
readonly只能在声明时或者构造函数里面初始化,并且不能在static修饰的构造函数里面。
f)
5.简述private、protected、public、internal修饰符的访问权限。
?
*6.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
session(viewstate)简单,但易丢失@
application全局
cookie简单,但可能不支持,可能被伪造
inputttype="hidden"简单,可能被伪造url参数简单,显示于地址栏,长度有限
数据库稳定,安全,但性能相对弱
7.概述反射和序列化
答:
反射:
程序集包含模块,而模块包含类型,类型又包含成员。
反射则提供了封装程序集、模块和类型的对象。
您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。
然后,可以调用类型的方法或访问其字段和属性
序列化:
序列化是将对象转换为容易传输的格式的过程。
例如,可以序列化一个对象,然后使用HTTP通过Internet在客户端和服务器之间传输该对象。
在另一端,反序列化将从该流重新构造对象。
8.什么是SOAP,有哪些应用。
答:
SOAP(SimpleObjectAccessProtocol)简单对象访问协议(SOAP)是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。
它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。
Webservice就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。
这就是说,你能够用编程的方法通过Web来调用这个应用程序.
9.ASP。
NET中共有几种类型的控件?
各有什么区别?
答:
Html控件传统的html标记
Web控件可以回传数据,事件驱动
自定义控件在原有控件的基础上增加功能
复合控件多个子控件复合成一个新的控件
10.什么情况用HTML控件,什么情况用WEB控件,并比较两者差别
答:
客户端表现用html控件,如果想和server端交互,那么加上runat=server,它就成了服务器端控件,但它没有web控件的很多方法和属性,如果你需要用到,那么还是用webControls.
11.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
答:
一般为3层
数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
表示层为了与用户交互例如用户添加表单。
优点:
分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点:
增加成本。
12.什么是XML?
答:
XML即可扩展标记语言。
eXtensibleMarkupLanguage.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。
如何定义这些标记,即可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。
XML是从SGML中简化修改出来的。
它主要用到的有XML、XSL和XPath等。
13.什么是WebService?
UDDI?
@
答:
WebService便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得WebService能与其他兼容的组件进行互操作。
UDDI的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准
14.WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?
自动传回是什么?
为什么要使用自动传回。
在web控件发生事件时,客户端采用提交的形式将数据交回服务端,服务端先调用Page_Load事件,然后根据传回的状态信息自动调用服务端事件自动传回是当我们在点击客户端控件时,采用提交表单的形式将数据直接传回到务端
只有通过自动传回才能实现服务端事件的机制,如果没有自动回传机制就只能调用客户端事件,而不能调用服务端事件
16.请简述DataReader与DataSet的异与同。
17.PDB是什么东西?
在调试中它应该放在哪里?
答:
PDB是用于保存调试和项目状态信息的文件,在debug的时候将产生pdb文件,调试的时候应该放在和对应应用程序集相同目录。
18.简述ajax的原理。
答:
ajax简单的讲就是客户端通过javascript脚本获取服务器端的文本,通过解析返回值,更新部分的网页内容。
19.描述线程与进程的区别?
答:
线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。
一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。
而同一进程中的不同线程共享代码和数据空间。
用一个比喻来说,如果一个家庭代表一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的财产。
20.什么是Windows服务,它的生命周期与标准的EXE程序有什么不同
答:
Windows服务是运行在windows后台指定用户下(默认System)的应用程序,它没有标准的UI界面,想比标准的EXE程序,Windows服务是在服务开始的时候创建,而在服务结束的时候销毁,而且可以设置服务是否与操作系统一起启动,一起关闭。
它支持三种方式:
1)自动方式2)手动方式3)禁用。
自动方式的时候,windows服务将在OS启动后自动启动运行,而手动方式则必须手工启动服务,禁用的情况下服务将不能被启动。
另外标准的EXE默认使用的当前登录的用户,而windows服务则默认使用System用户,这在对系统资源访问的时候特别需要注意。
21.什么是强类型,什么是弱类型?
哪种更好些?
为什么?
答:
强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。
没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。
一般用于编译型编程语言,如c++,java,c#,pascal等,弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如javascript,vb等.
22.什么是GAC?
它解决了什么问题?
答:
GloalAssemblyCache,全局应用程序集缓存。
它解决了几个程序共享某一个程序集的问题。
不必再将那个被共享的程序集拷贝到应用程序目录了,其实这道理很简单,.net应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就可以直接使用,没有再到应用程序目录进行查找。
23.阐述面向接口、面向对象、面向方面编程的区别
答:
24.简述用repeater实现手工分页的思路。
25.webservice数据传输有什么限制?
为什么?
DataTable可以作为webservice参数传递么?
答:
所传输的数据必须是可序列化的。
因为需要转换为XML格式以可以穿越防火墙,做到真正的数据共享。
因为DataSet处理DataTable的序列化以便进行封送处理,所以无法传递单个DataTable
26.常用的调用WebService的方法有哪些?
答:
在同一个解决方案中调用WebService方法;
在不同的解决方案中调用WebService方法;
在Internet上调用WebService方法;
利用webservice.htc调用WebService方法。
28.在C#中,stringstr=null与stringstr=“”请尽量使用文字或图象说明其中的区别。
答:
30.请详述在dotnet中类(class)与结构(struct)的异同:
答:
Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.
31.如何理解委托?
答:
据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.msdn2005中是这样解释的:
委托具有以下特点:
委托类似于C++函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。
有关更多信息,请参见协变和逆变。
C#2.0版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
33.override与重载的区别
ride与重载的区别。
重载是方法的名称相同。
参数或参数类型不同,进行多次重载以适应不同的需要
Override是进行基类中函数的重写。
为了适应需要。
34.abstractclass和interface有什么区别?
答:
声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract类的实例。
然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。
不能有抽象构造函数或抽象静态方法。
Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。
取而代之,在子类中实现该方法。
知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。
在接口中,所有方法都是抽象的。
多继承性可通过实现这样的接口而获得。
接口中的所有方法都是抽象的,没有一个有程序体。
接口只可以定义staticfinal成员变量。
接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。
当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。
然后,它可以在实现了该接口的类的任何对象上调用接口的方法。
由于有抽象类,它允许使用接口名作为引用变量的类型。
通常的动态联编将生效。
引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。
35.Session有什么重大BUG,微软提出了什么方法加以解决?
答
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 试题