C#Net的常见面试试题附答案.docx

上传人:b****5 文档编号:7546042 上传时间:2023-01-24 格式:DOCX 页数:17 大小:27.28KB
下载 相关 举报
C#Net的常见面试试题附答案.docx_第1页
第1页 / 共17页
C#Net的常见面试试题附答案.docx_第2页
第2页 / 共17页
C#Net的常见面试试题附答案.docx_第3页
第3页 / 共17页
C#Net的常见面试试题附答案.docx_第4页
第4页 / 共17页
C#Net的常见面试试题附答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C#Net的常见面试试题附答案.docx

《C#Net的常见面试试题附答案.docx》由会员分享,可在线阅读,更多相关《C#Net的常见面试试题附答案.docx(17页珍藏版)》请在冰豆网上搜索。

C#Net的常见面试试题附答案.docx

C#Net的常见面试试题附答案

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 (考查对ADO.net的熟练程度) 

  评分标准:

 一题5分,不选或者错选均不得分。

漏选得2分。

满分10分。

 

 

3. . private :

   私有成员, 在类的内部才可以访问。

 

     protected :

 保护成员,该类内部和继承类中可以访问。

 

     public :

    公共成员,完全公开,没有访问限制。

 

     internal:

   在同一命名空间内可以访问。

 

评分标准:

答对1题2分,2题5分,3题7分。

全对10分。

 (送分题) 

 

4.  解1:

  select top 10 * from A where id not in (select top 30 id from A) 

    解2:

  select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A) 

    评分标准:

 写对即10分。

(答案不唯一,datagrid 分页可能需要用到) 

  

5.  1.使用QueryString,  如....?

id=1; response. Redirect().... 

    2.使用Session变量 

    3.使用Server.Transfer 

    .... 

   评分标准:

 答对1点得3分, 两点7分, 3点10分。

 

6.  (考查值引用和对象引用) 

10 

21 

str 

string being converted. 

评分标准:

答对一点得2分,满分10分。

 

7.  A 

    B 

A.Fun() 

评分标准:

 写出A.B 得5分,写出A.Fun()得5分,满分10分。

 

(考查在继承类中构造函数, 以及new 方法, ) 

 

8.  2 

    5 

    1 

    6 

评分标准:

 答对一点得2分,两点得5分,3点得7分。

全对得10分。

(一些人做这题,头都晕了.... ^_^ )

 

9.  

    public class MainClass 

    { 

        public static void Main()   

        { 

            Console.WriteLine(Foo(30)); 

        } 

        public static int Foo(int i) 

        { 

            if (i <= 0) 

                return 0; 

            else if(i > 0 && i <= 2) 

                return 1; 

            else return Foo(i -1) + Foo(i - 2); 

        } 

    } 

评分标准:

 写出return Foo(i -1) + Foo(i - 2); 得5分。

 

 写出if(i > 0 && i <= 2) return 1; 得5分。

           方法参数过多需要扣分(扣除分数 = 参数个数 - 1)

           不用递归算法扣5分

           (递归算法在树结构建立等方面比较常用)

 

10           

 要点:

1. 联动效果,运行代码只要执行Cat.Cryed()方法。

2. 对老鼠和主人进行抽象 

评分标准:

 <1>.构造出Cat、Mouse、Master三个类,并能使程序运行(2分) 

            <2>从Mouse和Master中提取抽象(5分) 

            <3>联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。

