.Net程序员常见笔试题

本片文章主要是分享给正在找工作和即将找工作的朋友们的,当我们面试时,很多都会有笔试题和面试题,然而不同的企业有不同的择员标准。并不是你把笔试题做得好就会被录用,但是这些笔试题和面试题,确是我们应该掌握的,很多企业会通过笔试和面试来判断你的职业技能和性格,一般他们考察的都是一些职业常识或是基础知识。我亲身经历后想告诉大家,不管企业怎么抉择,这些基础专业知识我们还是要掌握好的,因为对我们自身还是很有用处的。在这里我给大家分享一些,希望可以用的上。

1. 简述 private、 protected、 public、 internal 修饰符的访问权限。
答 . private :   私有成员, 在类的内部才可以访问。 
     protected : 保护成员,该类内部和继承类中可以访问。 
     public :    公共成员,完全公开,没有访问限制。 
     internal:   在同一命名空间内可以访问。


2 .列举ASP.NET 页面之间传递值的几种方式。 
答. 1.使用QueryString,  如....?id=1; response. Redirect().... 
    2.使用Session变量 
    3.使用Server.Transfer

3.C#中的委托是什么?事件是不是一种委托?

答 :

                  委托可以把一个方法作为参数代入另一个方法。

                  委托可以理解为指向一个函数的引用。

                  是,是一种特殊的委托

4.override与重载的区别

答 :

                  override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要

                  Override 是进行基类中函数的重写。为了适应需要。

5.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?

答:

foreach (System.Windows.Forms.Control control in this.Controls)

{

if (control is System.Windows.Forms.TextBox)

{

System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;

tb.Text = String.Empty ;

}

}

6.什么叫应用程序域?

答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。

7.CTS,CLS,CLR分别作何解释?

答: CTS:公共类型系统.主要是为了语言之间的进行标准化处理.

CLS:公共语言规范.主要是确保代码可以在任何语言中访问的最小标准集体

CLR:公共语言运行时.主要是管理代码..处理,加载代码,以及所有服务的代码

 

8.什么是装箱和拆箱?

答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

9..net Remoting 的工作原理是什么?

答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。

10.在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。

答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间。

11.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。

答:解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)

12.面向对象的语言具有________性、_________性、________性

答:封装、继承、多态。

13.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。

答:IEnumerable 、 GetEnumerator。

14.GC是什么? 为什么要有GC?

答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:

  System.gc()

  Runtime.getRuntime().gc()

15.String s = new String("xyz");创建了几个String Object?

答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

16.C#中结构和类有什么异同?

答:类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。

结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。

区别:abstract class和interface有什么区别?

答:

抽象类:

  1. 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
  2. 不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。
  3. 不能有抽像构造函数或抽像静态方法。
  4. Abstract 类的子类为它们父类中的所有抽像方法提供实现。

接口:

  1. 接口(interface)是抽像类的变体,在接口中,所有方法都是抽像的。
  2. 多继承性可通过实现这样的接口而获得。
  3. 接口中的所有方法都是抽像的,没有一个有程序体。
  4. 接口只可以定义static final成员变量。
  5. 接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对像上调用接口的方法。
  6. 由于有抽像类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

17. 解释ASP.NET中的code-behind?

答:代码隐藏,显示逻辑的代码和处理逻辑的代码分离

18. 什么是受管制代码?

答:由公共语言运行环境进行管理的代码,它主要负责内存管理。在.net平台上运行的代码都是受管制代码

19. ASP。NET和ASP的主要优势?

答:ASP.Net的优势:

  • ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,
  • 理论上可以使用任何编程语言包括C++ , VB , JS等等,当然,最合适的编程语言还是MS为.Net Frmaework专门推出的C(读c sharp),它可以看作是VC和Java的混合体
  • 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些。
  • 首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
  • 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。
  • 并且C#和C++、Java一样提供了完善的调试/ 纠错体系。

20. NET的错误处理机制是什么?

答:try{可能要出错的代码}

catch{扑捉到错误后的处理}

finally{不论代码是否出错都要执行}

21. 解释Page.IsPostBack属性?

答:使用者第一次浏览这个网页时Page.IsPostBack 会传回False,不是第一次浏览这个网页时就传回True

22..net framework包含哪几种技术?

答:Application Framework,Domain Framework

23.触发器分为事前触发和事后触发,有何区别?

答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值

24.事务是什么?

