Day032 运算符面试题

Posted 南方风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day032 运算符面试题相关的知识,希望对你有一定的参考价值。

运算符面试题


题1

short s=3;
s=s+2;//步骤1# 运算符面试题

----

题1

```java
short s=3;
s=s+2;//步骤1
s+=2;//步骤2
//步骤1和2有什么区别

解析:步骤1报错,因为2为int型,s+2是int型,不能用short型s接收

步骤2:用+=、-=、*=、/=、%=不会改变变量本身的数据类型,因此步骤2正确。


题2

int i=1;
i*=0.1;
System.out.println(i);//0
i++;
System.out.println(i);//1

输出结果

0
1

解析:因为用+=、-=、*=、/=、%=不会改变变量本身的数据类型,因此i乘0.1之后还是int型,即为0,再++,为1。


题3:

int m=2;
int n=3;
n*=m++;
System.out.println("m="+m);
System.out.println("n="+n);

输出结果

m=3
n=6

解析:m++先运算再自增。


题4:

int x=10;
x+=(x++)+(++x);
System.out.println(x);

输出结果

32

解析:x++先运算再自增,++x先自增再运算。


题5

int x=1;
int y=1;
if(x++==2 & ++y==2){
   x=7;
}
System.out.println("x="+x+",y="+y);

输出结果

x=2,y=2

int x=1;
int y=1;
if(x++==2 && ++y==2){
   x=7;
}
System.out.println("x="+x+",y="+y);

输出结果

x=2,y=1

int x=1;
int y=1;
if(x++==1 | ++y==1){
   x=7;
}
System.out.println("x="+x+",y="+y);

输出结果

x=7,y=2

int x=1;
int y=1;
if(x++==1 || ++y==1){
   x=7;
}
System.out.println("x="+x+",y="+y);

输出结果

x=7,y=1

解析:& 、|不是短路运算符,而&&、||是短路运算符


题6:

public static void main(String[] args) {
        boolean x=true;
        boolean y=false;
        short z=42;
        if(y==true)
        if((z++==42)&&(y=true))z++;
        if((x=false)||(++z==45))z++;

        System.out.println("z="+z);
    }

输出结果

43

解析:知识点:if判断,短路运算、前后++,赋值“=”和“==”的区别,用+=、-=、*=、/=、%=不会改变变量本身的数据类型

s+=2;//步骤2
//步骤1和2有什么区别


解析:步骤1报错,因为2为int型,s+2是int型,不能用short型s接收

步骤2:**用+=、-=、*=、/=、%=不会改变变量本身的数据类型**,因此步骤2正确。

----

题2

```java
int i=1;
i*=0.1;
System.out.println(i);//0
i++;
System.out.println(i);//1

输出结果

0
1

解析:因为用+=、-=、*=、/=、%=不会改变变量本身的数据类型,因此i乘0.1之后还是int型,即为0,再++,为1。


题3:

int m=2;
int n=3;
n*=m++;
System.out.println("m="+m);
System.out.println("n="+n);

输出结果

m=3
n=6

解析:m++先运算再自增。


题4:

int x=10;
x+=(x++)+(++x);
System.out.println(x);

输出结果

32

解析:x++先运算再自增,++x先自增再运算。


题5

int x=1;
int y=1;
if(x++==2 & ++y==2){
   x=7;
}
System.out.println("x="+x+",y="+y);

输出结果

x=2,y=2

int x=1;int y=1;if(x++==2 && ++y==2){   x=7;}System.out.println("x="+x+",y="+y);

输出结果

x=2,y=1

int x=1;
int y=1;
if(x++==1 | ++y==1){
   x=7;
}
System.out.println("x="+x+",y="+y);

输出结果

x=7,y=2

int x=1;
int y=1;
if(x++==1 || ++y==1){
   x=7;
}
System.out.println("x="+x+",y="+y);

输出结果

x=7,y=1

解析:& 、|不是短路运算符,而&&、||是短路运算符


题6:

public static void main(String[] args) {
        boolean x=true;
        boolean y=false;
        short z=42;
        if(y==true)
        if((z++==42)&&(y=true))z++;
        if((x=false)||(++z==45))z++;

        System.out.println("z="+z);
    }

输出结果

43

解析:知识点:if判断,短路运算、前后++,赋值“=”和“==”的区别

以上是关于Day032 运算符面试题的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript零基础入门 day3JavaScript运算符

前端面试题之手写promise

Day499&500.马士兵22春招面试题① -面经

Java面试宝典每日3题:day24

[笔试题]sizeof系列面试题中的易错之处

Day481&482.尚硅谷之高频重点面试题① -面经