c面试题.docx
《c面试题.docx》由会员分享,可在线阅读,更多相关《c面试题.docx(36页珍藏版)》请在冰豆网上搜索。
c面试题
c面试题
Question31.(单选)
根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?
publicvoidtest(inti)
{
lock(this)
{
if(i>10)
{
i--;
test(i);
}
}
}
1.会锁死
2.不会锁死
Question32.(单选)
以下描述错误的是()
1.在C++中支持抽象类而在C#中不支持抽象类。
2.C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件而且在同一处声明和定义类的成员。
3.在C#中可使用new修饰符显式隐藏从基类继承的成员。
4.在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
Question33.(单选)
int[][]myArray3=newint[3][]{newint[3]{5,6,2},newint[5]{6,9,7,8,3},newint[2]{3,2}};myArray3[2][2]的值是()。
1.9
2.2
3.6
4.越界
Question34.(单选)
在C#中利用Socket进行网络通信编程的一般步骤是:
建立Socket侦听、()、利用Socket接收和发送数据。
1.建立Socket连接
2.获得端口号;
3.获得IP地址;
4.获得主机名;
Question35.(单选)
如果设treeView1=newTreeView(),TreeNodenode=newTreeNode("根结点"),则treeView1.Nodes.Add(node)返回的是一个()类型的值。
1.TreeNode;
2.int;
3.string;
4.TreeView;
Question36.(单选)
声明一个委托publicdelegateintmyCallBack(intx);则用该委托产生的回调方法的原型应该是
1.voidmyCallBack(intx)
2.intreceive(intnum)
3.stringreceive(intx)
4.不确定的
Question37.(单选)
关于ASP.NET中的代码隐藏文件的描述正确的是
1.Web窗体页的程序的逻辑由代码组成,这些代码的创立用于与窗体交互。
编程逻辑唯一与用户界面不同的文件中。
该文件称作为“代码隐藏”文件,如果用C#创立,该文件
2.项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件
3.项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件
4.以上都不正确
Question38.(单选)
Whatcompilerswitchcreatesanxmlfilefromthexmlcommentsinthefilesinanassembly?
1./text
2./doc
3./xml
4./help
Question39.(单选)
下面的代码实现了设计模式中的什么模式
publicclassA{
privateAinstance;
privateA(){
}
publicstaticAInstance{
get
{
if(A==null)
A=newA();
returninstance;
}
}
}
1.Factory
2.AbstractFactory
3.Singleton
4.Builder
Question40.(单选)
classClass1
{
publicstaticintCount=0;
staticClass1()
{
Count++;
}
publicClass1()
{
Count++;
}
}
Class1o1=newClass1();
Class1o2=newClass1();
请问,Class1.Count的值是多少?
()
1.1
2.2
3.3
4.4
Question41.(单选)
abstractclassBaseClass
{
publicvirtualvoidMethodA()
{
Console.WriteLine("BaseClass");
}
publicvirtualvoidMethodB()
{
}
}
classClass1:
BaseClass
{
publicvoidMethodA()
{
Console.WriteLine("Class1");
}
publicoverridevoidMethodB()
{
}
}
classClass2:
Class1
{
newpublicvoidMethodB()
{
}
}
classMainClass
{
publicstaticvoidMain(string[]args)
{
Class2o=newClass2();
o.MethodA();
}
}
请问,此程序输出结果是:
1.BaseClass
2.BassClassClass1
3.Class1
4.Class1BassClass
Question42.(单选)
publicstaticvoidMain(string[]args)
{
inti=;
objecto=i;
i=;
intj=(int)o;
Console.WriteLine("i={0},o={1},j={2}",i,o,j);
}
1.i=,o=,j=
2.i=,o=,,j=
3.i=,o=,,j=
4.i=,o=,j=
Question43.(多选)
您要创立ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。
您想要配置这个应用程序以便当发生一个HTTP代码错误时它能够显示一个自定义的错误页面给用户。
您想要花最小的代价完成这些目标,您应该怎么做?
(多选)
1.在这个应用程序的Global.asax文件中创立一个Application_Error过程去处理ASP.NET代码错误。
2.在这个应用程序的Web.config文件中创立一个applicationError节去处理ASP.NET代码错误。
3.在这个应用程序的Global.asax文件中创立一个CustomErrors事件去处理HTTP错误。
4.在这个应用程序的Web.config文件中创立一个CustomErrors节去处理HTTP错误。
Question44.(单选)
如下程序的运行结果是:
publicabstractclassA
{
publicA()
{
Console.WriteLine('A');
}
publicvirtualvoidFun()
{
Console.WriteLine("A.Fun()");
}
}
publicclassB:
A
{
publicB()
{
Console.WriteLine('B');
}
publicnewvoidFun()
{
Console.WriteLine("B.Fun()");
}
publicstaticvoidMain()
{
Aa=newB();
a.Fun();
}
}
1.ABA.Fun()
2.ABB.Fun()
3.BAA.Fun()
4.BAB.Fun()
Question45.(单选)
Whichofthesestringdefinitionswillpreventescapingon
backslashesinC#?
*
1.strings=#”nTeststring”;
2.strings=“’nTeststring”;
3.strings=@”nTeststring”;
4.strings=“nTeststring”;
Question46.(单选)
WhichofthefollowingoperationscanyouNOTperformonanADO.NETDataSet?
1.ADataSetcanbesynchronisedwithaRecordSet.
2.ADataSetcanbesynchronisedwiththedatabase.
3.ADataSetcanbeconvertedtoXML.
4.YoucaninfertheschemafromaDataSet
Question47.(单选)
InObjectorientedProgramming,howwouldyoudescribeencapsulation?
1.Theconversionofonetypeofobjecttoanother.
2.Theruntimeresolutionofmethodcalls.
3.Theexpositionofdata.
4.Theseparationofinterfaceandimplementation.
Question48.(单选)
Howdoesassemblyversioningin.NETpreventDLLHell?
1.Theruntimecheckstoseethatonlyoneversionofanassemblyisonthemachineatanyonetime.
2..NETallowsassembliestospecifythenameANDtheversionofanyassembliestheyneedtorun.
3.Thecompilerofferscompiletimecheckingforbackwardcompatibility.
4.Itdoesn’t.
Question49.(单选)
三种常见的字符串判空串方法:
1:
boolisEmpty=(str.Length==0);
2:
boolisEmpty=(str==String.Empty);
3:
boolisEmpty=(str=="");
哪种方法最快?
1.1
2.2
3.3
Question50.(单选)
publicsealedclassSampleSingleton1
{
privateintm_Counter=0;
privateSampleSingleton1()
{
Console.WriteLine(""初始化SampleSingleton1。
"");
}
publicstaticreadonlySampleSingleton1Singleton=newSampleSingleton1();
publicvoidCounter()
{
m_Counter++;
}
}
以上代码实现了设计模式中的哪种模式?
1.原型
2.抽象工厂
3.单键
4.生成器
下边是微软软件开发培训讲师李建忠老师对C#编程语言进行的几个层次划分。
不妨对照,你的C#开发水平介于下边C#语言的哪几个层次。
C#语言的几个层次
不谈具体领域(比如搜索,视频,网络等),单就C#编程语言这个垂直方向,我大致上对它有一个如下的层次划分。
1.基本运用C#语法,在各种工具和示例代码的支持下,完成一些基本程序任务
2.熟练掌握面向对象与组件构造,知其然亦知其因此然,完成一般小规模信息管理类软件项目开发任务
3.深入理解CLR内核机制,对各种类型与.NET平台机制的优缺点、适用场合、效率有清晰把握,能够完成技术复杂度比较高的项目。
4.能够游刃有余把握松耦合原则,精准运用各种语言构造,架构大型软件项目。
5.能够站在计算机抽象、系统和历史发展的高度来理解和把握编程语言
我判断你现在大致介于2-3之间的位置,当然在这些方向上的成长,有些部分是培训能够大幅度帮助大家的,有些部分培训只能起辅助作用,经验和对技术的追求态度才更为重要……
说实话,编程语言原来不该这么重要,可是现在接近两年的培训经验下来,接触的培训学员林林总总,从最底端几乎没有什么编程经验的,到高端的在企业担任关键开发任务的。
发现在中国,编程语言事实上是大多数开发人员的硬伤,大部分程序员介于1-2之间——原因就不多说了,中国大学的计算机教育只有在一个人彻底理解了计算机之后才会深刻体认到它是多么的荒谬和失败。
C#.Net的常见面试试题附答案
1.面向对象的思想主要包括什么?
2.什么是ASP.net中的用户控件
3.什么叫应用程序域?
什么是受管制的代码?
什么是强类型系统?
什么是装箱和拆箱?
什么是重载?
CTS、CLS和CLR分别作何解释?
4.列举一下你所了解的XML技术及其应用
5.值类型和引用类型的区别?
写出C#的样例代码。
6.ADO.net中常见的对象有哪些?
分别描述一下。
7.如何理解委托?
8.C#中的接口和类有什么异同。
9.。
net中读写数据库需要用到哪些类?
她们的作用
10.UDP连接和TCP连接的异同。
11.ASP.net的身份验证方式有哪些?
分别是什么原理?
12.进程和线程分别怎么理解?
13.什么是code-Behind技术。
14.活动目录的作用。
中读写XML的类都归属于哪些命名空间?
16.解释一下UDDI、WSDL的意义及其作用。
17.什么是SOAP,有哪些应用。
18.如何部署一个ASP.net页面。
19.如何理解.net中的垃圾回收机制。
20.常见的调用webservice方法有哪些?
1 继承 多态 封装
2 用户控件. 不会说懂得做
3 装箱和拆箱发生 值类型向引用类型转换,和引用类型向值类型转 重载:
同一个函数参数不同
4.xml能够用来做网页(xslt) xml能够当作数据库 xml能够用来保存对象的系列化
5值类型,没有什么好说的.引用类型用处是返回两个以上参数的时候比较好用 ref out 我常见的是out不要先赋值
6 我直接用 sqlhelper了 有connection command 还有参数
7 回调机制比较有用的.在net中采用了委托.
8 接口,是能够多继承,类只有单继承.接口强调了你必须实现,而没有具本实现的方法和虚类有点相似
9 datareader dataset 还有一个不太常见
10 udp不要实现什么三次握手.
11 身份验证最常见还是以前的session方法. form验证没有用过. 微软的哪个也没有用过
12 进程简单理解为单个程序吧(按ctrl+alt+del)能够看到的.它至少有一个主线程 .
13 代码后置..不懂得讲
14 活动目录.. 完全不会
15 system.xml (system.io创立目录的时候用)
16 这个也是web服务里的东西.
17 soap简单协议.我只知道.web服务是基于它之上的
18 部置一个页面. 也就是说没有代码是直接写在aspx中的了.只接放在IIS的虚拟目录下就行了.当然要支持
19 垃圾回收..一般的只要掌握.非托管对象要记得释放资源就行了吧.
20 直接在里面引用就OK了.它会自己生成一个代理类
1. 填空:
(1)面向对象的语言具有___继承性、_封装___性、___多态性。
(2)能用foreach遍历访问的对象需要实现 IEnumerable接口或声明GetEnumerable 方法的类型。
(3)列举ADO.net中的五个主要对象Command、Connection、DataSet、DataSetCommand、DataReader。
2. 不定项选择:
(1) 以下叙述正确的是:
A. 接口中能够有虚方法。
B. 一个类能够实现多个接口。
C. 接口不能被实例化。
D. 接口中能够包含已实现的方法。
(2) 从数据库读取记录,你可能用到的方法有:
A. ExecuteNonQuery B. ExecuteScalar
C. Fill D. ExecuteReader
3. 简述 private、 protected、 public、 internal 修饰符的访问权限。
4. 写出一条Sql语句:
取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:
ID可能不是连续的。
)
5 .列举ASP.NET 页面之间传递值的几种方式。
6. 写出程序的输出结果
class Class1 {
private string str = "Class1.str";
private int i = 0;
static void StringConvert(string str) {
str = "string being converted.";
}
static void StringConvert(Class1 c) {
c.str = "string being converted.";
}
static void Add(int i) {
i++;
}
static void AddWithRef(ref int i) {
i++;
}
static void Main() {
int i1 = 10;
int i2 = 20;
string str = "str";
Class1 c = new Class1();
Add(i1);
AddWithRef(ref i2);
Add(c.i);
StringConvert(str);
StringConvert(c);
Console.WriteLine(i1);
Console.WriteLine(i2);
Console.WriteLine(c.i);
Console.WriteLine(str);
Console.WriteLine(c.str);
}
}
7.写出程序的输出结果
public abstract class A
{
public A()
{
Console.WriteLine('A');
}
public virtual void Fun()
{
Console.WriteLine("A.Fun()");
}
}
public class B:
A
{
public B()
{
Console.WriteLine('B');
}
public new void Fun()
{
Console.WriteLine("B.Fun()");
}
public static void Main()
{
A a = new B();
a.Fun();
}
}
8. 写出程序的输出结果:
public class A
{
public virtual void Fun1(int i)
{
Console.WriteLine(i);
}
public void Fun2(A a)
{
a.Fun1
(1);
Fun1(5);
}
}
public class B :
A
{
public override void Fun1(int i)
{
base.Fun1 (i + 1);
}
public static void Main()
{
B b = new B();
A a = new A();
a.Fun2(b);
b.Fun2(a);
}
}
9. 一列数的规则如下:
1、1、2、3、5、8、13、21、34......
求第30位数是多少, 用递归算法实现。
(C#语言)
10. 程序设计:
猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
(C#语言)
要求:
1.要有联动性,老鼠和主人的行为是被动的。
2.考虑可扩展性,猫的叫声可能引起其它联动效应。
参考答案:
1.
(1) 继承性、封装性、多态性。
(考基本概念)
(2) IEnumerable 、 GetEnumerator (对foreach机制的理解,原来不想出这题的,凑分)
(3) ... (送分题, 对ADO.net的了解)
评分标准:
一空1分,满分10分。
2.
(1) B、C (考对接口的理解)
(2) B、C、D