C#与.NET笔试题和面试题——软件测试工程师面试秘籍(26)

发表于:2022-1-05 09:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:G.li    来源:51Testing软件测试网原创

#
面试
#
求职
分享:
  试题1.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,应该怎么处理?
  答案:使用this.Server.Transfer。

  试题2.请通过编程遍历页面上所有的TextBox控件,并指定其内容为空字符串。
  答案:
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;
}
}

  试题3.在C#的索引器的实现过程中,是否只能根据数字进行索引?
  答案:可以用任意类型数据进行索引。C#中的索引器通常用于索引数组,THIS就是索引器。
  索引器不仅能索引数字(数组下标),还能索引HashMap的字符串。所以,通常来说,C#中类的索引器通常只有一个,就是THIS,但也可以有无数个,只要参数列表不同即可;索引器和返回值无关。

  试题4.为了用.NET实现B/S结构的系统,使用几层结构来开发?每一层之间的关系是什么?为什么要这样分层?
  答案:一般用3层,即数据访问层、业务层和表示层。数据访问层对数据库进行增、删、查、改操作;业务层一般分为两层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全保护等;表示层负责与用户交互,如允许用户添加表单。分层的优点是分工明确,条理清晰,易于调试,而且具有可扩展性;缺点是成本高。

  试题5.CTS、CLS、CLR分别表示什么?
  答案:CTS表示通用语言系统,CLS表示通用语言规范,CLR表示公共语言运行库。

  试题6.什么是装箱和拆箱?
  答案:装箱是从值类型转换到引用类型,拆箱是从引用类型转换到值类型。

  试题7.什么是托管代码?
  答案:由公共语言运行库运行的代码。

  试题8.什么是强类型系统?
  答案:RTTI(运行时类型识别)系统。

  试题9..NET中读写数据库需要用到哪些类?它们的作用是什么?
  答案:DataSet类,用于存储数据器;DataCommand类,用于运行语句;DataAdapter,用于填充DataSet类和更新数据库。

  试题10.请详述在.NET中类(class)与结构体(struct)的异同。
  答案:class可以实例化,属于引用类型,是分配在内存的堆上的;struct属于值类型,是分配在内存的栈上的。

  试题11.SQL Server中,给定表table1中有ID、LastUpdateDate两个字段,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。
  答案:代码如下。
Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1);

  试题12.根据线程安全的相关知识,分析以下代码。当调用test()方法时,如果i>10,是否会引起死锁?简要说明理由。
public void test(int i)  
{    lock(this) 
     {  if(i>10) 
        {  i--;test(i); 
           }
     }  
}

  答案:不会发生死锁。int类型参数是按值传递的,每次改变的都只是一个副本,因此不会出现死锁。如果把int类型参数换成一个对象,那么会发生死锁。

  试题13.switch是否能作用在byte、long或String类型的参数上?
  答案:switch(expr1)中,expr1是一个整数表达式,传递给switch和case语句的参数类型应该是int、short、char或者byte。因此,switch能作用在byte类型参数上,但不能作用在long、String类型参数上。

  试题14.两个对象值相同(x.equals(y) == true),却可以有不同的哈希码。这句话对不对? 
  答案:不对,它们必须有相同的哈希码。

  试题15.如何处理几十万条并发数据?
  答案:用存储过程或事务,取得最大标识的同时进行更新。注意,主键不能自增,以这种方式处理大量并发数据时是不会有重复主键的。最大标识要由一个存储过程来获取。

  试题16.与ASP相比,ASP.NET主要有哪些进步?
  答案:ASP属于解释型,属于ASPX编译型,ASP.NET性能提高,有利于保护源码。

  试题17.向服务器发送请求有几种方式?
  答案:有两种方式,即GET和POST,GET一般为链接方式,POST一般为按钮方式。

  试题18.DataReader与DataSet有什么区别?
  答案:DataReader是只能向前的只读游标,DataSet是内存中的表。

  试题19.在C#中using和new这两个关键字有什么意义?
  答案:using用于引入名称空间或者指定非托管资源,new用于新建实例或者隐藏父类方法。

  试题20.什么是SQL注入?
  答案:SQL注入指利用SQL关键字对网站进行攻击、过滤关键字等。

  试题21.什么是反射?
  答案:反射即动态获取程序集信息。

  试题22.什么是Web Service和UDDI?
  答案:Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。
  UDDI 的目的是为电子商务建立标准。UDDI是一套基于Web的、分布式的、为Web Service提供的实现标准,同时包含一组使企业能注册自身提供的Web Service的实现标准,以使其他企业能够发现访问协议。

  试题23.什么是ASP.NET中的用户控件?
  答案:用户控件一般用在内容多为静态或者很少会改变的情况下,类似于ASP中的include,但是功能要强大得多。

  试题24.指出XML技术的作用及其应用。
  答案:XML技术用于配置和保存静态数据类型。XML常见的应用是Web Services和Config。

  试题25.ADO.NET中常用的对象有哪些?分别进行描述。
  答案:Connection,数据库连接对象;Command,数据库命令;DataReader,数据读取器;DataSet,数据集。

  试题26.C#中 property 与 attribute的区别是什么?它们各有什么用处?
  答案:property是属性,用于存取类的字段;attribute是特性,用于标识类、方法等的附加性质。

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

  试题28.委托声明的关键字是什么?
  答案:delegate。

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

  试题30..NET的错误处理机制采用什么结构?
  答案:.NET的错误处理机制采用try…catch…finally结构,发生错误时,层层上抛,直到找到匹配的catch块为止。

  试题31.在.NET(C#或者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;  
}  
}

  试题32.在.NET(C#或者VB.NET)中如何取消一个窗体的关闭?
  答案:使用以下代码。
private void Form1_Closing(object sender,System.Component Model. CancelEvent Args e) 
{  e.Cancel=true;  }

  试题33.简单描述ASP.NET服务器控件的生命周期。
  答案:初始化→加载视图状态→处理回发数据→加载→发送回发更改通知→处理回发事件→预呈现→保存状态→呈现→处置→卸载。

  试题34.匿名内部类(anonymous inner class)是否可以继承其他类,是否可以实现接口?
  答案:不能继承其他类,可以实现接口。

查看《软件测试工程师面试秘籍》全部连载章节
版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号