Java面向对象程序设计(第二版)袁绍欣 第二章课后习题答案

1.答案:D

解析:java中标识符的组成由52个字母A-Z ,a-z ,数字0-9 ,下划线_ , 美元符$ 组成,不能以数字开头,不能是关键字,不能有空格。

2.哪些数据类型可以充当 switch 语句的条件?

答:int char byte short 枚举 String

3.答案:C

解析:首先 if 里面 x=y 是一个赋值语句,结果为y的值1,本身不符合语法;其次 y 是 int 类型,if 里面只能是 boolean ,类型不匹配,会报错。

4.定义一个浮点变量s,写成“Float s = 2.3;”错在什么地方?如何修改正确?

答:首先,末尾有个f代表浮点数,不然默认double类型;其次,Float为对应的包装类,应该为float。

5.答案:B

解析:i++ 是先运算,再加一,所以最后 i 加了 1 ,而 && 符号前面为假时,后面就不执行了,所以 j 没有加 1 。

6.定义一个一维数组有哪几种方法?

答:三种。
首先: 一维数组的声明 ; 代码如下

int[] ary1; //Java推荐的数组声明方式
int ary2[]; // 不推荐,但也是正确的,C语言等使用这种方式

其次: 声明和赋值

//参考一
int[] ary1 = {1,2,3};// 声明的时候,同时赋值
//参考二  
int[] ary2 = new int[3];//指定数组的长度为3
    ary2[0] = 1; //数组下标从0开始, 依次给每个元素赋值
    ary2[1] = 2;
    ary2[2] = 3;
//参考三  
int[] ary3 = new int[] {1,2,3}; //注意, 这里的new int[]方框里不能指定长度
7.编写JavaApplication,求出 e=1+1/1!+1/2!+1/3!+···+1/n!···的近似值,要求误差小于0.00001。
public class JavaApplication{
	public static void main(String[] args) 
	{
	  int i,j,k=1,n=100;  //n写大一点,后面有循环打破
	  double e=1.0;
	  for (j=1;j<n;j++)
	  {
		for (i=1;i<=j;i++)
	 	{
			k=k*i;
	 	}
	   e=e+1.0/k;
	if(1.0/k<0.00001){break;}//判断误差是否达到要求
	   k=1;
	   }
	  System.out.println("e="+e);
	}
}

运行结果:
在这里插入图片描述

8.利用可变列数组实现乘法口诀打印。
public class List {

	public static void main(String[] args) {
		int n,i,j;
		int[][] a=new int[9][];
		for(n=1;n<=9;n++) {
			a[n-1] = new int[n];
		}

        for(i=1;i<=9;i++){
        	for(j=1;j<=i;j++){
        		a[i-1][j-1]=i*j;
        		System.out.print(i+"x"+j+"="+a[i-1][j-1]+"\t");
        	}
    
        	System.out.println("");  //默认换一次行
        }
	}
}

运行结果(可以在Ecilpse上运行):

1x1=1	
2x1=2	2x2=4	
3x1=3	3x2=6	3x3=9	
4x1=4	4x2=8	4x3=12	4x4=16	
5x1=5	5x2=10	5x3=15	5x4=20	5x5=25	
6x1=6	6x2=12	6x3=18	6x4=24	6x5=30	6x6=36	
7x1=7	7x2=14	7x3=21	7x4=28	7x5=35	7x6=42	7x7=49	
8x1=8	8x2=16	8x3=24	8x4=32	8x5=40	8x6=48	8x7=56	8x8=64	
9x1=9	9x2=18	9x3=27	9x4=36	9x5=45	9x6=54	9x7=63	9x8=72	9x9=81	
9.编程输出。

图形:

*
*.*.
*..*..*..
*...*...*...*...
*....*....*....*....*....
*.....*.....*.....*.....*.....*.....
*......*......*......*......*......*......*......
*.......*.......*.......*.......*.......*.......*.......*.......

代码:

public class List {

	public static void main(String[] args) {
		int n,i,j;

        for(i=1;i<=8;i++){
        	for(j=1;j<=i;j++){
        		System.out.print("*");
        		for(n=1;n<=i-1;n++){
        			System.out.print(".");
        		}
        	}
        	System.out.println("");  //默认换一次行
        }
	}
}
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值