C#Net的常见面试试题附答案文档格式.docx
- 文档编号:20894532
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:22
- 大小:27.60KB
C#Net的常见面试试题附答案文档格式.docx
《C#Net的常见面试试题附答案文档格式.docx》由会员分享,可在线阅读,更多相关《C#Net的常见面试试题附答案文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
5值类型,没有什么好说的.引用类型用处是返回两个以上参数的时候比较好用refout我常用的是out不要先赋值
6我直接用sqlhelper了有connectioncommand还有参数
7回调机制比较有用的.在net中采用了委托.
8接口,是可以多继承,类只有单继承.接口强调了你必须实现,而没有具本实现的方法和虚类有点相似
9datareaderdataset还有一个不太常用
10udp不要实现什么三次握手.
11身份验证最常用还是以前的session方法.form验证没有用过.微软的哪个也没有用过
12进程简单理解为单个程序吧(按ctrl+alt+del)可以看到的.它至少有一个主线程.
13代码后置..不懂得讲
14活动目录..完全不会
15system.xml(system.io创建目录的时候用)
16这个也是web服务里的东西.
17soap简单协议.我只知道.web服务是基于它之上的
18部置一个页面.也就是说没有代码是直接写在aspx中的了.只接放在IIS的虚拟目录下就行了.当然要支持
19垃圾回收..一般的只要掌握.非托管对象要记得释放资源就行了吧.
20直接在里面引用就OK了.它会自己生成一个代理类
1.填空:
(1)面向对象的语言具有___继承性、_封装___性、___多态性。
(2)能用foreach遍历访问的对象需要实现IEnumerable接口或声明GetEnumerable方法的类型。
(3)列举ADO.net中的五个主要对象Command、Connection、DataSet、DataSetCommand、DataReader。
2.不定项选择:
(1)以下叙述正确的是:
A.接口中可以有虚方法。
B.一个类可以实现多个接口。
C.接口不能被实例化。
D.接口中可以包含已实现的方法。
(2)从数据库读取记录,你可能用到的方法有:
A.ExecuteNonQueryB.ExecuteScalar
C.FillD.ExecuteReader
3.简述private、protected、public、internal修饰符的访问权限。
4.写出一条Sql语句:
取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:
ID可能不是连续的。
)
5.列举ASP.NET页面之间传递值的几种方式。
6.写出程序的输出结果
classClass1{
privatestringstr="
Class1.str"
;
privateinti=0;
staticvoidStringConvert(stringstr){
str="
stringbeingconverted."
}
staticvoidStringConvert(Class1c){
c.str="
staticvoidAdd(inti){
i++;
staticvoidAddWithRef(refinti){
staticvoidMain(){
inti1=10;
inti2=20;
stringstr="
str"
Class1c=newClass1();
Add(i1);
AddWithRef(refi2);
Add(c.i);
StringConvert(str);
StringConvert(c);
Console.WriteLine(i1);
Console.WriteLine(i2);
Console.WriteLine(c.i);
Console.WriteLine(str);
Console.WriteLine(c.str);
7.写出程序的输出结果
publicabstractclassA
{
publicA()
{
Console.WriteLine('
A'
);
publicvirtualvoidFun()
Console.WriteLine("
A.Fun()"
}
publicclassB:
A
publicB()
B'
publicnewvoidFun()
B.Fun()"
publicstaticvoidMain()
Aa=newB();
a.Fun();
8.写出程序的输出结果:
publicclassA
publicvirtualvoidFun1(inti)
Console.WriteLine(i);
publicvoidFun2(Aa)
a.Fun1
(1);
Fun1(5);
publicclassB:
publicoverridevoidFun1(inti)
base.Fun1(i+1);
Bb=newB();
Aa=newA();
a.Fun2(b);
b.Fun2(a);
9.一列数的规则如下:
1、1、2、3、5、8、13、21、34......
求第30位数是多少,用递归算法实现。
(C#语言)
10.程序设计:
猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
(C#语言)
要求:
1.要有联动性,老鼠和主人的行为是被动的。
2.考虑可扩展性,猫的叫声可能引起其他联动效应。
参考答案:
1.
(1)继承性、封装性、多态性。
(考基本概念)
(2)IEnumerable、GetEnumerator(对foreach机制的理解,本来不想出这题的,凑分)
(3)...(送分题,对ADO.net的了解)
评分标准:
一空1分,满分10分。
2.
(1)B、C(考对接口的理解)
(2)B、C、D(考查对ADO.net的熟练程度)
评分标准:
一题5分,不选或者错选均不得分。
漏选得2分。
满分10分。
3..private:
私有成员,在类的内部才可以访问。
protected:
保护成员,该类内部和继承类中可以访问。
public:
公共成员,完全公开,没有访问限制。
internal:
在同一命名空间内可以访问。
答对1题2分,2题5分,3题7分。
全对10分。
(送分题)
4.解1:
selecttop10*fromAwhereidnotin(selecttop30idfromA)
解2:
selecttop10*fromAwhereid>
(selectmax(id)from(selecttop30idfromA)asA)
评分标准:
写对即10分。
(答案不唯一,datagrid分页可能需要用到)
5.1.使用QueryString,如....?
id=1;
response.Redirect()....
2.使用Session变量
3.使用Server.Transfer
....
答对1点得3分,两点7分,3点10分。
6.(考查值引用和对象引用)
10
21
0
str
stringbeingconverted.
答对一点得2分,满分10分。
7.A
B
A.Fun()
写出A.B得5分,写出A.Fun()得5分,满分10分。
(考查在继承类中构造函数,以及new方法,)
8.2
5
1
6
答对一点得2分,两点得5分,3点得7分。
全对得10分。
(一些人做这题,头都晕了....^_^)
9.
publicclassMainClass
Console.WriteLine(Foo(30));
publicstaticintFoo(inti)
if(i<
=0)
return0;
elseif(i>
0&
&
i<
=2)
return1;
elsereturnFoo(i-1)+Foo(i-2);
写出returnFoo(i-1)+Foo(i-2);
得5分。
写出if(i>
=2)return1;
方法参数过多需要扣分(扣除分数=参数个数-1)
不用递归算法扣5分
(递归算法在树结构建立等方面比较常用)
要点:
1.联动效果,运行代码只要执行Cat.Cryed()方法。
2.对老鼠和主人进行抽象
评分标准:
<
1>
.构造出Cat、Mouse、Master三个类,并能使程序运行(2分)
2>
从Mouse和Master中提取抽象(5分)
3>
联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。
(3分)
publicinterfaceObserver
voidResponse();
//观察者的响应,如是老鼠见到猫的反映
publicinterfaceSubject
voidAimAt(Observerobs);
//针对哪些观察者,这里指猫的要扑捉的对象---老鼠
publicclassMouse:
Observer
privatestringname;
publicMouse(stringname,Subjectsubj)
this.name=name;
subj.AimAt(this);
publicvoidResponse()
Console.WriteLine(name+"
attempttoescape!
"
publicclassMaster:
publicMaster(Subjectsubj)
Hostwaken!
publicclassCat:
Subject
privateArrayListobservers;
publicCat()
this.observers=newArrayList();
publicvoidAimAt(Observerobs)
this.observers.Add(obs);
publicvoidCry()
Catcryed!
foreach(Observerobsinthis.observers)
obs.Response();
classMainClass
staticvoidMain(string[]args)
Catcat=newCat();
Mousemouse1=newMouse("
mouse1"
cat);
Mousemouse2=newMouse("
mouse2"
Mastermaster=newMaster(cat);
cat.Cry();
//---------------------------------------------------------------------------------------------
设计方法二:
使用event--delegate设计..
publicdelegatevoidSubEventHandler();
publicabstractclassSubject
publiceventSubEventHandlerSubEvent;
protectedvoidFireAway()
if(this.SubEvent!
=null)
this.SubEvent();
catcryed."
this.FireAway();
publicabstractclassObserver
publicObserver(Subjectsub)
sub.SubEvent+=newSubEventHandler(Response);
publicabstractvoidResponse();
publicMouse(stringname,Subjectsub):
base(sub)
publicoverridevoidResponse()
publicMaster(Subjectsub):
base(sub){}
hostwaken"
classClass1
}
问题:
1.ASP.NET中的身份验证有那些?
你当前项目采用什么方式验证请解释
2.什么是WEB控件?
使用WEB控件有那些优势?
3.请解释ASP。
NET中以什么方式进行数据验证?
4.请谈谈对正则表达式的看法?
5.ASP。
NET中共有几种类型的控件?
各有什么区别?
6.WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?
自动传回是什么?
为什么要使用自动传回。
7.WEB控件及HTML服务端控件能否调用客户端方法?
如果能,请解释如何调用?
8.ASP。
NET与ASP相比有什么优势?
9.请解释web.config文件中的重要节点
10.请解释ASP。
NET中的web页面与其隐藏类之间的关系?
11.什么是viewstate,能否禁用?
是否所用控件都可以禁用?
13.当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?
怎么解决
14.请解释一个WEB页面中代码执行次序。
15.请解释什么是上下文对象,在什么情况下要使用上下文对象
16.请解释转发与跳转的区别?
17.请解释ASP.NET中不同页面之间数据传递有那些方式?
18.请解释ASP。
NET中buttonlinkbuttonimagebutton及hyperlink这四个控件之间的功别
19.请解释一下。
NET多层应用程序中层与层之间以那几种方式进行数据传递。
并解释你自己的项目中采用那种方式进行。
20.如果出现ASP。
NET中的事件不能触发可能由于什么原因造成?
21.如果需要在datagride控件中的某一列中添加下拉列表框并绑定数据怎么解决?
22.请解释中的数据绑定与传统数据绑定有什么区别?
23.请解释.net采用委托实现的事件模型与JAVA中采用接口实现的事件模型有什么区别,以图示方式解释。
24.请解释接口的显式实现有什么意义?
Q:
您在什么情况下会用到虚方法?
它与接口有什么不同?
Override与重载有什么区别?
值类型与引用类型有什么区别?
怎样理解静态变量?
向服务器发送请求有几种方式?
DataReader与Dataset有什么区别?
如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
软件开发过程一般有几个阶段?
每个阶段的作用?
微软推出了一系列的ApplicationBlock,请举出您所知道的ApplicationBlock并说明其作用?
请列举一些您用到过的设计模式以及在什么情况下使用该模式?
您对WebService的体会?
您对编程的兴趣如何?
工作中遇到不懂的问题是怎样去解决的?
您一般怎样去提高自己的编程水平?
您离职的原因是什么?
以下几道题目如果您不会,请较为详细的描述您的解决思路和方法
通过超链接怎样传递中文参数?
请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
请编程实现一个冒泡排序算法?
1、进程和线程的区别
进程是系统进行资源分配和调度的单位;
线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。
2、成员变量和成员函数前加static的作用
它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。
分别用来反映类的状态。
比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。
3、malloc和new的区别
new是C++的关键字。
malloc在分配内存时必须按给出的字节分配,new可以按照对象的大小自动分配,并且能调用构造函数。
可以说new是对象的对象,而malloc不是。
本质上new分配内存时,还会在实际内存块的前后加上附加信息,所以new所使用的内存大小比malloc多。
4、堆和栈的区别
栈:
由编译器自动分配、释放。
在函数体中定义的变量通常在栈上。
堆:
一般由程序员分配释放。
用new、malloc等分配内存函数分配得到的就是在堆上。
栈是机器系统提供的数据结构,而堆则是C/C++函数库提供的。
栈是系统提供的功能,特点是快速高效,缺点是有限制,数据不灵活;
而栈是函数库提供的功能,特点是灵活方便,数据适应面广泛,但是效率有一定降低。
栈是系统数据结构,对于进程/线程是唯一的;
堆是函数库内部数据结构,不一定唯一。
不同堆分配的内存无法互相操作。
栈空间分静态分配和动态分配两种。
静态分配是编译器完成的,比如自动变量(auto)的分配。
动态分配由alloca函数完成。
栈的动态分配无需释放(是自动的),也就没有释放函数。
为可移植的程序起见,栈的动态分配操作是不被鼓励的!
堆空间的分配总是动态的,虽然程序结束时所有的数据空间都会被释放回系统,但是精确的申请内存/释放内存匹配是良好程序的基本要素。
5、不调用C++/C的字符串库函数,请编写函数strcpy
1.C#中property与attribute的区别,他们各有什么用处,这种机制的好处在哪里?
2.讲一讲你理解的webservice,在dotnetframework中,怎么很好的结合xml?
(讲概念就行了)
3.C#,Java和c++的特点,有什么相同的地方,不同的地方,C#分别从c++和java中吸取了他们那些优点?
4.C#可否对内存进行直接的操作?
(这可是个难点哦?
要注意!
)
5.用VisualC++6.0编写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Net 常见 面试 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)