NET面试题及答案合并.docx
- 文档编号:3316406
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:56
- 大小:43.52KB
NET面试题及答案合并.docx
《NET面试题及答案合并.docx》由会员分享,可在线阅读,更多相关《NET面试题及答案合并.docx(56页珍藏版)》请在冰点文库上搜索。
NET面试题及答案合并
1.什么是自定义控件?
动态如何传数据?
答案
1)概述:
自定义控件也是的一种服务器控件,体现格式为*.dll
2)适用场合:
当.net平台给我们提供的web服务器控件不够用的时候,就需要我们自己开发一个自定义控件,或者又称为第三方控件;可以把该种控件添加到工具箱中,然后就像使用Web服务器控件一样。
例如:
分页控件
3)在控件内部公开属性,通过给属性赋值进行数据的交互;控件最终体现在界面上的样式是靠重写父类的Render方法来实现的
2.写出一个函数实现对一个字符串的所有排列(说出实现思路)
答案
1)char[]chars=str.ToCharArray();
Array.Sort(chars);
2)冒泡排序算法
3.手写一个表单内容包括‘用户名text’‘年龄text’‘性别单选默认没有选中’‘提交按钮’‘重置按钮’
答案
女
男
4.手写一个表格,第一行2列,第二行1列
答案
100px;height: 100px”>1 2
5.抽象类和接口的区别
答案
1)接口:
inerface纯抽象的类,里面不能有任何实现的成员
2)抽象类:
abstract实现和非实现成员都可以有
6.用socket实现服务器端向客户端传递几个字符,在客户端输出
答案
UsingSystem.Net.Sockets;
//启动监听
TcpListenerobjLsn=newTcpListener(1000);
objLsn.Start();
SocketobjSocket=objLsn.AcceptSocket();
//发送
Stringmsg=“测试发送”;
Byte[]arr=System.Text.Encoding.Default.GetBytes(msg);
objSocket.Send(arr);
参考:
WinForm第八章Socket编程
7.写处一个单例模式类
答案
PublicclassSingleClass
{
PrivateSingleClass()
{}
StaticSingleClassobjClass=null;
PublicstaticSingleClassGetObject()
{
If(objClass!
=null)
{
objClass=newSingleClass();
}
ReturnobjClass;
}
}
8.表达式floatf=3.4对吗?
如果不对,请说明原因
答案
1)不对
2)在c#中,应为floatf=3.4f或者floatf=3;
9.x=4,y=6在不声明新变量的情况下交换x,y的值
答案
Intx=4;
Inty=6;
X+=y;
Y=x–y ;
X=x-y ;
10.Listlist=newList();对不对如何改正
答案
1)不对
2)List为泛型集合,List
3)例:
List
11.声明一个有100个元素的数组
答案
1)String[]arr=newString[100];
2)Arrayarr=Array.CreateIntence(typeof(string),100);
注:
Array类是所有数组的父类
12.列举一下public,private,protected以及未声明修饰符之间的区别
答案
1)太简单,不说了
2)强调下internal在同一程序集内部,与public作用域大小一样,跨程序集访问时,internal不可以访问到
13.请试写一下你在项目中经常遇到的几种异常(至少两种以上)
答案
1)连接数据库失败(数据库连接串有问题)
2)未将对象引用到对象的实例(某些对象在使用过程中,未判断是否等于null,然后就直接调用方法或者属性)
14.试写出&与&&有什么区别
答案
1)&:
位的逻辑运算
2)&&逻辑运算
15.有两个字符串变量Atr与Btr,写出这两个字符串变量如何判断它们的内容相等
答案
1)Atr==Btr
2)Atr.Equals(Btr)
16.什么修饰符可以使类无法继承?
答案
1)Sealed密封的
2)结构(struct)默认就是密封的
17.列举几种C#中常见用的类(如:
dataset),以及类得简单介绍
答案
1)DataSet:
数据集,用于缓存从数据库中取到的数据,可以提供数据库的访问速度。
2)Connection:
连接对象,用于应用程序与数据进行连接。
3)TreeView:
树形控件,主要用于向树一样显示数据
18.介绍几种你熟悉的设计模式,写出原理及应用环境
答案
1)AbstractFactory:
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
用于可能使用多种数据源的情况。
2)Singleton:
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
用于一些工具类,如数据库操作类。
3)Iterator:
提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。
如集合中类的枚举方法
19.说说你对面向对象设计开发的理解,以及接口的作用
答案
面向对象更符合我们人的思维模式。
面向对象使用继承、封装、多态使程序复用性、扩展性、安全性、健壮性、易维护性得到极大的提高。
接口用于描述一组类的公共方法/公共属性.它不实现任何的方法或属性,只是告诉继承它的类
至少要实现哪些功能,继承它的类可以增加自己的方法.
接口使方法具有较好扩展性
20.说明.net中的错误处理机制
答案
异常处理有两种方法:
一种是使用TryCatch处理,一种使用throw扔出
21.写一段程序,把thisisaapple 变成appleaisthis这种形式
答案
stringstr="thisisaapple";
string[]strs=str.Split('');
stringoutput="";
for(inti=strs.Length-1;i>=0;i--)
{
output+=strs[i]+"";
}
if(output.Length>0)
{
output=output.Substring(0,output.Length-1);
}
str=output;
22.Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?
答案
Overload(重载)指一个类的多个方法重名,但参数列表不同。
Override(重写)指多个类中有继承关系的一个方法同名,但实现不同。
23.小数默认都是double,如果要float的话就是在数字后加f
答案
对
24.抽象类与接口的区别
答案
抽象类是子类的基类,它是子类的通用特征的描述
接口是某一类通用功能的描述。
和子类没有必然的联系。
25.访问修饰符
答案
Public公有,其他类都可以访问
Protected保护,只有本类和子类可以访问
Private私有,只有本类可以使用
Internal内部,本程序集中的类可以使用。
26.标识符的命名规范
答案
Pascal标识符所有单词首字母都大写用于类,接口,属性,方法的命名
Camel标识符所有单词除首单词的首字母外其他首单词都大写,用于字段和内部变量的命名。
匈牙利标识符前面是类型缩写,后面所有单词首字母都大写,用于对象的命名。
27.C/S与B/S
答案
C/S就是客户机和服务器结构,在客户端需要安装一个软件.将业务需求合理的分配到客户机与服务器两端来进行.C/S结构的软件需要针对不同的操作系统开发不同版本的软件.如果产品的更新换代很快的话,就很难适应上百台电脑用户同时更新。
更新的代价很高.
B/S结构即浏览器和服务器结构.它是随着互联网技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑是在服务器端(Server)实现,形成所谓三层3结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
以目前的技术看,建立B/S结构的网络应用,在互联网模式下数据传输,相对易于把握、成本也是较低的。
近似于一次性到位的开发,能实现不同的人员,从不同的地点,访问和操作共同的数据库.
28.给我一个你最常见到的runtimeexception
答案
如除零异常
29.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答案
可以
30.Try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后
答案
会,在return前
31.请说出你所知道的线程同步的方法
答案
LockMonitor类
32.编程题求两个数的最小公倍数。
答案
求两个数的最大公约数,然后两个数想乘,在除于最大公约数就可以得到最大公倍数。
33.shorta=1,a=a+1有什么错?
shorta=1,a+=1有什么错
答案
1)a=a+1中的1要做强制类型转换为short。
2)没有错
34.编写一个类,求一元二次方程的实根
答案
x=double.Parse(a.Text);
y=double.Parse(b.Text);
z=double.Parse(c.Text);
if(x==0)
{
if(y!
=0)
{
n1=z/y;
x1.Text=n1.ToString();
//y1.Text=n2.ToString();
}
if(y==0&&z!
=0)
MessageBox.Show("b=0无解","wujie",MessageBoxButtons.OK,MessageBoxIcon.Warning);
if(y==0&&z==0)
MessageBox.Show("无数组解","00",MessageBoxButtons.OK);
}
if(x!
=0)
{
if(y*y-4*x*z>=0)
{
n1=(-y+Math.Sqrt(y*y-4*x*z))/(2*x);
n2=(-y-Math.Sqrt(y*y-4*x*z))/(2*x);
x1.Text=n1.ToString();
y1.Text=n2.ToString();
}
else
{
MessageBox.Show("无解","wujie",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
}
35.编写一个类,打印昨天当前时间
答案
classProgram
{
staticvoidMain(string[]args)
{
DateTimedt=DateTime.Now-newTimeSpan(1,0,0,0);//TimeSpan对象表示时间间隔或持续时间
Console.WriteLine(dt.ToString());
}
}
36.列举一种适合应用开发的分层结构,介绍每层的作用
答案
1)表现层显示数据和接受输入
2)业务逻辑层用于进行业务数据的处理
3)数据访问层用于访问数据
4)实体层用于控制数据传递对象
37.编写一个实现复数+,-,*,/的类
答案
class Complex {
private double m_dRealPart;
private double m_dImagePart;
public Complex(double dRealPart, double dImagePart)
{
m_dRealPart = dRealPart;
m_dImagePart = dImagePart;
}
public Complex(double dRealPart)
{
m_dRealPart = dRealPart;
m_dImagePart = 0;
}
public Complex()
{
m_dRealPart = 0;
m_dImagePart = 0;
}
public Complex(Complex orig)
{
m_dRealPart=orig.m_dRealPart ;
m_dImagePart=orig.m_dImagePart ;
}
static public Complex operator +(Complex op1,Complex op2)
{
Complex res = new Complex();
res.m_dRealPart = op1.m_dRealPart + op2.m_dRealPart;
res.m_dImagePart = op1.m_dImagePart + op2.m_dImagePart;
return res;
}
static public Complex operator -(Complex op)
{
Complex res = new Complex();
res.m_dRealPart = -op.m_dRealPart;
res.m_dImagePart = -op.m_dImagePart;
return res;
}
static public Complex operator -(Complex op1, Complex op2)
{
Complex res = new Complex();
res = op1 + (-op2);
return res;
}
static public Complex operator *(Complex op1, Complex op2)
{
Complex res = new Complex();
res.m_dRealPart = op1.m_dRealPart * op2.m_dRealPart - op1.m_dImagePart * op2.m_dImagePart;
res.m_dImagePart = op1.m_dImagePart * op2.m_dRealPart + op1.m_dRealPart * op2.m_dImagePart;
return res;
}
static public Complex operator /(Complex op1, Complex op2)
{
Complex res = new Complex();
double temp = op2.m_dRealPart * op2.m_dRealPart + op2.m_dRealPart * op2.m_dImagePart;
res.m_dRealPart = (op1.m_dRealPart * op2.m_dRealPart + op1.m_dImagePart * op2.m_dImagePart) / temp;
res.m_dImagePart = (op1.m_dImagePart * op2.m_dRealPart - op1.m_dRealPart * op2.m_dImagePart) / temp;
return res;
}
public double GetRealPart()
{
return m_dRealPart;
}
public double GetImagePart()
{
return m_dImagePart;
}
}
38.什么是自定义控件?
动态如何传数据?
答案
1)概述:
自定义控件也是的一种服务器控件,体现格式为*.dll
2)适用场合:
当.net平台给我们提供的web服务器控件不够用的时候,就需要我们自己开发一个自定义控件,或者又称为第三方控件;可以把该种控件添加到工具箱中,然后就像使用Web服务器控件一样。
例如:
分页控件
3)在控件内部公开属性,通过给属性赋值进行数据的交互;控件最终体现在界面上的样式是靠重写父类的Render方法来实现的
39.写出一个函数实现对一个字符串的所有排列(说出实现思路)
答案
1)char[]chars=str.ToCharArray();
Array.Sort(chars);
2)冒泡排序算法
40.手写一个表单内容包括‘用户名text’‘年龄text’‘性别单选默认没有选中’‘提交按钮’‘重置按钮’
答案
41.手写一个表格,第一行2列,第二行1列
答案
100px;height: 100px”>1 2
42.抽象类和接口的区别
答案
1)接口:
inerface纯抽象的类,里面不能有任何实现的成员
2)抽象类:
abstract实现和非实现成员都可以有
43.用socket实现服务器端向客户端传递几个字符,在客户端输出
答案
UsingSystem.Net.Sockets;
//启动监听
TcpListenerobjLsn=newTcpListener(1000);
objLsn.Start();
SocketobjSocket=objLsn.AcceptSocket();
//发送
Stringmsg=“测试发送”;
Byte[]arr=System.Text.Encoding.Default.GetBytes(msg);
objSocket.Send(arr);
参考:
WinForm第八章Socket编程
44.写处一个单例模式类
答案
PublicclassSingleClass
{
PrivateSingleClass()
{}
StaticSingleClassobjClass=null;
PublicstaticSingleClassGetObject()
{
If(objClass!
=null)
{
objClass=newSingleClass();
}
ReturnobjClass;
}
}
45.表达式floatf=3.4对吗?
如果不对,请说明原因
答案
1)不对
2)在c#中,应为floatf=3.4f或者floatf=3;
46.x=4,y=6在不声明新变量的情况下交换x,y的值
答案
Intx=4;
Inty=6;
X+=y;
Y=x–y ;
X=x-y ;
47.Listlist=newList();对不对如何改正
答案
1)不对
2)List为泛型集合,List
3)例:
List
48.声明一个有100个元素的数组
答案
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NET 试题 答案 合并