基于C#的OOP技术课程 复习题
///////////////////////////////////////////////////
一、判断题(本大题共10个小题,每小题1分,共10分)
1.在同一行上可以书写多条语句,每条语句间用分号分隔。(t )
2.在数据类型转化时,只能通过类型转换关键字或Convert类实现。(f )
3.接口与类同样是面向对象程序设计的核心,是创建对象的模版。(F )
4.委托是将方法作为参数传递给另一方法的一种数据类型。事件与委托没有关系。(F )
5.可以重写私有的虚方法。(T )
6.使用Directory类的Move()方法可以删除文件.(T )
7.不能指定接口中方法的修饰符。(T )
8.在定义数组时不允许为数组中的元素赋值。(F )
9.接口与类同样是面向对象程序设计的核心,是创建对象的模版。( )
10.如果要实现重写,在基类的方法中必须使用virtual关键字,在派生类的方法中必须使用overrides关键字。(T )
11.在C#中,所有类都是直接或间接地继承System.Object类而得来的。(T )
12.在C#中,任何方法都不能实现多继承。(F )
13.在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。(F )
14.可以阻止某一个类被其他类继承。(T )
15.使用FileInfo类的Copy()方法可以复制文件.(T )
二、选择题(本大题共20个小题,每小题2分,共40分)
1.在 C#中,表示一个字符串的变量应使用以下哪条语句定义? B
A.CString str;
B.string str;
C.Dim str as string
D。char * str;
2.C#中 MyClass 为一自定义类,其中有以下方法定义:A
public void Hello(){…}
使用以下语句创 建了该类的对象,并使变量 obj 引用该对象,那么,访问类MyClass的Hello方法正确的是:
MyClass obj = new MyClass();
A.obj。Hello();
B.obj::Hello();
C。MyClass.Hello();
D.MyClass::Hello();
3.分析下列程序中类 MyClass 的定义 D
class BaseClass
{ public int i; }
class MyClass:BaseClass
{ public new int i;}
则下列语句在 Console 上的输出为_______。
MyClass y = new MyClass();
BaseClass x = y;
x。i = 100;
Console.WriteLine(”{0}, {1}”,x.i,y。i); //(提示:注意类 MyClass 中的 new 关键字)
A.0, 0
B.100, 100
C.0, 100
D.100, 0
4.在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成_C___。
A.sealed 方法
B.public 方法
C。virtual 方法
D.override 方法
5.为了将字符串 str=“123,456”转换成整数 123456,应该使用以下哪条语句? A
A。int Num = int。Parse(str);
B.int Num = str.Parse(int);
C.int Num = (int)str;
D.int Num = int。Parse(str,Globalization。NumberStyles.AllowThousands);
6.在 C#语言中,下列能够作为变量名的是_C___。
A.if
B。3ab
C.a_3b
D.a-bc
7.writeline方法属于类以下程序的输出结果是_C___。
Using system;
Class Example1
{
Public Static void main() {
Int a=5,b=4,c=6,d;
Console。Writeline(“{0}”,d=a〉b?(a〉c?a:c):b);
}
}
A.5
B。4
C。6
D.不确定
8.能正确表示逻辑关系“a>=10 或 a〈=0”的 C#语言表达式是_D___。
A.a〉=10 or a〈=0
B.a>=10|a<=0
C.a〉=10&&a〈=0
D。a>=10||a<=0
9.以下关于 for 循环的说法不正确的是__A__。
A.for 循环只能用于循环次数已经确定的情况
B。for 循环是先判定表达式,后执行循环体语句
C。for 循环中,可以用 break语句跳出循环体
D.for 循环体语句中,可以包含多条语句,但要用花括号括起来。
10.有如下程序 Using system; C
Class Example1
{
Public Static void main()
{
Int x=1,a=0,b=0;
Switch(x)
{
Case 0:b++,break;
Case 1:a++,break;
Case 2:a++,b++;break;
} Console。Writeline(“a={0},b={1}",a,b);
} }的输出结果是
A.a=2,b=1
B。a=1,b=1
C.a=1,b=0
D。a=2,b=2
11.关于 C#语言的方法,下列叙述中正确的是_A___。
A。方法的定义不能嵌套,但方法调用可以嵌套
B。方法的定义可以嵌套,但方法调用不能嵌套
C.方法的定义和调用都不能嵌套
D。方法的定义和调用都可以嵌套
12.下列程序的结果是: B
Using system;
Class Example1
{
Static long fib(int n)
{
If(n〉2) return(fib(n-1)+fib(n-2));
Else rerurn(2);
} Public Static void main()
{ Console.Writeline(“{0}",fib(3));
} }
A.2
B。4
C。6
D.8
13.调用重载方法时,系统根据___B_____来选择具体的方法。
A.方法名
B。参数的个数和类型
C。参数名及参数个数
D。方法的返回值类型
14.下列的___D____不是构造函数的特征。
A.构造函数的函数名和类名相同
B.构造函数可以重载
C。构造函数可以带有参数
D.可以指定构造函数的返回值
15.已知类 B 是由类 A继承而来,类 A 中有一个为 M 的非虚方法,现在希望在类 B 中也 定义一个名为 M 的方法,若希望编译时不出现警告信息,则在类 B中声明该方法时,应使 用____B____方法。
A。static
B.new
C。override
D。virtual
16.下列关于 try…catch…finaly语句的说明中,不正确的是____D_____。
A.catch块可以有多个
B。finaly
C.catch块也是可选的
D。可以只有 try块
17.以下标识符中,正确的是_A___。
A._nName
B.typeof
C。6b
D。x5#
18.下面有关运算符的说法正确的是_D___
A。算术运算符不能对布尔类型,String*(字符串类型)和 Object*(对象类型) 进行算术运算
B。关系运算中的”= ="和赋值运算符中的”=”是相同的
C。sizeof 运算符用来查询某种数据类型或表达式的值在内存中所占懂得内存空间大小(字 节数)
D.括号在运算符中的优先级中是最高的,它可以改变表达式的运算顺序
19.下面对抽象类描述不正确的是__C____。
A.抽象类只能作为基类使用
B.抽象类不能定义对象
C.抽象类可以实例对象
D。可以实现多态
20.下面对异常说法不正确的是_D__
A。try/catch块为基本引发异常的组合
B.在捕获异常时,可以有多个 catch块
C。无论异常是否发生,finally块总会执行
D.try块和 finally 不能连用
1.C#中,新建一字符串变量 str,并将字符串"Tom’s Living Room”保存到串中,则应该使用下列哪条语句? A
A.string str = "Tom\'s Living Room";
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论