C# 第三 套面议题目

第三套
通用C#面试题-通用C#面试题 (附答案)

1、在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。
回答要点:说明详细的空间分配。(10分)
答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空

间.
2、请详述在dotnet中类(class)与结构(struct)的异同:(10分)
答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上

的.
3、根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:(10)

namespace test
{
public delegate void OnDBOperate();
public class UserControlBase : System.Windows.Forms.UserControl
{
public event OnDBOperate OnNew;
privatevoidtoolBar_ButtonClick

(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。
}
}
}
答:if( OnNew != null )
OnNew( this, e );
4、分析以下代码,完成填空(10分)
string strTmp = "abcdefg某某某";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代码执行完后,i= j=
答:i=13,j=10
5、SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号,

LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。(10)
答:Select ID
FROM table1
Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)
6、根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理

由。(10分)
public void test(int i)
{
lock(this)
{
if (i>10)
{
i--;
test(i);
}
}
}
答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁

。但如果把int换做一个object,那么死锁会发生)
7、分析以下代码。(10)
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。所以理论上并非所有异常都会被捕捉。)
8、简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。(10)
答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。

9、公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击

ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。

根据您的知识,请简要谈一下您的思路:(10)
答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中
10、给定以下XML文件,完成算法流程图。(10)
<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 );
}
}
简单的说就是从根节点开始遍历找子节点,在从找到的子节点找它的子节点,一层层下去

第四套
 1. Solve this cryptic equation, realizing of course that values for M and E could be

interchanged. No leading zeros are allowed.

  WWWDOT - GOOGLE = DOTCOM

  2. Write a haiku describing possible methods for predicting search traffic seasonality.

  3. 1 1 1 2 1 1 2 1 1 1 1 1 2 2 1

  What is the next line?

  4. You are in a maze of twisty little passages,all alike. There is a dusty laptop here

with a weak wireless connection. There are dull,lifeless gnomes strolling about. What dost

thou do?

  A) Wander aimlessly, bumping into obstacles until you are eaten by a grue. B) Use

the laptop as a digging device to tunnel to the next level. C) Play MPoRPG until the

battery dies along with your hopes. D) Use the computer to map the nodes of the maze and

discover an exit path. E) Email your resume to Google, tell the lead gnome you quit and

find yourself in whole different world.

  5. What's broken with Unix?

  How would you fix it?

  6. On your first day at Google, you discover that your cubicle mate wrote the textbook

you used as a primary resource in your first year of graduate school. Do you:

  A) Fawn obsequiously and ask if you can have an autograph. B) Sit perfectly still and

use only soft keystrokes to avoid disturbing her concentration. C) Leave her daily

offerings of granola and English toffee from the food bins.

  D) Quote your favorite formula from the textbook and explain how it's now your mantra.

E) Show her how example 17b could have been solved with 34 fewer lines of code. 7. Which

of the following expresses Google□over-arching philosophy?

  A) "I'm feeling lucky" B) "Don't be evil" C) "Oh, I already fixed that" D) "You

should never be more than 50 feet from food" E) All of the above

  8. How many different ways can you color an icosahedron with one of three colors on

each face?

  What colors would you choose?

  9. This space left intentionally blank. Please fill it with something that improves

upon emptiness.

  10.On an infinite, two-dimensional, rectangular lattice of 1-ohm resistors, what is

the resistance between two nodes that are a knight's move away?

  11.It's 2 PM on a sunny Sunday afternoon in the Bay Area. You're minutes from the

Pacific Ocean, redwood forest hiking trails and world class cultural attractions. What do

you do?

  12.In your opinion, what is the most beautiful math equation ever derived?

  13. Which of the following is NOT an actual interest group formed by Google employees?

  A. Women's basketball B. Buffy fans C. Cricketeers D. Nobel winners E. Wine club

  14.What will be the next great improvement in search technology?

  15.What is the optimal size of a project team,above which additional members do not

contribute productivity equivalent to the percentage increase in the staff size?

  A) 1 B) 3 C) 5 D) 11 E) 24

  16.Given a triangle ABC, how would you use only a compass and straight edge to find a

point P such that triangles ABP, ACP and BCP have equal perimeters? (Assume that ABC is

constructed so that a solution does exist.)

  17.Consider a function which, for a given whole number n, returns the number of ones

required when writing out all numbers between 0 and n. For example, f(13)=6. Notice that

f(1)=1. What is the next largest n such that f(n)=n?

  18.What's the coolest hack you've ever written?

  19.'Tis known in refined company, that choosing K things out of N can be done in ways

as many as choosing N minus K from N: I pick K,you the remaining.

  Find though a cooler bijection, where you show a knack uncanny, of making your

choices contain all K of mine. Oh, for pedantry: let K be no more than half N.

  20.What number comes next in the sequence:10, 9, 60, 90, 70, 66,?

  A)96
      B) 1000000000000000000000000000000000 0000000000000000000000000000000000

000000000000000000000000000000000
      C) Either of the above
      D) None of the above

  21.In 29 words or fewer, describe what you would strive to accomplish if you worked at

Google Labs.

第五套
1、{first 10-digit prime found in consecutive digits e}.com.
      e中出现的连续的第一个10个数字组成的质数。
2、7427466391.com
Congratulations,Youve made it to level 2. Go to www.Linux.org and enter Bobsyouruncle as

the login and the answer to this equation as the password.
   f(1)=7182818284
   f(2)=8182845904
   f(3)=8747135266
   f(4)=7427466391
   f(5)=__________
   update:提示:f(1)到f(4)是e中连续的10个数字满足总和等于49的前4个,f(5)当然是让你搜索第5

个咯,编个小程序吧。
答案:5966290435
网页三剑客下载-CS3正式版

3、www.Linux.org
4、www.google.com/labjobs/
via:
Google recruits eggheads with mystery billboard
Mysterious Billboard May Be Google Recruitment Ad
Myserious billboard
Google is behind mystery geek trap

写一句俳句来描述搜索流量季节性预测的可能方法。
用三种颜色为一个二十面体涂颜色,每面都要覆盖,你能够用多少种不同的涂法?你将选择哪三种颜色


第六套
Question 31. (单选)
根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?
public void test(int i)
{
lock(this)
{
if (i>10)
{
i--;
test(i);
}
}
}
1. 会锁死
2. 不会锁死

Question 32. (单选)
以下描述错误的是()
1. 在C++中支持抽象类而在C#中不支持抽象类。
2. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明

和定义类的成员。
3. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员。
4. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
Question 33. (单选)
int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}};

myArray3[2][2]的值是()。
1. 9
2. 2
3. 6
4. 越界

Question 34. (单选)
在C#中利用Socket进行网络通信编程的一般步骤是:建立Socket侦听、( )、利用Socket接收和发送数

据。
1. 建立Socket连接
2. 获得端口号;
3. 获得IP地址;
4. 获得主机名;

Question 35. (单选)
如果设treeView1=new TreeView(),TreeNode node=new TreeNode("根结点" ),则

treeView1.Nodes.Add(node)返回的是一个 ()类型的值。
1. TreeNode;
2. int;
3. string;
4. TreeView;

Question 36. (单选)
声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是
1. void myCallBack(int x)
2. int receive(int num)
3. string receive(int x)
4. 不确定的

Question 37. (单选)
关于ASP.NET中的代码隐藏文件的描述正确的是
1. Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不

同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件
2. 项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件
3. 项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件
4. 以上都不正确

Question 38. (单选)
What compiler switch creates an xml file from the xml comments in the files in an assembly?
1. /text
2. /doc
3. /xml
4. /help

Question 39. (单选)
下面的代码实现了设计模式中的什么模式
public class A {
private A instance;
private A() {
}
public static A Instance {
get
{
if ( A == null )
A = new A();
return instance;
}
}
}
1. Factory
2. Abstract Factory
3. Singleton
4. Builder