(3分) 

    public interface Observer 

    { 

        void Response();    //观察者的响应,如是老鼠见到猫的反映 

    } 

    public interface Subject 

    { 

        void AimAt(Observer obs);  //针对哪些观察者,这里指猫的要扑捉的对象---老鼠 

    } 

    public class Mouse :

 Observer 

    { 

        private string name; 

        public Mouse(string name, Subject subj) 

        {           

            this.name = name; 

            subj.AimAt(this); 

        } 

        

        public void Response() 

        { 

            Console.WriteLine(name + " attempt to escape!

"); 

        } 

    } 

    public class Master :

 Observer 

    {   

        public Master(Subject subj) 

        {           

            subj.AimAt(this); 

        } 

        

        public void Response() 

        { 

            Console.WriteLine("Host waken!

"); 

        }  

    } 

  

    public class Cat :

 Subject 

    { 

        private ArrayList observers; 

        public Cat() 

        {   

            this.observers = new ArrayList(); 

        } 

        public void AimAt(Observer obs) 

        { 

            this.observers.Add(obs); 

        } 

        public void Cry() 

        { 

            Console.WriteLine("Cat cryed!

"); 

            foreach (Observer obs in this.observers) 

            { 

                obs.Response(); 

            } 

        } 

    } 

    class MainClass 

    {       

        static void Main(string[] args) 

        { 

            Cat cat = new Cat(); 

            Mouse mouse1 = new Mouse("mouse1", cat); 

            Mouse mouse2 = new Mouse("mouse2", cat); 

            Master master = new Master(cat); 

            cat.Cry(); 

        } 

    } 

//--------------------------------------------------------------------------------------------- 

设计方法二:

 使用event -- delegate设计.. 

    public delegate void SubEventHandler(); 

    public abstract class Subject 

    { 

        public event SubEventHandler SubEvent; 

        protected void FireAway() 

        { 

            if (this.SubEvent !

= null) 

                this.SubEvent(); 

        }   

    } 

    public class Cat :

 Subject 

    {  

        public void Cry() 

        { 

            Console.WriteLine("cat cryed."); 

            this.FireAway(); 

        } 

    } 

    public abstract class Observer 

    { 

        public Observer(Subject sub) 

        { 

            sub.SubEvent += new SubEventHandler(Response); 

        } 

        public abstract void Response();    

    } 

    public class Mouse :

 Observer 

    { 

        private string name; 

        public Mouse(string name, Subject sub) :

 base(sub) 

        {   

            this.name = name; 

        } 

        public override void Response() 

        { 

            Console.WriteLine(name + " attempt to escape!

"); 

        } 

    } 

    public class Master :

 Observer 

    { 

        public Master(Subject sub) :

 base(sub){} 

        public override void Response() 

        { 

            Console.WriteLine("host waken"); 

        } 

    } 

    class Class1 

    { 

        static void Main(string[] args) 

        { 

            Cat cat = new Cat(); 

            Mouse mouse1 = new Mouse("mouse1", cat); 

            Mouse mouse2 = new Mouse("mouse2", cat); 

            Master master = new Master(cat); 

            cat.Cry(); 

        } 

    }

问题:

 

1.ASP.NET中的身份验证有那些?

你当前项目采用什么方式验证请解释 

2.什么是WEB控件?

使用WEB控件有那些优势?

 

3.请解释ASP。

NET中以什么方式进行数据验证?

 

4.请谈谈对正则表达式的看法?

 

5.ASP。

NET中共有几种类型的控件?

各有什么区别?

 

6.WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?

自动传回是什么?

为什么要使用自动传回。

 

7.WEB控件及HTML服务端控件能否调用客户端方法?

如果能,请解释如何调用?

 

8.ASP。

NET与ASP相比有什么优势?

 

9.请解释web.config文件中的重要节点 

10.请解释ASP。

NET中的web页面与其隐藏类之间的关系?

 

11.什么是viewstate,能否禁用?

是否所用控件都可以禁用?

 

13.当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?

怎么解决 

14.请解释一个WEB页面中代码执行次序。

 

15.请解释什么是上下文对象,在什么情况下要使用上下文对象 

16.请解释转发与跳转的区别?

 

17.请解释ASP.NET中不同页面之间数据传递有那些方式?

 

18.请解释ASP。

NET中button  linkbutton imagebutton 及hyperlink这四个控件之间的功别 

19.请解释一下。

NET多层应用程序中层与层之间以那几种方式进行数据传递。

并解释你自

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1