1.填空题
1)能用foreach遍历访问的对象需要实现IEnumerable 接口声明 GetEnumerator 方法的类型
2)c#中的三元运算符是? :
3)面向对象的语言具有继承性封装性多态性
4)当整数a赋值给一个object对象时,整数a将会被 装箱?
5)类成员有 3种可访问形式?
6)public static const int A=1;这段代码有错误么?是什么?
const成员都是static所以应该去掉static
7)float f=-123.567F;int i=(int)f;
i的值现在是 -123
8)利用operator声明且仅声明了==,有什么错误么? 要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="

9)委托声明的关键字是 delegate?
10)用sealed修饰的类有什么特点?不可被继承
11)在Asp.net中所有的自定义用户控件都必须继承自 System.Web.UI.UserControl?
12)在.Net中所有可序列化的类都被标记为 [serializable] ?
13)在.Net托管代码中我们不用担心内存漏洞,这是因为有了 GC ?
14)下面的代码中有什么错误吗? abstract override 是不可以一起修饰

using System;
class A
{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A
{
public abstract override void F();
}

15)当类T只声明了私有实例构造函数时,则在T的程序文本外部, 不可以(可以 or 不可以)从T派生出新的类,_不可以_(可以 or 不可以)直接创建T的任何实例。
16)下面这段代码有错误么?case():不行 default;

switch (i){
case():
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault;
CaseTwo();
break;
}

17)在.Net中,类System.Web.UI.Page 可以被继承么?可以

2.选择题

1)以下叙述正确的是: B C
A. 接口中可以有虚方法。B. 一个类可以实现多个接口。 C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。 
   2) 从数据库读取记录,你可能用到的方法有:B C D
      A. ExecuteNonQueryB. ExecuteScalarC. FillD. ExecuteReader
3)对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选)   (        ABC         )

A.Close B.DisposeC.Finalize   D.usingE.Quit

4)以下关于ref和out的描述哪些项是正确的?(多选)   (    ACD   )

A.使用ref参数,传递到ref参数的参数必须最先初始化。

B.使用out参数,传递到out参数的参数必须最先初始化。

C.使用ref参数,必须将参数作为ref参数显式传递到方法。

D.使用out参数,必须将参数作为out参数显式传递到方法。

5)在对SQL Server 数据库操作时应选用(A)。

A.SQL Server .NET Framework 数据提供程序;

B.OLE DB .NET Framework 数据提供程序;

C.ODBC .NET Framework 数据提供程序;

D.Oracle .NET Framework数据提供程序;

6)下列选项中,(C)是引用类型。

A.enum类型   B.struct类型C.string类型  D.int类型

7)关于ASP.NET中的代码隐藏文件的描述正确的是(C)

A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。

B.项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。

C.项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。

D.以上都不正确。

8)以下描述错误的是(A)

A.在C++中支持抽象类而在C#中不支持抽象类。

B.C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。

C.在C#中可使用 new 修饰符显式隐藏从基类继承的成员。

D.在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

9)C#的数据类型有(B)

A.值类型和调用类型; B.值类型和引用类型;C.引用类型和关系类型;D.关系类型和调用类型;

10)下列描述错误的是(D)

A.类不可以多重继承而接口可以;

B.抽象类自身可以定义成员而接口不可以;

C.抽象类和接口都不能被实例化;

D.一个类可以有多个基类和多个基接口;

11)在DOM中,装载一个XML文档的方法(D)

A.save方法 B.load方法C.loadXML方法D.send方法

12)下列关于构造函数的描述正确的是(C)

A.构造函数可以声明返回类型。

B.构造函数不可以用private修饰

C.构造函数必须与类名相同

D.构造函数不能带参数

13)以下是一些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 }

14)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.越界

15)接口是一种引用类型,在接口中可以声明(A),但不可以声明公有的域或私有的成员变量。

A.方法、属性、索引器和事件; B.方法、属性信息、属性; C.索引器和字段;    D.事件和字段;

