c#期末考试复习题及答案
时间:2025-04-04
时间:2025-04-04
程序语言
基于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. 以下程序的输出结果是_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块 …… 此处隐藏:6574字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:招聘渠道分析比较表
下一篇:人才选拔激励机制的典型方式