NET笔试题及答案.docx
- 文档编号:12884498
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:113
- 大小:84.59KB
NET笔试题及答案.docx
《NET笔试题及答案.docx》由会员分享,可在线阅读,更多相关《NET笔试题及答案.docx(113页珍藏版)》请在冰豆网上搜索。
NET笔试题及答案
.NET概述
一、名词解释
1.MSIL:
Microsoft Intermediate Language(微软中间语言),是一种类似Java字节码的语言,也是为了能在不同平台移植所生成的中间代码。
2.JIT:
JustinTime即时编译
3.CLR:
Commonlanguageruntime 通用语言运行时
4.CLS:
CommonLanguageSystem 通用语言系统
5.CTS:
CommonTypeSystem通用类型系统,定义了可以在中间语言中使用的预定义数据类型,所有用于.NETFramework的语言都可以生成最终基于这些类型的编译代码
6.FCL:
FrameworkClassLibrary .Net框架类库
二、选择
1.当你在编写C#代码时,按了“F1”,你将获得(B)
1.一个错误信息
2.上下文帮助
3.windows帮助
4.打印帮助
2.在.NET中,程序员在代码中漏写了一个大括号,这属于(C)
1.逻辑错误
2.运行时错误
3.语法错误
4.自定义错误
三、填空
1..NETFramework两个主要组件分别是____公共语言运行库__和.NETFramework 类库。
2.公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。
3..NETFramework有两大主要特征:
跨平台、跨语言。
4..NET平台基于两种核心技术,即XML和Internet协议套件
四、问答
1.简述CLR(CommonLanguageRuntime,通用语言运行环境)在.NETFramework中的作用?
答:
公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。
这些功能是在公共语言运行库上运行的托管代码所固有的
1.JIT编译器主要功能是什么?
答:
实时编译的功能将所有托管代码能够以它在其上执行的系统的本机语言运行。
1.什么是DOTNET?
DOTNET可开发什么应用程序?
答:
.NET是一种框架,一种平台,一种为下一代Internet服务的全新体系结构。
DOTNET可开发Web窗体、Windows窗体、Windows控制台应用程序、Window服务、Web服务等等。
1.编写一个控制台应用程序,在控制台上显示出“你好,欢迎进入C#的世界!
”
答:
usingSystem;
namespaceExercise
{
classProgram
{
staticvoidMain()
{
Console.WriteLine(“你好,欢迎进入C#的世界!
”);
}
}
}
1.C#源代码编译成为本地代码的编译过程?
答:
源代码→编译器(1次编译)→中间语言(.exe)→CLR(JIT2次编译)→本地代码
数据类型
一、名词解释
1.表达式:
是指操作数和运算符的组合
二、选择
1.下列选项中,(C)是引用类型?
1.enum类型
2.struct类型
3.string类型
4.int类型
2.C#的数据类型有(B)
A、值类型和调用类型
B、值类型和引用类型
C、引用类型和关系类型
D、关系类型和调用类型
1.以下哪个类是int的基类?
( A)
A.Int32 B.Dotnet C.double D.System.Data
1.下列选项中,哪个是引用类型(C )
A.char类型 B.double类型
C.string类型 D.int类型
1.在C#中,下列变量定义与赋值正确的是(D )
A.inta=同学;
B.floata=老师;
C.doublea=教室;
D.stringa=“学校”;
1.在C#中,下列表达式计算正确的是(BC)
A、10%3=3
B、10/3=3
C、10%3=1
D、10/3=1
1.值类型存储于 (A)
A、堆栈
B、 堆
C、.队列
1.C#中的所有数据类型都派生自(D)类
A、String
B、 Int64
C、 Int32
D、Object
三、填空
1.sizeof 和typeof 运算符的作用获取对象的大小和类型、。
2.C#字符串是使用string 关键字声明的,实际是它是一个引用类型。
3.装箱是把 值 类型转换到引用类型 。
4.装箱、拆箱操作发生在引用类型与值类型之间
四、问答
1.const和staticreadonly的区别?
答:
用const修饰符声明的成员叫常量,在编译期初始化并嵌入到客户端的程序。
用staticreadonly声明的成员依然是变量,只不过具有和常量类似的使用方法,通过类进行访问,初始化后不可以修改。
1.bool类型有哪两个值?
这两个值可以赋值给int变量吗?
答:
True/False,不能
1.C#有那些数据类型?
他们之间的区别?
答:
C#支持的数据类型有:
值类型
包括:
简单类型、结构类型、枚举类型。
其中,简单类型又分为:
整型、布尔型、字符型、浮点型、小数型。
引用类型
包括:
对象类型、类类型、接口、元数据、字符串类型、数组。
值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。
1.值类型存储于内存的哪个区?
答:
值类型存储于栈区
1.C#中的所有数据类型都继承于哪个类?
答:
C#中所有数据类型都继承于Object。
1.写出下列赋值表达运算后a的值,设原来a=12,n=5。
a和n都定义为整型变量
答:
(1)a+=a 值为:
24
(2)a-=a 值为:
0
(3)a*=2+3 值为:
27
(4)a%=(n%=2) 值为:
0
(5)a/=a+a 值为:
13
(6)a+=a-=a*=a 值为:
-120
第一章结构、枚举
一、名词解释
1.Bll:
bussinesslogiclayer业务逻辑层
二、选择
1.以下是一些C#中的枚举型的定义,其中错误的用法有(A)?
1.publicenumvar1{Mike=100,Nike=102,Jike}
2.publicenumvar1{Mike=100,Nike,Jike}
3.publicenumvar1{Mike=-1,Nike,Jike}
4.publicenumvar1{Mike,Nike,Jike}
三、填空
1.结构体的关键字是struct。
2.枚举的关键字是enum
3.枚举是 值 类型,结构是 值 类型。
4.结构只能 定义带参数的构造函数, 不能 继承其它结构或者类。
四、问答
1.结构和类有什么相似处和区别
答:
结构是值类型,而类是引用类型。
向方法传递结构时,结构是通过传值方式传递的,而类是作为引用传递的
与类不同,结构的实例化可以不使用new运算符
结构可以声明构造函数,但它们必须带参数
一个结构不能从另一个结构或类继承,而且不能作为一个类的基。
所有结构都直接继承自System.ValueType,后者继承自System.Object
不能在结构中初始化实例字段
1. 定义结构体类型的格式为:
答:
struct <结构体类型名>
{
<成员类型1> <成员名1>;
<成员类型2> <成员名2>;
…
<成员类型n> <成员名n>;
};
1.什么是枚举?
答:
枚举是一个指定的常数,是一组已命名的数值常量。
枚举是值类型的一种特殊形式。
枚举从System.Enum继承而来
第二章程序控制语句
一、选择
1.下面那些不是循环语句(D)
A、 while
B、 do
C、 for
D、 if…else
二、填空
1.Switch语句中,每个case后是使用break语句来结束。
2.跳转语句有break、continue、goto、 return 。
3.循环结构用于对一组命令执行一定的次数或反复执行一组命令,直到指定的条件为真。
4.C#语言中基本语句可以分为三种:
赋值语句 、选择语句 、循环语句
5.循环结构的类型有 while 、 do 、 for 、 foreach 。
三、问答
1.Continue和Break的区别是什么?
答:
Continue是中断本次循环,进入一下次的循环
Break是中断整个循环
1.while和do…while循环的区别?
答:
While循环先判断条件是否满足再执行,而do…while先执行然后判断条件是否成立。
第三章类、对象、构造
一、名词解释
1.OOP:
object-oriented programming面向对象编程,所谓“对象”就是一个或一组数据以及处理这些数据的方法和过程的集合。
面向对象的程序设计完全不同于传统的面向过程程序设计,它大大地降低了软件开发的难度
2.OOD:
ObjectOrientedDesign面向对象设计将OOA的结果转化成与现实需求更贴切的系统和对象设计,利用一系列相互协作的软件对象来进行软件设计。
3.OOA:
ObjectOrientedAnalysis面向对象分析评估用户需求和需要解决的问题。
针对用户问题的静态、动态和功能等,输出会提供相应的概念设计。
二、选择
1.下列关于构造函数的描述正确的是(C)
A、构造函数可以声明返回类型。
B、构造函数不可以有private修饰
C、构造函数通常与类名相同
D、构造函数不能带参数
1.下列哪一个不是类成员是(D)
A、属性
B、数组
C、索引器
D、循环结构
三、填空
1.析构函数一个类只有 1 个
2.一个类有多个构造函数
3.构造函数具有与类相同的名称 ,它通常初始化新对象的数据成员。
四、问答
1.方法的签名是指?
答:
方法名和该方法的参数列表,类型,大小,位置。
1.请简述C#中结构与类的区别?
答:
数据类型不同:
结构是值类型,值类型在堆栈上分配地址,所有的基类型都是结构类型,类是引用类型,引用类型在堆上分配地址。
继承性:
结构不能从另外一个结构或者类继承,本身也不能被继承,类完全可扩展的,除非显示的声明sealed,否则类可以继承其他类和接口,自身也能被继承,虽然结构不能被继承可是结构能够继承接口,方法和类继承接口一样
内部结构:
结构没有默认的构造函数,但是可以添加构造函数,没有析构函数,没有abstract和sealed(因为不能继承),不能有protected修饰符,可以不使用new初始化,在结构中初始化实例字段是错误的。
类有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。
第四章访问关键字、命名空间
一、选择
1.“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确 描述?
(B )
A.public B.protected
C.internal D.protectedinternal
1.“访问范围限定于只能在自己本身”是对以下哪个成员可访问性含义的正确描述(D)
A.public B.protected
C.internal D.private
二、填空
1.无返回值的关键字是void
2.访问修饰符有public、 private 、protected 、internal.
3.命名空间实际上是一种组织相关类和其他类型的方法。
4.命名空间是隐式公共的。
不能通过指定 问修饰符 写其访问属性。
不能将命名空间设置为受保护的、私有的或内部的,因此它们只能作为公共的存在
5.引用命名空间的关键字是using 。
三、问答
1.静态成员和非静态成员的区别?
答:
静态成员用static修饰符声明,在类被实例化时,通过类进行访问,不带有static修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一静态变量都是一个值,同一个类的不同实例的同一非静态变量可以是不同的值。
1.C#访问修饰符有哪些,分别有什么作用?
答:
public:
访问不受限制。
protected:
访问仅限于包含类或从包含类派生的类型。
Internal:
访问仅限于当前程序集。
protectedinternal:
访问仅限于当前程序集或从包含类派生的类型。
private:
访问仅限于包含类型。
第五章继承
一、选择
1.在堆栈上创建对象和调用构造函数时,通常使用(B)关键字
1.Typeof
2.New
3.As
4.is
二、填空
1.override即重写是指重写基类的方法(方法的覆盖)。
2.override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
3.关键字base 用于派生类的构造函数显示调用基类构造函数
4.一个类可以有能力直接从另一个类获得其代码和数据,派生类从基类那里获得其所有成员的是继承 。
5.调用基类构造函数,运用base关键字。
6.虚方法的关键字是virtual 。
7.C#提供virtual关键字,用于将方法定义为支持多态。
8.Override 关键字用于重写基类的虚拟方法。
9.面向对象的特征有封装继承 多态.
三、问答
1.C#中类可以实现多继承吗?
通过什么方式实现呢?
答:
C#中类不能够多继承,必须通过接口实现。
1.继承是面向对象编程的一个重要的概念.请简述继承的概念和优点.
答:
继承:
一个类可以有能力直接从另一个类获得其代码和数据,派生类从基类那里获得其所有成员。
优点:
使用继承无需从头开始创建新类,便可以在现有类的基础上添加新方法、属性和事件(事件是对用户操作)的响应。
,既省时又省力。
1.说明base关键字、new关键字和override关键字各自的作用。
答:
关键字base,用于派生类的构造函数显示调用基类构造函数。
new访问修饰符用于显示隐藏继承自基类的成员,即如果派生的类成员的名称与基类成员名称相同,new关键字会将派生类成员识别为一个全新的成员。
关键字override用于修改方法,具有override关键字修饰的方法是对基类中同名方法的新实现,
第六章抽象类、接口
一、选择
1.下列描述错误的是(D)
A、类不可以多重继承而接口可以
B、抽象类自身可以定义成员而接口不可以
C、抽象类和接口都不能被实例化
D、一个类可以有多个基类和多个基接口
1.以上描述错误的是(A)
1.在C++中支持抽象类而在C#中不支持抽象类
2.C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员
3.在C#中可以使用NEW修饰符显示隐藏从基类继承的成员。
4.在C#中要在派生类中重新定义基类的虚函数必须在前面加上override。
2.下列关于接口的描述不正确的是(B)
1.接口描述了组件对外提供的服务,在组件和组件之间,组件和接口之间都是通过接口进行交互的
2.一个组件可以实现多个接口,而一个特定的组件接口只可以被一个组件来实现
3.接口是组件之间的协议,接口一旦发布,组件发布者就应该尽量保持接口不变,否则将影响现有系统的运行
4.接口声明实际就是一种定义新的接口的类型的声明。
接口使用interface来定义
3.在C#中,多继承通过( B )来实现
A.属性 B.接口
C.索引器 D.方法
1.以下叙述正确的是:
(ABC )
A.接口中可以有虚方法。
B.一个类可以实现多个接口。
C.接口不能被实例化。
D.接口中可以包含已实现的方法。
1.虚方法的执行方式可以被派生类改变,这种改变通常通过(A)实现.
A、方法重载
B、构造方法
C、值方法
D、引用型方法
二、填空
1.抽象类的关键字是abstract
2.密封类的关键字是sealed。
3.抽象类的方法 可以 实现,接口的方法 必须 实现。
4.接口不能被实例化
5.类不可以多重继承而接口可以
6.抽象类自身可以定义成员而接口不可以
7.一个类可以实现多个接口
8.虚方法 可以在派生类 重写,抽象方法 必须在每个非抽象的派生类中 重写。
9.如果Alpha类继承自BETA类,则Alpha类称为 派生类 ,BETA类称为 基类 。
10.有一个基类Person,一个接口Iteller。
类Employee要同时继承类和接口,则其正确的写法应该是 publicclassEmployee:
Person,Itrller
11.接口是一种引用类型,在接口中可以声明方法、属性、索引器和事件,但不可以声明公有的域或私有的成员变量。
三、问答
1.Sealed修饰符是干什么的?
答:
表示密封类,用于类时表明该类不能被继承,不能和abstract同时使用,因为这两个修饰符在含义上互相排斥,用于方法和属性时,表示该方法或属性不能再被继承,必须和override关键字一起使用,因为使用sealed修饰符的方法或属性肯定是基类中相应的虚成员
1.简述抽象类的定义以及在C#编程语言中,抽象类的作用是什么?
答:
有时,我们只需要继承某个特定类,但不需要实例化该类的对象。
这样的类成为抽象基类。
C#允许通过在类中添加abstract关键字来创建抽象基类。
作用:
在抽象基类中,可以指定一个方法而不指定其代码主体。
这意味着抽象基类保存着方法的定义,而方法的实际实现则写在派生类中
1.声明抽象方法注意一下几点?
答:
1.抽象基类除了抽象方法外,还可以包含已实现的方法。
2.操作需要用abstract关键字来标识。
3.操作的定义始终已分号结束。
第七章属性、索引器、迭代器
一、选择
1.下列关于C#索引器理解正确的是(C)
A、索引器的参数必须是两个或两个以上
B、索引器的参数类型必须是整数型
C、索引器没有名字
D、以上皆非
二、填空
1.要声明类或结构上的索引器,使用this关键字
2.属性是一个或两个代码,表示一个get访问器和/或一个set访问器。
3.属性的 set 访问器用于将值赋给类的私有实例变
三、问答
1.简述属性的定义及其作用?
答:
属性是一种用于访问对象或类的特性的成员,停供了数据的封装性和安全
性。
1.简述索引器的定义及其作用?
答:
索引器是C#的简单组件,使用索引器,可以用索引数组的方式来索引对象,
索引器提供了与数组访问相类似的类成员访问方式。
1.简述索引器和属性之间的区别?
答:
1属性通过名称标识。
索引器通过签名标识。
2属性通过简单名称或成员访问来访问。
索引器通过元素访问来访问。
3属性可以为静态成员或实例成员。
索引器必须为实例成员。
4属性的get访问器没有参数。
索引器的get访问器具有与索引器相同的形参
表。
属性的set访问器包含隐式value参数。
除了value参数外,索引器的set
访问器还具有与索引器相同的形参表。
1.什么是迭代器,运用迭代器有什么好处。
答:
迭代器是C#2.0中的新功能。
迭代器是方法、get访问器或运算符,它使
能够在类或结构中支持foreach迭代,而不必实现整个IEnumerable接口。
只
需提供一个迭代器,即可遍历类中的数据结构,它的优点就是可以是实现容器
类和自定义集合的循环。
第八章委托、事件
一、选择
1.委托可以( )把递给 (C)
A、对象和对象
B、对象和方法
C、方法和方法
二、填空
1.委托的关键字是delegate 。
2.委托的参数和返回类型必须和调用函数一致
3.委托本身能够拥有一个签名 ,当它持有与它的签名 相匹配的方法的引用后,委托就可以和这个方法一样被调用
4.定义事件的关键字是event 。
三、问答
1.定义一个多路委托有几个步骤
答:
定义一个委托类型
编写具有相同签名方法作为委托
创建委托对象,将它绑定到需要通过委托调用的第一个方法
创建另一个委托对象,绑定到下一个需要调用的方法
可用+,-,+=或-=操作符,合并成一个集成的多播委托
1.简述创建事件的过程
答:
定义事件
给对象预订该事件
将该事件(当它发生时)通知订户
1.什么是多播委托?
答:
多播委托也是一个委托,它可以调用多个方法,只要这些方法的签名与委托的定义相同。
多播委托的概念是委托和事件编程之间的门槛,多播委托是通过对方法的委托进行组合而创建的。
组合多个委托,可用+,-,+=或-=操作符。
要让一个委托调用多个方法,可以用+或+=操作符为该委托增加方法。
要减少一个多播委托持有的方法,可以使用-或-=操作符。
第九章数组
一、名词解释
1.什么是数组?
答:
数组是一种数据结构,它包含若干相同类型的变量
二、填空题
1.实现数组反转的函数是:
Reverse.
2.对数组排序的函数是:
Sort.
3.System.Array 是所有数组类型的抽象基类型
4.能用foreach的都实现了接口IEnumerable
5.所有数组都是引用类型
三、选择题
1.stringmystring=”Mynameisynn.”;Console.WriteLine(mystring.Substring(11,3))的结果是:
(B)
A。
yn B.ynn C.is D.sy
1.double
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NET 笔试 答案