设为首页 加入收藏

TOP

C#笔试题面试题深度详解(八)
2014-11-24 02:23:11 来源: 作者: 【 】 浏览:550
Tags:试题 深度 详解
EventArgs e )
{
if( e.Button.Equals( BtnNew ) )
{
//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。
}
}
}
}
答案:
if( OnNew != null )
OnNew();
注意:此处注意审题,public delegate void OnDBOperate();是没有参数的,所以要写OnNew()。网上有的答案是:OnNew( this, e );。这个是错误的,一定要注意OnDBOperate()是否带参数。
[.NET(C#)]
根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁 并简要说明理由。
public void test( int i )
{
lock( this )
{
if( i > 10 )
{
i–;
test( i );
}
}
}
答案:不会死锁。
[.NET(C#)]
两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对
答:不对,有相同的hash code。
[.NET(C#)]
给定以下XML文件,完成算法流程图









请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。
public void DomDepthFirst( XmlNode currentNode )
{
XmlNode node = currentNode.FirstChild;
while( node != null )
{
if( node.Name == “File” )
{
Console.Write( ( ( XmlElement )node ).
GetAttribute( “FileName” ) + “/r/n” );
}
DomDepthFirst( node );
node = node.NextSibling;
}
}
[.NET(C#)]
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
答案:可以作用在byte和long上,也可以作用在string上。
[.NET(C#)]
当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法 答案:不能,一个对象的一个synchronized方法只能由一个线程访问。
[.NET(C#)]
short s1 = 1; s1 = s1 + 1;有什么错?short s1 = 1; s1 += 1;有什么错? 答:
1. short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能隐式转化为short型。可修改为s1 =(short)(s1 + 1) 。
2. short s1 = 1; s1 += 1正确。
[.NET(C#)]
问题1:产生一个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];
}
问题2:对上面生成的数组排序,需要支持升序、降序两种顺序。
答案:ArrayList.Sort()方法可以实现排序。
[.NET(C#)]
需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个。
答案:
string inputStr = ” xx xx “;
inputStr = Regex.Replace( inputStr.Trim(), @”/s+”, ” ” );
[.NET(C#)]
下面这段代码输出什么?为什么?
int i = 5;
int j = 5;
if( Object.ReferenceEquals( i, j ) )
Console.WriteLine( “Equal” );
else
Console.WriteLine( “Not Equal” );
答案:Not Equal。因为比较的是对象
[.NET(C#)]
public static const int A=1;这段代码有错误么?是什么?
答:const不能用static修饰。
[.NET(C#)]
float f = -123.567F; int i = ( int )f; i 的值现在是_____
答:-123。
[.NET(C#)]
下面的代码中有什么错误吗?
class A
{
public virtual void F()
{
Console.WriteLine( “A.F” );
}
}
abstract class B : A
{
public abstract override void F();//abstract与override关键字可以同时使用
}
答案:没有错误!可以通过编译器。
注意:网上有资料说abstract与override关键字不可以同时使用,这种说法是错误的!
[.NET(C#)]
下面这段代码有错误么?
switch( i )
{
case (): //答:case()条件不能为空。
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault; //答:格式不正确。正确写法 default:
CaseTwo();
break;
}
[.NET(C#)]
在.net(C# or vb.net)中如何取消一个窗体的关闭。
答案:在VS2005下
private void Form1_FormClosing( object sender, FormClosingEventArgs e )
{
e.Cancel = false;
}
注意:有的写答案写“private void Form1_Closing”事件,如果在VS2005下,这个答案是错误的,VS2005没有这个事件。
[.NET(C#)]
在.net(C# or vb.net)中如何用户自定义消息,并在窗体中处理这些消息。
答案:
private const int WM_Lbutton = 0x001C;
protected override void WndProc( ref Message m )
{
switch( m.Msg )
{
case WM_Lbutton:
string message = string.Format( “收到消息!参数为:{0},{1}”,
m.WParam, m.LParam );
MessageBox.Show( message );
break;
}
base.WndProc( ref m );
}
[.NET(C#)] 在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 = 999999999999999999999
首页 上一页 5 6 7 8 9 下一页 尾页 8/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇"What are your goals for t.. 下一篇单链表交换任意两个元素(不包括..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: