I come, I see, I conquer

                    —Gaius Julius Caesar

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

61. 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复

int[] intArr = new int[100];
ArrayList myList 
= new ArrayList();
Random rnd 
= new Random();
while (myList.Count < 100)
{
    
int num = rnd.Next(1101);
    
if (!myList.Contains(num))
        myList.Add(num);
}
for (int i = 0; i < 100; i++)
    intArr[i] 
= (int)myList[i];

 

62. 请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
答:
session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input ttype="hidden" 简单,可能被伪造
url参数 简单,显示于地址栏,长度有限
数据库 稳定,安全,但性能相对弱

63. 请指出GAC的含义?
答:全局程序集缓存。它解决了几个程序共享某一个程序集的问题。不必再将那个被共享的程序集拷贝到应用程序目录了,其实这道理很简单,.net应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就可以直接使用,没有再到应用程序目录进行查找。

64. 向服务器发送请求有几种方式?
答:get,post。get一般为链接方式,post一般为按钮方式。

65. DataReader与Dataset有什么区别?
答:一个是只能向前的只读游标,一个是内存中的表。

66. 软件开发过程一般有几个阶段?每个阶段的作用?
答:需求分析,架构设计,代码编写,QA,部署

67. 在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法。
答:using 引入名称空间或者使用非托管资源
new 新建实例或者隐藏父类方法

68. 需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.
答:
string inputStr=" xx xx ";
inputStr=Regex.Replace(inputStr.Trim()," *"," ");

69. 下面这段代码输出什么?为什么?

int i = 5;
int j = 5;
if (Object.ReferenceEquals(i, j))
    Console.WriteLine(
"Equal");
else
    Console.WriteLine(
"Not Equal");

 

答:不相等,因为比较的是对象

70. 什么是反射和序列化?
答:反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。

序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。

71. 用Singleton如何写设计模式
答:static属性里面new ,构造函数private

72. 什么是Application Pool?
答:Web应用,类似Thread Pool,提高并发性能。

73. 什么是虚函数?什么是抽象函数?
答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。

74. 什么是ASP.net中的用户控件?
答:用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的include..但是功能要强大的多。

75. 列举一下你所了解的XML技术及其应用
答:xml用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config

76. ADO.net中常用的对象有哪些?分别描述一下。
答:Connection 数据库连接对象; Command 数据库命令; DataReader 数据读取器; DataSet 数据集

77. 什么是code-Behind技术。
答:ASPX,RESX和CS三个后缀的文件,这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.

78. 什么是SOAP,有哪些应用。
答:simple object access protocal,简单对象接受协议.以xml为基本编码结构,建立在已有通信协议上(如http,不过据说ms在搞最底层的架构在tcp/ip上的soap)的一种规范Web Service使用的协议..

79. XML与HTML的主要区别
答:
1. XML是区分大小写字母的,HTML不区分。
2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略或者之类的结束 标记。在XML中,绝对不能省略掉结束标记。
3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。
4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。
5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

80. 当整数a赋值给一个object对象时,整数a将会被?
答:装箱。

81. 类成员有_____种可访问形式?
答:this.; new Class(); .Method;

82. public static const int A=1;这段代码有错误么?是什么?
答:const成员都是static所以应该去掉static。const不能用static修饰。

83. float f=-123.567F; int i=(int)f; i的值现在是_____?
答:-123。

84. 委托声明的关键字是______?
答:delegate.

85. 用sealed修饰的类有什么特点?
答:密封,不能继承。

86. 在Asp.net中所有的自定义用户控件都必须继承自________?
答:System.Web.UI.UserControl

87. 在.Net中所有可序列化的类都被标记为_____?
答:[serializable]

88. 在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?
答:GC。

89. 下面的代码中有什么错误吗?_______

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

答:abstract override 是不可以一起修饰.
 
90. 当类T只声明了私有实例构造函数时,则在T的程序文本外部,___可以___(可以or不可以)从T派生出新的类,不可以____(可以or不可以)直接创建T的任何实例。
答:不可以,不可以。

91.下面这段代码有错误么?

switch (i)
{
    
case(): //case()条件不能为空
        CaseZero();
        
break;
    
case 1:
        CaseOne();
        
break;
    
case 2:
        dufault; 
//wrong,格式不正确
        CaseTwo();
        
break;
}

 

92. 在.Net中,类System.Web.UI.Page可以被继承么?
答:可以。

93. .net的错误处理机制是什么?
答:.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。

94. 利用operator声明且仅声明了==,有什么错误么?
答:要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="

95. 在.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
    } 
}

 

96. 在.net(C# or vb.net)中如何取消一个窗体的关闭。
答:

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

 

97. 在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
答:一个是退出整个应用程序,一个是关闭其中一个form。

98. 在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);

99. 某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
(1) 密码单词的最小长度是两个字母,可以相同,也可以不同
(2) K不可能是单词的第一个字母
(3) 如果L出现,则出现次数不止一次
(4) M不能使最后一个也不能是倒数第二个字母
(5) K出现,则N就一定出现
(6) O如果是最后一个字母,则L一定出现
问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?
A) K B)L C) M D) N
答案:B

问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?
A)1个 B)3个 C)6个 D)9个
答案:A

问题三:下列哪一个是单词密码?
A) KLLN B) LOML C) MLLO D)NMKO
答案:C

100. 对于这样的一个枚举类型:

enum Color : byte
{
    Red,
    Green,
    Blue,
    orange
}

 

答:
string[] ss=Enum.GetNames(typeof(Color));
byte[] bb=Enum.GetValues(typeof(Color));

101. C#中property与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?
答:attribute:自定义属性的基类;property :类中的属性

102. C#可否对内存进行直接的操作?
答:在.net下,.net引用了垃圾回收(GC)功能,它替代了程序员 不过在C#中,不能直接实现Finalize方法,而是在析构函数中调用基类的Finalize()方法

103. ADO.NET相对于ADO等主要有什么改进?
答:1:ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,2:不使用com3:不在支持动态游标和服务器端游 4:,可以断开connection而保留当前数据集可用 5:强类型转换 6:xml支持

104. 大概描述一下ASP.NET服务器控件的生命周期
答:初始化 -> 加载视图状态 -> 处理回发数据 -> 加载 -> 发送回发更改通知 -> 处理回发事件 -> 预呈现 -> 保存状态 -> 呈现 -> 处置 -> 卸载

105. Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
答:不能,可以实现接口

106. Static Nested Class和Inner Class的不同,说得越多越好
答:Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

107. &和&&的区别
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)

108. HashMap和Hashtable的区别
答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.

109. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)

110. Overloaded的方法是否可以改变返回值的类型?
答:Overloaded的方法是可以改变返回值的类型

111. error和exception有什么区别?
答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

112. <%# %> 和 <% %>有什么区别?
答:<%# %>表示绑定的数据源; <% %>是服务器端代码块

113. 你觉得ASP.NET 2.0(VS2005)和你以前使用的开发工具(.Net 1.0或其他)有什么最大的区别?你在以前的平台上使用的哪些开发思想(pattern / architecture)可以移植到ASP.NET 2.0上 (或者已经内嵌在ASP.NET 2.0中)
答:
1 ASP.NET 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.
2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无 法 在页面嵌入服务器端代码获得帮助提示,
3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢
4 在绑定数据,做表的分页.Update,Delete,等操作都可以可视化操作,方便了初学者
5 在ASP.NET中增加了40多个新的控件,减少了工作量

114. 重载与覆盖的区别?
答:
1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系
2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
3、覆盖要求参数列表相同;重载要求参数列表不同。
4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调 用时的实参表与形参表来选择方法体的。

115. 分析以下代码

public static void test(string ConnectString)

    System.Data.OleDb.OleDbConnection conn 
= new System.Data.OleDb.OleDbConnection();
    conn.ConnectionString 
= ConnectString;
    
try 
    { 
        conn.Open();
        ……. 
    }
    
catch(Exception Ex) 
    { 
        MessageBox.Show(Ex.ToString()); 
    }
    
finally 
    { 
        
if (!conn.State.Equals(ConnectionState.Closed))
            conn.Close(); 
    } 
}

 

请问
1)以上代码可以正确使用连接池吗?
答:回答:如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致

2)以上代码所使用的异常处理方法,是否所有在test方法内的异常都可以被捕捉并显示出来?
答:只可以捕捉数据库连接中的异常吧. (finally中,catch中,如果有别的可能引发异常的操作,也应该用try,catch。所以理论上并非所有异常都会被捕捉。)

116. 下面的例子中

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

117. Collection 和 Collections的区别。
答案:
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

118. 什么时候用assert。
答案:1.4新增关键字(语法),用于测试boolean表达式状态,可用于调试程序。
使用方法 assert <boolean表达式>,表示如果表达式为真(true),则下面的语句执行,否则抛出AssertionError。
另外的使用方式assert < boolean表达式>:<other表达式>,表示如果表达式为真,后面的表达式忽略,否则后面表达式的值用于AssertionError的构建参数。
注意编译时要增加-source 1.4 参数,否则报错。]运行时要增加 -ea参数,否则assert行被忽略

119. GC是什么? 为什么要有GC?
答案:GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法

posted on 2008-09-11 14:20  jcsu  阅读(3903)  评论(5编辑  收藏  举报