16)ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是(A )

A.HTML控件和Web控件 B.HTML控件和XML控件 C.XML控件和Web控件    D.HTML控件和IIS控件

17)ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为( D)

A.<%@Register TagPrefix = “Mike” TagName = “Space2” Src = “myX.ascx”%>

B.<%@Register TagPrefix = “Space2” TagName = “Mike” Src = “myX.ascx”%>

C.<%@Register TagPrefix = “SpaceX” TagName = “Space2” Src = “Mike”%>

D.以上皆非
18)在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。

A.insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;

B.ExecuteNonQuery()方法返回执行Sql语句所影响的行数。

C.Select操作的Sql语句只能由ExecuteReader()方法来执行;

D.ExecuteReader()方法返回一个DataReder对象;

19)下列ASP.NET语句(b)正确地创建了一个与SQL Server 2000数据库的连接。

A.SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);

B.SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);

C.SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);

D.SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);

20)Winform中,关于ToolBar控件的属性和事件的描述不正确的是(D)。

A.Buttons属性表示ToolBar控件的所有工具栏按钮

B.ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度

C.DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键

D.ButtonClick事件在用户单击工具栏任何地方时都会触发

21)在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(B ),必要时还要设置参数尺寸。

A.大小;             B.上限;              C.初始值;            D.类型;

22)如果将窗体的FormBoderStyle设置为None,则( B)。

A.窗体没有边框并不能调整大小; B.窗体没有边框但能调整大小;

C.窗体有边框但不能调整大小;  D.窗体是透明的;

23)如果要将窗体设置为透明的,则( B)

A.要将FormBoderStyle属性设置为None;B.要将Opacity属性设置为小于100%得值;

C.要将locked 属性设置为True;              D.要将 Enabled属性设置为True;

24)下列关于C#中索引器理解正确的是(B/C )

A.索引器的参数必须是两个或两个以上   B.索引器的参数类型必须是整数型

C.索引器没有名字                     D.以上皆非

25)下面描述错误的是( C/D)。

A.窗体也是控件; B.窗体也是类; C.控件是从窗体继承来的; D.窗体的父类是控件类;

26)要对注册表进行操作则必须包含( D)。

A.System.ComponentModel命名空间; B.System.Collections命名空间;

C.System.Threading命名空间;      D.Microsoft.Win32命名空间;

27)要创建多文档应用程序,需要将窗体的(D )属性设为true。

A.DrawGrid;         B.ShowInTaskbar;          C.Enabled;            D.IsMdiContainer;

28)如果设treeView1=new TreeView(),则treeView1.Nodes.Add("根节点")返回的是一个 ( A )类型的值。

A.TreeNode;

B.int;

C.string;

D.TreeView;

29)下面关于XML的描述错误的是(D)。

A.XML提供一种描述结构化数据的方法;

B.XML 是一种简单、与平台无关并被广泛采用的标准;

C.XML文档可承载各种信息;

D.XML只是为了生成结构化文档;

30)装箱、拆箱操作发生在: (  C  )

A.类与对象之间   B.对象与对象之间

C.引用类型与值类型之间   D.引用类型与引用类型之间

31)用户类若想支持Foreach语句需要实现的接口是: (  A  )

A.IEnumerable B.IEnumerator

C.ICollection D.ICollectData

32).Net Framework通过什么与COM组件进行交互操作?(   C )

A.Side By Side B.Web Service

C.Interop D.PInvoke

33).Net依靠以下哪一项技术解决COM存在的Dll Hell问题的?( A   )

A.Side By Side B.Interop

C.PInvoke D.COM+

34)装箱与拆箱操作是否是互逆的操作?(  B  )

A.是 B.否

35)以下哪个是可以变长的数组?(  D  )

A.Array  B.string[]

C.string[N]  D.ArrayList

36)用户自定义异常类需要从以下哪个类继承:(  A  )

