1
收集一些C#的试题,准备在自己学的差不多时来考验一下自己,共享给大家,一起学习!
2
3 1 . <% # %> 和 <% %> 有什么区别?
4 <% # %> 表示绑定的数据源
5 <% %> 是服务器端代码块
6 2 .以下代码能否通过编译?如果不能,请改成正确代码,并说明原因。
7 < html >
8 <%
9 int subtract( int num1, int num2) {
10 return num1 - num2;
11 }
12 %>
13 < body >
14 <%
15 int number = 100 ;
16 while (number > 0 ) {
17 Response.Write( " value: " + number + " <br/> " );
18 number = subtract(number, 1 );
19 }
20 %>
21 </ body >
22 </ html >
23 3 .通过Web Site Administration Tool ( in VS2005) 可以实现哪些功能?Web Site Administration Tool 会自动对哪些文件进行修改或添加?
24
25 4 .解释一下带 “original_” 前缀的Data Parameter和不带前缀的Data Parameter有什么异同。(可用简单的代码说明)
26
27 5 .修改下面的代码段,使GridView能Update数据。
28 <% @ Page Language = " C# " %>
29 < html >
30 < head runat = " server " >
31 < title > GridView </ title >
32 </ head >
33 < body >
34 < form id = " form1 " runat = " server " >
35 < asp:GridView ID = " GridView1 " AllowSorting = " true " AllowPaging = " true " Runat = " server "
36 DataSourceID = " SqlDataSource1 " DataKeyNames = " id " AutoGenerateColumns = " False " >
37 < Columns >
38 < asp:BoundField ReadOnly = " true " HeaderText = " ID " DataField = " id " SortExpression = " id " />
39 < asp:BoundField HeaderText = " Last Name " DataField = " lname " SortExpression = " lname " />
40 < asp:BoundField HeaderText = " First Name " DataField = " fname " SortExpression = " fname " />
41 </ Columns >
42 </ asp:GridView >
43 < asp:SqlDataSource ID = " SqlDataSource1 " Runat = " server "
44 SelectCommand = " SELECT [id], [lname], [fname] FROM [authors] "
45 ConnectionString = " <%$ ConnectionStrings:Pubs %> " />
46 </ form >
47 </ body >
48 </ html >
49
50 6 .GridView没有内置Insert 数据的功能,如果想在GridView内Insert数据,你有什么想法?
51
52 7 .ASP.NET 2.0 哪个(些)特性是你觉得最激动人心的?为什么?(也可以谈C# 2.0 )
53 ASP.NET 2 .0相对于1.1突出了3大理念,
54 1 ,提高生产力
55 A 一致性(masterpage)
56 B 会员管理
57 C 资料存取
58 D 个性化
59 2 管理能力的提高(例如WEB.CONFIG)
60 3 提升效能,满足更多人的访问
61
62 8 .你觉得ASP.NET 2.0 (VS2005)和你以前使用的开发工具(.Net 1 .0或其他)有什么最大的区别?你在以前的平台上使用的哪些开发思想(pattern / architecture)可以移植到ASP.NET 2 .0上 (或者已经内嵌在ASP.NET 2 .0中)
63
64 1 ASP.NET 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.
65 2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无法在页面嵌入服务器端代码获得帮助提示,
66 3 代码和设计界面切换的时候, 2 .0支持光标定位.这个我比较喜欢
67 4 在绑定数据,做表的分页.UPDATE,DELETE,等操作都可以可视化操作,方便了初学者
68 5 , 在ASP.NET中增加了40多个新的控件,减少了工作量
69
70
71
72
73 ===================
74
75
76 1 、override与重载的区别
77 2 、.net的错误处理机制是什么
78 3 、C#中接口和类的异同
79 4 、DataReader和DataSet的异同
80
81 Override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
82
83 .net错误处理机制采用try -> catch -> finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
84
85 接口和类都是类,不同的事,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。
86
87 DataReader用于读取数据,DataSet用于在内存中保存数据。
88
89 重载与覆盖的区别
90 1 、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。
91 2 、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
92 3 、覆盖要求参数列表相同;重载要求参数列表不同。
93 4 、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。
94
95 4 、DataReader和DataSet的异同
96 DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
97 DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存
但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作![dot.gif](https://www.cnblogs.com/Images/dot.gif)
98
99
100
101
102
103 ===============
104
105
106
107 一.填空题
108 1 .c#中的三元运算符是_____ ?
109 2 .当整数a赋值给一个object对象时,整数a将会被_____ ?
110 3 .类成员有_____种可访问形式?
111 4 . public static const int A = 1 ;这段代码有错误么?是什么?
112 5 . float f =- 123.567F ;
113 int i = ( int )f;
114 i的值现在是_____ ?
115 6 .利用operator声明且仅声明了 == ,有什么错误么 ?
116 7 .委托声明的关键字是______ ?
117 8 .用sealed修饰的类有什么特点?
118 9 .在Asp.net中所有的自定义用户控件都必须继承自________ ?
119 10 .在.Net中所有可序列化的类都被标记为_____ ?
120 11 .在.Net托管代码中我们不用担心内存漏洞,这是因为有了______ ?
121 12 .下面的代码中有什么错误吗?_______
122 using System;
123 class A
124 {
125 public virtual void F(){
126 Console.WriteLine( " A.F " );
127 }
128 }
129 abstract class B:A
130 {
131 public abstract override void F();
132 }
133
134 13 .当类T只声明了私有实例构造函数时,则在T的程序文本外部,______(可以 or 不可以)从T
135
136 派生出新的类,____(可以 or 不可以)直接创建T的任何实例。
137 14 .下面这段代码有错误么?
138 switch (i){
139 case ():
140 CaseZero();
141 break ;
142 case 1 :
143 CaseOne();
144 break ;
145 case 2 :
146 dufault;
147 CaseTwo();
148 break ;
149 }
150 15 .在.Net中,类System.Web.UI.Page 可以被继承么?
151
152 二.简答题
153 1 .在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
154 2 .在下面的例子里
155 using System;
156 class A
157 {
158 public A(){
159 PrintFields();
160 }
161 public virtual void PrintFields(){}
162 }
163 class B:A
164 {
165 int x = 1 ;
166 int y;
167 public B(){
168 y =- 1 ;
169 }
170 public override void PrintFields(){
171 Console.WriteLine( " x={0},y={1} " ,x,y);
172 }
173 当使用new B()创建B的实例时,产生什么输出?
174 3 .下面的例子中
175
176 using System;
177 class A
178 {
179 public static int X;
180 static A(){
181 X = B.Y + 1 ;
182 }
183 }
184 class B
185 {
186 public static int Y = A.X + 1 ;
187 static B(){}
188 static void Main(){
189 Console.WriteLine( " X={0},Y={1} " ,A.X,B.Y);
190 }
191 }
192 产生的输出结果是什么?
193 4 .谈谈类和结构的区别?
194 5 .一个长度为10000的字符串,通过随机从a - z中抽取10000个字符组成。请用c#语言编写主要程
195
196 序来实现。
197 6 .对于这样的一个枚举类型:
198 enum Color: byte {
199 Red,
200 Green,
201 Blue,
202 Orange
203 }
204 试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。
205 7 .您了解设计模式么?请列出您所知道的设计模式的名称。
206 8 .请在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容
207
208 需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?
209 9 .什么叫做SQL注入,如何防止?请举例说明。
210 10 .下面这段代码输出什么?为什么?
211 int i = 5 ;
212 int j = 5 ;
213 if (Object.ReferenceEquals(i,j))
214 Console.WriteLine( " Equal " );
215 else
216 Console.WriteLine( " Not Equal " );
217
218
219 1 ? :
220 2 装箱
221 3 3种
222 4 const成员都是static所以应该去掉static
223 5 - 123
224 6 要同时修改Equale和GetHash() ? 重载了 " == " 就必须重载 " != "
225 7 delegate
226 8 不可被继承
227 9 System.Web.UI.UserControl
228 10 [serializable]
229 11 gC
230 12 abstract override 是不可以一起修饰
231 13 不可以,不可以
232 14 case ():不行 default ;
233 15 可以
234
235 1 Using 引入一个名子空间,或在使用了一个对像后自动调用其IDespose,New 实例化一个对
236
237 像,或修饰一个方法,表此方法完全重写此方法,
238 2 X = 1 ,Y = 0
239 3 x = 1 ,y = 2
240 4 最大区别一个是引用类型,一个是值类型 默认成员访问为public是另外一个区别
241
242
243
244
245
246
247 =========================================================
248
249
250
251 .NET & C# 基础知识试题 ( 20 % )
252 1 . 在.net(C# or vb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)。
253 答案: this (C#) Me(vb.net).
254
255 2 . 在.net(C# or vb.net)中如何用户自定义消息,并在窗体中处理这些消息。
256 答案:
257 在form中重载DefWndProc函数来处理消息:
258 protected override void DefWndProc ( ref System.WinForms.Message m )
259 {
260 switch (m.msg)
261 {
262 case WM_Lbutton :
263 /// string与MFC中的CString的Format函数的使用方法有所不同
264 string message = string .Format( " 收到消息!参数为:{0},{1} " ,m.wParam,m.lParam);
265 MessageBox.Show(message); /// 显示一个消息框
266 break ;
267 case USER:
268 处理的代码
269 default :
270 base .DefWndProc( ref m); /// 调用基类函数处理非自定义消息。
271 break ;
272 }
273 }
274
275 3 . 在.net(C# or vb.net)如何启动另一个程序。
276 答案:process
277
278 4 . 在.net(C# or vb.net)中如何取消一个窗体的关闭。
279 答案:
280 private void Form1_Closing( object sender, System.ComponentModel.CancelEventArgs e)
281 {
282 e.Cancel = true ;
283 }
284
285 5 . 在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
286 答案:一个是退出整个应用程序,一个是关闭其中一个form
287
288 6 . 在C#中有一个double型的变量,比如10321. 5 ,比如122235401. 21644 ,作为货币的值如何按各个不同国家的习惯来输出。比如美国用$ 10 , 321 .50和$ 122 , 235 , 401 .22而在英国则为£ 10 321 .50和£ 122 235 401.22
289 答案:
290 System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo( " en-US " );
291 // System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");为英国货币类型
292 decimal y = 9999999999999999999999999999m;
293 string str = String.Format(MyCulture, " My amount = {0:c} " ,y);
294
295 7 . 某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
296 ( 1 ) 密码单词的最小长度是两个字母,可以相同,也可以不同
297 ( 2 ) K不可能是单词的第一个字母
298 ( 3 ) 如果L出现,则出现次数不止一次
299 ( 4 ) M不能使最后一个也不能是倒数第二个字母
300 ( 5 ) K出现,则N就一定出现
301 ( 6 ) O如果是最后一个字母,则L一定出现
302 问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?
303 A) K B)L C) M D) N
304 答案:B
305
306 问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?
307 A)1个 B)3个 C)6个 D)9个
308 答案:A
309
310 问题三:下列哪一个是单词密码?
311 A) KLLN B) LOML C) MLLO D)NMKO
312 答案:C
313
314 8 . 62 - 63 = 1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?
315 答案:62移动成2的6次方
316
317
318 ========================
319
320
321 2 .在下面的例子里
322 using System;
323 class A
324 {
325 public A(){
326 PrintFields();
327 }
328 public virtual void PrintFields(){}
329 }
330 class B:A
331 {
332 int x = 1 ;
333 int y;
334 public B(){
335 y =- 1 ;
336 }
337 public override void PrintFields(){
338 Console.WriteLine( " x={0},y={1} " ,x,y);
339 }
340 当使用new B()创建B的实例时,产生什么输出?
341 3 .下面的例子中
342
343 using System;
344 class A
345 {
346 public static int X;
347 static A(){
348 X = B.Y + 1 ;
349 }
350 }
351 class B
352 {
353 public static int Y = A.X + 1 ;
354 static B(){}
355 static void Main(){
356 Console.WriteLine( " X={0},Y={1} " ,A.X,B.Y);
357 }
358 }
359 产生的输出结果是什么?
360 这两题能不能详解一下 ?
361
362
363
364 ==========================
365
366
367 using System;
368 class A
369 {
370 public A(){
371 PrintFields();
372 }
373 public virtual void PrintFields(){}
374 }
375 class B:A
376 {
377 int x = 1 ;
378 int y;
379 public B(){
380 y =- 1 ;
381 }
382 public override void PrintFields(){
383 Console.WriteLine( " x={0},y={1} " ,x,y);
384 }
385 当使用new B()创建B的实例时,产生什么输出?
386
387 創建一個對象的時候是先構造基類再構造派生類.然後自己去理解了.
388
389
2
3 1 . <% # %> 和 <% %> 有什么区别?
4 <% # %> 表示绑定的数据源
5 <% %> 是服务器端代码块
6 2 .以下代码能否通过编译?如果不能,请改成正确代码,并说明原因。
7 < html >
8 <%
9 int subtract( int num1, int num2) {
10 return num1 - num2;
11 }
12 %>
13 < body >
14 <%
15 int number = 100 ;
16 while (number > 0 ) {
17 Response.Write( " value: " + number + " <br/> " );
18 number = subtract(number, 1 );
19 }
20 %>
21 </ body >
22 </ html >
23 3 .通过Web Site Administration Tool ( in VS2005) 可以实现哪些功能?Web Site Administration Tool 会自动对哪些文件进行修改或添加?
24
25 4 .解释一下带 “original_” 前缀的Data Parameter和不带前缀的Data Parameter有什么异同。(可用简单的代码说明)
26
27 5 .修改下面的代码段,使GridView能Update数据。
28 <% @ Page Language = " C# " %>
29 < html >
30 < head runat = " server " >
31 < title > GridView </ title >
32 </ head >
33 < body >
34 < form id = " form1 " runat = " server " >
35 < asp:GridView ID = " GridView1 " AllowSorting = " true " AllowPaging = " true " Runat = " server "
36 DataSourceID = " SqlDataSource1 " DataKeyNames = " id " AutoGenerateColumns = " False " >
37 < Columns >
38 < asp:BoundField ReadOnly = " true " HeaderText = " ID " DataField = " id " SortExpression = " id " />
39 < asp:BoundField HeaderText = " Last Name " DataField = " lname " SortExpression = " lname " />
40 < asp:BoundField HeaderText = " First Name " DataField = " fname " SortExpression = " fname " />
41 </ Columns >
42 </ asp:GridView >
43 < asp:SqlDataSource ID = " SqlDataSource1 " Runat = " server "
44 SelectCommand = " SELECT [id], [lname], [fname] FROM [authors] "
45 ConnectionString = " <%$ ConnectionStrings:Pubs %> " />
46 </ form >
47 </ body >
48 </ html >
49
50 6 .GridView没有内置Insert 数据的功能,如果想在GridView内Insert数据,你有什么想法?
51
52 7 .ASP.NET 2.0 哪个(些)特性是你觉得最激动人心的?为什么?(也可以谈C# 2.0 )
53 ASP.NET 2 .0相对于1.1突出了3大理念,
54 1 ,提高生产力
55 A 一致性(masterpage)
56 B 会员管理
57 C 资料存取
58 D 个性化
59 2 管理能力的提高(例如WEB.CONFIG)
60 3 提升效能,满足更多人的访问
61
62 8 .你觉得ASP.NET 2.0 (VS2005)和你以前使用的开发工具(.Net 1 .0或其他)有什么最大的区别?你在以前的平台上使用的哪些开发思想(pattern / architecture)可以移植到ASP.NET 2 .0上 (或者已经内嵌在ASP.NET 2 .0中)
63
64 1 ASP.NET 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.
65 2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无法在页面嵌入服务器端代码获得帮助提示,
66 3 代码和设计界面切换的时候, 2 .0支持光标定位.这个我比较喜欢
67 4 在绑定数据,做表的分页.UPDATE,DELETE,等操作都可以可视化操作,方便了初学者
68 5 , 在ASP.NET中增加了40多个新的控件,减少了工作量
69
70
71
72
73 ===================
74
75
76 1 、override与重载的区别
77 2 、.net的错误处理机制是什么
78 3 、C#中接口和类的异同
79 4 、DataReader和DataSet的异同
80
81 Override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
82
83 .net错误处理机制采用try -> catch -> finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。
84
85 接口和类都是类,不同的事,接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承,而类只能是单继承,继承接口的类必须实现接口中声明的方法或属性。接口主要定义一种规范,统一调用方法,在大型项目中接口正发挥日益重要的作用。
86
87 DataReader用于读取数据,DataSet用于在内存中保存数据。
88
89 重载与覆盖的区别
90 1 、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。
91 2 、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。
92 3 、覆盖要求参数列表相同;重载要求参数列表不同。
93 4 、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。
94
95 4 、DataReader和DataSet的异同
96 DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
97 DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
![dot.gif](https://www.cnblogs.com/Images/dot.gif)
98
99
100
101
102
103 ===============
104
105
106
107 一.填空题
108 1 .c#中的三元运算符是_____ ?
109 2 .当整数a赋值给一个object对象时,整数a将会被_____ ?
110 3 .类成员有_____种可访问形式?
111 4 . public static const int A = 1 ;这段代码有错误么?是什么?
112 5 . float f =- 123.567F ;
113 int i = ( int )f;
114 i的值现在是_____ ?
115 6 .利用operator声明且仅声明了 == ,有什么错误么 ?
116 7 .委托声明的关键字是______ ?
117 8 .用sealed修饰的类有什么特点?
118 9 .在Asp.net中所有的自定义用户控件都必须继承自________ ?
119 10 .在.Net中所有可序列化的类都被标记为_____ ?
120 11 .在.Net托管代码中我们不用担心内存漏洞,这是因为有了______ ?
121 12 .下面的代码中有什么错误吗?_______
122 using System;
123 class A
124 {
125 public virtual void F(){
126 Console.WriteLine( " A.F " );
127 }
128 }
129 abstract class B:A
130 {
131 public abstract override void F();
132 }
133
134 13 .当类T只声明了私有实例构造函数时,则在T的程序文本外部,______(可以 or 不可以)从T
135
136 派生出新的类,____(可以 or 不可以)直接创建T的任何实例。
137 14 .下面这段代码有错误么?
138 switch (i){
139 case ():
140 CaseZero();
141 break ;
142 case 1 :
143 CaseOne();
144 break ;
145 case 2 :
146 dufault;
147 CaseTwo();
148 break ;
149 }
150 15 .在.Net中,类System.Web.UI.Page 可以被继承么?
151
152 二.简答题
153 1 .在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?
154 2 .在下面的例子里
155 using System;
156 class A
157 {
158 public A(){
159 PrintFields();
160 }
161 public virtual void PrintFields(){}
162 }
163 class B:A
164 {
165 int x = 1 ;
166 int y;
167 public B(){
168 y =- 1 ;
169 }
170 public override void PrintFields(){
171 Console.WriteLine( " x={0},y={1} " ,x,y);
172 }
173 当使用new B()创建B的实例时,产生什么输出?
174 3 .下面的例子中
175
176 using System;
177 class A
178 {
179 public static int X;
180 static A(){
181 X = B.Y + 1 ;
182 }
183 }
184 class B
185 {
186 public static int Y = A.X + 1 ;
187 static B(){}
188 static void Main(){
189 Console.WriteLine( " X={0},Y={1} " ,A.X,B.Y);
190 }
191 }
192 产生的输出结果是什么?
193 4 .谈谈类和结构的区别?
194 5 .一个长度为10000的字符串,通过随机从a - z中抽取10000个字符组成。请用c#语言编写主要程
195
196 序来实现。
197 6 .对于这样的一个枚举类型:
198 enum Color: byte {
199 Red,
200 Green,
201 Blue,
202 Orange
203 }
204 试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。
205 7 .您了解设计模式么?请列出您所知道的设计模式的名称。
206 8 .请在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容
207
208 需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?
209 9 .什么叫做SQL注入,如何防止?请举例说明。
210 10 .下面这段代码输出什么?为什么?
211 int i = 5 ;
212 int j = 5 ;
213 if (Object.ReferenceEquals(i,j))
214 Console.WriteLine( " Equal " );
215 else
216 Console.WriteLine( " Not Equal " );
217
218
219 1 ? :
220 2 装箱
221 3 3种
222 4 const成员都是static所以应该去掉static
223 5 - 123
224 6 要同时修改Equale和GetHash() ? 重载了 " == " 就必须重载 " != "
225 7 delegate
226 8 不可被继承
227 9 System.Web.UI.UserControl
228 10 [serializable]
229 11 gC
230 12 abstract override 是不可以一起修饰
231 13 不可以,不可以
232 14 case ():不行 default ;
233 15 可以
234
235 1 Using 引入一个名子空间,或在使用了一个对像后自动调用其IDespose,New 实例化一个对
236
237 像,或修饰一个方法,表此方法完全重写此方法,
238 2 X = 1 ,Y = 0
239 3 x = 1 ,y = 2
240 4 最大区别一个是引用类型,一个是值类型 默认成员访问为public是另外一个区别
241
242
243
244
245
246
247 =========================================================
248
249
250
251 .NET & C# 基础知识试题 ( 20 % )
252 1 . 在.net(C# or vb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)。
253 答案: this (C#) Me(vb.net).
254
255 2 . 在.net(C# or vb.net)中如何用户自定义消息,并在窗体中处理这些消息。
256 答案:
257 在form中重载DefWndProc函数来处理消息:
258 protected override void DefWndProc ( ref System.WinForms.Message m )
259 {
260 switch (m.msg)
261 {
262 case WM_Lbutton :
263 /// string与MFC中的CString的Format函数的使用方法有所不同
264 string message = string .Format( " 收到消息!参数为:{0},{1} " ,m.wParam,m.lParam);
265 MessageBox.Show(message); /// 显示一个消息框
266 break ;
267 case USER:
268 处理的代码
269 default :
270 base .DefWndProc( ref m); /// 调用基类函数处理非自定义消息。
271 break ;
272 }
273 }
274
275 3 . 在.net(C# or vb.net)如何启动另一个程序。
276 答案:process
277
278 4 . 在.net(C# or vb.net)中如何取消一个窗体的关闭。
279 答案:
280 private void Form1_Closing( object sender, System.ComponentModel.CancelEventArgs e)
281 {
282 e.Cancel = true ;
283 }
284
285 5 . 在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
286 答案:一个是退出整个应用程序,一个是关闭其中一个form
287
288 6 . 在C#中有一个double型的变量,比如10321. 5 ,比如122235401. 21644 ,作为货币的值如何按各个不同国家的习惯来输出。比如美国用$ 10 , 321 .50和$ 122 , 235 , 401 .22而在英国则为£ 10 321 .50和£ 122 235 401.22
289 答案:
290 System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo( " en-US " );
291 // System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");为英国货币类型
292 decimal y = 9999999999999999999999999999m;
293 string str = String.Format(MyCulture, " My amount = {0:c} " ,y);
294
295 7 . 某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
296 ( 1 ) 密码单词的最小长度是两个字母,可以相同,也可以不同
297 ( 2 ) K不可能是单词的第一个字母
298 ( 3 ) 如果L出现,则出现次数不止一次
299 ( 4 ) M不能使最后一个也不能是倒数第二个字母
300 ( 5 ) K出现,则N就一定出现
301 ( 6 ) O如果是最后一个字母,则L一定出现
302 问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?
303 A) K B)L C) M D) N
304 答案:B
305
306 问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?
307 A)1个 B)3个 C)6个 D)9个
308 答案:A
309
310 问题三:下列哪一个是单词密码?
311 A) KLLN B) LOML C) MLLO D)NMKO
312 答案:C
313
314 8 . 62 - 63 = 1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?
315 答案:62移动成2的6次方
316
317
318 ========================
319
320
321 2 .在下面的例子里
322 using System;
323 class A
324 {
325 public A(){
326 PrintFields();
327 }
328 public virtual void PrintFields(){}
329 }
330 class B:A
331 {
332 int x = 1 ;
333 int y;
334 public B(){
335 y =- 1 ;
336 }
337 public override void PrintFields(){
338 Console.WriteLine( " x={0},y={1} " ,x,y);
339 }
340 当使用new B()创建B的实例时,产生什么输出?
341 3 .下面的例子中
342
343 using System;
344 class A
345 {
346 public static int X;
347 static A(){
348 X = B.Y + 1 ;
349 }
350 }
351 class B
352 {
353 public static int Y = A.X + 1 ;
354 static B(){}
355 static void Main(){
356 Console.WriteLine( " X={0},Y={1} " ,A.X,B.Y);
357 }
358 }
359 产生的输出结果是什么?
360 这两题能不能详解一下 ?
361
362
363
364 ==========================
365
366
367 using System;
368 class A
369 {
370 public A(){
371 PrintFields();
372 }
373 public virtual void PrintFields(){}
374 }
375 class B:A
376 {
377 int x = 1 ;
378 int y;
379 public B(){
380 y =- 1 ;
381 }
382 public override void PrintFields(){
383 Console.WriteLine( " x={0},y={1} " ,x,y);
384 }
385 当使用new B()创建B的实例时,产生什么输出?
386
387 創建一個對象的時候是先構造基類再構造派生類.然後自己去理解了.
388
389