几道面试题?

我很懒 2008-07-21 10:06:08
1、以下代码能否通过编译?如果不能,请改成正确代码,并说明原因。
<html>
<%
int subtract(int num1, int num2) {
return num1-num2;
}
%>
<body>
<%
int number = 100;
while (number > 0) {
Response.Write("value: " + number + "<br/>");
number = subtract(number, 1);
}
%>
</body>
</html>
未通过编译:CS1519: 类、结构或接口成员声明中的标记“while”无效——为什么是这个
错误呢?不清楚了。
改正:将subtract放在<script runat="server"></script>之间。
<script runat="server">
int subtract(int num1, int num2)
{
return num1 - num2;
}
</script>
2、float f=-123.567F;
int i=(int)f; i的值现在是_____?
答案:-123 (float f=123.567F时,是123)
3、下面的代码中有什么错误吗?_______
using System;
class A
{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A
{
public abstract override void F();
}
——编译通过
4、当类T只声明了私有实例构造函数时,则在T的程序文本外部,_不可以_____(可以 or 不可以)从T派生出新的类,____(可以 or 不可以)直接创建T的任何实例。(答案:均受保护级别限制,不可以)
5、下面这段代码有错误么?
switch (i){
case():
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
default:
CaseTwo();
break;
}
——原题目的default那行是:“dufault;”,我想应该是笔误吧,改为default:后无错,当i为2和其他值时,执行CaseTwo()。
6、在下面的例子里
using System;
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(继承的子类在new时,先new父类对象,然后new自身私有成员,当调用b.PrintFields()时,则输出x=1,y=-1)
7、下面的例子中
using System;
class A
{
public static int X;
static A(){
X=B.Y+1;
}
}
class B
{
public static int Y=A.X+1;
static B(){}
static void Main(){
Console.WriteLine("X={0},Y={1}",A.X,B.Y);
}
}
产生的输出结果是什么? X=1,Y=2
8、下面这段代码输出什么?为什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
答案:Not Equal——进行了装箱操作。
...全文
66 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
我很懒 2008-07-22
  • 打赏
  • 举报
回复
ding ding
我很懒 2008-07-22
  • 打赏
  • 举报
回复
ding
我很懒 2008-07-22
  • 打赏
  • 举报
回复
wo ding

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