深圳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;
}