答:在许多大型、关键的应用程序中,计算机每秒钟都在执行大量的任务。更为经常的不是这些任务本身,而是将这些任务结合在一起完成一个业务要求,称为事务。

当某一个任务失败时,就恢复到指定的恢复点,这个叫回滚。

25.描述下ASP.NET中使用DataReader对象 和DataSet对象的区别?

答:Dataset是保存数据的数据结构,断开模式。

DataReader不承担保存数据的责任,需要自己手动关闭连接数据库,它只负责从数据源读取数据到本地而已,是只读向前的,它不是数据结构,而是网络通讯组件的高层封装。

26.什么是WEBSERVICE ?

答:web服务,是利用SOAP(简单对象访问协议,Simple Object Access Protocol)在HTTP上执行远程方法调用的一种方法,也可以使用WSDL(Web Service Description Language,Web服务描述语言)来完整的描述Web服务,基于XML标准。

27..叙述ASP。NET中的几种验证控件(equiredFieldValidato, CompareValidator, RangeValidator, RegularExpressionValitor, CustomValidator, ValidationSummary)及作用?

答:

a) RequiredFieldValidator(必须字段验证);

b) CompareValidator(比较验证);

c) RangeValidator (范围验证);

d) RegularExpresionValidator(正则表达式);

e) ValidationSummary(验证总结);

f) CustomValidator(自定义验证)

28.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号

答:select ID from table1 where LastUpdateDate = (select max(LastUpdateDate) from table1)

29.数据库编程题

1.有三个表,结构如下:

STUDENT(学生证号,姓名,性别,出生年月)

COURSE(课程号,课程名,授课教师)

SC(学生证号,课程号,成绩,授课教师)

用标准SQL 语句完成下列操作

1. 查询女生的基本情况,并按照学生证号降序排列

答:select * from STUDENT where性别=’女’order by 学生证号 desc

2. 查询成绩在90分以上的学生的姓名

答:select 姓名from STUDENT,SC where STUDENT.学生证号 = SC.学生证号 and SC.成绩 < 90

3. 查询数学类课程的课程号和课程名(模糊查询,以S开头)

答:select 课程号,课程名 from COURSE where 课程名 like ‘S%’

4. 查询选课学生所选课程的课程号和成绩,以及该学生的姓名和性别

答:select 课程号,成绩,姓名,性别 from SC,STUDENT,COURSE

where SC.学生证号 = STUDENT.学生证号

and COURSE.课程号 = SC.课程号 group by 学生证号

5. 查询03号课程的平均成绩

答:select avg(成绩) from SC where 课程号 = ‘03’

6. 删除成绩不及格的学生姓名

答:delete from STUDENT where学生证号 in (select学生证号 from SC where 成绩 < 60 p>

delete from SC where成绩 < 60 p>

注意:删除的顺序不能反

7. 把学生证号为90876的学生所选的01号课程成绩改为80分

答:update SC set 成绩 = ’80’where 学生证号=’90876’ and课程号 = ‘01’

29.什么是数据库事务

(1) 事务的三个特性:一致性,原子性,隔离性

(2) 几个SQL语句,要么全部执行成功,要么全部执行失败,事务的三个操作:Begin,Commit,RollBack。

(3) 取刚插入数据的ID值,就要用事务来隔离,

30.请简单的说明数据库建立索引的优缺点

优点:使用索引可以加快数据的查询速度

缺点:由于数据插入过程中会建索引,所以会降低数据的插入,更新速度,索引还会占用磁盘空间。

31.启动一个线程是用run()还是start()?

答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。

run()方法可以产生必须退出的标志来停止一个线程。

32.接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?

答:接口可以继承接口。抽像类可以实现(implements)接口,抽像类是否可继承实体类,但前提是实体类必须有明确的构造函数。

33.构造器Constructor是否可被override?

答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overload。

34.数组有没有length()这个方法? String有没有length()这个方法?

答:数组和String都没有Length()方法,只有Length属性。

35.sleep() 和 wait() 有什么区别?

答:sleep()方法是将当前线程挂起指定的时间。

        wait()释放对象上的锁并阻塞当前线程,直到它重新获取该锁。

36.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

答:short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。

37.谈谈final, finally, finalize的区别。

答:

1.final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此 一个类不能既被声明为 abstract的,又被声明为final的。

将变量或方法声明为final,可以保证它们在使用中 不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为 final的方法也同样只能使用,不能重载

2.finally-再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会 执行,然后控制就会进入 finally 块(如果有的话)。

3.finalize-方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对像从内存中清除出去之前做必要的清理 工作。

这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的 ,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对像之前对这个对象调用的。

38.如何处理几十万条并发数据?

答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.

39.Session有什么重大BUG,微软提出了什么方法加以解决?

答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。

40.进程和线程的区别?

答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。

41.堆和栈的区别?

答:栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小

42.成员变量和成员函数前加static的作用?

答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。

43.产生一个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(1,101);
if(!myList.Contains(num))
myList.Add(num);
}
   for(int i=0;i<100;i++)
    intArr[i]=(int)myList[i];

