收藏 分享(赏)

浙大JAVA 实验题答案03answer.doc

上传人:eukav 文档编号:6187959 上传时间:2019-04-01 格式:DOC 页数:7 大小:197KB
下载 相关 举报
浙大JAVA 实验题答案03answer.doc_第1页
第1页 / 共7页
浙大JAVA 实验题答案03answer.doc_第2页
第2页 / 共7页
浙大JAVA 实验题答案03answer.doc_第3页
第3页 / 共7页
浙大JAVA 实验题答案03answer.doc_第4页
第4页 / 共7页
浙大JAVA 实验题答案03answer.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、实验 3 运算符和表达式的使用1. 登陆上机练习系统,完成实验 03 中的个题目,并提交。20001 20003 20007 2001120001 求两个数的和与差输入整数 a 和 b,计算并输出 a、b 的和与差。例:输入2 -8输出The sum is -6The difference is 10import java.util.Scanner;public class Test20001public static void main(String args)int a, b, sum, diff;Scanner in=new Scanner(System.in);a=in.nextInt

2、();b=in.nextInt();/*-*/ sum=a+b;diff=a-b; System.out.println(“The sum is “+sum);System.out.println(“The difference is “+diff);20003 华氏温度转换为摄氏温度输入华氏温度 f,计算并输出相应的摄氏温度 c。c = 5/9(f-32).例:括号内是说明输入17.2 (华氏温度)输出The temprature is -8.222222222222223import java.util.Scanner;public class Test20003 public stati

3、c void main(String args) Scanner in=new Scanner(System.in);double f, c;f=in.nextDouble();/*-*/ c=5.0/9*(f-32); /注意:5/9结果是0System.out.println(“The temprature is “+c); 20007 计算三门课程的平均成绩已知某位学生的数学、英语和计算机课程的成绩分别是 87 分、72 分和 93 分,求该生 3 门课程的平均分。本题无输入。输出示例:math = 87, eng = 72, comp = 93average = 84public cl

4、ass test20007 public static void main(String args) int math, eng, comp, average;/*-*/math=87;eng=72;comp=93;average=(math+eng+comp)/3;System.out.println(“math = “+math+“, eng = “+eng+“, comp = “+comp);System.out.println(“average = “+ average);20011 计算一个 3 位数的各位数字输入一个 3 位数 n,分别求出 n 的个位数字(c)、十位数字(b)和百

5、位数字(a)的值。输入输出示例:输入:152输出:number152:digit1=2,digit2=5,digit3=1import java.util.Scanner;public class Test20011public static void main(String args)int a,b,c,n;Scanner in=new Scanner(System.in);n=in.nextInt();/*-*/c=n%10; /个位b=(n/10)%10; /十位a=(n/100)%10; /百位System.out.println(“number“+n+“:digit1=“+c+“,d

6、igit2=“+b+“,digit3=“+a);2. 阅读以下程序,写出程序的运行结果,并上机运行验证。运行结果:m=2 k=1x=1.0 y=2.0 z=-3.0ch1=A ch2=Ach1=A ch2=aHello,Welcome to core Java!思考:(1) 字符A 和 a之间有什么关系?字符A的 Unicode 码比字符a的小 32。(2) 假设字符型变量 ch 中保存一个大写字母,执行 ch+=(a-A );后,ch 中是什么?ch 中是相应的小写字母。例:若 ch=B,执行 ch+=(a-A );后 ch=b。3. 阅读以下程序,写出程序的运行结果,并上机运行验证。运行结

7、果:m=3 n=2. m大于 n吗?truem=2 n=2. m大于 n吗?falsestr1=Hello;str2=Hello!s1 和 s2 相等吗 ?false思考:(1) s1 和 s2 为什么不相等?s2 比 s1 多一个字符“!”,所以不相同。(2) s1 和 s2 哪一个大?s2 比 s1 大。4. 阅读以下程序,写出程序的运行结果,并上机运行验证。运行结果:逻辑变量 b1=true、b2=falseb1b2(异或运算)的结果是:trueb1!b2(b2 取反后与 b1 异或运算)的结果是:false思考:(1) 如果给 b1 赋值 2,程序会怎样?会出错。因为类型不匹配:不能从

8、 int 转换为 boolean。5. 阅读以下程序,写出程序的运行结果,并上机运行验证。运行结果:第1段测试代码输出-1127-127-128第2段测试代码输出f=1.23456792E8d=1.23456789123456784E17第3段测试代码输出float型变量强制转换为int型的结果是:3int型变量运算:(m+2*n)/k的结果是:2(m+2*n)/k 的结果赋值给 float 型变量后 x=2.0思考:(1) 分析第 1 段代码,说明在什么情况下,int 类型的数值转换为 byte 类型,会出现符号变化,即正数变负数,负数变正数?为何输出会不同?如果数值超出 byte 类型的取

9、值范围时,会出现符号变化。因转换时从 int 类型数值的二进制补码形式中截取低 8 位,作为 byte 类型的补码,所以输出会不同。(2) 分析第 2 段代码,说明整数类型向浮点型转换是否可能出现精度损失,是否需要强制转换。整数类型向浮点型转换可能出现精度损失,但不需要强制转换。(3) 语句 float x=3.14f; 改为 float x=3.14; 会出错,为什么?因为 3.54 是 double 类型,不能赋给 float 类型的变量 x,在 3.54 后面加 F 或 f,将其转换成 float 类型,就可以赋值了。(4) 如果将 x=(m+2*n)/k 改为 x=(m+2*n)/(f

10、loat)k,x 的结果是多少?x=(m+2*n)/k=7/3=2x=(m+2*n)/(float)k=7/3.0=2.33333336. 阅读以下程序,写出程序的运行结果,并上机运行验证。运行结果:i=7 j=6 k=3t=13 i=8 j=5 k=3表达式c1+j*k/j%i 的结果是: 100f=false i=7 j=6f=true j=6思考:(1) 分析语句 t=i+k%-j*2; 的执行过程。即 t=(i+)+k%(-j)*2; 执行过程如下:-j; 得 j 为 5t=i+k%j*2=7+3%5*2=7+3*2=13;i+; 得 i 为 8(2) 表达式 c1+j*k/j%i 的结果是什么类型?为什么?字符和整数相加得到什么?是 int,因为字符变量 c1 自动转换成 int 后参加运算。字符和整数相加得到整数。 (3) 把语句 f=ic2|(j=1)!=0; 中的“|”改为“&”后,输出有变化吗?为什么?输出有变化,j=1,分析如下:ic2|(j=1)!=0 中,ic2 的值是 true,因为短路计算,(j=1)!=0 不用计算,j 值为 6 不变。ic2&(j=1)!=0 中,要计算(j=1)!=0,故 j 值改为 1。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报