//example input and output
//in 1 2 3 out 1 3 1
//in 123456789 2 100 out 123456789 100 21
long mex(long a,long b,long c) 中华英才实验室
{ long d;
if(b==0) return 0;
if(b==1) return a%c;
d=mex(a,b/2,c); d*=d;这里忘了;d*=mex(a,b%2,c);d%=c;
return d;
}
int main(void)
{ long x,y,z;
while(1)
{ if(scanf(%d %d %d,&x,&y,&z)>3) return 0;
if(x<0) { printf("too small/n");continue;}
if(y<0) { printf("too small/n");continue;}
if(z<1) { printf("too small/n");continue;}
if(y>z) { printf("too big/n");continue;}
if(z>1000000010) {printf("too big/n");continue}
printf(%d %d %d,x,z,mex(x,y,z);
}}
根据这个程序,当已知一个输入,算出输出,如:输入 1 3 1 则输出 1 2 3 输
入 123456789 100 21 输出 123456789 2 100
广州日报
1、填空部分是一些时事题,如:我国有多少网民,三个代表、北京申奥什么的,及记
者的一些常识性的问题:如我国第一个以写新闻通讯出名的记者是谁?蔡元培曾经夸奖过
的记者是谁?
2、选择题范围与填空基本一样,包括时政和新闻知识:如深度采访的实质,记者的职 bbs.chinahrlab.com
业道德等。
3、简答题就比较专业:一道是你参加一条高速公路的开通典礼,如何在记者会上发的
新闻通稿之外写出会上没说的内容。一道是你去一个单位采访,但没有任何该单位的证件
、邀请函之类东西,你如何骗过门卫混进去。第三道是有几家香水公司都想让你说好话,
就是做软新闻了,你该如何处理。第四道是A明星与B明星不和,你如何报道A骂B的话而又
不能让B告你诽谤。
4、写作题是以“今年冬天不太冷”为题任意想象,加叙加议。
5、五道智力测验:如何喝道啤酒杯底部的啤酒、汽车过隧道但高2厘米该怎么办、你
吃苹果时吃到几条虫最恶心之类,10只点燃的蜡烛,让风吹灭了2只,后来在关窗户前又吹
灭1只。问最后还有几支。
面试官揭秘500强面试题几年来,我遇到三个刁钻的问题。可惜的是,我因没有心理准备而
未能给出令人满意的答复。
(1)你的约会很多吗?(问这个问题的是美国一家防务公司的一名女面试官。)
(2)你今天为什么来这里?(一家投资银行的面试官走进他的办公室,看到我坐在那
里等他时所问的问题。)
(3)如果此时外面有一艘宇宙飞船着陆,你会走进去吗?如果它可以去任何一个地方
,你会要求它把您带到哪里?(一家投资银行的面试官所问的问题。)——凯利,1999年 bbs.chinahrlab.com
5月3日
□建议
这几个问题都具有挑战性,虽然第一个问题看上去有点不同寻常,是一名女性向另一
名女性提出的问题,但你仍要认真作答,让对方感到满意。比较好的回答方式是:“如果
你担心我对私人生活的关注程度大于对工作的关注程度,那么我向你保证,我对工作非常
投入。同样,我努力保持平衡的生活,以各种各样的方式充实我的业余生活。”这既回答
了面试官的问题,也没有暴露自己的隐私。
“你今天为什么来这里”这样的问题给你提供了一个阐述自己对这份工作的热情的机
会。如果你不是从这句话的表面意思去看,那么这就是一个刁钻的问题。在接受面试时,
很重要的一点是让自己轻松一点,不要分析每个问题到底是什么意思。想方设法让你的回
答能够拉近你与面试官之间的关系。并表明你作为这个职位的应聘者,有着自己的优势。
“我来这里是要和你讨论一下我应聘某某工作的问题。你愿意同我介绍一下自己的情况吗
?”
宇宙飞船这个问题问的是你有多大的冒险精神,要回答这个问题,需要根据你对自己
所应聘的工作的了解好好组织自己的语言。假如这项工作要求你具有创新精神,那么你可
以说:“是的,我会上去,去见见曾经在这个星球走过的那些最具有创新精神的人,问问
www.chinahrlab.com
他们最喜欢用什么方式来让自己尽可能保持创造力。”
■下水道的井盖为什么是圆的?
微软的顾问有时会得到一些特殊待遇,因为在面试时询问他们的问题并不是真的算算
术。
□范例
理查德·范曼在微软找工作
面试官:现在我们要问一个问题,看看你的创造性思维能力。不要想得太多,运用日
常生活中的常识,描述一下你的想法。这个问题是,下水道的井盖为什么是圆的?
范曼:它们并不都是圆的,有些是方的,的确有些圆井盖,但我也看过方的,长方的
。
面试官:不过我们只考虑圆形的井盖,他们为什么是圆的?
范曼:如果我们只考虑圆的,那么它们自然是圆的。
面试官:我的意思是,为什么会存在圆的井盖?把井盖设计成圆形的有什么特殊的意
义吗?
范曼:是有特殊意义,当需要覆盖的洞是圆形时,通常盖子也是圆的。用一个圆形的
盖子盖一个圆形的洞,这是最简单的办法。
面试官:你能想到一个圆形的井盖比方形的井盖有哪些优点吗?
范曼:在回答这个问题之前,我们先看看盖子下面是什么。盖子下面的洞是圆的,因
为圆柱形最能承受周围土地的压力。而且,下水道出孔要留出足够一个人通过的空间,而 www.chinahrlab.com
一个顺着梯子爬下去的人的横截面基本是圆的,所以圆形自然而然地成为下水道出入孔的
形状。圆形的井盖只是为了覆盖圆形的洞口。
面试官:你认为存在安全方面的考虑吗?我的意思是,方形的井盖会不会掉进去,因
此造成人身伤害?
范曼:不大可能。有时在一些方形洞口上也会看到方形的盖子。这种盖子比入口大,
周围有横挡,通常这种盖子是金属质地,非常重。我们可以想象一下,两英尺宽的方形洞
口,1到1.5英寸宽的横挡。为了让井盖掉进去,需要抬起一端,然后旋转30度,这样它就
不受横挡的妨碍了,然后再将井盖与地平线成45度角,这时转移的重心才足以让井盖掉下
去。是的,方形的井盖的确存在掉下去的可能,但可能性很小,只要对负责开井盖的人稍
加培训,他就不会犯这样的错误。从工程学来看,井盖的形状完全取决于它要覆盖的洞口
的形状。
面试官:(面有难色)我要与管理层谈点事情。(离开了房间)
10分钟后,面试官回来了。
面试官:我们推荐你立刻去推销部工作。
□建议
罗伯特·斯科布尔参加微软面试
时间是2003年8月13日上午10点23分
我所经历的面试过程是:
1.一名主管问我:你想过在这里工作吗? 中华英才实验室
2.人力资源部的人在电话里和我谈了一个小时。他们问了我一些问题,以确信我的经
历与简历上描述的内容相符,同时也为了避免在之后时间较长的面试中出现令他们尴尬的
事情。
3.我通过了人力资源部的电话约谈,于是他们用飞机把我送到了微软工地设在雷德蒙
德的总部。
4.对我的面试从上午8点半开始。首先是和人力资源部的人谈,她向我解释了面试程
序,以确保有必要让我进入下一轮面试。
5.她给我一个名单,上面是三个面试官的名字,他们将在午餐的时候面试我,她说得
很准确,如果这三个人喜欢我,我会得到另外一个名单,也就是“午餐后”的面试名单。
如果你在吃午餐的时候就得走人,那么你就会知道自己把事情搞砸了(不过据内部的
人讲,这样情况不多)。最后一条建议:要让自己一整天保持精力充沛。这很难。由于全
天都在回答问题,到下午4点的时候,就很难进行有条理的思考了。不过许多决定都是基于
“这个家伙是否对科技充满热情”这一点做出的。
■选择题看人品
□范例1
请在ABCD中选择正确的答案
根据艾恩·兰德对道德利己主义的解释,我们不仅可能做有利于他人的事,重要的是 my.chinahrlab.com
我们只有在这种情况下才会这样做:
A通过满足别人的利益,也满足了我们自己的利益
B我们出于同情心,而不总是为了利己而帮助他人
C我们的行为是没有私心的
D我们的生活与禁欲主义的目标吻合(即简单和克己)
□范例2
在5分钟之内,对下列单项主题进行即兴论述
责任:
“有时候负责意味着得罪别人。”
——科林·鲍威尔将军
体谅和尊重
“信任别人,他们就会用真诚来回报你;善待他们,他们就会表现出自身的伟大品质
。”——托马斯·肯皮斯
正直
“如果你讲的是真话,那你就不必劳神去记忆。”——马克·吐温
例1答案:A
■脑筋急转弯
□范例1
数学能力:
100美元哪里去了?
三个朋友住进了一家宾馆。结账时,账单总计3000美元。三个朋友每人分摊1000美元
,并把这3000美元如数交给了服务员,委托他代到总台交账,但在交账时,正逢宾馆实施
价格优惠,总台退还给服务员500美元,实收2500美元,服务员从这500美元退款中扣下了
200美元,只退还三客人300美元,三客人平分了这300美元,每人取回了100美元,这样,
三个客人每人实际支付900美元,共支付2700美元,加上服务员扣的200美元,共计2900美 中华英才实验室
元,那么这100美元的差额到哪里去了?
答案:这题纯粹是文字游戏,但是如果你的头脑不够清晰,很可能把你搞糊涂了。客
人实际支付2700美元,就等于总台实际结收的2500美元加上服务员克扣的200美元。在这2
700美元加上200美元是毫无道理的,如果在这2700美元加退回的300美元,这是有道理的,
因为这等于客人原先交给服务员的3000美元。
反应能力谁是罪犯?
在某商厦珠宝盗窃案中,警方已查明作案人肯定是ABCD四人中的一人:在审讯中
,他们的口供如下:
A说:珠宝被盗那天,我在乡下,不可能进入商厦盗窃
B说:D是罪犯
C说:B才是罪犯分子,我曾经看见过他卖过珠宝
D说:B与我有仇,所以诬陷我
经核实,四人中只有一个人说的是实话,你能从中找出谁是罪犯吗?
答案:D说的是真话,A是罪犯。
□范例2
答案:D说的是真话,A是罪犯。
□范例2
情商:
1什么书中毛病最多?(医书)
2什么东西说“父亲”时不会相碰?叫“爸爸”时却会碰到两次?(上嘴唇和下嘴唇)
3太平洋的中间是什么?(平字)
2 .列举ASP.NET 页面之间传递值的几种方式。
答. 1).使用QueryString, 如....?id=1; response. Redirect()....
2).使用Session变量
3).使用Server.Transfer
3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。
答:public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
4.C#中的委托是什么?事件是不是一种委托?
答 :
委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的引用。
是,是一种特殊的委托
5.override与重载的区别
答 :
override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
Override 是进行基类中函数的重写。为了适应需要。
6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
答 : QueryString、FormsAuthentication、 this.Server.Transfer
7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
答:
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
tb.Text = String.Empty ;
}
}
8.请编程实现一个冒泡排序算法?
答:
int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
9.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
答:可以用任意类型。
10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
答:
int Num = this.TextBox1.Text.ToString() ;
int Sum = 0 ;
for (int i = 0 ; i < Num + 1 ; i++)
{
if((i%2) == 1)
{
Sum += i ;
}
else
{
Sum = Sum - I ;
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine() ;
12.在下面的例子里
using System;
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B()
{
y=-1;
}
public override void PrintFields()
{
Console.WriteLine("x={0},y={1}",x,y);
}
当使用new B()创建B的实例时,产生什么输出?
答:X=1,Y=0;x= 1 y = -1
13.什么叫应用程序域?
答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。
14.CTS、CLS、CLR分别作何解释?
答:CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。
15.什么是装箱和拆箱?
答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。
16.什么是受管制的代码?
答:unsafe:非托管代码。不经过CLR运行。
17.什么是强类型系统?
答:RTTI:类型识别系统。
18.net中读写数据库需要用到那些类?他们的作用?
答:DataSet:数据存储器。
DataCommand:执行语句命令。
DataAdapter:数据的集合,用语填充。
21.在.net中,配件的意思是?
答:程序集。(中间语言,源数据,资源,装配清单)
22.常用的调用WebService的方法有哪些?
答:1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜单选项
23..net Remoting 的工作原理是什么?
答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。
29.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。
public void test(int i)
{
lock(this)
{
if (i>10)
{
i--;
test(i);
}
}
}
答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)
30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。
答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。
remoting是.net 中用来跨越machine, process, appdomain 进行方法调用的技术,对于三成结构的程序,就可以使用remoting技术来构建.它是分布应用的基础技术.相当于以前的DCOM Web Service是一种构建应用程序的普通模型,并能在所有支持internet网通讯的操作系统上实施。Web Service令基于组件的开发和web的结合达到最佳,基于组件的对象模型
31.公司要求开发一个继承 System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值 进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路
答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中。
32.给定以下XML文件,完成算法流程图。
< DriverC >
请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。
答:
void FindFile( Directory d )
{
FileOrFolders = d.GetFileOrFolders();
foreach( FileOrFolder fof in FileOrFolders )
{
if( fof is File )
You Found a file;
else if ( fof is Directory )
FindFile( fof );
}
}
35.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。
答:IEnumerable 、 GetEnumerator。
36.GC是什么? 为什么要有GC?
答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
37.String s = new String("xyz");创建了几个String Object?
答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对像s。
38.abstract class和interface有什么区别?
答:
声 明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。Abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接 口(interface)是抽像类的变体。在接口中,所有方法都是抽像的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的,没有一个有 程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。 然后,它可以在实现了该接口的类的任何对像上调用接口的方法。由于有抽像类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到 接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
39.启动一个线程是用run()还是start()?
答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。
40.接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?
答:接口可以继承接口。抽像类可以实现(implements)接口,抽像类是否可继承实体类,但前提是实体类必须有明确的构造函数。
41.构造器Constructor是否可被override?
答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
42.是否可以继承String类?
答:String类是final类故不可以继承。
44.两个对像值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
答:不对,有相同的hash code。
45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答:switch(expr1)中,expr1是一个整型,字符或字符串,因此可以作用在byte和long上,也可以作用在string上。
47.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
不能,一个对象的一个synchronized方法只能由一个线程访问。
48.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
答:都不能。
49.List, Set, Map是否继承自Collection接口?
答:List,Set是Map不是
50.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对像equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
51.数组有没有length()这个方法? String有没有length()这个方法?
答:数组和string都没有Length()方法,只有Length属性。
52.sleep() 和 wait() 有什么区别?
答:sleep()方法是将当前线程挂起指定的时间。
wait()释放对象上的锁并阻塞当前线程,直到它重新获取该锁。
53.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
答:short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。
54.谈谈final, finally, finalize的区别。
答:
final -修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此 一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中 不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为 final的方法也同样只能使用,不能重载
finally-再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会 执行,然后控制就会进入 finally 块(如果有的话)。
finalize -方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对像从内存中清除出去之前做必要的清理 工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的 ,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对像之前对这个对象调用的。
55.如何处理几十万条并发数据?
答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.
56.Session有什么重大BUG,微软提出了什么方法加以解决?
答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。
57.进程和线程的区别?
答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。
58.堆和栈的区别?
答:栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小
59.成员变量和成员函数前加static的作用?
答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。
60.ASP。NET与ASP相比,主要有哪些进步?
答:asp解释形,aspx编译型,性能提高,可以跟美工的工作分开进行,更有利于团队开发。
61.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
{
int num=rnd.Next(1,101);
if(!myList.Contains(num))
myList.Add(num);
}
for(int i=0;i<100;i++)
intArr[i]=(int)myList[i];
62.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
答:session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input ttype="hidden" 简单,可能被伪造
url参数 简单,显示于地址栏,长度有限
数据库 稳定,安全,但性能相对弱
63.请指出GAC的含义?
答:全局程序集缓存。
64.向服务器发送请求有几种方式?
答:get,post。get一般为链接方式,post一般为按钮方式。
65.DataReader与Dataset有什么区别?
答:一个是只能向前的只读游标,一个是内存中的表。
66.软件开发过程一般有几个阶段?每个阶段的作用?
答:需求分析,架构设计,代码编写,QA,部署
67.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法。
答:using 引入名称空间或者使用非托管资源
new 新建实例或者隐藏父类方法
68.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.
答:string inputStr=" xx xx ";
inputStr=Regex.Replace(inputStr.Trim()," *"," ");
69.下面这段代码输出什么?为什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
答:不相等,因为比较的是对像
70.什么叫做SQL注入,如何防止?请举例说明。
答:利用sql语言漏洞获得合法身份登陆系统。如身份验证的程序设计成:
SqlCommand com=new SqlCommand("Select * from users where username='"+t_name.text+"' and pwd='"+t_pwd.text+"'");
object obj=com.ExcuteScale();
if(obj!=null)
{
//通过验证
}
这段代码容易被sql注入。如用户在t_name中随便输入,在t_pwd中输入1' and 1='1 就可以进入系统了。
71.什么是反射?
答:动态获取程序集信息
72.用Singleton如何写设计模式
答:static属性里面new ,构造函数private
73.什么是Application Pool?
答:Web应用,类似Thread Pool,提高并发性能。
74.什么是虚函数?什么是抽像函数?
答:虚函数:可由子类继承并重写的函数。抽像函数:规定其非虚子类必须实现的函数,必须被重写。
75.什么是XML?
答: XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,即可以选择国际通用的 标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到 的有XML、XSL和XPath等。
77.什么是ASP.net中的用户控件?
答:用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的include..但是功能要强大的多。
78.列举一下你所了解的XML技术及其应用
答:xml用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config
79.ADO.net中常用的对象有哪些?分别描述一下。
答:Connection 数据库连接对像
Command 数据库命令
DataReader 数据读取器
DataSet 数据集
80.什么是code-Behind技术。
答:ASPX,RESX和CS三个后缀的文件,这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.
81.什么是SOAP,有哪些应用。
答: SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最 常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息。
SOAP也被称作XMLP,为两个程序交换信息提供了一种标准的工作机制。在各类机构之间通过电子方式相互协作的情况下完全有必要为此制定相应的标准。
SOAP 描述了把消息捆绑为XML的工作方式。它还说明了发送消息的发送方、消息的内容和地址以及发送消息的时间。SOAP是Web Service的基本通信协议。SOAP规范还定义了怎样用XML来描述程序数据(Program Data),怎样执行RPC(Remote Procedure Call)。大多数SOAP解决方案都支持RPC-style应用程序。SOAP还支持 Document-style应用程序(SOAP消息只包含XML文本信息)。
最后SOAP规范还定义了HTTP消息是怎样传输SOAP消息的。MSMQ、SMTP、TCP/IP都可以做SOAP的传输协议。
SOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。 SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。 这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。
SOAP 定义了一种方法以便将 XML 消息从 A 点传送到 B 点。 为此,它提供了一种基于 XML 且具有以下特性的消息处理框架: 1) 可扩展, 2) 可通过多种底层网络协议使用, 3) 独立于编程模型。
82.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?
答:一个是属性,用于存取类的字段,一个是特性,用来标识类,方法等的附加性质
83.XML 与 HTML 的主要区别
答:1. XML是区分大小写字母的,HTML不区分。
2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略
或者之类的结束 标记。在XML中,绝对不能省略掉结束标记。
3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。
4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。
5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。 84.c#中的三元运算符是?
答:?:。
85.当整数a赋值给一个object对像时,整数a将会被?
答:装箱。
86.类成员有_____种可访问形式?
答:this.;new Class().Method;
87.public static const int A=1;这段代码有错误么?是什么?
答:const不能用static修饰。
88.float f=-123.567F; int i=(int)f;i的值现在是_____?
答:-123。
89.委托声明的关键字是______?
答:delegate.
91.在Asp.net中所有的自定义用户控件都必须继承自________?
答:Control。
92.在.Net中所有可序列化的类都被标记为_____?
答:[serializable]
93.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?
答:GC。
94.下面的代码中有什么错误吗?_______
using System;
class A
{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A
{
public abstract override void F(); 答:abstract override 是不可以一起修饰.
} // new public abstract void F();
95.当类T只声明了私有实例构造函数时,则在T的程序文本外部,___可以___(可以 or 不可以)从T派生出新的类,不可以____(可以 or 不可以)直接创建T的任何实例。
答:不可以,不可以。
96.下面这段代码有错误么?
switch (i){
case(): 答://case()条件不能为空
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault; 答://wrong,格式不正确
CaseTwo();
break;
}
97.在.Net中,类System.Web.UI.Page 可以被继承么?
答:可以。
98..net的错误处理机制是什么?
答:.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
99.利用operator声明且仅声明了==,有什么错误么?
答:要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="
104.某一密码仅使用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个
答案:A
问题三:下列哪一个是单词密码?
A) KLLN B) LOML C) MLLO D)NMKO
答案:C
8. 62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?
答案:62移动成2的6次方
105.对于这样的一个枚举类型:
enum Color:byte
{
Red,
Green,
Blue,
Orange
}
答:string[] ss=Enum.GetNames(typeof(Color));
byte[] bb=Enum.GetValues(typeof(Color));
106. C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?
答:attribute:自定义属性的基类;property :类中的属性
107.C#可否对内存进行直接的操作?
答:在.net下,.net引用了垃圾回收(GC)功能,它替代了程序员 不过在C#中,不能直接实现Finalize方法,而是在析构函数中调用基类的Finalize()方法
108.ADO。NET相对于ADO等主要有什么改进?
答:1:ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,2:不使用com3:不在支持动态游标和服务器端游 4:,可以断开connection而保留当前数据集可用 5:强类型转换 6:xml支持
109.写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。
答:
110.大概描述一下ASP。NET服务器控件的生命周期
答:初始化 加载视图状态 处理回发数据 加载 发送回发更改通知 处理回发事件 预呈现 保存状态 呈现 处置 卸载
111.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
答:不能,可以实现接口
112.Static Nested Class 和 Inner Class的不同,说得越多越好
答:Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
113.,&和&&的区别。
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).
114.HashMap和Hashtable的区别。
答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.
115.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
116.Overloaded的方法是否可以改变返回值的类型?
答:Overloaded的方法是可以改变返回值的类型。
117.error和exception有什么区别?
答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
118.<%# %> 和 <% %> 有什么区别?
答:<%# %>表示绑定的数据源
<% %>是服务器端代码块
119. 你觉得ASP.NET 2.0(VS2005)和你以前使用的开发工具(.Net 1.0或其他)有什么最大的区别?你在以前的平台上使用的哪些开发思想(pattern / architecture)可以移植到ASP.NET 2.0上 (或者已经内嵌在ASP.NET 2.0中)
答:1 ASP.NET 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.
2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无 法 在页面嵌入服务器端代码获得帮助提示,
3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢
4 在绑定数据,做表的分页.UPDATE,DELETE,等操作都可以可视化操作,方便了初学者
5 在ASP.NET中增加了40多个新的控件,减少了工作量
120.重载与覆盖的区别?
答:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系
2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
3、覆盖要求参数列表相同;重载要求参数列表不同。
4、覆盖关系中,调用那个方法体,是根据对象的类型(对像对应存储空间类型)来决定;重载关系,是根据调 用时的实参表与形参表来选择方法体的。
121.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
答:不是。可以用任意类型。
125.分析以下代码。
public static void test(string ConnectString)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = ConnectString;
try
{
conn.Open();
…….
}
catch(Exception Ex)
{
MessageBox.Show(Ex.ToString());
}
finally
{
if (!conn.State.Equals(ConnectionState.Closed))
conn.Close();
}
}
请问
1)以上代码可以正确使用连接池吗?
答:回答:如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。
126. 公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时, 能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路:
答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中
127.什么是WSE?目前最新的版本是多少?
答:WSE (Web Service Extension) 包来提供最新的WEB服务安全保证,目前最新版本2.0。
128.在下面的例子里
using System;
class A
{
public A(){
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B(){
y=-1;
}
public override void PrintFields(){
Console.WriteLine("x={0},y={1}",x,y);
}
当使用new B()创建B的实例时,产生什么输出?
答:X=1,Y=0
129.下面的例子中
using System;
class A
{
public static int X;
static A(){
X=B.Y+1;
}
}
class B
{
public static int Y=A.X+1;
static B(){}
static void Main(){
Console.WriteLine("X={0},Y={1}",A.X,B.Y);
}
}
产生的输出结果是什么?
答:x=1,y=2
130.abstract class和interface有什么区别?
答: 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。Abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接 口(interface)是抽像类的变体。在接口中,所有方法都是抽像的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的,没有一个有 程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。 然后,它可以在实现了该接口的类的任何对像上调用接口的方法。由于有抽像类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到 接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
1.属性与字段有何异同?
A:只要能透露出属性的实质是方法就差不多了。
(若能说出哪些时候适合用字段,哪些时候适合用属性,由于.NET的内联机制,用属性也不见得性能差些等就更好。但我面试的人中竟有6成不知道属性是什么,对于不知道属性是什么的人,我是决不会考虑的)
解释:它是包含在类或结构中的对象或值。字段使类和结构可以封装数据。
字段存储类要满足其设计所需要的数据。例如,表示日历日期的类可能有三个整数字段:一个表示月份,一个表示日期,还有一个表示年份。在类块中声明字段的方式如下:指定字段的访问级别,然后指定字段的类型,最后指定字段的名称。例如:
C# 复制代码
public class CalendarDate
{
public int month;
public int day;
public int year;
}
访问对象中的字段是通过在对象名称后面依次添加一个句点和该字段的名称来实现的,具体形式为 objectname.fieldname。例如:
C# 复制代码
CalendarDate birthday = new CalendarDate();
birthday.month = 7;
声明字段时可以使用赋值运算符为字段指定一个初始值。例如,若要自动将 7 赋给 month 字段,需要按如下方式声明 month:
C# 复制代码
public class CalendarDateWithInitialization
{
public int month = 7;
//...
}
2.静态的方法成员和非静态的方法成员有何不同?
A:这个题的语法很明显出了问题,导致很多人刚开始不知如何回答,这是我的问题,我其实想问的是静态方法和非静态方法的区别,静态成员变量和非静态成员变量的区别。
答简单点,就是静态方法仅需要通过类名访问,非静态方法需要通过实例化出来的对象访问。成员变量也是一样。
有时我会继续问静态成员变量和非静态成员变量的生存期,静态成员变量是类第一次访问时创建,一般在程序结束时才会释放,非静态成员变量在对象创建时创建。
3.什么是定制特性(Attribute),怎么用?
A:定制特性是给类或属性或方法等元数据附加数据。需要通过反射才能取到。
(其实定制特性在项目中一般用得不多,大部分时候甚至用不上。主要是觉得作为一种知识,或者说作为.NET的一种技术,如果你不知道怎么用,那么你在碰到刚好适用这种技术的场景时,你又怎么能做出好的选择呢?应聘者有7成不知道Attribute)
4.委托怎么声明,怎么用?事件怎么声明,怎么用?
A:delegate void Dele1(object param1);
....(这是比较死的东西,查一下就知道了)
如果应聘者会用这两者,我会继续问委托与事件有什么联系。其实事件就是把委托封装了一层,对声明事件的类的外面隐藏了所有方法,除了暴露出经过重载的+=和-=两个方法。
5.值类型与引用类型有何异同?值传递与引用传递有何异同?
A:值类型分配在栈中,引用类型分配在堆中。
....(都是死概念,可以到处查得到标准答案)
我会问将一个引用类型用普通的方式(即未添加仍然关键字)作为参数时,会发生值传递还是引用传递。当然,虽然传的是引用,但就参数传递方式来讲,仍是值传递。
6.如果我要自定义一个控件,应该从哪个类继承(winform)?
A:一般从Control或UserControl继承。(只是想知道应聘者是否了解控件概念)
7.try,catch,finally,using这几个关键字的作用是什么?
A:都有死答案。就不说了。
我会继续问一下关于finally,即:try,catch块后写上finally和不写finally有区别吗?这时候,有一部分人会想不起来try,catch块后面不写finally会不会执行,其实正常情况下肯定仍然执行。finally主要体现在try,catch中有return或者catch中再次抛出异常时仍然会执行。
8.多线程同步有哪些方式?
A:我其实只希望应聘者能说出lock。关于信号量互斥体等不了解也没关系。但面试的人9成没做过多线程。
9.反射能实现什么作用?
A:动态获得元数据信息。通过元数据进行一些操作。但不可以改变元数据。???
1.有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.
2.A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.请附code
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?
4..Net中读写数据库需要用到哪些类?他们的作用
5.ASP.net的身份验证方式有哪些?分别是什么原理?
6.解释一下UDDI、WSDL的意义及其作用。
7.常用的调用webservice方法有哪些?
8.讲一讲你理解的web service,在dot net framework中,怎么很好的结合xml?(讲概念就行了)
9.C#可否对内存进行直接的操作?(这可是个难点哦?要注意!),如果能,如何操作;如果不能,为什么?
10.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
1.面向对象的思想主要包括什么?
面向对象三大特征:继承,封套,多态.面相对象的思想也不是一句两句就能说清楚..主要思想就是减少代码重复,增大代码复用率..
2.什么是ASP.net中的用户控件
问这样的问题,一般是迷惑你.因为新手还是分不清楚用户控件和服务器控件(也称自定义控件)..用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的include..但是功能要强大的多..
如果现有的 ASP.NET 服务器控件都不符合应用程序的特定要求,则可以创建封装所需功能的 Web 用户控件或 Web 自定义控件。这两种控件之间的主要区别在于设计时的易创建性与易用性。
Web 用户控件易于创建,但它们在高级方案中使用起来可能不太方便。开发 Web 用户控件的方式与开发 Web 窗体页的方式几乎完全相同。与 Web 窗体相似,用户控件可以在可视化设计器中创建,可以使用与 HTML 隔离的代码来编写,并且可以处理执行事件。但是,由于 Web 用户控件在运行时动态地进行编译,所以不能将它们添加到工具箱中,而且它们在添加到页面上时由简单的占位符标志符号来表示。如果您习惯于完全的 Visual Studio .NET 设计时支持(包括“属性”窗口和“设计”视图预览),这将会使 Web 用户控件使用起来更不方便。 此外,在应用程序之间共享用户控件的唯一方式是将一个单独的副本放入每个应用程序,因此如果对该控件作出了更改,将需要进行比较多的维护。
Web 自定义控件是编译的代码,这使得 Web 自定义控件更易于使用但更难于创建;Web 自定义控件必须使用代码来创建。一旦创建该控件,那么,您就可以将其添加到工具箱中,并在具有完全“属性”窗口支持和 ASP.NET 服务器控件的其他所有设计时功能的可视化设计器中显示该控件。此外,还可以在全局程序集缓存中安装 Web 自定义控件的单个副本,并在应用程序之间共享该副本,这将使维护变得更容易。有关更多信息,请参阅全局程序集缓存。
如果您的控件包含大量静态布局,用户控件则可能是较佳的选择。如果您的控件主要是动态生成的(例如数据绑定表的行、树视图的节点或选项卡 (TabControl) 控件的选项卡),自定义控件则可能是较佳的选择。
下表概述了这两种类型之间的主要区别:
Web 用户控件
1.难于创建
2.为使用可视化设计工具的使用者提供有限的支持
3. 每个应用程序中需要控件的一个单独副本
4. 不能添加到 Visual Studio 中的工具箱
5. 适用于静态布局
Web 自定义控件
1.易于创建
2. 为使用者提供完全的可视化设计工具支持
3. 仅在全局程序集缓存中需要控件的单个副本
4. 可以添加到 Visual Studio 中的工具箱
5. 适用于动态布局
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
这个需要当前描述了..东西太多..打字要打死了..找个比较简单的说说吧!
CTS:公共类型系统.主要是为了语言之间的进行标准化处理.
CLS:公共语言规范.主要是确保代码可以在任何语言中访问的最小标准集体
CLR:公共语言运行时.主要是管理代码..处理,加载代码,以及所有服务的代码
4.列举一下你所了解的XML技术及其应用
xml用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config
5.值类型和引用类型的区别?写出C#的样例代码。
值类型是在内存中保存,引用类型是在内存中保存一副本.你在内存中可以有多个某种引用对象..但是值类型始终只有一个.
最常见的值类型就是static,struct;
例如:
static int aa = 1;//值类型
如果多个用户改变aa的值则,aa的值会以最后一个修改的记录为准.其他人的修改则会被冲掉.
引用类型,最能说明问题的就是实例化..你new出来的对象单独分配一个独立的内存..所以值不会互相冲突/
数据成员可以分静态变量、非静态变量两种.
静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.
非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内容中..
一个类中也可以包含静态成员和非静态成员,类中也包括静态构造函数和非静态构造函数..
对于winApp来说,静态成员对于程序员本身省了很多事,而且因为静态成员驻留内存,在方法与方法之间传递共享数据的时候,所以静态成员成了我的首选..但是不要因为方便,大量使用,尤其是在内存紧张或者
用静态方法操作一些共享值的时候.或者要写多用户系统的时候,要慎之又慎.比如:
static int id = 0;
sql = "select * from table where id=" + id;l
6.ADO.net中常用的对象有哪些?分别描述一下。
Connection 数据库连接对象
Command 数据库命令
DataReader 数据读取器
DataSet 数据集
7.如何理解委托?
委托的概念,最好的说明就是事件.因为事件使用的就是委托.例如:this.Load += new System.EventHandler(this.Page_Load);这个就是使用了一个委托.
具体的用法请参考.我以前的帖子,设计猫鼠联动..
8.C#中的接口和类有什么异同。
类是方法功能的实现和集合,接口是规范类.约束类.
参考我的文章:http://lixianhuei.cnblogs.com/archive/2005/08/04/207123.html
9.。net中读写数据库需要用到哪些类?他们的作用
看第六题..答案差不多
10.UDP连接和TCP连接的异同。
这个说不清楚.
11.ASP.net的身份验证方式有哪些?分别是什么原理?
window验证:为每个用户开启window帐号,验证其身份.安全性较高.
forms验证:为每个登陆用户写入一个身份验证票据..在web使用最广的验证方式..灵活方便.
12.进程和线程分别怎么理解?
这个是新人最容易迷惑的东西..
进程:Process
13.什么是code-Behind技术。
新建一个VS.NET下的项目..看到ASPX,RESX和CS三个后缀的文件了吗??这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.
14.活动目录的作用。
活动目录是window2000的最重要的功能.可以将用户信息全部集成起来,登陆以后可以访问多个不同的网络服务..没深入研究过.
查看一下帖子:http://www.ies.impu.edu.cn/resource/os/windowsx/WindowsGeneral/WinGeneral0008.htm
15..net中读写XML的类都归属于哪些命名空间?
System.XML类
16.解释一下UDDI、WSDL的意义及其作用。
解释不清楚了..又是一大块..
17.什么是SOAP,有哪些应用。
simple object access protocal,简单对象接受协议.以xml为基本编码结构,建立在已有通信协议上(如http,不过据说ms在搞最底层的架构在tcp/ip上的soap)的一种规范
是微软大力推广的Web Service使用的协议..
18.如何部署一个ASP.net页面。
不清楚问的什么意思...如果非要回答的话,就写一个带.aspx的后缀文件..然后安装IIS和FrameWork环境..浏览就好了.
19.如何理解.net中的垃圾回收机制。
垃圾回收体制如下:
如果发现内存不够,则垃圾回收器,将全部对象作为无效对象(被回收对象),然后先将全局变量,static,处于活动中的局部变量,以及当前CG指针指向的对象放入一个表中.然后
会搜索新列表中的对象所引用的对象.加入列表中,其他没有被加入列表的对象都会被回收.
20.常用的调用webservice方法有哪些?
我一般用的是WSDL..或者web引用..
1.new有几种用法
第一种:new Class();
第二种:覆盖方法
public new XXXX(){}
第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
2.如何把一个array复制到arrayList里
foreach( object o in array )arrayList.Add(o);
3.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview]
dataset,datatable,dataview , IList
4.概述反射和序列化
反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
5.概述o/r mapping 的原理
利用反射,配置 将类于数据库表映射
6.类成员有( )种可访问形式
可访问形式?不懂。
可访问性:public ,protected ,private,internal
7.用sealed修饰的类有什么特点
sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
8.列举ADO.NET中的五个主要对象,并简单描述
connection,command,dataReader,trans,dataset ...
9.执行下面代码后:
String strTemp ="abcdefg 某某某";
Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j = strTemp.Length;
问:i=(14 ) ;j=(11 )
i=(14 ) ;j=(11 ) 中文两个字节
10.C#中,string str = null 与 string str ="",请尽量用文字说明区别。(要点:说明详细的内存空间分配)
string str ="" 分配空间
11.详述.NET里class和struct的异同!
class:放在 ? struct放在?
struct值传递
类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。
12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。
远程逻辑调用,remoing接口只能用在.net中
13.什么是code-behind技术
aspx and cs
14.概述三层结构体系
web/business/dataaccess
15.asp.net如何实现MVC模式,举例说明!
web/business/dataaccess
----------------------------------------------------------------------------------------------------------
1.面向对象的思想主要包括什么?
答:这个题范围太广,不知道说什么.
2.什么是ASP.net中的用户控件
答:用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚.
4.列举一下你所了解的XML技术及其应用
答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它.
5.值类型和引用类型的区别?写出C#的样例代码。答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧.
6.ADO.net中常用的对象有哪些?分别描述一下。
答:connection command sqladapter dataset datatable dataview等等.写不完了.
7.如何理解委托?
答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
msdn2005中是这样解释的:
委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
8.C#中的接口和类有什么异同。
答:这个异同可多了,要说清楚还真不容易.
9.。net中读写数据库需要用到哪些类?他们的作用
答:这个类自已可以写的啊,你是指基类吗?那configuration,sqlconnection,sqlcommand等都要用到.
10.UDP连接和TCP连接的异同。
答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.
11.ASP.net的身份验证方式有哪些?分别是什么原理?答:form认证,windows集成认证等,原理不清楚.
12.进程和线程分别怎么理解?
答:进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子.
13.什么是code-Behind技术。
答:代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当
ASP.NET面试的题目
1。请简要写出你对C#及ASP的认识。
2。怎么获得文件的当前路径(代码)
3。 请使用ADO。NET 写出数据库连接开始事务处理,即数据库连接(代码)
http://www.microsoft.com/china/MSDN/library/data/dataAccess/BestPractiCEs+forUsingADO.NET.mspx?mfr=true
http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/builddistapp/PerformanCE+COMparison+Transaction+Control.mspx?mfr=true
4。在SQL语言中,如果要建立一个工资表包含职工号,姓名,职称。工资等字段。若要保证工资 字段 的取值不低于800元,最合适的实现方法是:
A。在创建工资表时为”工资“字段建立缺省
B。在创建工资表时为”工资“字段建立检查约束
C。在工资表建立一个触发器
D。为工资表数据输入编写一个程序进行控制
5。没有关键码序列(Q。G。M。Z。A。N。B。P。X。H。Y。S。L。T。K。E)
采用二路归并排序法进行排序,请写出第二趟归并后的结果?
6。创建一个新文本文件并向其写入一个字符串(代码)
7。请使用正则表达式验证电子邮件地址的合法性(代码)
8。如何设定DATAGRID中模板列里 下拉列表默然值,如何在编辑时,让其绑定另一个表的数据并自动讲当前值设为默认值
9。上机测试题目:用户管理中,用户验证,用户添加,用户删除功能,采用ACCESS数据库
(时间30分钟)
一、求2003年所有没有降雨的日期
结果集:日期
表名:t_rain 降雨记录
表结构:
fstartTimedatetime (有时间信息) 降雨开始时间
fendTimedatetime 降雨结束时间 (可能跨日的)
二、问答题
1.三只猫三分钟内可以捉三只老鼠,一百只猫需要多久才能捉到一百只老鼠?
2.有两枚硬币,共值一元五角,其中一枚不是五角的硬币,请问两枚硬币的面值各是多少?
3.一个人购物共付了六元,零食比笔芯多五元,笔芯价格是多少?
4.有两人在路上走,年轻的是年长的儿子,但年长的不是年轻的父亲,年长的是谁?
5.一立方尺的洞里有多少垃圾?
6.一个男人和他遗孀的妹妹结婚是否合法?
7.一只猴子跌进三十尺深的井里,它每天朝上蹿三尺,但都滑下两尺,依照这个速度,猴子多少天后会蹿出井外?
8.抽屉里有黑白袜子各十只,如果你在黑暗中伸手入抽屉,最少要取出几只才一定会有一双颜色相同?
9.有三个苹果,你拿了两个,你共有多少个?
10.有人要赶火车,只有两分钟时间,但要走两里。如果第一里的速度是每小时三十里,第二里的速度应该是多少才能赶上这班火车?
三、分析:(除了答案,还需阐明思路):
1、5个海盗抢到了100颗宝石,每一颗都一样的大小和价值连城。
他们决定这么分:
1。抽签决定自己的号码(1,2,3,4,5)
2。首先,由1号提出分配方案,然后大家5人进行表决,当且仅当半数和超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。
3。如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅当半数和超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。
4。依次类推......
问题:第一个海盗提出怎样的分配方案才能够使自己的收益最大化
条件:每个海盗都是很聪明的人,都能很理智的判断得失,从而做出选择。
5.有一张表,表名:Test
表结构:
id int
name varchar(20)
有以下数据:
[id] [name]
1 aaa
2 bbb
3 aaa
4 ccc
要求写一个查询语句,只显示[name]有重复的数据,没有重复的不显示出来。
传入某个属性的set方法的隐含参数的名称是什么?
value,它的类型和属性所声名的类型相同。
如何在C#中实现继承?
在类名后加上一个冒号,再加上基类的名称。
C#支持多重继承么?
不支持。可以用接口来实现。
被protected修饰的属性/方法在何处可以访问?
在继承或间接继承与这个类的子类中可以访问。
私有成员会被继承么?
会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。
请描述一下修饰符protected internal。
被protected internal修饰的属性/方法只能在它的在同一个程序集(Assembly)中的子类被访问。
C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?
两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。
C#中所有对象共同的基类是什么?
System.Object.
重载和覆写有什么区别?
重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。
在方法定义中,virtual有什么含意?
被virtual修饰的方法可以被子类覆写。
能够将非静态的方法覆写成静态方法么?
不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。
可以覆写私有的虚方法么?
不可以,甚至子类中无法访问父类中的私有方法。
能够阻止某一个类被其他类继承么?
可以,使用关键字sealed。
能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?
可以,标记这个类为public,并标记这个方法为sealed。
什么是抽象类(abstract class)?
一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。
何时必须声明一个类为抽象类?
当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。
接口(interface)是什么?
只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。
为什么不能指定接口中方法的修饰符?
接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。
可以继承多个接口么?
当然。
那么如果这些接口中有重复的方法名称呢?
这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。
接口和抽象类的区别是什么?
接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。
如何区别重载方法?
不同的参数类型,不同的参数个数,不同的参数顺序。
const和readonly有什么区别?
const关键字用来声明编译时常量,readonly用来声明运行时常量。
System.String 和System.StringBuilder有什么区别?
System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法
1.new有几种用法
第一种:new Class();
第二种:覆盖方法
public new XXXX(){}
第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。
2.如何把一个array复制到arrayList里
foreach( object o in array )arrayList.Add(o);
3.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview]
dataset,datatable,dataview , IList
4.概述反射和序列化
反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。
5.概述o/r mapping 的原理
利用反射,配置 将类于数据库表映射
6.类成员有( )种可访问形式
可访问形式?不懂。
可访问性:public ,protected ,private,internal
7.用sealed修饰的类有什么特点
sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
8.列举ADO.NET中的五个主要对象,并简单描述
connection,command,dataReader,trans,dataset ...
9.执行下面代码后:
String strTemp ="abcdefg 某某某";
Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j = strTemp.Length;
问:i=(14 ) ;j=(11 )
i=(14 ) ;j=(11 ) 中文两个字节
10.C#中,string str = null 与 string str ="",请尽量用文字说明区别。(要点:说明详细的内存空间分配)
string str ="" 分配空间
11.详述.NET里class和struct的异同!
class:放在 ? struct放在?
struct值传递
类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。
12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。
远程逻辑调用,remoing接口只能用在.net中
13.什么是code-behind技术
aspx and cs
14.概述三层结构体系
web/business/dataaccess
15.asp.net如何实现MVC模式,举例说明!
web/business/dataaccess
1.面向对象的思想主要包括什么?
答:这个题范围太广,不知道说什么.
2.什么是ASP.net中的用户控件
答:用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.
3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚.
4.列举一下你所了解的XML技术及其应用
答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它.
5.值类型和引用类型的区别?写出C#的样例代码。
答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧.
6.ADO.net中常用的对象有哪些?分别描述一下。
答:connection command sqladapter dataset datatable dataview等等.写不完了.
7.如何理解委托?
答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法.
msdn2005中是这样解释的:
委托具有以下特点:
委托类似于 C++ 函数指针,但它是类型安全的。
委托允许将方法作为参数进行传递。
委托可用于定义回调方法。
委托可以链接在一起;例如,可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。
8.C#中的接口和类有什么异同。
答:这个异同可多了,要说清楚还真不容易.
9.。net中读写数据库需要用到哪些类?他们的作用
答:这个类自已可以写的啊,你是指基类吗?那configuration,sqlconnection,sqlcommand等都要用到.
10.UDP连接和TCP连接的异同。
答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.
11.ASP.net的身份验证方式有哪些?分别是什么原理?
答:form认证,windows集成认证等,原理不清楚.
12.进程和线程分别怎么理解?
答:进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子.
13.什么是code-Behind技术。
答:代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的.
14.活动目录的作用。
答:这个不明白.请明白的补充一下.
15..net中读写XML的类都归属于哪些命名空间?
答:System.Xml
我自已写的就不一定了,嘿嘿.
16.解释一下UDDI、WSDL的意义及其作用。
答:什么东西?
17.什么是SOAP,有哪些应用。
答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体请看:http://playist.blogchina.com/2521621.html
18.如何部署一个ASP.net页面。
答:随便啦,想直接上传就直接上传,想打包成EXE就打包,看个人喜好.
19.如何理解.net中的垃圾回收机制。
答:GC?对象创建了总要清除啊,不然内存哪够用?
20.常用的调用webservice方法有哪些?
答:调用就调用,还有很多方法吗?
.net笔试题
姓名: 日期:
1. 填空: (1)面向对象的语言具有________性、_________性、________性。
(2)能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。
(3)列举ADO.net中的五个主要对象_______________、_____________、_______________、_______________、_________________。
2. 不定项选择:
(1) 以下叙述正确的是:
A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。
C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。
(2) 从数据库读取记录,你可能用到的方法有:
A. ExecuteNonQuery B. ExecuteScalar
C. Fill D. ExecuteReader
3. 简述 private、 protected、 public、 internal 修饰符的访问权限。
4. 写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)
5 .列举ASP.NET 页面之间传递值的几种方式。
6. 写出程序的输出结果
class Class1 {
private string str = "Class1.str";
private int i = 0;
static void StringConvert(string str) {
str = "string being converted.";
}
static void StringConvert(Class1 c) {
c.str = "string being converted.";
}
static void Add(int i) {
i++;
}
static void AddWithRef(ref int i) {
i++;
}
static void Main() {
int i1 = 10;
int i2 = 20;
string str = "str";
Class1 c = new Class1();
Add(i1);
AddWithRef(ref i2);
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.写出程序的输出结果
public abstract class A
{
public A()
{
Console.WriteLine('A');
}
public virtual void Fun()
{
Console.WriteLine("A.Fun()");
}
}
public class B: A
{
public B()
{
Console.WriteLine('B');
}
public new void Fun()
{
Console.WriteLine("B.Fun()");
}
public static void Main()
{
A a = new B();
a.Fun();
}
}
8. 写出程序的输出结果:
public class A
{
public virtual void Fun1(int i)
{
Console.WriteLine(i);
}
public void Fun2(A a)
{
a.Fun1(1);
Fun1(5);
}
}
public class B : A
{
public override void Fun1(int i)
{
base.Fun1 (i + 1);
}
public static void Main()
{
B b = new B();
A a = new A();
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: select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
评分标准: 写对即10分。(答案不唯一,datagrid 分页可能需要用到)
5. 1.使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session变量
3.使用Server.Transfer
....等等
评分标准: 答对1点得3分, 两点7分, 3点10分。
6. (考查值引用和对象引用)
10
21
0
str
string being converted.
评分标准:答对一点得2分,满分10分。
7. A
B
A.Fun()
评分标准: 写出A.B 得5分,写出A.Fun()得5分,满分10分。
(考查在继承类中构造函数, 以及new 方法, )
8. 2
5
1
6
(一些人做这题,头都晕了.... ^_^ )
9.
public class MainClass
{
public static void Main()
{
Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
评分标准: 写出return Foo(i -1) + Foo(i - 2); 得5分。
写出if(i > 0 && i <= 2) return 1; 得5分。
方法参数过多需要扣分(扣除分数 = 参数个数 - 1)
不用递归算法扣5分
(递归算法在树结构建立等方面比较常用)
10
要点:1. 联动效果,运行代码只要执行Cat.Cryed()方法。2. 对老鼠和主人进行抽象
评分标准: <1>.构造出Cat、Mouse、Master三个类,并能使程序运行(2分)
<2>从Mouse和Master中提取抽象(5分)
<3>联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。(3分)
public interface Observer
{
void Response(); //观察者的响应,如是老鼠见到猫的反映
}
public interface Subject
{
void AimAt(Observer obs); //针对哪些观察者,这里指猫的要扑捉的对象---老鼠
}
public class Mouse : Observer
{
private string name;
public Mouse(string name, Subject subj)
{
this.name = name;
subj.AimAt(this);
}
public void Response()
{
Console.WriteLine(name + " attempt to escape!");
}
}
public class Master : Observer
{
public Master(Subject subj)
{
subj.AimAt(this);
}
public void Response()
{
Console.WriteLine("Host waken!");
}
}
public class Cat : Subject
{
private ArrayList observers;
public Cat()
{
this.observers = new ArrayList();
}
public void AimAt(Observer obs)
{
this.observers.Add(obs);
}
public void Cry()
{
Console.WriteLine("Cat cryed!");
foreach (Observer obs in this.observers)
{
obs.Response();
}
}
}
class MainClass
{
static void Main(string[] args)
{
Cat cat = new Cat();
Mouse mouse1 = new Mouse("mouse1", cat);
Mouse mouse2 = new Mouse("mouse2", cat);
Master master = new Master(cat);
cat.Cry();
}
}
//---------------------------------------------------------------------------------------------
设计方法二: 使用event -- delegate设计..
public delegate void SubEventHandler();
public abstract class Subject
{
public event SubEventHandler SubEvent;
protected void FireAway()
{
if (this.SubEvent != null)
this.SubEvent();
}
}
public class Cat : Subject
{
public void Cry()
{
Console.WriteLine("cat cryed.");
this.FireAway();
}
}
public abstract class Observer
{
public Observer(Subject sub)
{
sub.SubEvent += new SubEventHandler(Response);
}
public abstract void Response();
}
public class Mouse : Observer
{
private string name;
public Mouse(string name, Subject sub) : base(sub)
{
this.name = name;
}
public override void Response()
{
Console.WriteLine(name + " attempt to escape!");
}
}
public class Master : Observer
{
public Master(Subject sub) : base(sub){}
public override void Response()
{
Console.WriteLine("host waken");
}
}
class Class1
{
static void Main(string[] args)
{
Cat cat = new Cat();
Mouse mouse1 = new Mouse("mouse1", cat);
Mouse mouse2 = new Mouse("mouse2", cat);
Master master = new Master(cat);
cat.Cry();
}
}
1. C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?
2. 讲一讲你理解的web service,在dot net framework中,怎么很好的结合xml?(讲概念就行了)
3. C#, Java 和 c++的特点,有什么相同的地方,不同的地方,C#分别从c++和java中吸取了他们那些优点?
4. C#可否对内存进行直接的操作?(这可是个难点哦?要注意!)
5. 用Visual C++ 6.0编写的代码(unmanaged code),如何在CLR下和其他dot net component结合?
6. 以前作过的一些项目?介绍一下自己的编程经验。(这是蒙混不过去的,基本一问就知道是真是假)
7. 你对公司有什么期望?你的薪水期望值?为什么学计算机?以前的工作经验(这非常重要)?
Q3: 维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么
Q4:ADO。NET相对于ADO等主要有什么改进?
Q5:ASP。NET与ASP相比,主要有哪些进步?
Q6:C#中的委托是什么?事件是不是一种委托?
Q7:描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
Q8:C#中要使一个类支持FOREACH遍历,实现过程怎样?
Q10:写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。
Q11:你对XMLHTTP、WEBSERVICE 了解吗?简单描述其特点、作用
Q12:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?
Q13:自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么
Q14:大概描述一下ASP。NET服务器控件的生命周期
Q15:UML
Q16:面向对象的概念,主要特点
Q17:类划分的依据。类粒度问题
Q18:事物管理问题
第一,谈谈final, finally, finalize的区别。
第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
第四,&和&&的区别。
第五,HashMap和Hashtable的区别。
第六,Collection 和 Collections的区别。
第七,什么时候用assert。
第八,GC是什么? 为什么要有GC?
第九,String s = new String("xyz");创建了几个String Object?
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
第十二,sleep() 和 wait() 有什么区别?
第十三,Java有没有goto?
第十四,数组有没有length()这个方法? String有没有length()这个方法?
第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
第十七,给我一个你最常见到的runtime exception。
第十八,error和exception有什么区别?
第十九,List, Set, Map是否继承自Collection接口?
第二十,abstract class和interface有什么区别?
第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
第二十三,启动一个线程是用run()还是start()?
第二十四,构造器Constructor是否可被override?
第二十五,是否可以继承String类?
第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
第三十二,编程题: 写一个Singleton出来。
数据库方面:
1.存储过程和函数的区别
2.事务是什么?
3.游标的作用?如何知道游标已经到了最后?
4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
1。用C#实现以下功能
a 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
b 对上面生成的数组排序,需要支持升序、降序两种顺序
2。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
3。请说明.net中的错误处理机制,并举例
4。请说出强名的含义
5。请列出c#中几种循环的方法,并指出他们的不同
6。请指出.net中所有类型的基类
7。请指出GAC的含义
8。SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值
您在什么情况下会用到虚方法?它与接口有什么不同?
Q:Override与重载有什么区别?
Q:值类型与引用类型有什么区别?
Q:怎样理解静态变量?
Q:向服务器发送请求有几种方式?
Q:DataReader与Dataset有什么区别?
Q:如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
Q:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
Q:软件开发过程一般有几个阶段?每个阶段的作用?
Q:微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用?
Q:请列举一些您用到过的设计模式以及在什么情况下使用该模式?
Q:您对WebService的体会?
Q:您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平?
Q:您离职的原因是什么?
Q:通过超链接怎样传递中文参数?
Q:请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
Q:请编程实现一个冒泡排序算法?
1、override与重载的区别
2、.net的错误处理机制是什么
3、C#中接口和类的异同
4、DataReader和DataSet的异同
1.有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.
2.如果需记录类的实例个数,该如何实现,请写一个简单的类于以证明.
3.A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.
4.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.
一.填空题
1.c#中的三元运算符是__?:___?
2.当整数a赋值给一个object对象时,整数a将会被__装箱(封装)___?
3.类成员有_____种可访问形式? this.;new Class().Method;
4.public static const int A=1;这段代码有错误么?是什么? const不能用static修饰
5.float f=-123.567F;
int i=(int)f;
i的值现在是_____? 123
6.利用operator声明且仅声明了“==”,有什么错误么?
7.委托声明的关键字是______? delagete
8.用sealed修饰的类有什么特点?密封,不能继承
9.在Asp.net中所有的自定义用户控件都必须继承自________?Control
10.在.Net中所有可序列化的类都被标记为_____?
11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?gc
12.下面的代码中有什么错误吗?_______
using System;
class A
{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A
{
public abstract override void F(); // new public abstract void F();
}
13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,___可以___(可以 or 不可以)从T派生出新的类,不可以____(可以 or 不可以)直接创建T的任何实例。
14.下面这段代码有错误么?
switch (i){
case():
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault; //wrong
CaseTwo();
break;
}
15.在.Net中,类System.Web.UI.Page 可以被继承么?可以
二.简答题
1.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法
4.谈谈类和结构的区别?类是引用类型、结构是值类型
5.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程序来实现。
6.对于这样的一个枚举类型:
enum Color:byte{
Red,
Green,
Blue,
Orange
}
string[] ss=Enum.GetNames(typeof(Color));
byte[] bb=Enum.GetValues(typeof(Color));
试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。
7.您了解设计模式么?请列出您所知道的设计模式的名称。 //
8.请在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?
9.什么叫做SQL注入,如何防止?请举例说明。
10.下面这段代码输出什么?为什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
//不相等,因为比较的是对象
1.写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用 例 。
2.对一支纸杯设计测试用例(可以是广义的杯,不一定是某一支特定功能的杯)
开发语言概念题
3.什么是反射?
4.用Singleton如何写设计模式
5.C#中的垃圾回收机制是怎样的?
6.什么是Application Pool?
7.链表和数组的区别,各有什么优缺点.
8.Remoting在客户端服务器怎么实现 ?
9.什么是友元函数?
10.用标准C如何实现多态?
11.什么是虚函数?
12.什么是抽象函数?
13.什么是内存泄漏,怎样最简单的方法判断被存泄漏 ?
14.用英文介绍一下使用C#/C++做的项目,主要功能
15.如果要与美国开电话会议,会如何与美国的工程师沟通
16.如果老板认为你的技术落后,你会怎么回答
数据库知识题
17.使用什么工具来调用存储过程
18.SQL Server的两种索引是何形式?索引的作用?索引的优缺点?
19.触发器的作用
其它知识题及问题
20.什么是Web Service?
21.什么是XML?
22.Socket怎么实现
Q:您在什么情况下会用到虚方法?它与接口有什么不同?
Q:Override与重载有什么区别?
Q:值类型与引用类型有什么区别?
Q:怎样理解静态变量?
Q:向服务器发送请求有几种方式?
Q:DataReader与Dataset有什么区别?
Q:如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
Q:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
Q:软件开发过程一般有几个阶段?每个阶段的作用?
Q:微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用?
Q:请列举一些您用到过的设计模式以及在什么情况下使用该模式?
Q:您对WebService的体会?
Q:您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平?
Q:您离职的原因是什么?
以下几道题目如果您不会,请较为详细的描述您的解决思路和方法
Q:通过超链接怎样传递中文参数?
Q:请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
Q:请编程实现一个冒泡排序算法?
1.在对SQL Server 数据库操作时应选用(a)。
a)SQL Server .NET Framework 数据提供程序;
b)OLE DB .NET Framework 数据提供程序;
c)ODBC .NET Framework 数据提供程序;
d)Oracle .NET Framework数据提供程序;
2.下列选项中,(c)是引用类型。
a)enum类型
b)struct类型
c)string类型
d)int类型
3.关于ASP.NET中的代码隐藏文件的描述正确的是(a)
a)Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。
b)项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。
c)项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
d)以上都不正确。
4.以下描述错误的是(a)
a)在C++中支持抽象类而在C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
c)在C#中可使用 new 修饰符显式隐藏从基类继承的成员。
d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
5.C#的数据类型有(b)
a)值类型和调用类型;
b)值类型和引用类型;
c)引用类型和关系类型;
d)关系类型和调用类型;
6.下列描述错误的是(d)
a)类不可以多重继承而接口可以;
b)抽象类自身可以定义成员而接口不可以;
c)抽象类和接口都不能被实例化;
d)一个类可以有多个基类和多个基接口;
7.在DOM中,装载一个XML文档的方法(b)
a)save方法
b)load方法
c)loadXML方法
d)send方法
8.下列关于构造函数的描述正确的是(c)
a)构造函数可以声明返回类型。
b)构造函数不可以用private修饰
c)构造函数必须与类名相同
d)构造函数不能带参数
9.以下是一些C#中的枚举型的定义,其中错误的用法有(a)
a)public enum var1{ Mike = 100, Nike = 102, Jike }
b)public enum var1{ Mike = 100, Nike, Jike }
c)public enum var1{ Mike=-1 , Nike, Jike }
d)public enum var1{ Mike , Nike , Jike }
10.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是(d)。
a)9
b)2
c)6
d)越界
11.接口是一种引用类型,在接口中可以声明(a),但不可以声明公有的域或私有的成员变量。
a)方法、属性、索引器和事件;
b)方法、属性信息、属性;
c)索引器和字段;
d)事件和字段;
12.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是(a)
a)HTML控件和Web控件
b)HTML控件和XML控件
c)XML控件和Web控件
d)HTML控件和IIS控件
13.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为(b)
a)<%@Register TagPrefix = “Mike” TagName = “Space2” Src = “myX.ascx”%>
b)<%@Register TagPrefix = “Space2” TagName = “Mike” Src = “myX.ascx”%>
c)<%@Register TagPrefix = “SpaceX” TagName = “Space2” Src = “Mike”%>
d)以上皆非
14.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(c)。
a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;
b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
c)Select操作的Sql语句只能由ExecuteReader()方法来执行;
d)ExecuteReader()方法返回一个DataReder对象;
15.下列ASP.NET语句(b)正确地创建了一个与SQL Server 2000数据库的连接。
a)SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
b)SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
c)SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
d)SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
16.Winform中,关于ToolBar控件的属性和事件的描述不正确的是(d)。
a)Buttons属性表示ToolBar控件的所有工具栏按钮
b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度
c)DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键
d)ButtonClick事件在用户单击工具栏任何地方时都会触发
17.在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(d ),必要时还要设置参数尺寸。
a)大小;
b)上限;
c)初始值;
d)类型;
18.如果将窗体的FormBoderStyle设置为None,则(B)。
a)窗体没有边框并不能调整大小;
b)窗体没有边框但能调整大小;
c)窗体有边框但不能调整大小;
d)窗体是透明的;
19.如果要将窗体设置为透明的,则( b)
a)要将FormBoderStyle属性设置为None;
b)要将Opacity属性设置为小于100%得值;
c)要将locked 属性设置为True;
d)要将 Enabled属性设置为True;
20.下列关于C#中索引器理解正确的是(c )
a)索引器的参数必须是两个或两个以上
b)索引器的参数类型必须是整数型
c)索引器没有名字
d)以上皆非
21.下面描述错误的是(D )。
a)窗体也是控件;
b)窗体也是类;
c)控件是从窗体继承来的;
d)窗体的父类是控件类;
22.要对注册表进行操作则必须包含(D )。
a)System.ComponentModel命名空间;
b)System.Collections命名空间;
c)System.Threading命名空间;
d)Microsoft.Win32命名空间;
23.要创建多文档应用程序,需要将窗体的(d )属性设为true。
a)DrawGrid;
b)ShowInTaskbar;
c)Enabled;
d)IsMdiContainer;
24.如果设treeView1=new TreeView(),则treeView1.Nodes.Add("根节点")返回的是一个 (a)类型的值。
a)TreeNode;
b)int;
c)string;
d)TreeView;
25.下面关于XML的描述错误的是( d)。
a)XML提供一种描述结构化数据的方法;
b)XML 是一种简单、与平台无关并被广泛采用的标准;
c)XML文档可承载各种信息;
d)XML只是为了生成结构化文档;
26. 以下的C#代码,试图用来定义一个接口:
public interface IFile
{
int A;
int delFile()
{
A = 3;
}
void disFile();
}
关于以上的代码,以下描述错误的是(A,B )。
a)以上的代码中存在的错误包括:不能在接口中定义变量,所以int A代码行将出现错误;
b)以上的代码中存在的错误包括:接口方法delFile是不允许实现的,所以不能编写具体的实现函数;
c)代码void disFile();声明无错误,接口可以没有返回值;
d)代码void disFile();应该编写为void disFile(){};
29.在C#中利用Socket进行网络通信编程的一般步骤是:建立Socket侦听、( a)30.声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是(b )。
a)void myCallBack(int x) ;
b)int receive(int num) ;
c)string receive(int x) ;
d)不确定的;
二、判断题,对的打√错的打×(每小题2分,共20分)
1.( T)在C#中,装箱操作是将值类型转化成引用类型。
2.( F)接口中的成员不可以有访问域修饰符,但可以有其它修饰符。
3.( F)在C#中,索引器是专门用来访问对象中的数组信息的。
4.( T)在C#中,接口可以被多重继承而类不能。
5.( F)在C#中,int[][]是定义一个int型的二维数组。
6.( T)异常类对象均为System.Exception类的对象。
7.(T ) 当窗体最小化后,再次还原成为活动窗体时将自动触发Paint事件。
8.( T) ASP.NET中,使用验证控件来验证用户输入,要求用户不可跳过该项输入,并且用户输入值在0和1000之间,则适用RequiredFieldValidator和RangeValidator控件。
9.( F) 声明委托实际上是声明了一个方法。
10.(T ) 任何事物都是对象。
1.请简述一下用Socket进行同步通讯编程的详细步骤
1、在应用程序和远程设备中使用协议和网络地址初始化套接字
2、在应用程序中通过指定端口和地址建立监听
3、远程设备发出连接请求
4、应用程序接受连接产生通信scoket
5、应用程序和远程设备开始通讯(在通讯中应用程序将挂起直到通讯结束)
6、通讯结束,关闭应用程序和远程设备的Socket回收资源
2.比较ADO 与ADO.NET 的不同。