44.什么叫做SQL注入,如何防止?请举例说明。

答:利用sql语言漏洞获得合法身份登陆系统。如身份验证的程序设计成:

SqlCommand com=new SqlCommand("Select * from users where username='"+t_name.text+"' and pwd='"+t_pwd.text+"'");

object obj=com.ExcuteScale();

if(obj!=null)

{

    //通过验证

}

这段代码容易被sql注入。如用户在t_name中随便输入,在t_pwd中输入1' and 1='1 就可以进入系统了。

45.什么是反射?

答:动态获取程序集信息

46.用Singleton如何写设计模式

答:static属性里面new ,构造函数private

47.什么是Application Pool?

答:Web应用,类似Thread Pool,提高并发性能。

48.什么是虚函数?什么是抽像函数?

答:虚函数:可由子类继承并重写的函数。抽像函数:规定其非虚子类必须实现的函数,必须被重写。

49.什么是XML?

答:XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,即可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XML、XSL和XPath等。

50.什么是ASP.net中的用户控件?

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

51.什么是SOAP,有哪些应用。

答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息。

52.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?

答:一个是属性,用于存取类的字段,一个是特性,用来标识类,方法等的附加性质

53.XML 与 HTML 的主要区别

答:1. XML是区分大小写字母的,HTML不区分。

        2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略

或者之类的结束 标记。在XML中,绝对不能省略掉结束标记。

        3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用 查找结束标记了。

        4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。

        5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

54.ADO.NET相对于ADO等主要有什么改进?

答:

  1. ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,
  2. 不使用com
  3. 不在支持动态游标和服务器端游
  4. 可以断开connection而保留当前数据集可用
  5. 强类型转换
  6. xml支持

55.大概描述一下ASP.NET服务器控件的生命周期

答:初始化 加载视图状态 处理回发数据 加载 发送回发更改通知 处理回发事件 预呈现 保存状态 呈现 处置 卸载

56.&和&&的区别?

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).

57.HashMap和Hashtable的区别。

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

58.error和exception有什么区别?

答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

59. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。

答:None public int GetNumberAtPos(int pos)
{
            if(pos==0||pos==1)
            {
                          return 1;
            }
                   int res = GetNumberAtPos(pos - 1) + GetNumberAtPos(pos - 2);
                      return res;
   }

60.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
答:
      foreach (System.Windows.Forms.Control control in this.Controls)
      {
          if (control is System.Windows.Forms.TextBox)
         {
                System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;
                    tb.Text = String.Empty ;
          }
      }

61.请编程实现一个冒泡排序算法?

int [] array = new int [*] ;

int temp = 0 ;

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 ;

                   }

        }

           }

62.

int sum=0;

bool flag=true;

for(int i=1;i<=m;i++)

{

         if(flag)

         {

               sum+=i;

           }

        else

       {

              sum-=i;

        }

        flag=!flag;

}

return sum;

62.写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。

<script ***script>

setTimeout('window.close();',3000);

function show()

{

if (window.event.button == 1)

{

alert("左");

}

else if (window.event.button == 2)

{

alert("右");

}

}

</script>

63.程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)

要求:  1.要有联动性,老鼠和主人的行为是被动的。

           2.考虑可扩展性,猫的叫声可能引起其他联动效应。

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();
}
}

64.在.net(C# or vb.net)中如何取消一个窗体的关闭。
答:private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)e.Cancel=true;}

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

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

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

68.什么是Web Service?UDDI?

答:Web Service便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。

UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

69.<%# %> 和 <% %> 有什么区别?

答:<%# %>表示绑定的数据源

<% %>是服务器端代码块

70.你觉得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多个新的控件,减少了工作量

71.请将字符串"I am a student"按单词逆序输出 如"student a am I"

string S = "I am a student";

char[] C = new char[] { ' '};

string[] n =S.Split(C);

int length = S.Length;

for (int i =length-1 ; i >=0; i--)

