C#面试题附答案Word格式文档下载.docx
- 文档编号:22631015
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:25
- 大小:28.37KB
C#面试题附答案Word格式文档下载.docx
《C#面试题附答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C#面试题附答案Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
12.publicstaticconstintA=1;
这段代码有错误么?
是什么?
const不能有static修饰。
13.当整数a赋值给一个object对象时,整数a将会被?
装箱。
14.c#中的三元运算符是?
?
:
。
15.ADO.net中常用的对象有哪些?
分别描述一下。
Connection数据库连接对象
Command数据库命令
DataReader数据读取器
DataSet数据集
16.什么是虚函数?
什么是抽象函数?
虚函数:
没有实现的,可有子类继承或重写。
抽象函数:
其非虚子类必须重写函数。
17.下面这段代码输出什么?
为什么?
inti=5;
intj=5;
if(Object.ReferenceEquals(i,j))
Console.WriteLine("
Equal"
);
else
NotEqual"
)
不相等,因为比较的是对象。
18.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
new创建实例,new隐藏基类中方法,using引入命名空间或者使用非托管资源。
19.软件开发过程一般有几个阶段?
需求分析,架构设计,代码编写。
20.DataReader与Dataset有什么区别?
DataReader只能向前读,而Dataset是建立一个内存中的表。
21.向服务器发送请求有几种方式?
get,post。
22.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
session(viewstate):
简单,但易丢失
application:
全局
cookie:
简单,但可能不支持,可能被伪造
使用QueryString,如....?
id=1;
response.Redirect()....
使用Server.Transfer
23.ASP.NET与ASP相比,主要有哪些进步?
asp解释形,aspx编译型,有更多的类。
24.Strings=newString("
xyz"
创建了几个StringObject?
两个对象.一个是是xyz,一个是指向xyz引用的s。
25.GC是什么?
为什么要有GC?
GC是垃圾回收器。
因为有了GC就省去了程序员手工编码释放内存。
26.能用foreach遍历访问的对象需要实现________________接口或声明________________方法的类型。
IEnumerable、GetEnumerator。
27.面向对象的语言具有________性、_________性、________性
封装、继承、多态。
28.在C#中,stringstr=null与stringstr=“”请尽量使用文字或图象说明其中的区别
stringstr=null是不给他分配内存空间,而stringstr="
"
给它分配长度为空字符串的内存空间。
中读写数据库需要用到那些类?
他们的作用?
DataSet:
数据存储器。
DataCommand:
执行语句命令。
DataAdapter:
数据的集合,用语填充。
30.什么是装箱和拆箱?
从值类型转换到引用类型装箱(可隐式转换),从引用类型转换到值类型拆箱。
31.CTS、CLS、CLR分别作何解释?
CTS:
通用语言系统。
CLS:
通用语言规范。
CLR:
公共语言运行库。
32.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
一般为3层
数据访问层,业务层,表示层。
数据访问层:
对数据库进行增删查改。
业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
表示层:
为了与用户交互例如用户添加表单。
优点:
分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点:
增加成本。
33.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
定义一个索引器必须使用this关键字,如this[index]。
可以是任意类型索引。
34.override与重载的区别
重载是方法的名称相同,参数或参数类型不同。
Override是进行基类中函数的重写。
35.C#中的委托是什么?
事件是不是一种委托?
委托可以把一个方法作为参数代入另一个方法.委托可以理解为指向一个函数的引用。
事件是一种特殊的委托。
36.简述private、protected、public、internal修饰符的访问权限
private:
私有成员,在类的内部才可以访问。
protected:
保护成员,该类内部和继承类中可以访问。
public:
公共成员,完全公开,没有访问限制。
internal:
在同一命名空间内可以访问。
37.一列数的规则如下:
1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现
publicclassMainClass
{
publicstaticvoidMain()
Console.WriteLine(Foo(30));
}
publicstaticintFoo(inti)
if(i<
=0)
return0;
elseif(i>
0&
i<
=2)
return1;
returnFoo(i-1)+Foo(i-2);
38.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
foreach(System.Windows.Forms.Controlcontrolinthis.Controls)
{
if(controlisSystem.Windows.Forms.TextBox)
System.Windows.Forms.TextBoxtb=(System.Windows.Forms.TextBox)control;
tb.Text=String.Empty;
}
40.在下面的例子里
usingSystem;
classA
publicA()
PrintFields();
publicvirtualvoidPrintFields()
classB:
A
intx=1;
inty;
publicB()
y=-1;
publicoverridevoidPrintFields()
Console.WriteLine("
x={0},y={1}"
x,y);
当使用newB()创建B的实例时,产生什么输出?
答:
x=1,y=0。
41.SQLSERVER服务器中,给定表table1中有两个字段ID、LastUpdateDate,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号
selectIDfromtable1orderbyLastUpdateDatadesc
42.写出一条Sql语句:
取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:
ID可能不是连续的。
selecttop10*fromAwhereidnotin(selecttop30idfromA)
43.接口是否可继承接口?
抽象类是否可实现(implements)接口?
抽象类是否可继承实体类(concreteclass)?
接口可以继承接口。
抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。
44.构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
45.是否可以继承String类?
String类是final类故不可以继承。
46.List,Set,Map是否继承自Collection接口?
List,Set是。
Map不是。
47.数组有没有length()这个方法?
String有没有length()这个方法?
没有,有这个属性。
String有这个方法。
48.sleep()和wait()有什么区别?
sleep()方法是使线程停止一段时间的方法。
在sleep时间间隔期满后,线程不一定立即恢复执行。
这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级
(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
49.shorts1=1;
s1=s1+1;
有什么错?
shorts1=1;
s1+=1;
有错,s1是short型,s1+1是int型,不能显式转化为short型。
可修改为s1=(short)(s1+1)。
shorts1=1;
s1+=1正确。
50.Session有什么重大BUG,微软提出了什么方法加以解决?
iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sateserver或SQLServer数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。
51.进程和线程的区别?
进程是系统进行资源分配和调度的单位;
线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。
52.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
int[]intArr=newint[100];
ArrayListmyList=newArrayList();
Randomrnd=newRandom();
while(myList.Count<
100)
intnum=rnd.Next(1,101);
if(!
myList.Contains(num))
myList.Add(num);
for(inti=0;
i<
100;
i++)
intArr[i]=(int)myList[i];
53.下面的代码中有什么错误吗?
_______
publicvirtualvoidF()
A.F"
abstractclassB:
publicabstractoverridevoidF();
abstractoverride是不可以一起修饰。
54.下面这段代码有错误么?
switch(i)
case():
答:
//case()条件不能为空
CaseZero();
break;
case1:
CaseOne();
case2:
dufault;
//格式不正确,应写成default:
CaseTwo();
55.在.Net中,类System.Web.UI.Page可以被继承么?
可以。
56.在.net(C#or)中如何取消一个窗体的关闭
e.Cancel=true。
57.在A中所有的自定义用户控件都必须继承自________.
Control。
58.什么是code-Behind技术?
代码分离。
HTML代码写在前台,C#代码写在后台。
59.装箱与拆箱操作是否是互逆的操作?
不是互逆的操作。
60.哪个是可以变长的数组?
ArrayList。
61.用户自定义异常类需要从以下哪个类继承?
Exception。
62.Net依赖以下哪项技术实现跨语言互用性?
CLS。
63.以下哪个类是int的基类?
(B)
A.Int32
B.Object
C.ValueType
D.Int16
64.下列描述错误的是(d)
a)类不可以多重继承而接口可以;
b)抽象类自身可以定义成员而接口不可以;
c)抽象类和接口都不能被实例化;
d)一个类可以有多个基类和多个基接口;
65.下列关于构造函数的描述正确的是(c)
a)构造函数可以声明返回类型。
b)构造函数不可以用private修饰
c)构造函数必须与类名相同
d)构造函数不能带参数
66.以下是一些C#中的枚举型的定义,其中错误的用法有(d)
a)publicenumvar1{Mike=100,Nike=102,Jike}
b)publicenumvar1{Mike=100,Nike,Jike}
c)publicenumvar1{Mike=-1,Nike,Jike}
d)publicenumvar1{Mike,Nike,Jike}
67.接口是一种引用类型,在接口中可以声明(a),但不可以声明公有的域或私有的成员变量。
a)方法、属性、索引器和事件;
b)方法、属性信息、属性;
c)索引器和字段;
d)事件和字段
68.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)
a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;
b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
c)Select操作的Sql语句只能由ExecuteReader()方法来执行;
d)ExecuteReader()方法返回一个DataReder对象;
69.下列ASP.NET语句(b)正确地创建了一个与SQLServer2000数据库的连接。
a)SqlConnectioncon1=newConnection(“DataSource=localhost;
IntegratedSecurity=SSPI;
InitialCatalog=myDB”);
b)SqlConnectioncon1=newSqlConnection(“DataSource=localhost;
c)SqlConnectioncon1=newSqlConnection(DataSource=localhost;
InitialCatalog=myDB);
d)SqlConnectioncon1=newOleDbConnection(“DataSource=localhost;
70.在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(b),必要时还要设置参数尺寸。
a)大小;
b)上限;
c)初始值;
d)类型;
71.如果要将窗体设置为透明的,则(b)
a)要将FormBoderStyle属性设置为None;
b)要将Opacity属性设置为小于100%得值;
c)要将locked属性设置为True;
d)要将Enabled属性设置为True;
72.下列关于C#中索引器理解正确的是(c)
a)索引器的参数必须是两个或两个以上
b)索引器的参数类型必须是整数型
c)索引器没有名字
d)以上皆非
73.下面描述错误的是(c/d)
a)窗体也是控件;
b)窗体也是类;
c)控件是从窗体继承来的;
d)窗体的父类是控件类
74.要对注册表进行操作则必须包含(d)
a)System.ComponentModel命名空间;
b)System.Collections命名空间;
c)System.Threading命名空间;
d)Microsoft.Win32命名空间
75.要创建多文档应用程序,需要将窗体的(d)属性设为true。
a)DrawGrid;
b)ShowInTaskbar;
c)Enabled;
d)IsMdiContainer;
76.下面关于XML的描述错误的是(d)。
a)XML提供一种描述结构化数据的方法;
b)XML是一种简单、与平台无关并被广泛采用的标准;
c)XML文档可承载各种信息;
d)XML只是为了生成结构化文档;
77.UDP连接和TCP连接的异同。
前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结。
78.某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
(1)密码单词的最小长度是两个字母,可以相同,也可以不同
(2)K不可能是单词的第一个字母
(3)如果L出现,则出现次数不止一次
(4)M不能使最后一个也不能是倒数第二个字母
(5)K出现,则N就一定出现
(6)O如果是最后一个字母,则L一定出现
问题一:
下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?
A)K
B)L
C)M
D)N
答案:
B
问题二:
如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?
A)1个B)3个C)6个D)9个
ALL
问题三:
下列哪一个是单词密码?
A)KLLN
B)LOML
C)MLLO
D)NMKO
C
79.关于ASP.NET中的代码隐藏文件的描述正确的是(a)
a)Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。
编程逻辑唯一与用户界面不同的文件中。
该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。
b)项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。
c)Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
d)以上都不正确。
80.以下描述错误的是(a)
a)在C++中支持抽象类而在C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
c)在C#中可使用new修饰符显式隐藏从基类继承的成员。
d)在C#中要在派生类中重新定义基类的虚函数必须在前面加override
81.在DOM中,装载一个XML文档的方法(b)
a)save方法
b)load方法
c)loadXML方法
d)send方法
82.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为(b)
a)<
%@Register
TagPrefix
=
“Mike”
TagName
“Space2”
Src
“myX.ascx”%>
b)<
%@Reg
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 试题 答案