下列关于构造函数的描述正确的是(
ZHEJIANG WATER CONSERVANCY AND HYDROPOWER COLLEGE
浙 江 水 利 水 电 专 科 学 校 习题集 Exercises
1. 下列关于构造函数的描述正确的是( )
A.构造函数可以声明返回类型。
B.构造函数不可以用private修饰
C.构造函数必须与类名相同
D.构造函数不能带参数
正确答案:C
2. class Class1
{ private static int count = 0;
static Class1()
{
count++;
}
public Class1()
{
count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
请问,o1.Count的值是多少?( )
A.1
B.2
C.3
D.4
正确答案:C
3. 分析C#语句,注意类subCalss没有访问修饰符。
Namespace ClassLibrary1
{
public class Mylass
{
Class subClass
{
int i;
}
}
}
若必须为类subClass添加访问修饰符,并使subClass的可访问修饰符保持不变,则应选择( )
A.protected
B.internal
C.private
D.public
正确答案:D
4. 下列类的定义是否合法?( ) (提示:注意两个类的访问修饰符的不同)
internal class Base
{
}
public class MyClass:Base
{
}
A.合法
B. 不合法
正确答案:B
5. 下列类MyClass的Name属性定义是否正确?
public abstract class Base
{ }
public class MyClass:Base
{ } string n; public override string Name{get{return n;} set{n=value;}} public abstract string Name{get;set;}
A.不正确
B.正确
正确答案:B
6. 在C#中设计时,如何将一个可读写的公有属性Nmae修改为只读属性?( )
A.为Nmae添加修饰符
B.将Nmae的set块置空
C.将Nmae的set块删除
D.在Nmae的set块前加修饰符pravite
正确答案:C
7. 分析以下程序.注意静态构造函数内使用的赋值语句为counter=0.
public class staticClass
{ static private int _counter;
//私有构造函数防止对象生成
private staticClass(){}
//静态构造函数
static staticClass()
{ counter = 0;
Console.Write (“init!”);
}
static public int counter
{ get{Console.Write(“get!”);return _counter;}
set{Console.Write(“set!”);_counter=value;}
}
}
则调用语句CladdLibrary1.staticClass.counter = 100;的输出是( )
A.set! init! set!
B.set! init!
C.init! set!
D.set!
正确答案:A
8. { int count ; string msg ; } 则该类的缺省构造函数为: ( )
A. internal MyClass() { }
B. public MyClass(){
C. public MyC\lass {}
D. 不存在
正确答案:C
9. 在下面的类定义中,缺省构造函数的作用是( )
public class MyClass
{
private MyClass( ){}
public static int counter;
public static int increnentCounter()
{
return ++counter;
return ++counter;
}
}
A.在创建类的实例时初始化类的域
B.因为是private的,因此不起任何作用
C.防止创建类的实例
正确答案:C
10. C#类myclass定义如下:
public class myclass
{
int count;
private myclass(int I){count=I;}
}
现在需要为该类添加一个公有的构造函数,则下列函数定义正确的有( )
A.public myclass(){myclass(100);}
B.public myclass();myclass(100){}
C.public myclass();base(100){}
D.public myclass();this(100){}
正确答案:D
11. 类MyClass定义如下:
namespace ClassLibrary1
{ public class MyClass
{ internal class subclass
{ int i ; } } }
则类MyClass. Subclass的可访问域为: ( )
A.在所有引用ClassLibrary1的程序集中可用, 但限于MyClass的内部
B.定义MyClass时所在的程序集
C.在所有引用ClassLibrary1的程序集中可用, 但限于MyClass的派生类中
D.访问不受限制
正确答案:B
12. 以下关于ref和out的描述哪些项是正确的?( )
A.使用ref参数,传递到ref参数的参数必须最先初始化。
B.使用out参数,传递到out参数的参数必须最先初始化。
C.使用ref参数,必须将参数作为ref参数显式传递到方法。
D.使用out参数,必须将参数作为out参数显式传递到方法。
正确答案:ACD
13. 类MyClass 中有下列方法定义:
public void testParams(params int[] arr)
{
Console.Write (“使用Params参数!”);
}
public void testParams(int x,int y)
{
Console.Write (“使用两个整型参数!”);
}
请问上述方法重载有无二义性?若没有,则下列语句的输出为( )。
MyClass x = new MyClass();
x.testParams(0);
x.testParams(0,1);
x.testParams(0,1,2);
A. 有语义二义性;
B. 使用Params 参数!使用两个整型参数!使用Params 参数!
C. 使用Params 参数!使用Params 参数!使用Params 参数!
D. 使用Params 参数!使用两个整型参数!使用两个整型参数!
正确答案:B
14. 下列关于C#中索引器理解正确的是( )
A.索引器的参数必须是两个或两个以上
B.索引器的参数类型必须是整数型
C.索引器没有名字
D.以上皆非
正确答案:C
15. 在C#中设计类时,应如何保证在释放对象的所有引用之前,释放对象使用的文件、网络等资源?( )A.为类添加析构函数,在析构函数中释放资源
B.为类重载new运算符
C.为实现IDisposable借口
D.为类添加delete运算符
正确答案:AC
16. 编程题:创建一个关于人的类(其属性有姓名、性别、年龄、身高、体重等),并定义一些设置属性和
获取属性值的方法。最后通过实例化该类,来进行测试