一、单选题(共11题,每题3分,共计33分)
1、阅读下面代码:
classProgram
{
public static void ThrowException()
{
thrownewException();
}
static void Main(string[] args)
{
try
{
Console.WriteLine("try");
ThrowException();
}
catch
{
Console.WriteLine("catch");
}
finally
{
Console.WriteLine("finally");
}
Console.Read();
}
}
请问代码运行结果是:( A )
try / catch / finally
try
try / catch
try / finally
2、阅读下面的代码
public struct Rect
{
public int e;
}
classProgram
{
public int d = 4;
public static void SetValue(int a, refint b, outint c, Program p,Rect r)
{
a = 5;
b = 6;
c = 7;
p.d = 8;
r.e = 9;
}
static void Main(string[] args)
{
int a = 1;
int b = 2;
int c = 3;
Program p = newProgram();
p.d = 4;
Rect r = newRect();
r.e = 5;
SetValue(a, ref b, out c, p, r);
Console.WriteLine("a={0},b={1},c={2},p.d={3},r.e={4}", a, b, c, p.d, r.e);
Console.Read();
}
}
请问程序输出结果是(C)
a=1, b=2, c=3, p.d=4, r.e=5
a=5, b=2, c=7, p.d=8, r.e=9
a=1, b=6, c=7, p.d=8, r.e=5
a=1, b=6, c=3, p.d=4, r.e=9
3、阅读下面的代码:
public abstract class Animal
{
public Animal()
{
Console.WriteLine("New Animal");
}
public virtual void Shout()
{
Console.WriteLine("Animal Shout");
}
}
public class Dog : Animal
{
public Dog()
{
Console.WriteLine("New Dog");
}
public override void Shout()
{
Console.WriteLine("Dog Shout");
}
static void Main(string[] args)
{
Animal animal = newDog();
animal.Shout();
Console.Read();
}
}
请问程序输出结果是(C)
Dog Shout / Dog Shout
New Dog / Animal Shout
New Animal / New Dog / Dog Shout
New Dog / New Animal / Animal Shout
4、阅读下面的代码:
class A
{
public static int X=2;
static A()
{
X = B.Y + 1;
}
}
class B
{
public static int Y = A.X + 1;
static B() { }
static void Main()
{
Console.WriteLine("X={0},Y={1}", A.X, B.Y);
Console.Read();
}
}
请问程序输出结果是(A)
X=1, Y=2
X=2, Y=2
X=2, Y=1
X=1, Y=1
5、在WinForm中,Form从创建到释放会依次触发的事件顺序是(A)
A 构成函数->Load->Activated->Closing->Closed->Deactivate
B 构成函数-> Activated -> Load ->Closing-> Deactivate-> Closed
C Load->构成函数->Activated->Closing->Closed->Deactivate
D Load->构成函数->Activated-> Closing -> Deactivate -> Closed
6、对于CSS position 属性,下面正确的说法是(B)
A 盒子的默认定位为fixed,即固定定位
B 盒子的相对定位是指相对于其身原有位置进行偏移,一般会结合left、 right、top、bottom属性使用
C 绝对定位是以其父元素为参考对象,绝对定位的元素会脱离文档流
D position属性的取值为static时,是以浏览器窗口作为定位基准
7、在Javascrip中声明一个对象,给它加上name属性和show方法显示其name值,以下代码中正确的是(D)
A var obj = [name:”zhangsan”,show:function(){alert(name);}];
B var obj = {name=”zhangsan”,show:”alert(this.name)”};
C var obj = {name=”zhangsan”,show:function(){alert(name);}};
D var obj = {name:”zhangsan”,show:function(){alert(this.name);}};
8、使用jQuery检查元素在网页上是否存在,正确的代码是(C)
A if($(“#id”)) {}
B if($(“.id”)) {}
C if($(“#id”).length>0) {}
D if($(“.id”).length>0) {}
9、在ASP.NET WebForm中,如果在页面上同时放入HtmlControl文本框T1和WebControl文本框T2,文本框的初始值都为aaa, 在点击提交按钮后,下面的说法正确的是(B)
A T1的值为aaa, T2的值为aaa
B T1的值为空, T2的值为aaa
C T1的值为aaa, T2的值为空
D T1的值为空, T2的值为空
10、以下多线程对int型变量x的操作,不需要进行同步处理的是(D)
A.x=y; B. x++; C. ++x; D. x=1;
11、关于SQL的执行顺序,正确的是(A)
A. FROM->WHERE->GROUP BY->HAVING->SELECT->DISTINCT->ORDER BY->TOP
B. SELECT->FROM-> WHERE->DISTICT->GROUP BY->HAVING->TOP ->ORDER BY
C. HAVING -> GROUP BY ->FROM->WHERE-> SELECT-> ORDER BY->DISTINCT->TOP
D. WHERE->FROM>HAVING->GROUP BY–>SELECT->DISTINCT->TOP->ORDER BY
多选题(共10题,每题4分,共计40分,多选、错选不得分,少选得1分)
12、面向对象的重要特征包括(A B C)
A.继承 B. 多态 C. 封装 D. 抽象
13、下面是ADO.NET对象有( A C D E )
A Connection对象
B DataSource对象
C Command对象
D DataAdapter对象
E DataSet对象
14、请介绍一下SQL Server中聚簇索引和非聚簇索引的区别(A B C )
A. 聚簇索引的顺序就是数据的物理存储顺序
B. 非聚簇索引的索引顺序与数据物理排列顺序无关
C. 一个表只能有一个聚簇索引,但可以有多个非聚簇索引
D. 一个表可以有多个聚簇索引,但只能有一个非聚簇索引
15、在ASP.NET MVC中,一个合法的Action方法必须满足的要求为(A B D E)
A. 所有的Action方法所在的类必须继承抽象类ConctrollerBase
B. 必须是一个公有的实例方法
C. 方法返回值不能为void
D. 方法不能带有泛型参数
E. 方法不能带有输出和引用参数
16、以下说法错误的是(B C D E F)
A. 需求分析过程中,需求项应该清楚明确、可实现、可测试
B. 可以直接根据需求做编码,不需设计
C. 程序员只需要完成编码工作,所有的测试工作由测试人员完成
D. 为了增加用户的满意度,可以在开发过程中增加用户没有提出的功能
E. 项目经理分配任务后,只需要在任务结束后检查任务完成情况。任务的质量和进度情况由任务接收者负责
F. 原型开发只需要一个简单的UI即可,无需考虑细节和用户体验
17、以下有关泛型的描述中正确的是(A B C)
A.类、接口、函数都可以是泛型的
B.泛型是强类型
C.泛型集合与非泛型集合相比避免了装箱、拆箱操作
D.泛型类可以有约束,泛型方法不能有约束
18、反射可以完成以下任务(A B C D E F)
A.枚举类型的成员
B.实例化新对象
C.查找类型信息
D.查找程序集信息
E.检查应用于某种类型的自定义特征
F.创建和编译新程序集
19、关于集合,以下说法正确的是(A B D)
A.Dictionary类适合存键值对,但不允许Key重复
B.Queue适合组织先进先出数据
C.Stack适合组织先进先出数据
D.LinkedList在内部维护了一个双向的链表,在中间插入或删除元素比List快
20、以下说法正确的是(A B C)
A.可以使用匿名方法来定义委托
B.Lambda表达式实际上是匿名方法
C.事件(Event)是委托类型
D.委托只能定义在类中
21、在.NET体系结构中,以下说法正确的是(B D E F)
A.一个进程不能同时运行多个应用程序
B.一个进程能同时运行多个应用程序域
C.静态成员能在应用程序域之间共享
D.ASP.NET为每个应用程序创建了一个应用程序域
E.只有继承了MarshalByRefObject的类才能跨应用程序域访问
F.应用程序域可以独立加载和卸载程序集
问答题(共5题,共计27分)
22、抽象类和接口有什么不同?(7分)
参考答案:
抽象类用于共性,而接口用于规范;
抽象类中可以有方法的实现,也可以定义非静态的类变量,接口中只能声明方法,属性,事件,索引器;
抽象类是类,所以只能被单继承,接口却可以一次实现多个;
抽象类可以提供某些方法的部分实现,接口不可以;
抽象类的实例是它的子类给出的,接口的实例是实现接口的类给出的;
抽象类中加入一个方法,那么它的子类就同时有了这个方法,而在接口中加入新的方法,那么实现它的类就要重新编写;
接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员
23、C#中重写(override)与重载(overload)有什么区别?(5分)
参考答案:
方法的重写是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系;
重写要求参数列表相同,重载要求参数列表不同;
重写关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定,重载关系,是根据调用时的实参表与形参表来选择方法体的;
24、有两个表如下: (5分)
Table1
IDName
1aaa
2bbb
3ccc
Table2
IDAge
220
330
440
请给出下面SQL 语句的结果
1、
1)SELECT A.ID, A.Name, B.Age
FROM Table1 as A
INNER JOIN Table2 as B
ON A.ID = B.ID
2、
2)SELECT A.ID, A.Name, B.Age
FROM Table1 as A
LEFT JOIN Table2 as B
ON A.ID = B.ID
参考答案:
1)
IDNameAge
2bbb20
3ccc30
2)
IDNameAge
1aaaNULL
2bbb20
3ccc30
25、有如下2个数据库表, 请写一条SQL将UserName为“Daniel”的Department更新成“MD”(5分)
参考答案:
UPDATEB
SETB.Department ='MD'
WHERE UserId =(SELECT UserId FROMAWHERE UserName ='Daniel')
答案2
UPDATEB
SET Department ='MD'
FROMB,A
WHEREB.UserId =A.UserId
ANDA.UserName ='Daniel'
26、有张课程表(Course)如下 (5分)
IDTitle
1数学
2英语
3语文
4物理
5化学
6数学
7英语
8化学
9物理
请写出删除Title重复记录的SQL语句(保留ID最小的)
参考答案:
DELETEFROMCourse
WHERE[ID]NOTIN(SELECTMIN(ID)ASID
FROMCourse
GROUP BY[Title])
四、附加题(每小题5分,共15分)
27、请用C#实现一个单例模式。
参考答案(有多种方法):
public sealed class Singleton
{
private static readonly Singleton instance=new Singleton();
private Singleton()
{
}
public static Singleton GetInstance()
{
return instance;
}
}
28、有一列数1,1,2,3,5,8,……..,求第30个数。
参考答案:
publicclassMainClass
{
publicstaticvoidMain()
{
Console.WriteLine(Foo(30));
}
publicstaticintFoo(inti)
{
if(i <= 0)
return0;
elseif(i > 0 && i <= 2)
return1;
elsereturnFoo(i - 1) + Foo(i - 2);
}
}
除非注明,文章均由
转载请注明:
作者:Dotnet9
链接: