获得主机名; [.NET(C#)] 声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是( B )。 A. void myCallBack(int x) ; B. int receive(int num) ; C. string receive(int x) ; D. 不确定的; [.NET(C#)] 判断题,对的打√错的打×(每小题2分,共20分) 1. (T)在C#中,装箱操作是将值类型转化成引用类型。 2. (F)接口中的成员不可以有访问域修饰符,但可以有其它修饰符。 3. (F)在C#中,索引器是专门用来访问对象中的数组信息的。 4. (T)在C#中,接口可以被多重继承而类不能。 5. (F)在C#中,int[][]是定义一个int型的二维数组。 6. (T)异常类对象均为System.Exception类的对象。 7. (T)当窗体最小化后,再次还原成为活动窗体时将自动触发Paint事件。 8. (T)ASP.NET中,使用验证控件来验证用户输入,要求用户不可跳过该项输入,并且用户输入值在0和1000之间,则适用RequiredFieldValidator和Rangeva lidator控件。 9. (F)声明委托实际上是声明了一个方法。 10. (T)任何事物都是对象。 [.NET(C#)] 请简述一下用Socket进行同步通讯编程的详细步骤 1. 在应用程序和远程设备中使用协议和网络地址初始化套接字。 2. 在应用程序中通过指定端口和地址建立监听。 3. 远程设备发出连接请求。 4. 应用程序接受连接产生通信scoket。 5. 应用程序和远程设备开始通讯(在通讯中应用程序将挂起直到通讯结束)。 6. 通讯结束,关闭应用程序和远程设备的Socket回收资源。 [.NET(C#)] try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后 答:会执行,在return前执行。 [.NET(C#)] 写出程序的输出结果: 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 ); } } 答案: 2 5 1 6 [.NET(C#)] 分析以下代码,完成填空 string strTmp = “abcdefg某某某”; //中间无空格 int i = System.Text.Encoding.Default.GetBytes( strTmp ).Length; int j = strTmp.Length; 以上代码执行完后,i= ?, j= ? 答:i=13,j=10 这个道题需要注意字符串中是否带空格,如果带空格,那么i、j的值应该增加,具体情况具体分析。 [.NET(C#)] 一列数的规则如下: 1、1、2、3、5、8、13、21、34…… ;求第30位数是多少,用递归算法实现。(C#语言) 答案: class Program { 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 ); } } [.NET(C#)] 请编程遍历页面上所有TextBox控件并给它赋值为string.Empty 答案: foreach( System.Windows.Forms.Control control in this.Controls ) { if( control is System.Windows.Forms.TextBox ) { System.Windows.Forms.TextBox txtbox = ( System.Windows.Forms.TextBox )control; txtbox.Text = string.Empty; } } [.NET(C#)] 公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列 头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路: 答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中。 [.NET(C#)] String s = new String(“xyz”);创建了几个String Object? 答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对像s。 [.NET(C#)] 请编程实现一个冒泡排序算法 答案: int[] array = new int[10]; int temp = 0; public void Po() { for( int i = 0; i < array.Length – 1; i++ ) { for( int j = i + 1; j < array.Length; j++ ) { if( array[j] < array[i] ) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } } } [.NET(C#)] 求以下表达式的值,写出您想到的一种或几种实现方法:1 – 2 + 3 – 4 +……+ m 答案: public static void Main() { int input = int.Parse( Console.ReadLine() ); int sum = 0; for( int i = 0; i <= input; i++ ) { if( ( i % 2 ) == 1 ) { sum += i; } else { sum = sum – i; } } Console.WriteLine( sum ); } 或: int m = int.Parse( Console.ReadLine() ); int sum = 0; bool flag = true; for( int i = 1; i <= m; i++ ) { if( flag ) sum += i; else sum -= i; flag = !flag; } Console.WriteLine( sum ); [.NET(C#)] 在下面的例子里 class A { public A() { PrintFields(); } public virtual void PrintFields() { } } class B : A { int x = 1; int y; public B() { y = -1; } public override void PrintFields() { Console.WriteLine( “x={0},y={1}”, x, y ); } } 当使用new B()创建B的实例时,产生什么输出? 答案:x = 1, y = 0 [.NET(C#)] 根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写: namespace test { public delegate void OnDBOperate(); public class UserControlBase : System.Windows.Forms.UserControl { public event OnDBOperate OnNew; private void toolBar_ButtonClick( object sender, System.Windows.Forms.ToolBarButtonClick |