8、下列关于变量和常量的说法正确的是(AD )
A. 常量表示不能被改变的值,例如1、2、“abc”都是常量
B. 常量表示常见的变量
C. int x = 0;代码中,x表示常量,0表示变量
D. 在同一个大括号{}内,定义的变量不能够重名
此题答案为A,而我选择的是D,把A漏了,究其原因是因为对常量的定义认识不够深刻,常量就是表示不能被改变的值。
11、下列各种符号的定义格式,那种在java语言中是错误的变量定义( BD)
A. int myVal =1; B.char $myVal =1;
C.byte _myVal =1; Dfloat 3.14myVal=1;
此题答案为D,不为B,错误原因:对java的变量的命名规则认识不到位。
变量的命名规则:变量名必须以字母,下滑线或者“$”符号开头,变量命名中可以有数字,但是不能以数字开头
12、Java语言中的int及char数据类型的长度分别为(C )
A. 16位和8 位 B. 8位和16位
C. 32位和16位 D. 32位和8位
长度所占位数:byte:8位 int:32位 long:64位 float:32位 double:64位 char:16位
16、语句System.out.println(1+2+"java"+3+4)输出的结果是(CA )
A. 3java34 B.12java34 C. 3java7 D.12java7
这道题选C是跳坑里面了,没有注意到前面那段已经变成字符串了,所以按照从左往右的拼接逻辑3+4这个是不会运算的只会将其拼接起来。
17、关于下列循环语句,写法正确的是( ACDB)
A. while(true){}; B. for(;;){} C. do{}while(false); D. for(inta=0;a<5;a++);
这道题写法太奇葩了,一时拿不准。。。
19、以下关于函数重载的说法正确的有( ABCD)
A. 方法名必须一样
B. 与返回值类型无关
C. 参数个数或者顺序不一样
D. 参数类型不一样
重载的注意事项虽然背过好多次,可是还是容易忘。。。重载:同名不同参,参数个数、顺序、类型不一样,与返回值类型无关。
20、关于数组的说法,正确的是( AB)
A. 数组里面存放的是相同类型的数据
B. 获取数组的长度使用length属性
C. 获取数组的大小使用size方法
D. 数组的长度是可变的
漏选了A,主要是因为平常频繁使用集合以及Map,很少用数组导致对数组的定义不熟。
数组定义:数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具有固定的长度,并且在内存中占据连续的空间。
24、想要结果输出为0,则可以做哪些修改?( BC)
int [ ] arr = new int[1]; ①
arr[0] = 3; ②
System.out.println( arr[1] ); ③
A. ②处修改为arr[3] = 0;
B. ③处修改为System.out.println(0)
C. ①处修改为int [ ] arr = new int[2];
D. 不用修改了,结果就是0
这道题漏选了一个C选项,原因是因为对数组中默认的数据类型没有太多 了解,数组中的默认数据值视数组类型而定,若默认数组类型为int,double,long这些基本数据类型,默认数据与基本数据类型的默认数据保持一致,若数组类型为Integer,String此类的对象类型,则默认数据为
null。
25、下列二维数组定义错误的是( BD)
A int[][] arr =new int[3][2];
B int arr[][] =new int[3][];
C int[][] arr ={{1,2,3},{4,5},{6,7,8,9}};
D int arr[][]={{2,3},{6},9};
答案为D,错选为B,对二维数组的数据形式不了解,以为大括号里有三个大括号就是三维数组。。。(有关二维数组的相关知识待开班后再做补充)
33、下面代码的运行结果是( AD)
public staticvoid main(String[] args){
intx = 80;
x++;
switch(x){
case80:
System.out.println(80);
case81:
System.out.println(81);
default:
System.out.println(82);
}
}
A. 80 B. 80 81 C.81 D. 81 82
答案为D错选为A,原因一:受++x与x++影响,注意:二者的区别是在赋值是存在区别,比如 :
int i=2;当为这种情况时两者会有区别的,i++先赋值后加一,++j则是先加一 后赋值。所以,x为2,y为3。但是,
int j=2;
int x = i++;
int y = ++j;
当在程序中仅仅写i++或者是++i并没有牵涉到赋值操作时,二者的作用是一样的。原因二:未注意到这道题没有break跳出。。。
38、下面程序运行的结果是( AB)
public static void main(String[] args){
int a = 1;
if(a++>1){
System.out.println(a);
}else{
System.out.println(a);
}
}
A.1 B.2 C.0 D.编译报错
应选B错选A,错选原因:a++>1这个判断得出的结果确实是否,在参与比较运算时,a++的值还是为1,但是比较后,输出a时,a就已经变成了2了。i++原理:
java的编译器在遇到i++时,会重新为变量运算分配一块内存空间,以存放原始的值,然后进行自加一操作,若是i++后有赋值运算的话
再将原始值赋过去,然后释放原始值所占内存。详情参考:链接:http://blog.sina.com.cn/s/blog_605f5b4f0100khy0.html