错题总结--黑马程序员之基础班入班考试

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;
int j=2;
int x = i++;
int y = ++j;
当为这种情况时两者会有区别的,i++先赋值后加一,++j则是先加一 后赋值。所以,x为2,y为3。但是,

当在程序中仅仅写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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
黑马程序员训练营入学考试题 1、方法的内部类能不能访问方法的局部变量,为什么? 2、编写一个类,在main方法定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。 3、取出一个字符串字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)... 4、有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件。要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。 5、编写一个程序,获取10个1至20的随机数,要求随机数不能重复。 6、编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票心。售票心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。 7、写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 ? 8、编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。 9、28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路) 10、有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人的第几个人?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值