很全面的面试题三.docx
- 文档编号:6725793
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:24
- 大小:28.75KB
很全面的面试题三.docx
《很全面的面试题三.docx》由会员分享,可在线阅读,更多相关《很全面的面试题三.docx(24页珍藏版)》请在冰豆网上搜索。
很全面的面试题三
很全面的面试题(三).txt遇事潇洒一点,看世糊涂一点。
相亲是经销,恋爱叫直销,抛绣球招亲则为围标。
没有准备请不要开始,没有能力请不要承诺。
爱情这东西,没得到可能是缺憾,不表白就会有遗憾,可是如果自不量力,就只能抱憾了。
1.面向对象的思想主要包括什么?
2.什么是中的用户控件
3.什么叫应用程序域?
什么是受管制的代码?
什么是强类型系统?
什么是装箱和拆箱?
什么是重载?
CTS、CLS和CLR分别作何解释?
4.列举一下你所了解的XML技术及其应用
5.值类型和引用类型的区别?
写出C#的样例代码。
中常用的对象有哪些?
分别描述一下。
7.如何理解委托?
8.C#中的接口和类有什么异同。
9.。
net中读写数据库需要用到哪些类?
他们的作用
连接和TCP连接的异同。
11.的身份验证方式有哪些?
分别是什么原理?
12.进程和线程分别怎么理解?
13.什么是code-Behind技术。
14.活动目录的作用。
中读写XML的类都归属于哪些命名空间?
16.解释一下UDDI、WSDL的意义及其作用。
17.什么是SOAP,有哪些应用。
18.如何部署一个页面。
19.如何理解.net中的垃圾回收机制。
20.常用的调用webservice方法有哪些?
1.填空:
(1)面向对象的语言具有___继承性、_封装___性、___多态性。
(2)能用foreach遍历访问的对象需要实现IEnumerable接口或声明GetEnumerable方法的类型。
(3)列举中的五个主要对象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.列举页面之间传递值的几种方式。
6.写出程序的输出结果
classClass1{
privatestringstr=;
privateinti=0;
staticvoidStringConvert(stringstr){
str=stringbeingconverted.;
}
staticvoidStringConvert(Class1c){
=stringbeingconverted.;
}
staticvoidAdd(inti){
i++;
}
staticvoidAddWithRef(refinti){
i++;
}
staticvoidMain(){
inti1=10;
inti2=20;
stringstr=str;
Class1c=newClass1();
Add(i1);
AddWithRef(refi2);
Add(c.i);
StringConvert(str);
StringConvert(c);
(i1);
(i2);
(c.i);
(str);
();
}
}
7.写出程序的输出结果
publicabstractclassA
{
publicA()
{
('A');
}
publicvirtualvoidFun()
{
(());
}
}
publicclassB:
A
{
publicB()
{
('B');
}
publicnewvoidFun()
{
(());
}
publicstaticvoidMain()
{
Aa=newB();
();
}
}
8.写出程序的输出结果:
publicclassA
{
publicvirtualvoidFun1(inti)
{
(i);
}
publicvoidFun2(Aa)
{
1
(1);
Fun1(5);
}
}
publicclassB:
A
{
publicoverridevoidFun1(inti)
{
(i+1);
}
publicstaticvoidMain()
{
Bb=newB();
Aa=newA();
2(b);
(a);
}
}
9.一列数的规则如下:
1、1、2、3、5、8、13、21、34......
求第30位数是多少,用递归算法实现。
(C#语言)
10.程序设计:
猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
(C#语言)
要求:
1.要有联动性,老鼠和主人的行为是被动的。
2.考虑可扩展性,猫的叫声可能引起其他联动效应。
参考答案:
1.
(1)继承性、封装性、多态性。
(考基本概念)
(2)IEnumerable、GetEnumerator(对foreach机制的理解,本来不想出这题的,凑分)
(3)...(送分题,对的了解)
评分标准:
一空1分,满分10分。
2.
(1)B、C(考对接口的理解)
(2)B、C、D(考查对的熟练程度)
评分标准:
一题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.使用
....
评分标准:
答对1点得3分,两点7分,3点10分。
6.(考查值引用和对象引用)
10
21
0
str
stringbeingconverted.
评分标准:
答对一点得2分,满分10分。
7.A
B
()
评分标准:
写出A.B得5分,写出()得5分,满分10分。
(考查在继承类中构造函数,以及new方法,)
8.2
5
1
6
评分标准:
答对一点得2分,两点得5分,3点得7分。
全对得10分。
(一些人做这题,头都晕了....^_^)
9.
publicclassMainClass
{
publicstaticvoidMain()
{
(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>0&&i<=2)return1;得5分。
方法参数过多需要扣分(扣除分数=参数个数-1)
不用递归算法扣5分
(递归算法在树结构建立等方面比较常用)
10
要点:
1.联动效果,运行代码只要执行()方法。
2.对老鼠和主人进行抽象
评分标准:
<1>.构造出Cat、Mouse、Master三个类,并能使程序运行(2分)
<2>从Mouse和Master中提取抽象(5分)
<3>联动效应,只要执行()就可以使老鼠逃跑,主人惊醒。
(3分)
publicinte***ceObserver
{
voidResponse();//观察者的响应,如是老鼠见到猫的反映
}
publicinte***ceSubject
{
voidAimAt(Observerobs);//针对哪些观察者,这里指猫的要扑捉的对象---老鼠
}
publicclassMouse:
Observer
{
privatestringname;
publicMouse(stringname,Subjectsubj)
{
=name;
(this);
}
publicvoidResponse()
{
(name+attempttoescape!
);
}
}
publicclassMaster:
Observer
{
publicMaster(Subjectsubj)
{
(this);
}
publicvoidResponse()
{
(Hostwaken!
);
}
}
publicclassCat:
Subject
{
privateArrayListobservers;
publicCat()
{
=newArrayList();
}
publicvoidAimAt(Observerobs)
{
.Add(obs);
}
publicvoidCry()
{
(Catcryed!
);
foreach(Observerobsin)
{
();
}
}
}
classMainClass
{
staticvoidMain(string[]args)
{
Catcat=newCat();
Mousemouse1=newMouse(mouse1,cat);
Mousemouse2=newMouse(mouse2,cat);
Mastermaster=newMaster(cat);
();
}
}
//---------------------------------------------------------------------------------------------
设计方法二:
使用event--delegate设计..
publicdelegatevoidSubEventHandler();
publicabstractclassSubject
{
publiceventSubEventHandlerSubEvent;
protectedvoidFireAway()
{
if(!
=null)
();
}
}
publicclassCat:
Subject
{
publicvoidCry()
{
(catcryed.);
();
}
}
publicabstractclassObserver
{
publicObserver(Subjectsub)
{
+=newSubEventHandler(Response);
}
publicabstractvoidResponse();
}
publicclassMouse:
Observer
{
privatestringname;
publicMouse(stringname,Subjectsub):
base(sub)
{
=name;
}
publicoverridevoidResponse()
{
(name+attempttoescape!
);
}
}
publicclassMaster:
Observer
{
publicMaster(Subjectsub):
base(sub){}
publicoverridevoidResponse()
{
(hostwaken);
}
}
classClass1
{
staticvoidMain(string[]args)
{
Catcat=newCat();
Mousemouse1=newMouse(mouse1,cat);
Mousemouse2=newMouse(mouse2,cat);
Mastermaster=newMaster(cat);
();
}
}
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#中的三元运算符是__?
:
___?
2.当整数a赋值给一个object对象时,整数a将会被__装箱(封装)___?
3.类成员有_____种可访问形式?
this.;newClass().Method;
staticconstintA=1;这段代码有错误么?
是什么?
const不能用static修饰
f=;
inti=(int)f;
i的值现在是_____?
123
6.利用operator声明且仅声明了“==”,有什么错误么?
7.委托声明的关键字是______?
delagete
8.用sealed修饰的类有什么特点?
密封,不能继承
9.在中所有的自定义用户控件都必须继承自________?
Control
10.在.Net中所有可序列化的类都被标记为_____?
11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?
gc
12.下面的代码中有什么错误吗?
_______
usingSystem;
classA
{
publicvirtualvoidF(){
(A.F);
}
}
abstractclassB:
A
{
publicabstractoverridevoidF();//newpublicabstractvoidF();
}
13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,___可以___(可以or不可以)从T派生出新的类,不可以____(可以or不可以)直接创建T的任何实例。
14.下面这段代码有错误么?
switch(i){
case():
CaseZero();
break;
case1:
CaseOne();
break;
case2:
dufault;//wrong
CaseTwo();
break;
}
15.在.Net中,类可以被继承么?
可以
二.简答题
1.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
using指令和语句new创建实例new隐藏基类中方法
4.谈谈类和结构的区别?
类是引用类型、结构是值类型
5.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。
请用c#语言编写主要程序来实现。
6.对于这样的一个枚举类型:
enumColor:
byte{
Red,
Green,
Blue,
Orange
}
string[]ss=(typeof(Color));
byte[]bb=(typeof(Color));
试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。
7.您了解设计模式么?
请列出您所知道的设计模式的名称。
//
8.请在SQLServer中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?
9.什么叫做SQL注入,如何防止?
请举例说明。
10.下面这段代码输出什么?
为什么?
inti=5;
intj=5;
if((i,j))
(Equal);
else
(NotEqual);
1.写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用例。
2.对一支纸杯设计测试用例(可以是广义的杯,不一定是某一支特定功能的杯)
数据库知识题
17.使用什么工具来调用存储过程
Server的两种索引是何形式?
索引的作用?
索引的优缺点?
19.触发器的作用
其它知识题及问题
20.什么是WebService?
21.什么是XML?
怎么实现?
.NET程序员面试题一部
作者:
不详 来源:
互联网 酷勤网收集 2007-10-25
1.new关键字用法
(1)new运算符
用于创建对象和调用构造函数。
(2)new修饰符
用于向基类成员隐藏继承成员。
(3)new约束
用于在泛型声明中约束可能用作类型参数的参数的类型。
2.如何把一个Array复制到ArrayList里
(1)实现1
string[]s={"111","22222"};
ArrayListlist=newArrayList();
(s);
(2)实现2
string[]s={"111","22222"};
ArrayListlist=newArrayList(s);
的Datasouse可以连接什么数据源
lDataTable
lDataView
lDataSet
lDataViewManager
l任何实现IListSource接口的组件
l任何实现IList接口的组件
4.概述反射和序列化
反射
公共语言运行库加载器管理应用程序域。
这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。
程序集包含模块,而模块包含类型,类型又包含成员。
反射则提供了封装程序集、模块和类型的对象。
您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。
然后,可以调用类型的方法或访问其字段和属性。
序列化
序列化是将对象状态转换为可保持或传输的格式的过程。
与序列化相对的是反序列化,它将流转换为对象。
这两个过程结合起来,可以轻松地存储和传输数据。
5.概述O/RMapping的原理
利用反射,配置将对象和数据库表映射。
6.可访问性级别有哪几种
lpublic访问不受限制。
lprotected访问仅限于包含类或从包含类派生的类型。
linternal访问仅限于当前程序集。
lprotectedinternal访问仅限于从包含类派生的当前程序集或类型。
lprivate访问仅限于包含类型。
7.sealed修饰符有什么特点
sealed修饰符可以应用于类、实例方法和属性。
密封类不能被继承。
密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。
当应用于方法或属性时,sealed修饰符必须始终与override一起使用。
8.列举中的共享类和数据库特定类
共享类
DataSet
DataTable
DataRow
DataColumn
DataRelation
Constraint
DataColumnMapping
DataTableMapping
特定类
(x)Connection
(x)Command
(x)CommandBuilder
(x)DataAdapter
(x)DataReader
(x)Parameter
(x)Transaction
9.执行下面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全面 试题