C面试题集锦

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1Ch1:1、==与Equals方法的区别?对于值类型:由于值类型是存储在栈中,两者都是比较的是两个变量的在栈中的值是否相等。对于引用类型:引用类型是在堆一个存储引用,指向堆中的某个具体值。==判断引用地址,equals判断值2、Java中的switch于C#中的switch的区别Java中的switch:只能判断int,short及比int所占字节还少的类型C#中的switch:可以判断string及比string所占字节少的类型Ch2:1、冒泡排序(c#)口诀int[]numbers={49,12,65,45,88,54};//排序前Console.WriteLine(排序前:);foreach(intiinnumbers){Console.Write(i+);}//冒泡排序for(inti=0;inumbers.Length;i++){for(intj=0;jnumbers.Length-1-i;j++){//将最大数交换到最后if(numbers[j]numbers[j+1]){inttemp=numbers[j];numbers[j]=numbers[j+1];numbers[j+1]=temp;}}}//排序后Console.WriteLine(\n排序后:);foreach(intiinnumbers){Console.Write(i+);}2、分别写出四种循环语法for(inti=0;ilength;i++){}while(true){}foreach(intiinnumbers){}do{}while(true);3、编程求数组中的最大数,打印所有的水仙花数,打印九九乘法表求最大数:int[]numbers={49,12,65,45,88,54};intmax=0;for(inti=0;inumbers.Length-1;i++){if(numbers[i]numbers[i+1]){max=numbers[i];}}2Console.WriteLine(最大数为:+max);水仙花数:for(inti=100;i1000;i++){inta=i%10;//个位数intb=i%100;//十位数b=b/10;intc=i/100;//百位数intnumber=(int)Math.Pow(a,3)+(int)Math.Pow(b,3)+(int)Math.Pow(c,3);if(number==i){Console.Write(i+);}}打印九九乘法表:for(inti=1;i=9;i++){for(intj=1;j=i;j++){Console.Write({0}×{1}={2}\t,j,i,i*j);}Console.WriteLine();}Ch3:1、命名空间的含义:包,便于管理2、引用传递和值传递的区别:主要是相对于值类型,用引用传递加ref,就可实现其值真正的改变。值传递,当调用方法结束后,则不会改变值。3、请写出String的常用方法(10个),并描述功能Equals():判断值相等Split():以…分割每个字符为string[]数组IndexOf():返回指定字符的索引Concat():连接,相当于’+’号Trim():忽略前后空格ToUpper():转换为大写ToLower():转换为小写StartsWith():开头字符是否匹配SubString():截取字符串ToCharArray():转换为char[]数组4、分别写出数据类型转换(至少四种)的方法,代码举例显示转换:inti=(int)12.9;隐式转换:doubled=12;int/double/float.parse()转换:strings=”13”;inti=int.parse(s);convert:intx=13;doubled=Convert.ToDouble(x);Ch4:1、Partial关键字的含义Partial局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。适用于以下情况:(1)类型特别大,不宜放在一个文件中实现。(2)一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。(3)需要多人合作编写一个类、Windows窗体的生命周期常用事件有哪些?Initialize,Load,Activated(窗体被激活时),Deactivate(窗体被停用时),FormClosed,FormClosing3、写出常用的控件键盘事件和鼠标事件键盘事件:KeyDown,KeyUp,KeyPress鼠标事件:Click,DoubleClick,MouseClick,MouseDown,MouseEnter,MouseHover,MouseLeave,MouseMove,MouseUp4、请写出MessageBox常用的四种类型,以及返回值类型3MessageBox.Show(“消息内容”);返回类型:DialogResultMessageBox.Show(“消息内容”,”标题”);返回类型:DialogResultMessageBox.Show(“消息内容”,”标题”);返回类型:DialogResultMessageBox.Show(“消息内容”,”标题”,MessageBoxButtons按钮类型);返回类型:DialogResultMessageBox.Show(“消息内容”,”标题”,MessageBoxButtons按钮类型,MessageBoxIcon图标类型);返回类型:DialogResultCh5:1、anchor和dock的区别anchor(锚定):距离容器边缘的距离,当控件锚定到某个边缘时,与指定边缘最接近的控件边缘与指定边缘之间的距离将保持不变。dock(停靠):将控件停靠在窗体或容器的边缘,距离为0px2、如何创建一个MDI窗体(步骤),即多文档窗体1)设置子窗体:子窗体名称form=newForm();form.MdiParent=this(父窗体);form.show();2)设置父窗体属性:isMdiContainer=true;3、模式窗体和非模式窗体的区别模式窗体:form.ShowDialog();有返回值:DialogResult;程序会中断,主窗体不能激活,必须关闭模式窗体才能激活主窗体,只能show出一个非模式窗体:form.Show();无返回值,程序不会中断;可以show出多个4、使用第三方类传递窗体间的数据(代码演示)publicclassUserHelpper{publicstaticstringloginId=;//用户名publicstaticstringloginType=;//登录类型}Ch6:1、ADO.Net重要组件(那幅图6.2).NetFramework和DateSet2、数据提供者程序有哪些3、连接字符串的写法(两种)DataSource=.\SQLEXPRESS;InitialCatalog=数据库名;Integratedsecurity=true;server=.\sqlexpress;database=数据库名;uid=用户名;password=密码4、Connection对象的属性和方法:数据库连接对象属性:state连接状态,DataBase获取连接对象的数据库名称,DataSource连接对象的实例名方法:Open()/Close()打开/关闭数据库,Dispose()释放连接资源,ChangeDatabase()为打开的当前连接对象更改数据库名。5、异常处理各关键字的作用try:可能发生异常的代码块catch:捕获到何种异常,如何去处理,可以跟多个catch块,但子类异常必须写在父类异常的前面finally:不管有没有异常都将执行的代码块6、Command对象的属性和方法:SQL语句执行命令属性:CommandText获取或设置要对数据源执行的Transact-SQL语句、表名或存储过程。Connection获取或设置SqlCommand的此实例使用的SqlConnection方法:ExecuteNonQuery()执行增,删,改语句,并返回受影响行数;ExecuteScalar()执行查询,返回结果的第一行第一列,忽略其他列或行;ExecuteReader()执行查询,返回DataReader对象Ch7:1、DataReader对象的主要属性和方法4属性:HasRows有没有读取到DataReader中的数据;IsClosed是否已关闭DataReader对象方法:Read()读取一行数据;GetString()/GetDouble()…获取何种类型的数据值;Close()关闭DataReader对象;IsDBNull()获取一个值,用于指示列中是否包含不存在的或缺少的值2、请写出获取并使用DataReader对象的步骤1)建立数据库连接conn=new…Connection(…);2)创建Command对象cmd=new…Command(sql,conn);3)执行SQL查询命令sdr=cmd.ExecuteReader();4)处理数据while(sdr.Read()){inti=sdr.getInt(0);}Ch8:1、请写出DataSet(临时数据库)的内部结构(图8.2)2、写出填充一个DataSet的步骤3、数据集的工作原理(图8.3)4、如何将数据集中的数据保存到数据库,请写出步骤S2深入.NETCh1:1、画出.NET框架的结构(图1.7).netFramework类库:ASP.Net(Web和WebService)、WinForms、ADO.Net和XML类、基本框架类。CLR:CLS和CTS。2、解释CTS(CommonTypeSystem通用类型系统)和CLS(CommonLanguageSpecification公共语言规范)的含义CTS:解决不同语言的数据类型不同的问题。CLS:实现多种语言之间的互操作性。3、画出.NET编译过程(图1.8)4、解释.NET解决了DLL灾难5、解释垃圾回收机制工作原理(回去查资料)垃圾回收器是用来管理应用程序的内存分配和释放的。当一个应用程序在运行的时候,垃圾回收器设置了一个托管堆。每次当开发人员使用new运算符创建对象时,运行库都从托管堆为该对象分配内存。新创建的对象被放在上次创建的对象之后。垃圾回收器保存了一个指针,该指针总是指向托管堆中最后一个对象之后的内存空间。当新的对象被产生时,运行库就知道应该将新的对象放在内存的什么地方。当垃圾回收器的指针指向托管堆以外的内存空间时,就需要回收内存中的垃圾了。在这个过程中,垃圾回收器首先假设在托管堆中所有的对象都需要被回收。然后它在托管堆中寻找被根对象引用的对象(根对象就是全局,静态或处于活动中的局部变量以及寄存器指向的对象),找到后将它们加入一个有效对象的列表中,并在已经搜索过的对象中寻找是否有对象被新加入的有效对象引用。直到垃圾回收器检查完所有的对象后,就有一份根对象和根对象直接或间接引用了的对象的列表,而其它没有在表中的对象就被从内存中回收6、CLR主要用途(CommonLanguageRuntime公共语言运行时)是所有.Net应用程序运行时的环境,所有应用程序都要使用的编程基础,它如同一个支持.Net应用程序运行和开发的虚拟机。Ch2:C#代码Microsoft中间语言(MSIL)平台专用代码VB.Net代码C#编译器VB.net编译器CLRJIT编译器51、什么是类和对象类:具有相同特征工共同行为的一级对象的集合。是一个模子。对象:是真实的实体。它们的关系:由对象归纳为类,是归纳对象共性的过程;在类的基础上,将状态和行为实体化为对象的过程称为实例化。2、什么是封装封装是面向对象的三大特性之一,用于隐藏内部实现,对

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功