一、填空题:
1、NET框架包括 公共语言运行库 和 .NET类库 。
2、如果希望某个类不能被其它类继承,那么应该为这个类添加关键字 sealed 。
3、在C#程序中,程序的执行总是从 Main() 方法开始的。
4、类的静态成员属于 类 所有,非静态成员属于类的实例所有。
5、数据类型说明符用来说明方法返回值的类型,如果没有返回值,则其类型说明符应为 void 。
6、要给属于对应的数据成员赋值,通常要使用set访问器,set访问器始终使用 value 来设置属性的值。
7、在声名类时,在类名前 abstract 修饰符,则声明的类只能作为其他的基类,不能被实例化。
二、判断正误题(每小题1分,共10分)
1、C#要求程序中的每个元素都要属于一个类。 答:对
2、while 循环是预测试循环。 答:对
3、类和对象的区别就是,类是对象的实例,而对象则是类的抽象。答:错
4、在C#中,装箱操作是将值类型转化成引用类型。 答:对
5、异常类对象均为System.Exception类的对象。 答:对
6、运行NET程序,不需要安装.NET Framework 答:错
7、声明委托实际上是声明了一个方法。 答:错
8、在C#中可以使用String作为变量名,但不能使用string作为变量名。答:对
9、虚函数是抽象类的一个特例。答:错
writeline方法属于类10、当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。答:对
11、在C# 2005编程环境中,常量的值可以在代码中被修改。答:错
12、c#中已经不包含指针。 答:对
13、C#使用try-catch-finally异常处理机制捕捉和处理错误。答:对
14、属性就是实体特征的抽象,比如,对象猫可以有重量,身长等属性。答:对
三、选择题(每小题2分,共30分)
1、关于C#语言的方法,下列叙述正确的___A____.
A、方法的定义不能嵌套, 但方法调用可以嵌套
B、方法的定义可以嵌套, 但方法调用不能嵌套
C、方法的定义和调用都不能调用
D、方法的定义和调用都可以嵌套
2、关于C#程序的书写,下列不正确的说法是_D___。
A.区分大小写 B.一行可以写多条语句
C.一条语句可以写成多行
D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法
3、以下所列的各方法头部中, 正确的是____C____.
A、void play(var a:lnteger,var b:lnteger)
B、void play(int a,b)
C、void play(int a,int b)
D、Sub play(a as lnteger,b as lnteger)
4、下列的______D________ 不是构造函数的特征。
A.构造函数的函数名与类名相同 B.构造函数可以重载。
C.构造函数可以带有参数 D.可以指定构造函数的返回值类型
5、为了能够在程序中捕获所有异常,在catch语句的括号中使用的类名为___A_______
A.Exception B.DivideByZeroException
C.FormatException D.以上三个均可
6、下列说法正确的是__D___
A.在C#中,编译时对数组下标越界将作检查
B.在C#中,程序运行时,数组下标越界也不会产生异常
C.在C#中, 程序运行时, 数组下标越界是否产生异常由用户确定
D.在C#中, 程序运行时, 数组下标越界一定会产生异常
7、在C#中,使用____D__语句捕获异常 ( )
A、do B、while
C、if D、try 和catch
8、调用重载方法时,系统根据_____B_______来选择具体的方法。
A.方法名 B.参数的个数和类型
C.参数的及参数个数 D.方法的返回值值类型
9、类ClassA有一个名为MI的方法,在程序中有如下一段代码,假设该代码是可以执行的,则声明MI方法一定使用了_____B_____修饰符。
ClassA Aobj=new ClassA();
ClassA.MI();
A.public B.static C.private D.virtual
10、关于异常,下列的说法中不正确的是___D____
A.用户可以根据需要抛出异常
B.在被调方法中可通过 throw 语句把异常传回给调用方法
C.用户可以自己定义异常
D.在C#中有的异常不能被捕获
四、读程题
1、下列程序的作用是:求出所有的水仙花数。(所谓水仙花数是指这样的数:该数是三位数,其各位数字的立方和等于该数。如:153=13+53+33,所以153是一个水仙花数) 。填空:
using System;
class Da
{
public ___static__________ void Main()
{
int i,a,b,c,t;
for(i=100;i<= ___999___ ;i++)
{
t=i;
a=____t/100___;t=t/10;b=t%10;c=__t%10____;
if _(a*a*a+b*b*b+c*c*c)==i________
Console.WriteLine(“i={0}”,i);
}
}
}
1.public static const int A=1;这段代码有错误么?是什么?
答:const不能用static修饰。
2.float f=-123.567F; int i=(int)f;i的值现在是_____?
答:-123。
下面这段代码有错误么?
switch (i)
switch (i)
{
case(): 答://case()条件不能为空
case(): 答://case()条件不能为空
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault; 答://wrong,格式不正确
break;
case 1:
CaseOne();
break;
case 2:
dufault; 答://wrong,格式不正确
CaseTwo();
break;
}
break;
}
1.利用operator声明且仅声明了==,有什么错误么?
答:要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="
2. short s1 = 1; s1 = s1 + 1;
以上语句有错误吗?有什么错?
答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
short s1 = 1; s1 += 1;(可以正确编译)
3.成员变量和成员函数前加static的作用?
答:变量前加static是声名静态变量,即常量,只能对其赋值一次。
在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。
4.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
答:using 语句定义一个范围,在此范围的末尾将处理对象。
在 using 语句中创建一个实例,确保退出 using 语句时在对象上调用 Dispose。当到达 using 语句的末尾,或者如果在语句结束之前引发异常并且控制离开语句块,都可以退出 using 语句。
实例化的对象必须实现 System.IDisposable 接口。
1)new 运算符 用于创建对象和调用构造函数。
(2)new 修饰符 用于隐藏基类成员的继承成员。
(3)new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。
new 运算符
1.用于创建对象和调用构造函数 例:Class_Test MyClass = new Class_Test();
2.也用于为值类型调用默认的构造函数 例:int myInt = new int();
myInt 初始化为 0,它是 int 类型的默认值。该语句的效果等同于:int myInt = 0;
3.不能重载 new 运算符。
4.如果 new 运算符分配内存失败,则它将引发 OutOfMemoryException 异常。
new 修饰符 :使用 new 修饰符显式隐藏从基类继承的成员。若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并用 new 修饰符修饰它。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论