{

Console.Write(n[i]);

if (i != 0)

{

Console.Write(" ");

}

}

72.两个数组 [n] [m] n>m 第一个数组的数字无序排列 第二个数组为空 取出第一个数组的最小值 放到第二个数组中第一个位置, 依次类推. 不能改变A数组,不能对之进行排序,也不可以倒到别的数组中。

int[] a = { -20, 9, 7, 37, 38, 69, 89, -1, 59, 29, 0, -25, 39, 900, 22, 13, 55 };

int[] b = new int[10];

int intTmp = a[0], intMaxNum;

for (int i = 0; i < a.Length; i++)

{

intTmp = a[i] > intTmp ? a[i] : intTmp;

}

intMaxNum = intTmp;

for (int j = 0; j < b.Length; j++)

{

for (int i = 0; i < a.Length; i++)

{

if (j == 0)

intTmp = a[i] < intTmp ? a[i] : intTmp;

else

{

if (a[i] > b[j - 1])

intTmp = a[i] < intTmp ? a[i] : intTmp;

}

}

b[j] = intTmp;

intTmp = intMaxNum;

}

foreach (int bb in b)

{

Console.WriteLine(bb);

}

Console.ReadLine();

73.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路

答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中。

74.给定以下XML文件,完成算法流程图。

<FileSystem>

< DriverC >

<Dir DirName=”MSDOS622”>

<File FileName =” Command.com” ></File>

</Dir>

<File FileName =”MSDOS.SYS” ></File>

<File FileName =” IO.SYS” ></File>

</DriverC>

</FileSystem>

请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。

答:

void FindFile( Directory d )

{

FileOrFolders = d.GetFileOrFolders();

foreach( FileOrFolder fof in FileOrFolders )

{

if( fof is File )

You Found a file;

else if ( fof is Directory )

FindFile( fof );

}

}

75.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。

equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

76.成员变量和成员函数前加static的作用?

答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。

77.向服务器发送请求有几种方式?

答:get,post。get一般为链接方式,post一般为按钮方式。

78.软件开发过程一般有几个阶段?每个阶段的作用?

答:可行性分析(风险控制),需求分析,架构设计,代码编写,测试,部署,维护

79.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法。

答:using 引入名称空间或者使用非托管资源,使用完对象后自动执行实现了IDisposable接口的类的Dispose方法

new 新建实例或者隐藏父类方法

80.Static Nested Class 和 Inner Class的不同,说得越多越好

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

81.asp.net中web应用程序获取数据的流程:

A.Web Page B.Fill C.Sql05 D.Data Sourse E.DataGrid F.DataSet G.Select and Connect

Commands H.Sql Data Adapter

答案:a,e,d,f,h,g,b,c

82.Asp.net执行模式中各组件填入到对应位置:

A.Output Cache B.Parser C.Assembly Cache D.IE E.Memory F.Compiler

WebPage被第一次请求时:

D->__->__->__->__->D

WebPage被第二次请求时:

D->__->__->D

WebPage的页面输出缓存被打开时:

D->__->D

答案:

WebPage被第一次请求时:

D->_b_->_f_->_a_->_e_->D

WebPage被第二次请求时:

D->_b_->_e_->D

WebPage的页面输出缓存被打开时:

D->_a_->D

83.两个数组 [n] [m] n>m 第一个数组的数字无序排列 第二个数组为空 取出第一个数组的最小值 放到第二个数组中第一个位置, 依次类推. 不能改变A数组,不能对之进行排序,也不可以倒到别的数组中。

int[] a = { -20, 9, 7, 37, 38, 69, 89, -1, 59, 29, 0, -25, 39, 900, 22, 13, 55 };

int[] b = new int[10];

int intTmp = a[0], intMaxNum;

for (int i = 0; i < a.Length; i++)

{

intTmp = a[i] > intTmp ? a[i] : intTmp;

}

intMaxNum = intTmp;

for (int j = 0; j < b.Length; j++)

{

for (int i = 0; i < a.Length; i++)

{

if (j == 0)

intTmp = a[i] < intTmp ? a[i] : intTmp;

else

{

if (a[i] > b[j - 1])

intTmp = a[i] < intTmp ? a[i] : intTmp;

}

}

b[j] = intTmp;

intTmp = intMaxNum;

}

foreach (int bb in b)

{

Console.WriteLine(bb);

}

Console.ReadLine();

 

 

 

posted @ 2013-05-11 00:52  "程序猿"~在路上  阅读(1254)  评论(2编辑  收藏  举报