Java常见计算笔试题及详细答案_第1页
Java常见计算笔试题及详细答案_第2页
Java常见计算笔试题及详细答案_第3页
Java常见计算笔试题及详细答案_第4页
Java常见计算笔试题及详细答案_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java常见计算笔试题及详细答案本套试题汇总Java笔试高频计算题型,包含自增自减、运算符优先级、位运算、进制转换、数据类型运算、逻辑短路运算等核心考点,题目均为企业真题改编,答案附带完整解题步骤,适配初学者及求职刷题使用。一、自增自减运算(高频必考)题目1写出以下代码的输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

inta=10;

intb=a++;

intc=++a;

System.out.println("a="+a+",b="+b+",c="+c);

}

}答案:a=12,b=10,c=12详细解析1.后置自增(a++):先赋值,后自增。

intb=a++:先将a当前值10赋值给b,赋值结束后a自增1,此时a=11,b=10。2.前置自增(++a):先自增,后赋值。

intc=++a:a先自增1变为12,再将12赋值给c,此时a=12,c=12。题目2写出以下代码的输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

inti=5;

i=i+++++i;

System.out.println(i);

}

}答案:12详细解析1.拆分运算:表达式为i+++++i,初始i=5。2.i++后置自增:取值5,运算后i自增为6。3.++i前置自增:i先自增为7,取值7。4.求和:5+7=12,最后将结果赋值给i,最终i=12。二、运算符优先级与混合运算题目3写出以下代码的输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

inta=3;

intb=4;

intc=a*b+++++a;

System.out.println(c);

}

}答案:16详细解析运算符优先级:自增>乘法>加法。1.拆解表达式:a*b+++++a,初始a=3,b=4。2.b++:先取值4参与运算,后b变为5。3.++a:a先自增为4,取值4。4.运算:3*4+4=12+4=16,c=16。题目4判断输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

intnum=10;

num+=num-=num*num;

System.out.println(num);

}

}答案:-180详细解析复合赋值运算符优先级从右往左执行。1.初始num=10,先执行右侧num-=num*num:num=10-(10*10)=10-100=-90。2.再执行左侧num+=-90:num=-90+(-90)=-180。三、逻辑短路运算(易错点)题目5写出以下代码的输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

inta=1;

if((a++>1)&&(++a>2)){

System.out.println("成立");

}

System.out.println(a);

}

}答案:2详细解析1.&&为短路与:左侧条件为false时,右侧代码直接不执行。2.a++>1:先取值a=1,1>1结果为false,之后a自增为2。3.左侧为false,短路生效,++a不会执行,a保持2,最终输出2。题目6写出以下代码的输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

intx=2;

if((x++<5)||(++x<10)){

System.out.println(x);

}

}

}答案:3详细解析1.||为短路或:左侧条件为true时,右侧代码直接不执行。2.x++<5:先取值x=2,2<5结果为true,之后x自增为3。3.左侧为true,短路生效,++x不执行,最终x=3。四、位运算计算题(笔试高频)题目7计算3&5、3|5、3^5的结果答案:3&5=1,3|5=7,3^5=6详细解析位运算基于二进制计算,int占32位,这里只展示有效低位:3的二进制:0011

5的二进制:01011.与运算&:同位都为1才为1,其余为0→0001=12.或运算|:同位有1则为1,其余为0→0111=73.异或^:同位不同则为1,相同为0→0110=6题目8写出代码输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

inta=8;

System.out.println(a<<2);

System.out.println(a>>1);

}

}答案:32、4详细解析1.左移<<:二进制整体左移,低位补0,左移n位等价于乘以2的n次方。

8<<2=8*4=32。2.右移>>:二进制整体右移,高位补符号位,右移n位等价于除以2的n次方(向下取整)。

8>>1=8/2=4。五、数据类型运算与自动转换题目9写出以下代码的输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

byteb1=10;

byteb2=20;

//直接输出运算结果

System.out.println(b1+b2);

}

}答案:30详细解析Java中byte、short、char类型运算时,会自动提升为int类型,最终运算结果为int类型。b1和b2提升为int后相加,结果为30。拓展:如果直接写byteb3=b1+b2;会编译报错,因为int结果无法直接赋值给byte,需要强制转换。题目10写出浮点运算输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

System.out.println(2.0/0);

System.out.println(2/0.0);

System.out.println(-2.0/0);

}

}答案:Infinity、Infinity、-Infinity详细解析1.整数除以0:直接抛出ArithmeticException算术异常。2.浮点数除以0:不会报错,正数/0得到正无穷Infinity,负数/0得到负无穷-Infinity。六、进制转换计算题题目11完成进制转换:

1.十进制25转二进制、十六进制

2.二进制110101转十进制

3.十六进制0x2A转十进制答案及解析1.十进制25:二进制11001,十六进制19

解析:16+8+1=25,对应二进制11001,十六进制逢16进1,25=1*16+9。2.二进制110101=53

解析:32+16+4+1=53。3.十六进制0x2A=42

解析:2*16+10=42(A对应十进制10)。七、综合压轴计算题题目12写出最终输出结果PlainText

publicclassTest{

publicstaticvoidmain(String[]args){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论