单选
1.若有 a=3,则执行下列语句为a的值为? a+=a*=a; A. 3 B. 12 C. 9 D. 18
答案:B 解析:参考解析赋值运算从右向左执行,故a=a*a=9,a+=9,a=a+9=3+9=12
2.对于一个三位的正整数n=789,以下结果为8的是? A. n/10%2 B. (n-n%10)/100 C. n%10 D. n%100/10
答案:D 解析:本题考查运算符的综合运用,/是除法运算符,%是取余运算符,结果是做除法运算后的余数。A选项,n/10=78,78%2=0,n/10%2的结果为:0;B选项,n-n%10=780,(n-n%10)/100的结果为:7;C选项,n%10的结果为:9;D选项,n%100=89,89/10=8,n%100/10的结果为:8。因此,D选项正确。
3.下面的运算符中,用于执行除法运算是哪个? A. / B. \ C. % D. *
答案:A 解析:本题考查运算符,A选项/是用于执行除法运算的,所以A选项正确。B选项不是Java运算符。C选项是求余数的运算符。 D选项是乘法运算符。
4.下面代码的输出结果为?
int m=5,n=6; int x=(m++)+n; int y=(--m)+n; System.out.print("x="+x+","); System.out.println("y="+y);
A. x=11,y=11 B. x=10,y=11 C. x=10,y=12 D. x=12,y=10
答案:A 解析:本题考查自增自减运算符,A选项是正确的。m++是先参与运算后自加,因此x=(m++)+n=5+6=11;赋值后的m=6,–m先自减后参与运算,因此y=(–m)+n=11,赋值后的m=5.故x=11,y=11。
5.下面程序段的输出结果是:
int a=2; System.out.print(a++); System.out.print(a); System.out.print(++a);
A. 333 B. 334 C. 234 D. 233
答案:C 解析:本题考查自增自减运算符。a++是先参与运算后自加,故第一个输出2,第二个输出3,++a是先自加后参与运算,故第三个输出4。因此,C选项是正确的。
6.设有如下变量,以下哪些语句编译不出错?
char c='c'; int i=10; double d=10; long l=1; String s="Hello"; int a=2;
A. c=c+i; B. s+=i; C. i+=s; D. c+=s;
答案:B 解析:本题考查+运算符,当字符串与基本数据类型数据进行加法运算时,实际上是进行的字符串连接运算。如:String s=“Hello”+1; 则s的值是"Hello1"。A选项,c为字符型数据,i为int型变量,c+i之后的结果不能赋值给字符型变量;C选项,i+=s;相当于i=i+s; i为int型变量,s为String型变量,i+s后的结果为String类型,String类型不能赋值给int类型变量;D选项,c+=s; 相当于c=c+s; c是字符型变量,s为String型变量,c+s之后的结果为String类型,String类型不能赋值给字符型变量;B选项,s+=i; 相当于s=s+i; i是整型变量,s是字符串型变量,s+i的结果是字符串类型,可以赋值给字符串类型变量。因此B选项是正确的。
运算符
题目1(训练)
身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下:
儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2
女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2
现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少?
训练提示
-
已知的父母身高如何用代码体现?
-
题目中的公式如何转化为代码?
解题方案
-
使用变量的定义和算术运算符完成本题
操作步骤
-
定义小数变量代表父亲身高
-
定义小数变量代表母亲身高
-
通过儿子身高计算方式计算儿子身高
-
通过女儿身高计算方式计算女人身高
参考答案
public class Demo01 { public static void main(String[] args) { //1.定义父亲身高 double father = 177; //2.定义母亲身高 double mother = 165; //3.利用公式计算儿子身高 double son = (father + mother) * 1.08 / 2; //4.利用公式计算女儿身高 double daughter = (father * 0.923 + mother) / 2; //5.打印结果 System.out.println("儿子预计身高" + son + "厘米"); System.out.println("女儿预计身高" + daughter + "厘米"); } }
题目2(训练)
红茶妹妹有21元钱,她攒了几天钱之后自己的钱比原来的两倍还多三块。绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。那么红茶和绿茶现在的钱一样多,请问对么?
训练提示
-
用什么知识点来计算她们现在的钱有多少?
-
如何对比两个人的钱数?
解题方案
-
使用赋值运算符和算术运算符计算各自的钱,使用比较运算符对比大小
操作步骤
-
定义红茶妹妹原来的钱为整数变量
-
定义绿茶妹妹原来的钱为整数变量
-
使用赋值运算符和算术运算符计算其现有的钱
-
使用比较运算符对数值做出比较
参考答案
public class Demo2 { public static void main(String[] args) { //1.定义红茶妹妹原来的钱 int red = 21; //2.定义绿茶妹妹原来的钱 int green = 24; //3.求红茶妹妹现有的钱 red = red * 2 + 3; //4.求绿茶妹妹现有的钱 green *= 2; //5.判断并输出两个人的钱是否相等 System.out.println(red == green); } }
题目3(综合)
某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西,最少要花多少钱?
训练提示
-
有两种购买方式,一种是不使用优惠价,另一种是使用优惠价。分别计算花费后,对两种方式的花费作对比。
解题方案
-
使用算术运算符、赋值运算符和三元运算符联合完成本题
操作步骤
-
使用算术运算符求出不使用优惠时的总价
-
使用三元运算符判断总价是否满足打折条件,并求出折后总价
-
使用算术运算符求出使用优惠价时的总价
-
使用三元运算符判断最终更合算的购买方式和花费
参考答案
public class Demo3 { public static void main(String[] args) { //1.求不使用优惠时的总价 double money1 = 24 + 8 + 3; //2.判断折后总价 money1 = (money1 >= 30 ? money1 : money1 * 0.8); //3.求使用优惠时的总价 double money2 = 16 + 8 + 3; //4.判断两种花费哪个更少 double money = money1 < money2 ? money1 : money2; //5.打印最终花费 System.out.println(money); } }