深圳ET公司笔试题摘选

被鄙视了,好伤心的。。

以下语句的执行顺序和输出结果是什么

public class test{
/*1*/private static test obj=new test();
/*2*/public static int counter1;
/*3*/public static int counter2=0;
/*4*/private test(){
counter1
++;
counter2
++;
}

/*5*/public static test getInstance(){
return obj;
}

public static void main(String [] args){
test obj
=test.getInstance();
System.out.println(
"obj.counter1=="+obj.counter1);
System.out.println(
"obj.counter2=="+obj.counter2);
}
}

个人认为顺序应该是:14235

编译时确定变量的类型和存储位置,给予默认值0,赋值在声明完成后进行,所以在test()中,虽然counter1,counter2都变成了1,但后来又将counter2赋值为了0

输出

obj.counter1==1
obj.counter2==0


其他

运算符优先级问题

画出大小端存储ox12345678的方式

多态类中的虚函数表是Compile-Time还是Run-Time时建立的

定义一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(C)

A.int (*a)[10](int)  B.(int (*a)(int))[10]  C.int (*a[10])(int)  D.int *a[10](int)

数组定义“int a[4]”,错误的是(D)

A.*a  B.a[0]  C.a  D.a++

不用库函数和新的变量实现求字符串长度的函数int strlen1(const char*p)

int strlen1(const char *p)
{
if(p[0]=='\0')
return 0;
return 1+strlen1(p+1);
}

  

判断回文数int IsMemm(long n)

int IsMemm(long n)
{
long b=0,m=n;
while(m)
{
b
=b*10+m%10;
m
/=10;
}
return b==n;
}

  

posted on 2011-09-09 13:31  小交响曲  阅读(389)  评论(3编辑  收藏  举报

导航