A.Exception         B.CustomException

C.ApplicationExceptionD.BaseException

37)对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) (   ABC     )

A.Close                 B.DisposeC.Finalize

D.using                 E.Quit

38).Net依赖以下哪项技术实现跨语言互用性?(  C  )

A.CLR               B.CTS               C.CLS                  D.CTT

39)请问: String类与StringBuilder类有什么区别?为什么在.Net类库中要同时存在这2个类?(简答)
 如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。 
40)以下哪个类是int的基类?(  B  )

A.Int32              B.Object          C.ValueType            D.Int16

3.简答题

1)override与重载的区别
Override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
2).net的错误处理机制是什么
.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
3)C#中接口和类的异同
接口和类都是类,不同的事,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。
4)DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
5)在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
Using 引入一个名子空间,或在使用了一个对像后自动调用其IDespose,New 实例化一个对像,或修饰一个方法,表此方法完全重写此方法
6)在下面的例子里

using System;
class A
{
public A(){
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B(){
y=-1;
}
public override void PrintFields(){
Console.WriteLine("x={0},y={1}",x,y);
}

当使用new B()创建B的实例时,产生什么输出?X=1,Y=0
7)下面的例子中

using System;
class A
{
public static int X;
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);
}
}

产生的输出结果是什么?x=1,y=2
8)谈谈类和结构的区别?
最大区别一个是引用类型,一个是值类型 默认成员访问为public是另外一个区别
9)在.net(C# or vb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)。
this(C#) Me(vb.net).
10)在.net(C# or vb.net)中如何用户自定义消息,并在窗体中处理这些消息。
在form中重载DefWndProc函数来处理消息:

protected override void DefWndProc ( ref System.WinForms.Message m )
{
switch(m.msg)
{
case WM_Lbutton : ///string与MFC中的CString的Format函数的使用方法有所不同 string message = string.Format("收到消息!参数为:{0},{1}",m.wParam,m.lParam); MessageBox.Show(message);///显示一个消息框 break;
case USER:
处理的代码
default: base.DefWndProc(ref m);///调用基类函数处理非自定义消息。 break;
}
}

11)在.net(C# or vb.net)如何启动另一个程序。

process
12)在.net(C# or vb.net)中如何取消一个窗体的关闭

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
}

13)在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
一个是退出整个应用程序,一个是关闭其中一个form
14)在C#中有一个double型的变量,比如10321.5,比如122235401.21644,作为货币的值如何按各个不同国家的习惯来输出。比如美国用$10,321.50和$122,235,401.22而在英国则为£10 321.50和£122 235 401.22

System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");
//System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");为英国货币类型
decimal y = 9999999999999999999999999999m;
string str = String.Format(MyCulture,"My amount = {0:c}",y);

Winform面试题相关推荐

  1. 2021-12-12 WPF面试题 相对于Winform,WPF有什么优势?

    相对于Winform,WPF有什么优势? 1 - 绑定(更简约的编码) 2 - 灵活的外观和感受(资源和样式) 3 - 声明式编程 (XAML) 4 - 表现层混合动画(动画开发简单) 5 - 快速加 ...

  2. winform接收http请求_web前端面试题对答篇:HTTP fetch发送2次请求的原因?

    HTTP fetch发送2次请求的原因?面对这道出现频率较高的面试题,我想说的是:发送两次请求的情况确实存在,但这与你所使用的是不是http协议,所采用的是不是fetch真的没有一毛钱关系! 接下来, ...

  3. 2021-11-18 WinFrom面试题 Winform中,怎么实现Form2中点击打开按钮,打开Form1,输入文本,再点击Form1中的“确定”按钮,把输入的值显示到Form2的文本框中?

    Winform中,怎么实现Form2中点击打开按钮,打开Form1,输入文本,再点击Form1中的"确定"按钮,把输入的值显示到Form2的文本框中? 首先自定义一个事件参数Tex ...

  4. 2021-11-18 WinFrom面试题 在Winform中,我们发现在一个Form相关的cs文件有两个,它们的类名都是一样的,只是代码后台类文件中的class之前有partical修饰而已,这是为

    在Winform中,我们发现在一个Form相关的cs文件有两个,它们的类名都是一样的,只是代码后台类文件中的class之前有partical修饰而已,这是为什么? C# 2.0可以将类.结构.接口的定 ...

  5. C#, ASP.NET面试题系列(1)

    C#, ASP.NET面试题系列(1) 注:试题来自互联网,答案仅供参考! 1. (1) 以下叙述正确的是:(BC) A. 接口中可以有虚方法 B. 一个类可以实现多个接口 C. 接口不能被实例化 D ...

  6. C#进行Visio二次开发之知识点考核试题

    本人做过多年的Visio二次开发,根据个人的经验总结及项目积累,写了一些小小的随笔文章(具体可参考<伍华聪的Visio二次开发文章>,上月有幸给深圳一个团队做了两天的Visio培训,当了一 ...

  7. 一道面试题引发的关于程序设计的想法

    申明:这是在看到园子里两个帖子关于两道面试编程题之后个人的一点想法 面试题一: 大厅里有100盏灯,每盏灯都编了号码,分别为1-100.每盏灯由一个开关来控制.(开关按一下,灯亮,再按一下灯灭.开关的 ...

  8. .Net面试题(3)

    一.填空题 1.c#中的三元运算符是__?:___? 2.当整数a赋值给一个object对象时,整数a将会被__装箱(封装)___? 3.类成员有_____种可访问形式?  this.;new Cla ...

  9. .Net软件工程师必备面试题134道

    1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private :   私有成员, 在类的内部才可以访问. protected : 保 ...

  10. .Net Winform 开发笔记(四) 透过现象看本质

    写在前面: 从一个窗体的创建显示,再到与用户的交互,最后窗体关闭,这中间经历过了一系列复杂的过程,本文将从Winform应用程序中的Program.cs文件的第一行代码开始,逐步分析一个Winform ...

最新文章

  1. 一文吃透JAVA定时器格式
  2. Instagram个性化推荐工程中三个关键技术是什么?
  3. 学python心得体会500字-英泰移动通信:学习Python心得体会
  4. 【SpringBoot专题】监控健康状况
  5. HTTP Header 详解
  6. 1121:计算矩阵边缘元素之和
  7. jquery练习——简单的图片结果展示效果
  8. MVC5 Action的view()直接输出字符串方式
  9. 单链表的读取、插入与删除
  10. ajax submittype,AjaxSubmit()提交file文件
  11. msfconsole学习
  12. NBT:根际微生物组抗番茄枯萎病(IF:35.724)
  13. win764位旗舰版的序列号(个人推荐可以使用可靠的破解工具)
  14. unity 模拟水下场景 水下冒泡
  15. Java存储金额解决方案BigDecimal
  16. multisim中轻触开关在哪_轻触开关在各种电子产品上的运用
  17. Android 蓝牙 HFP sco 和esco链路的异同分析
  18. 第5章-商品服务-品牌管理
  19. 使用树莓派PICO点灯
  20. 使用vscode编译器:检测到 #include 错误。请更新 includePath。已为此翻译单元,无法打开源文件<iostream>

热门文章

  1. win10c盘扩容_Win10中无损分区扩容调整大小
  2. PHP一句话木马后门
  3. 淘宝返利模式的简单实现方法
  4. 路由器、交换机、集线器的区别
  5. c语言如何算字节,C语言中结构字节的计算方法
  6. 计算机外文文献ssh,计算机外文文献及翻译(SSH).doc
  7. python word 表格最大列数_Excel表格中的行数和列数的最大是多少?
  8. Mac上挂载移动硬盘出现“Read-only file system“问题
  9. win10系统如何查询本机的IP地址和外网IP地址
  10. 忘记Mac开机密码处理方法