Question 40. (单选)
class Class1
{
public static int Count = 0;
static Class1()
{
Count++;
}
public Class1()
{
Count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
请问,Class1.Count的值是多少?( )
1. 1
2. 2
3. 3
4. 4

Question 41. (单选)
abstract class BaseClass
{
public virtual void MethodA()
{
Console.WriteLine("BaseClass");
}
public virtual void MethodB()
{
}
}
class Class1: BaseClass
{
public void MethodA()
{
Console.WriteLine("Class1");
}
public override void MethodB()
{
}
}
class Class2: Class1
{
new public void MethodB()
{
}
}
class MainClass
{
public static void Main(string[] args)
{
Class2 o = new Class2();
o.MethodA();
}
}
请问,此程序输出结果是:
1. BaseClass
2. BassClass Class1
3. Class1
4. Class1 BassClass

Question 42. (单选)
public static void Main(string[] args)
{
int i = 2000;
object o = i;
i = 2001;
int j =(int) o;
Console.WriteLine("i={0},o={1}, j={2}",i,o,j);
}
1. i=2001,o=2000,j=2000
2. i=2001,o=2001,,j=2001
3. i=2000,o=2001,,j=2000
4. i=2001,o=2000,j=2001

Question 43. (多选)
您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要

配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花

最小的代价完成这些目标,您应该怎么做?(多选)
1. 在这个应用程序的Global.asax文件中创建一个Application_Error过程去处理ASP.NET代码错误。
2. 在这个应用程序的Web.config文件中创建一个applicationError节去处理ASP.NET代码错误。
3. 在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。
4. 在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。

Question 44. (单选)
如下程序的运行结果是:public abstract class A
{
public A()
{
Console.WriteLine('A');
}
public virtual void Fun()
{
Console.WriteLine("A.Fun()");
}
}
public class B: A
{
public B()
{
Console.WriteLine('B');
}
public new void Fun()
{
Console.WriteLine("B.Fun()");
}
public static void Main()
{
A a = new B();
a.Fun();
}
}
1. A B A.Fun()
2. A B B.Fun()
3. B A A.Fun()
4. B A B.Fun()

Question 45. (单选)
Which of these string definitions will prevent escaping on
backslashes in C#?*
1. string s = #”n Test string”;
2. string s = “’n Test string”;
3. string s = @”n Test string”;
4. string s = “n Test string”;

Question 46. (单选)
Which of the following operations can you NOT perform on an ADO.NET DataSet?
1. A DataSet can be synchronised with a RecordSet.
2. A DataSet can be synchronised with the database.
3. A DataSet can be converted to XML.
4. You can infer the schema from a DataSet

Question 47. (单选)
In Object oriented Programming, how would you describe encapsulation?
1. The conversion of one type of object to another.
2. The runtime resolution of method calls.
3. The exposition of data.
4. The separation of interface and implementation.

Question 48. (单选)
How does assembly versioning in .NET prevent DLL Hell?
1. The runtime checks to see that only one version of an assembly is on the machine at any

one time.
2. .NET allows assemblies to specify the name AND the version of any assemblies they need

to run.
3. The compiler offers compile time checking for backward compatibility.
4. It doesn’t.


Question 49. (单选)
三种常用的字符串判空串方法:
1: bool isEmpty = (str.Length == 0);
2: bool isEmpty = (str == String.Empty);
3: bool isEmpty = (str == "");
哪种方法最快?
1. 1
2. 2
3. 3

Question 50. (单选)
public sealed class SampleSingleton1
{
private int m_Counter = 0;
private SampleSingleton1()
{
Console.WriteLine(""初始化SampleSingleton1。"");
}
public static readonly SampleSingleton1 Singleton = new SampleSingleton1();
public void Counter()
{
m_Counter ++;
}
}
以上代码实现了设计模式中的哪种模式?
1. 原型
2. 抽象工厂
3. 单键
4. 生成器


下边是微软软件开发培训讲师李建忠老师对C#编程语言进行的几个层次划分。
不妨对照,你的C#开发水平介于下边C#语言的哪几个层次。
C#语言的几个层次
不谈具体领域(比如搜索,视频,网络等),单就C#编程语言这个垂直方向,我大体上对它有一个如下

的层次划分。

1. 基本运用C#语法,在各种工具和示例代码的支持下,完成一些基本程序任务

2. 熟练掌握面向对象与组件构造,知其然亦知其所以然,完成一般小规模信息管理类软件项目开发任务

3. 深入理解CLR内核机制,对各种类型与.NET平台机制的优缺点、适用场合、效率有清晰把握,能够完

成技术复杂度比较高的项目。

4. 能够游刃有余把握松耦合原则,精准运用各种语言构造,架构大型软件项目。

5. 能够站在计算机抽象、系统和历史发展的高度来理解和把握编程语言

我判断你现在大致介于2-3之间的位置,当然在这些方向上的成长,有些部分是培训能够大幅度帮助大家

的,有些部分培训只能起辅助作用,经验和对技术的追求态度才更为重要……

说实话,编程语言本来不该这么重要,但是现在接近两年的培训经验下来,接触的培训学员林林总总,

从最底端几乎没有什么编程经验的,到高端的在企业担任关键开发任务的。发现在中国,编程语言事实

上是大多数开发人员的硬伤,大部分程序员介于1-2之间——原因就不多说了,中国大学的计算机教育只

有在一个人彻底理解了计算机之后才会深刻体认到它是多么的荒谬和失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值