一.填空题
1.c#中的三元运算符是_____?
2.当整数a赋值给一个object对象时,整数a将会被_____?
3.类成员有_____种可访问形式?
4.publicstaticconstintA=1;这段代码有错误么?是什么?
5.floatf=-123.567F;
inti=(int)f;
i的值现在是_____?
6.利用operator声明且仅声明了==,有什么错误么?
7.委托声明的关键字是______?
8.用sealed修饰的类有什么特点?
9.在Asp.net中所有的自定义用户控件都必须继承自________?
10.在.Net中所有可序列化的类都被标记为_____?
11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?
12.下面的代码中有什么错误吗?_______
usingSystem;
classA
{
publicvirtualvoidF(){
Console.WriteLine("A.F");
}
}
abstractclassB:A
{
publicabstractoverridevoidF();
}
13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,______(可以or不可以)从T
派生出新的类,____(可以or不可以)直接创建T的任何实例。
14.下面这段代码有错误么?
switch(i){
case():
CaseZero();
break;
case1:
CaseOne();
break;
case2:
dufault;
CaseTwo();
break;
}
15.在.Net中,类System.Web.UI.Page可以被继承么?
二.简答题
1.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
2.在下面的例子里
usingSystem;
classA
{
publicA(){
PrintFields();
}
publicvirtualvoidPrintFields(){}
}
classB:A
{
intx=1;
inty;
publicB(){
y=-1;
}
publicoverridevoidPrintFields(){
Console.WriteLine("x={0},y={1}",x,y);
}
当使用newB()创建B的实例时,产生什么输出?
3.下面的例子中
usingSystem;
classA
{
publicstaticintX;
staticA(){
X=B.Y+1;
}
}
classB
{
publicstaticintY=A.X+1;
staticB(){}
staticvoidMain(){
Console.WriteLine("X={0},Y={1}",A.X,B.Y);
}
}
产生的输出结果是什么?
4.谈谈类和结构的区别?
5.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程
序来实现。
6.对于这样的一个枚举类型:
enumColor:byte{
Red,
Green,
Blue,
Orange
}
试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。
7.您了解设计模式么?请列出您所知道的设计模式的名称。
8.请在SQLServer中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容
需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?
9.什么叫做SQL注入,如何防止?请举例说明。
10.下面这段代码输出什么?为什么?
inti=5;
intj=5;
if(Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("NotEqual");
1?:
2装箱
33种
4const成员都是static所以应该去掉static
5-123
6要同时修改Equale和GetHash()?重载了"=="就必须重载"!="
7delegate
8不可被继承
9System.Web.UI.UserControl
10[serializable]
11gC
12abstractoverride是不可以一起修饰
13不可以,不可以
14case():不行default;
15可以
1Using引入一个名子空间,或在使用了一个对像后自动调用其IDespose,New实例化一个对
像,或修饰一个方法,表此方法完全重写此方法,
2X=1,Y=0
3x=1,y=2
4最大区别一个是引用类型,一个是值类型默认成员访问为public是另外一个区别
.NET&C#基础知识试题(20%)
1.在.net(C#orvb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)。
答案:this(C#)Me(vb.net).
2.在.net(C#orvb.net)中如何用户自定义消息,并在窗体中处理这些消息。
答案:
在form中重载DefWndProc函数来处理消息:
protectedoverridevoidDefWndProc(refSystem.WinForms.Messagem)
{
switch(m.msg)
{
caseWM_Lbutton:
///string与MFC中的CString的Format函数的使用方法有所不同
stringmessage=string.Format("收到消息!参数为:{0},{1}",m.wParam,m.lParam);
MessageBox.Show(message);///显示一个消息框
break;
caseUSER:
处理的代码
default:
base.DefWndProc(refm);///调用基类函数处理非自定义消息。
break;
}
}
3.在.net(C#orvb.net)如何启动另一个程序。
答案:process
4.在.net(C#orvb.net)中如何取消一个窗体的关闭。
答案:
privatevoidForm1_Closing(objectsender,System.ComponentModel.CancelEventArgse)
{
e.Cancel=true;
}
5.在.net(C#orvb.net)中,Appplication.Exit还是Form.Close有什么不同?
答案:一个是退出整个应用程序,一个是关闭其中一个form
6.在C#中有一个double型的变量,比如10321.5,比如122235401.21644,作为货币的值如何按各个不同国家的习惯来输出。比如美国用$10,321.50和$122,235,401.22而在英国则为£10321.50和£122235401.22
答案:
System.Globalization.CultureInfoMyCulture=newSystem.Globalization.CultureInfo("en-US");
//System.Globalization.CultureInfoMyCulture=newSystem.Globalization.CultureInfo("en-GB");为英国货币类型
decimaly=9999999999999999999999999999m;
stringstr=String.Format(MyCulture,"Myamount={0:c}",y);
7.某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
(1)密码单词的最小长度是两个字母,可以相同,也可以不同
(2)K不可能是单词的第一个字母
(3)如果L出现,则出现次数不止一次
(4)M不能使最后一个也不能是倒数第二个字母
(5)K出现,则N就一定出现
(6)O如果是最后一个字母,则L一定出现
问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?
A)KB)LC)MD)N
答案:B
问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?
A)1个B)3个C)6个D)9个
答案:A
问题三:下列哪一个是单词密码?
A)KLLNB)LOMLC)MLLOD)NMKO
答案:C
8.62-63=1等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?
答案:62移动成2的6次方