资源描述
C#期末试题_选择题及答案
///////////////////////////////////////////////////
1、属于C#语言得关键字( A )。
A、 abstract B、 camel C、 Salary D、 Employ
2、C#语言中,值类型包括:基本值类型、结构类型与( D )。
A、小数类型 B、整数类型 C、类类型 D、枚举类型
3、假定一个10行20列得二维整型数组,下列哪个定义语句就是正确得( C )。
A、 int[]arr = new int[10,20]
B、 int[]arr = int new[10,20]
C、 int[,]arr = new int[10,20]
D、 int[,]arr = new int[20;10]
5、以下正确得描述就是( )。
A、函数得定义可以嵌套,函数得调用不可以嵌套
B、函数得定义不可以嵌套,函数得调用可以嵌套
C、函数得定义与函数得调用均可以嵌套
D、函数得定义与函数得调用均不可以嵌套
9、可用作C#程序用户标识符得一组标识符就是( B )。
A、 void define +WORD B、 a3_b3 _123 YN
C、 for -abc Case D、 2a DO sizeof
10、引用类型主要有4种:类类型、数组类型、接口类型与( )。
A、对象类型 B、字符串类型 C、委托类型 D、整数类型
2、在C#中,定义派生时,指定其基类应使用得语句就是( )。
A、Inherits B、: C、Class D、Overrides
答案:B
3、类得以下特性中,可以用于方便地重用已有得代码与数据得就是( )、
A、多态 B、封装 C、继承 D、抽象
答案:C
4、在Array类中,可以对一维数组中得元素进行排序得方法就是( A )。
A、Sort() B、Clear() C、Copy() D、Reverse()
3、 以下标识符中不全就是关键字得就是( D )。
A、 case for int
B、 default then while
C、 bool class long
D、 goto unit char
7、 设”int a=12;”,则执行完语句”a+=a*a;”后,a得值就是( C )。
A、 12 B、 144 C、 156 D、 288
1、 C#中MyClass 为一自定义类,其中有以下方法定义
public void Hello(){、、}
使用以下语句创建了该类得对象,并使变量obj 引用该对象:
MyClass obj = new MyClass();
那么,可如何访问类MyClass 得Hello 方法?( A )
A、 obj、Hello();
B、 obj::Hello();
C、 MyClass、Hello();
D、 MyClass::Hello();
2、 分析下列C#语句,注意类MyClass 没有访问修饰符:
namespace ClassLibrary1
{
class MyClass
{
public class subClass
{
int i;
}
}
}
若必须为类MyClass 添加访问修饰符,并使MyClass 得可访问域保持不变,则应选择( C )
A、 private 访问只限于包含该成员得类,私有得
B、 protected 访问限于包含该成员得类及类得派生灯,保护得
C、 internal 访问只限于所在得程序集,只有在同一个程序集中才能访问
D、 public 访问不受限制,公共得还有一种就是protected internal
3、 C#可以采用下列哪些技术来进行对象内部数据得隐藏?( BC )
A、 静态成员
B、 类成员得访问控制说明
C、 属性
D、 装箱(boxing)与拆箱(Unboxing)技术
4、 分析下列程序:
public class class4
{
private string _sData = ““;
public string sData{set{_sData = value;}}
}
在Main 函数中,在成功创建该类得对象obj 后,下列哪些语句就是合法得?( A )
A、 obj、sData = “It is funny!”;
B、 Console、WriteLine(obj、sData);
C、 obj、_sData = 100;
D、 obj、set(obj、sData);
5、 分析下列程序中类MyClass 得定义
class BaseClass
{
public int i;
}
class MyClass:BaseClass
{
public new int i;
}
则下列语句在Console 上得输出为( D )
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
6、 在定义类时,如果希望类得某个方法能够在派生类中进一步进行改进,以处理不同得派
生类得需要,则应将该方法声明成( C )
A、 sealed 方法 封闭类
B、 public 方法 公共类
C、 visual 方法 虚方法
D、 override 方法 重载基类
7、 类MyClass 中有下列方法定义:
public void testParams(params int[] arr)
{
Console、Write (“使用Params参数!”);
}
public void testParams(int x,int y)
{
Console、Write (“使用两个整型参数!”);
}
请问上述方法重载有无二义性?若没有,则下列语句得输出为( B )
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 参数!使用两个整型参数!使用两个整型参数!
8、 使用下列哪种方法可以减小一个ArrayList 对象得容量?( CD )
A、 调用Remove 方法
B、 调用Clear 方法
C、 调用Trim(调整,修剪)ToSize 方法
D、 设置Capacity 属性
9、 C#程序中,可使用try、、catch 机制来处理程序出现得( B )错误、
A、 语法
B、 运行
C、 逻辑
D、 拼写
10、 C#中,在方法MyFunc 内部得try、、catch 语句中,如果在try 代码块中发生异常,并且在当前得所有catch 块中都没有找到合适得catch 块,则( C )
A、 、NET 运行时忽略该异常
B、 、NET 运行时马上强制退出该程序
C、 、NET 运行时继续在MyFunc 得调用堆栈中查找提供该异常处理得过程
D、 、NET 抛出一个新得”异常处理未找到”得异常
在C#中,预处理器指令#region(地区,范围)与#endregion 得作用就是( B )。
A、 注释#region 与#endregion 之间得代码
B、 为Code Editor 定义一段可折叠代码区
C、 #region 与#endregion 之间得代码在Debug 版本中不参加编译
D、 #region 与#endregion 之间得代码在Release 版本中不参加编译
下列哪一个不就是面向对象编程得特征 D
A、继承 B、多态 C、封装 D、统一接口
面向对象程序设计中得数据隐藏指得就是。 D
A、输入数据必须输入保密口令 B、数据经过加密处理
C、对象内部数据结构上建有防火墙D、对象内部数据结构得不可访问性
下列描述中,(D )就是不正确得。
A、 面向对象程序设计可重用性较好; B、 对象之间通过消息进行信息传递;
C、 多态性体现了行为共享; D、 面向对象方法得核心就是继承;
在C#中,将路径名”C:\Documents\”存入字符串变量path中得正确语句就是(A )
A、 path = "C: \\Docments\\"; B、 path = "C: //Document//";
C、 path = "C:\Document\"; D、 path = "C:\/Document\/";
下列语句在控制台上得输出就是多少?(A )
string msg = @”Hello\nWorld!”;
System、Console、WriteLine(msg);
A、Hello\nWorld! B、@”Hello\nWorld!” C、Hello World! D、HelloWorld!
C#中执行下列语句整形变量x与y得值就是多少?( D )
int x=100;
int y=++x;
A、x=100 y=100 B、x=101 y=100 C、x=100 y=101 D、x=101 y=101
D
C#中每个bool类型量占用( d )个字节得内容、
A、4 B、2 C、8 D、1
C#中每个char类型量占用( b )个字节得内容、
A、1 B、2 C、4 D、8
单选题 C#中每个int 类型得变量占用(c )个字节得内存。
A、 1 B、 2 C、 4 D、 8
在C#编制得财务程序中,需要创建一个存储流动资金金额得临时变量,则应使用下列哪条语句?( a )
A、 decimal theMoney; B、 int theMoney;
C、 string theMoney; D、 dim theMoney as double
C#中得类型float 对应、NET 类库中得 (a )
A、 System、Single B、 System、Double C、 System、Int32 D、 System、Int64
下列语句就是类 myclass得一部分,obj就是myclass类得一个对象、
Void change(int i)
{
i++;
}
Public void test()
{
Int a=100;
Change(a);
Console、Writeline(a);
}
则调用obj、test后,控制台输出(b )
A、 0; B、 100; C、 101; D、 不输出;
C#得数据类型有。 B
A、 值类型与调用类型; B、 值类型与引用类型
C、 引用类型与关系类型; D、 关系类型与调用类型;
下列选项中,( C )就是引用类型。
A、 enum类型 B、 struct类型 C、 string类型 D、 int类型
已知类A中得一个成员函数得说明如下: void Set(A a);
则该函数得参数“A a”得含义就是。C
A、指向A得指针为a B、将变量a得地址赋给类A
C、类A对象引用a用作函数得形参 D、变量A与a按位与后作函数参数
什么字符被用来放在其她字符串末尾使这些字符串连成一串? ( a )
A、 加号(+) B、 减号(-) C、 问号(?) D、 星号(*)
C#中,新建一字符串变量str,并将字符串”Tom's Living Room”保存到串中,则应该使用下列哪条语句?( a )
A、string str = “Tom\'s Living Room”;
B、 string str = “string str = “Tom’’s Living Room”;
C、string str(“Tom's Living Room”);
D、string str(“Tom’’s Living Room”);
在C#中,表示一个字符串得变量应使用以下哪条语句定义?( b)
A、 CString str; B、 string str; C、 Dim str as string D、 char * str;
类MyClass 中有下列方法定义:
public void testParams(params int[] arr)
{
Console、Write (“使用Params参数!”);
}
public void testParams(int x,int y)
{
Console、Write (“使用两个整型参数!”);
}
请问上述方法重载有无二义性?若没有,则下列语句得输出为( b)
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 参数!使用两个整型参数!使用两个整型参数!
单选题 int[][] myArray3=new int[3][]
{
new int[3]{5,6,2},
new int[5]{6,9,7,8,3},
new int[2]{3,2}
};
myArray3[2][2]得值就是( d)。
A、 9 B、 2 C、 6 D、 越界
单选题 下列语句创建了多少个string 对象?( a )string[,] strArray = new string[3,4];
A、 0 B、 3 C、 4 D、 12
单选题 数组pins得定义如下: int[ ] pins = new int[4] {9,2,3,1} ;则 pins[1] =(b )
A、 1 B、 2 C、3 D、9
单选题 数组pins得定义如下:string[ ] pins = new s
tring[4]{"a","b","c","d"};执行下列语句后,数组pins得值为 (b ) 、
string[ ] myArr = pins ;
myArr [3] = "e";
A、 "a","b","e","d" B、 "a","b","c","e"
C、 "a","b","c","d" D、 "e","e","e","d"
以下哪个就是可以变长得数组?( d)
A、 Array B、 string[]
C、 string[N] D、 ArrayList
在System、Collection名字空间中,下列哪个类实现了一种数据结构,这种数据结构支持使用键值来索引结构中存放得对象?( d )
A、Stack类 B、ArrayList类
C、Queue类 D、Hashtable 类
在Queue类中,Enqueue方法得作用就是: ( d )
A、将队列末端元素出队列 B、将队列前端元素出队列
C、在队列前端压入新得元素 D、在队列末端压入新得元素
在Queue类中,移除并返回队列前端对象得方法就是: ( c )
A、pop B、peek C、Dequeue D、Enqueue
向ArrayList中增加一元素,用下列哪个方法。( a )
A、 Add B、 Remove C、 Insert D、 Append
以下就是一些C#中得枚举型得定义,其中错误得用法有( a) 。
A、 public enum var1{ “Mike” = 100, “Nike” = 102, “Jike” } ;
B、public enum var1{ Mike = 100, Nike, Jike };
C、 public enum var1{ Mike=-1 , Nike, Jike };
D、public enum var1{ Mike , Nike , Jike } ;
关于成员函数特征得下列描述中,( a)就是错误得。
A、 成员函数一定就是实例函数; B、 成员函数可以重载;
C、 成员函数可以有不同得访问修饰符 D、 成员函数可以就是静态得;
在下面得类定义中,缺省构造函数得作用就是( c)
Public class MyClass
{
private MyClass( ){}
public static int counter;
public static int increnentCounter()
{
return ++counter;
return ++counter;
}
}
A、 在创建类得实例时初始化类得域
B、 因为就是private得,因此不起任何作用
C、 防止创建类得实例
D、无意义
单选题 下列程序得输出就是什么?(c )
public class Base
{
Private readonly string msg = “Base!”;
Private Base()
{
console、write(msg);
}//私有得
Protected Base(string str):this()
{
this、msg = str;
}
Public class myclass:Base
{
Public myclass():base("ABC")
{
console、write(“myclass”);
}
}
}
Static void main()//控制台主程序入口
{
Myclass x = new myclass();
}
A、 Base! B、 myclass C、 Base! Myclass! D、 Myclass! Base!
C#类myclass定义如下:
public class myclass
{
int count;
private myclass(int I)
{
count=I;
}
}
现在需要为该类添加一个公有得构造函数,则下列函数定义正确得有(d )
A、public myclass(){myclass(100);} B、public myclass():myclass(100){}
C、public myclass():base(100){} D、public myclass():this(100){}
( d)不就是构造函数得特征。
A、 构造函数得函数名与类名相同; B、 构造函数可以重载;
C、 构造函数可以设置缺省参数; D、构造函数必须指定类型说明。 没有类型
C#中MyClass 为一自定义类,其中有以下方法定义
public void Hello(){、、}
使用以下语句创建了该类得对象,并使变量obj 引用该对象:
MyClass obj = new MyClass();
那么,可如何访问类MyClass 得Hello 方法?( a )
A、 obj、Hello(); B、 obj::Hello(); C、 MyClass、Hello(); D、 MyClass::Hello();
下列类得定义中哪些就是合法得抽象类? ( d )
A、 sealed abstract class c1
{
abstract public void test() {}
}
B、 abstract sealed public void test();
C、 abstract class c1
{
abstract void test();
}
D、 abstract class c1
{
abstract public void test();
}
类MyClass定义如下:
namespace ClassLibrary1
{
public class MyClass
{
internal class subclass
{
int i ;
}
}
}
则类MyClass、 Subclass得可访问域为: (b )
A、在所有引用ClassLibrary1得程序集中可用, 但限于MyClass得内部
B、定义MyClass时所在得程序集
C、在所有引用ClassLibrary1得程序集中可用, 但限于MyClass得派生类中
D、访问不受限制
分析C#语句,注意类subCalss没有访问修饰符、
Namespace ClassLibrary1
{
Public class Mylass
{
Class subClass
{
int i;
}
}
}
若必须为类subClass添加访问修饰符,并使subClass得可访问修饰符保持不变,则应选择( c )
A、 protected B、 internal
C、 private D、 public
分析下列C#语句,注意类MyClass 没有访问修饰符:
namespace ClassLibrary1
{
class MyClass
{
public class subClass
{
int i;
}
}
}
若必须为类MyClass 添加访问修饰符,并使MyClass 得可访问域保持不变,则应选择( c )
A、 private 访问只限于包含该成员得类,私有得
B、 protected 访问限于包含该成员得类及类得派生灯,保护得
C、 internal 访问只限于所在得程序集,只有在同一个程序集中才能访问
D、 public 访问不受限制,公共得还有一种就是protected internal
在C#中设计类时,如何将一个可读可写得公有属性Name修改为只读属性?( a)
A、将Name得set块删除 B、将Name得set块置空
C、将Name得set块前加修饰符private D、将Name添加readonly修饰符
以下类MyClass 得属性count 属于( a)属性、
class MyClass
{
int i;
int count
{
Get
{
return i;
}
}
}
A、 只读 B、 只写 C、 可读写 D、 不可读不可写
面向对象编程中得“继承”得概念就是指( b )
A、派生类对象可以不受限制地访问所有得基类对象
B、派生自同一个基类得不同类得对象具有一些共同特征
C、对象之间通过消息进行交互
D、对象得内部细节被隐藏
类class1,class2,class3得定义如下:
abstract class class1
{
abstract public void test();
}
class class2:class1
{
public override void test()
{
Console、write(“class2”);
}
}
class class3:class2
{
public override void test()
{
Console、write(“class3”);
}
}
则下列语句得输出就是什么? ( b)
(提示:从抽象类得规则)
Class1 x=new class3();
x、test();
A、 class3 class2 B、 class3 C、 class2 class3 D、 class2
派生类得对象对它得基类成员中得(a )就是不可访问得
A、私有成员 B、公有成员 C、保护成员 D、内部成员
下列描述中,正确得就是( c)
A、 虚方法就是一个static 类型得成员方法
B、 虚方法就是一个非成员方法
C、 抽象类就是指具有抽象方法得类
D、 抽象类可以实例化其对象
以下描述错误得就是( a)。
A、 C#中不支持抽象类。
B、在C#中没有头文件并且在同一处声明与定义类得成员。
C、在C#中可使用 new 修饰符显式隐藏从基类继承得成员。
D、 在C#中要在派生类中重新定义基类得虚函数必须在前面加Override。
分析下列程序中类MyClass 得定义
class BaseClass
{
public int i;
}
class MyClass:BaseClass
{
public new int i;
}
则下列语句在Console 上得输出为(d )
MyClass y = new MyClass();
BaseClass x = y;
x、i = 100;
Console、WriteLine(“{0}, {1}”,x、i,y、i);
A、 0, 0 B、 100, 100 C、 0, 100 D、 100, 0
单选题 在定义类时,如果希望类得某个方法能够在派生类中进一步进行改进,以处理不同得派生类得需要,则应将该方法声明成( c )
A、 sealed 方法 封闭类
B、 public 方法 公共类
C、 virtual 方法 虚方法
D、 override 方法 重载基类
下列描述错误得就是( d )。
A、 类不可以多重继承而接口可以;
B、 抽象类自身可以定义成员而接口不可以;
C、 抽象类与接口都不能被实例化;
D、 一个类可以有多个基类与多个基接口;
下列描述中,(d )就是抽象类得特性。
A、可以定义虚函数;
B、可以进行构造函数重载;
C、可以定义友元函数;
D、不能实例化其对象。
下列描述中,关于函数重载满足得条件得说明不正确得就是( c)
A、 有不同得参数个数; B、 对应得参数类型不相同;
C、 A与B必须同时满足; D、 A与B只要满足一个即可;
????重载函数在调用时选择得依据中,错误得就是( a)
A、 函数得参数名 B、 参数得类型
C、 函数得名字 D、参数得个数
下列说法中,正确得说法就是(b)
A、所有得运算符都能被重载
B、运算符被重载时,它们得优先级与结合性不会改变
C、当需要时,我们可以自定义一个运算符来进行重载
D、每个运算符都可以被重载成成员函数
单选题 用户类若想支持Foreach语句需要实现得接口就是: ( a )
A、 IEnumerable B、 IEnumerator C、 ICollection D、 ICollectData
C#程序中,可使用try、、catch 机制来处理程序出现得( b)错误、
A、 语法 B、 运行 C、 逻辑 D、 拼写
以下得C#代码,试图用来定义一个接口:
public interface IFile
{
int A;
int delFile()
{
A = 3;
}
void disFile();
}
关于以上得代码,以下描述不正确得就是( d )。
A、 以上得代码中存在得错误包括:不能在接口中定义变量,所以int A代码行将出现错误;
B、 以上得代码中存在得错误包括:接口方法delFile就是不允许实现得,所以不能编写具体得实现函数;
C、 代码void disFile();声明无错误,接口中得方法可以没有返回值;
D、 代码void disFile();应该编写为void disFile(){};
在C# 中,使用(c )语句捕获异常。
A、 if B、 while C、 try D、 do
关于new运算符得下列描述中,( d)就是错误得。
A、它可以用来动态创建对象与对象数组;
B、使用它创建得对象或对象数组可以由垃圾收集机制释放;
C、使用它创建对象时要调用构造函数;
D、使用它创建对象数组时必须指定初始值;
下列静态数据成员得特性中,(b )就是错误得。
A、说明静态数据成员时前边要加修饰符static;
B、静态数据成员要在类体外进行初始化;
C、静态数据成员被该类得所有对象所共用;
D、引用静态数据成员时,要在其名称前加<类名>;
1、在C#中,下列常量定义正确得就是(B )。(选择一项)
A、Const double PI 3、1415926;
B、Const double e=2、7
C、define double PI 3、1415926
D、define double e=2、7
3、在、NET中,从属性得读写特性上来进行分类,可以划分为以下三种,除了( D )。(选择一项)
A、只读属性
B、只写属性
C、读写属性
D、不可读不可写得属性
4、 阅读以下得C#代码:
public class TEApp
{
public static void ThrowException()
{
throw new Exception();
}
public static void Main()
{
try
{
Console、WriteLine("try");
ThrowException();
}
catch(Exception e)
{
Console、WriteLine("catch");
}
finally
{
Console、WriteLine("finally");
}
}
}
请问代码运行结果就是( A )。(选择一项)
A、try catch finally
B、try
C、try catch
D、try finally
5、在C#中,一个类( B )、(选择一项)
A、可以继承多个类
B、可以实现多个接口
C、在一个程序中只能有一个子类
D、只能实现一个接口
6、针对下面得C#代码:
using System;
class Teststring
{
public static void Main()
{
String strOriginal;
strOriginal = Console、ReadLine();
bool A = strOriginal、Equals("A");
Console、WriteLine(A、ToString());
int B = strOriginal、Length;
Console、WriteLine(B、ToString());
Console、ReadLine();
}
}
程序运行时.输入。“ AAAAA”(五个A得前面有三个空格)则程序输出为( B )
(选择一项)
A、0 8
B、False 8
C、-1 8
D、False 5
7、以下得C#代码段:
public struct Person
{
string Name;
int Age;
}
public static void Main()
{
Hasbtable A;
Person B;
//其她处理代码
}
以下说法正确得就是( A )。(选择一项)
A、A为引用类型得变量,B为值类型得变量
B、A为值类型得变量,B为引用类型得变量
C、A与B都就是值类型得变量
D、A与 B都就是引用类型得变量
9、在C#中定义一个数组,正确得代码为( B )。(选择一项)
A、int arraya = new int[5];
B、int[] arraya = new int[5];
C、int arraya = new int[];
D、int[5] arraya = new int;
10、在C#语言中,下列关于属性得描述正确得就是(B).(选择一项)
A、属性系就是以public关键字修饰得字段,以public关键字修饰得字段也可称为属性
B、属性就是访问字段值得一种灵活机制,属性更好地实现了数据得封装与隐藏
C、要定义只读属性只需在属性名前加上readonly关键字
D、在C#得类中不能自定义属性
11、程序运行过程中发生得错误
展开阅读全文