JAVA简明教程习题答案
第二章
课堂习题:
public class Main
{
public static void main(String[] args) {
//initialization phase初始段
float f1 = 2.5f;
float f2;
int a = 7;
int b = 2;
int c;
//processing phase 处理段
f2 = f1 + (a/b);
c = (a/b);
//termination phase终止段
System.out.println("f2的值为: " + f2);
System.out.println("c的值为: " + c);
}
}
课后习题:
2-4
(小程序部分)
import java.applet.*;
import java.awt.*;
public class Gess extends Applet
{
public void paint(Graphics g)
{
//3~10000中的任意数
int m = 20;
int n = 9993;
g.drawString("本程序仅对3~10000中任意取的整数: ",80,50);
g.drawString("20" ,80,65);
g.drawString("9993" ,80,80);
g.drawString("进行测试! " ,80,95);
while (m !=1) //假设最后得到的数一定是1,则如果不为1就换算
{
if (m %2 == 0) //如果被2整除则为偶数,除以2
m = m /2;
else //如果不被2整除则为奇数,乘以3再加1
{
m = m *3 + 1;
}
}
while (n !=1) //假设最后得到的数一定是1,则如果不为1就换算
{
if (n %2 == 0) //如果被2整除则为偶数,除以2
n = n /2;
else //如果不被2整除则为奇数,乘以3再加1
{
n = n *3 + 1;
}
}
g.drawString("20换算后的值为: " + m,80,110);
g.drawString("9993换算后的值为: " + m,80,125);
}
}
(程序部分)
import java.io.*; //引入java.io中的所有类(含输入输出类),因为程序中要用到输入类的read()方法
public class Main float up
{
public static void main(String[] args)
{
byte []buf =new byte[50]; //50个字节的数组用于存字符串
String str;
long m = 0;
System.out.println("请输入3~10000中的任意整数(回车确认):");
try //try 语气
{
ad(buf); //从键盘读入一数字串保存于buf中
str = new String(buf); //buf转换成字符串对象str
m = Long.im()); //数字转换成整数
}catch (Exception e){} //catch语气,Exception为异常类
while (m !=1) //假设最后得到的数一定是1,则如果不为1就换算
{
if (m %2 == 0) //如果被2整除则为偶数,除以2
m = m /2;
else //如果不被2整除则为奇数,乘以3再加1
{
m = m *3 + 1;
}
}
System.out.println("换算后的值为:\t" + m);
}
}
2-6
public class Main
{
public static void main(String[] args)
{
// initialization phase //初始段
int j = 1;
int []a; //用于存放第一个骰子的点数的整形数组
int []b; //用于存放第二个骰子的点数的整形数组
int two = 0; //相加和为2的计数器
int sev = 0; //相加和为7的计数器
int twe = 0; //相加和为12的计数器
int oth = 0; //相加和为其他数的计数器
a = new int [6]; //分配数组空间
b = a; //骰子的点数相同,这里将数组a赋给数组b(这时b和a同用一块内存空间)
//processing phase 处理段
for(int i = 0; i < 6; i++) //通过循环赋值方式初始化数组
{
a[i] = j++;
}
for(int i = 0; i < 3600; i++) //测试3600次
{
//生成0~5随机数
int m = (int)(((Math.random())*6 ));
int n = (int)(((Math.random())*6 ));
if ((a[m] + b[n]) == 2) //当相加和为2时对应计数器加1
two++;
else if ((a[m] + b[n]) == 7) //当相加和为7时对应计数器加1
sev++;
else if((a[m] + b[n]) == 12) //当相加和为12时对应计数器加1
twe++;
else //当相加和为其他数时对应计数器加1
oth++;
}
//termination phase 终止段
//输出结果
//((float)two/3600)为将two/3600的结果强制转换成浮点数输出,否则输出为0
System.out.println("相加的和为 2 的次数是:\t" + two
+ ";\t可能性为:\t" + ((float)two/3600));
System.out.println("相加的和为 12 的次数是:\t" + twe
+ ";\t可能性为:\t" + ((float)twe/3600));
System.out.println("相加的和为 7 的次数是:\t"+ sev
+ ";\t可能性为:\t" + ((float)sev/3600));
System.out.println("相加的和为其他数的次数是:\t"
+ oth + ";\t可能性为:\t" + ((float)oth/3600) );
}
}
第三章
课堂习题
随机产生26个英文字母a-z,直到大于u为止,用while或for语气实现
public class Main {
public static void main(String[] args)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论