内容发布更新时间 : 2024/12/24 0:42:09星期一 下面是文章的全部内容请认真阅读。
洛阳理工学院 2010/2011 学年 第一学期 面向对象程序设计 期末考试试题卷(A)
适用班级: B100513/14/15/16 考试时间: 120分钟 注意:看清题目要求,书写整洁!
一、 选择题(每小题2分,30题共计60分)
1. C#中每个int 类型的变量占用( )个字节的内存。
A. 1 B. 2 C. 4 D. 8 2. 在C#中,表示一个字符串的变量应使用以下哪条语句定义?( )
A. CString str; B. string str; C. Dim str as string D. char * str; 3. 在C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪条语句?( ) A. decimal theMoney; B. int theMoney; C. string theMoney; D. Dim theMoney as double 4. C#中,新建一字符串变量str,并将字符串\保存到串中, 则应该使用下列哪条语句?( )
A. string str = \ B. string str = \ C. string str(\ D. string str(\ 5. C#中MyClass 为一自定义类,其中定义了以下方法 public void Hello() { … }
使用以下语句创建了该类的对象,并使变量obj 引用该对象: MyClass obj = new MyClass();
那么,可如何访问类MyClass 的Hello 方法?( )
A. obj.Hello(); B. obj::Hello(); C. MyClass.Hello(); D. MyClass::Hello(); 6. 分析下列C#语句,注意类MyClass 没有访问修饰符:
namespace ClassLibrary1 {
class MyClass {
public class subclass {
int i; } } }
若必须为类MyClass 添加访问修饰符,并使MyClass 的可访问域保持不变,则应选择( )。 A. private B. protected C. internal D. public 7. 分析下列程序: public class class4 {
private string _sData = \public string sData { set {
_sData = value; } } }
在Main 函数中,在成功创建该类的对象obj 后,下列哪些语句是合法的?( ) A. obj.sData = \ B. Console.WriteLine(obj.sData);
第 1 页 共 10 页
C. obj._sData = 100; D. obj.set(obj.sData);
8. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该
方法声明成( )。 A. sealed 方法 B. public 方法 C. virtual 方法 D. override 方法 9. 类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 参数!使用两个整型参数!使用两个整型参数!
10. C#程序中,可使用try…catch 机制来处理程序出现的( )错误。
A. 语法 B. 运行 C. 逻辑 D. 拼写 11. 下列语句创建了多少个string 对象?( ) string [,] strArray = new string [3, 4];
A. 0 B. 3 C. 4 D. 12 12. 接口Animal 定义如下: public interface Animal {
void Move(); }
则下列抽象类的定义中,哪些是不合法的?( ) A. abstract class Cat: Animal {
abstract public void Move(); }
B. abstract class Cat: Animal {
virtual public void Move() {
Console.Write(\} }
C. abstract class Cat: Animal {
public void Move() {
第 2 页 共 10 页
Console.Write(\} }
D. abstract class Cat: Animal {
public void Eat() {
Console.Write(\}
}
13. 在使用FileStream 打开一个文件时,通过使用FileMode 枚举类型的( )成员,来指定操作系
统打开一个现有文件并把文件读写指针定位在文件尾部。 A. Append B. Create C. CreateNew D. Truncate 14. 在类的定义中,类的( )描述了该类的对象的行为特征。
A. 类名 B. 方法 C. 所属的名字空间 D. 私有域 15. 以下类MyClass 的属性count 属于( )属性. class MyClass {
int i; int count {
get {
return i; } } }
A. 只读 B. 只写 C. 可读写 D. 不可读不可写 16. 已知类MyClass 中事件MouseClicked 定义如下: public static event MouseClickedListener MouseClicked; 执行下列语句:
MouseClicked += new MouseClickedListener(obj.DoSomething); MouseClicked += new MouseClickedListener(obj.DoSomething); 然后引发该MouseClicked 事件,其结果为:( )
A. obj.DoSomething 方法被调用4 次 B. obj.DoSomething 方法被调用2 次 C. obj.DoSomething 方法被调用1 次 D. obj. DoSomething 方法不会被调用 17. 假设变量x的值为25,要输出x的值,下列正确的语句是( )。
A. System.Console.writeline(“x”); B. System.Console.WriteLine(“x”); C. System.Console.WriteLine(“x={0}”, x); D. System.Console.WriteLine(“x={x}”); 18. 关于C#程序的书写,下列不正确的说法是( )。 A. 区分大小写 B. 一行可以写多条语句
C. 一条语句可写成多行 D. 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 19. 在C#语言中,下列能够作为变量名的是( )。
A. if B. 3ab C. a_3b D. a-bc 20. 在C#语言中,下面的运算符中,优先级最高的是( )。
A. % B. ++ C. /= D. >>
21. 能正确表示逻辑关系“a >= 10 或a <= 0”的C#语言表达式是( )。
第 3 页 共 10 页
A. a >= 10 or a <= 0 B. a >= 10 | a <= 0 C. a >= 10 && a <= 0 D. a >= 10 || a <= 0 22. 以下程序的输出结果是( )。 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.不确定 23. 有如下程序: using System; 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 24. 以下关于for循环的说法不正确的是( )。
A. for循环只能用于循环次数已经确定的情况 B. for循环是先判定表达式,后执行循环体语句 C. for循环体语句中,可以用break语句跳出循环体
D. for循环体语句中,可以包含多条语句,但要用花括号括起来 25. 关于C#语言的方法,下列叙述中正确的是( )。
A. 方法的定义不能嵌套,但方法调用可以嵌套 B. 方法的定义可以嵌套,但方法调用不能嵌套 C. 方法的定义和调用都不能嵌套 D. 方法的定义和调用都可以嵌套 26. 以下所列的各个方法头中,正确的是( )。
A. void play(var a: Integer, var b: Integer) B. void play(int a,b)
第 4 页 共 10 页
C. void play(int a, int b) D. Sub play(a as integer, b as integer) 27. 下列程序的输出结果是( )。 using System; class Example1 {
static long sub(int x, int y)
{ int z;
z = x * x + y * y; return z;
}
public static void Main()
{
int a = 30;
sub(5, 2);
Console.WriteLine(“{0}”, a);
} }
A. 0 B. 29 C. 30 D. 无定值 28. 以下对枚举的定义,正确的是( )。
A. enum a = {one, two, three} B. enum a {a1, a2, a3};
C. enum a = {?1?, ?2?, ?3?}; D. enum a {“one”, ”two”, ”three”}; 29. 调用重载方法时,系统根据( )来选择具体的方法。
A. 方法名 B. 参数的个数和类型 C. 参数名及参数个数 D. 方法的返回值类型 30. 下列的( )不是构造函数的特征。
A. 构造函数的函数名和类名相同 B. 构造函数可以重载
C. 构造函数可以带有参数 D. 可以指定构造函数的返回值
二、 程序填空题 (每空2分,10空共计20分)
1. 请补充程序,使输出结果为:a=20,b=10
class Program {
static void Main() {
int a = 10, b = 20;
Swap( 1 , 2 ); Console.WriteLine(\引用传递: a = {0}, b = {1}\ Console.ReadLine(); }
public static void Swap( 3 , 4 ) {
int z = x; x = y; y = z; }
}
2. 定义一个抽象类Vehicle,然后再定义它的一个派生类Truck,Truck类实现Vehicle类抽象方法和虚拟方法。
请把程序补充完整。
public 5 class Vehicle {
private float speed; public float Speed {
第 5 页 共 10 页