经典试题[4]
一.填空题
1.c#中的三元运算符是?
答: ?: 它带三个操作数并使用中缀表示法 (c? x: y)。
2.当整数a赋值给一个object对象时,整数a将会被 ?
?答:装箱.(装箱是值类型到 object 类型或到该值类型所实现的任何接口类型的隐式转换。取消装箱是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。)
3.类成员有几种可访问形式?
答:两种(实例成员必须通过实例访问,静态成员必须通过类型访问。)
4.public static const int A=1;这段代码有错误么?是什么?
答:有,static 不能修饰const,因为常数或者类型声明隐式地是静态成员.
5.float f=-123.567F;
? int i=(int)f;
i的值现在是?
答:-123(注意:是负数,四舍五入后就成-123了.)
6.利用operator声明且仅声明了“==”,有什么错误么?
7.委托声明的关键字是?答:delegate
8.用sealed修饰的类有什么特点?答:不可被继承
9.在Asp.net中所有的自定义用户控件都必须继承自?答:System.Web.UI.UserControl
10.在.Net中所有可序列化的类都被标记为?答:[Serializable]
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();
?????? }
13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,______(可以 or 不可以)从T派生出新的类,____(可以 or 不可以)直接创建T的任何实例。
答:1,不可以;2,不可以;因为他受保护级别限制.
14.下面这段代码有错误么?
??? switch (i){
??? case():
??????? CaseZero();
??????? break;
??? case 1:
??????? CaseOne();
??????? break;
??? case 2:
??????? dufault;
??????? CaseTwo();
??????? break;
?? }
答:有,case(): 不对.default;不能写到case2语句中.
15.在.Net中,类System.Web.UI.Page 可以被继承么?
答:可以.
二.简答题
1.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
答:using 关键字有两个主要用途:
- using 指令???创建命名空间的别名或导入在其他命名空间中定义的类型。
- using 语句???定义一个范围,在此范围末尾将处置对象。
??? new 关键字可用作运算符或修饰符。
- new 运算符???用于在堆上创建对象和调用构造函数。
- new 修饰符???用于隐藏基类成员的继承成员。
4.谈谈类和结构的区别?
答:结构为值类型而不是引用类型,并且结构不支持继承。在结构中不能声明析构函数,在结构中不能声明无参数的实例构造函数
10.下面这段代码输出什么?为什么?
???? int i=5;
???? int j=5;
???? if (Object.ReferenceEquals(i,j))
????????? Console.WriteLine("Equal");
???? else
????????? Console.WriteLine("Not Equal");
答:Not Equal
因为i,j被装箱后,分别得到不同的实例.