第1章 P.16
1.PC机上不能直接运行Java程序,应先安装JDK,并在Windows的环境变量Path中增加JDK的安装路径,然后需要编译Java源程序生成.class文件,才可运行。
2.使用命令javac编译Java程序,使用命令java运行编译后的结果。
6.System.out.println() 执行输出操作,输出指定内容后换行。
第2章 P.29
一、概念思考题
1.Java对变量命名的规定:由字母、数字、_和$组成,首字符必须为字母、“_”或“$”,不能是数字,长度不限,区分字母大小写,不能与Java关键字相同。
2.Java的基本数据类型有:逻辑(boolean)、字节(byte)、短整数(short)、整数(int)、长整数(long)、浮点数(float)、双精度浮点数(double)、字符(char)。其中,整数类型有4种:byte、short、int、long
二、程序理解题
1. 2. 3.
int res,n1=12,n2=24,n3=16,n4=3; double d,v1=10.0,v2=3.1416; res=n1/n4; //4 d=n1/n4; //4.0 res=n3/n4; //5 d=n3/n4; //5.0
d=v1/n4; //3.3333333333333335 d=v1/v2; //3.183091418385536 res=n1/n2; //0 d=(double)n1/n2; //0.5 d=n1/(double)n2; //0.5 d=(double)(n1/n2); //0.0
System.out.println(\+34+30); System.out.println(\+(34+30)); int count=10; count*=count+2; count/=100; count++;
//10 //120 //1 //2
//34+30=3430
//34+30=64,注意与这一句的区别
第3章 P.50
一、概念思考题
2. 如果在switch语句中的某个case中没有以break结尾会发生什么情况? 如果没有break语句,接着执行下一个case子句,直到遇到一个break,或者switch结束为止。
4. 比较while循环与do-while循环的异同之处。
共同点:条件满足时执行循环,条件不满足时结束循环。
while循环是当型,先判断条件,再执行循环体。可能执行零次循环。
do-while循环是直到型,先执行循环体,再判断条件。至少执行一次循环。
二、程序理解题
1. 写出以下代码段的执行结果。 int num=34,max=30; if(num>=max*2)
System.out.println(\ System.out.println(\System.out.println(\
执行结果: huang zhu
2. 写出以下代码段的执行结果。 int num=1; while(num<17){
System.out.println(num); num+=5; }
System.out.println(num);
执行结果: 1 6 11 16 21
说明:循环结束后,num=21
3. 把以下代码段改写为一个等价的for循环。 int num=1; while(num<20){ num++;
System.out.println(num); }
//输出2,3,4,5,??,20,每行一个
改写:
for(int num=2;num<=20;num++) System.out.println(num);
4. 指出以下代码段的错误。 int count=24; while(count>0){
System.out.println(count); count++; }
会陷入死循环。
将24赋值于count,则满足条件count>0,循环内执行count++,使count值永远>0,因此该循环不会终止。
5.写出以下代码段的执行结果 int num=1; while(num<16){ if(num%2==0)
System.out.println(num); num++; }
执行结果: 2 4 6 8 10 12 14
三、编程题
1.编写一个程序,输出1~100之间所有的素数。 public class Ex_chap3_3_1 {
public static void main(String args[]) { int i,k;
for(k=1;k<=100;k++){ for(i=2;i<=k-1;i++) if(k%i==0)break;
if(i==k) System.out.print(k+\); } } }
2.编写一个程序,输入一组整数,以-1结束,比较并输出其中的最大值和最小值。 import java.util.Scanner; public class Ex_chap3_3_2 {
public static void main(String[] args) { int a,max,min;
Scanner scan=new Scanner(System.in);
System.out.println(\输入一组整数,以空格分隔,以-1结束\
}
}
a=max=min=scan.nextInt(); while(a!=-1)
{ if(a>max)max=a; if(a System.out.println(\+max+\+\+min); 第4章 P.73 三、编程题 1. 计算两点间距离。 import java.util.Scanner; public class Ex_chap4_3_1 { public static void main(String[] args){ double x1,y1,x2,y2,distance; Scanner in=new Scanner(System.in); System.out.println(\请输入第一个点的坐标x1,y1:\); x1=in.nextInt(); y1=in.nextInt(); System.out.println(\请输入第二个点的坐标x2,y2:\); x2=in.nextInt(); y2=in.nextInt(); distance=Math.sqrt(Math.pow((x1-x2),2)+Math.pow((y1-y2),2)); System.out.println(\两点间距离是:\+distance); } } 2.读入20个10以内的正整数,输出每个整数出现的次数。 说明:使用一个数组a[10] 作为计数器组,统计每个整数出现的次数。 如:数组元素a[1]统计1的次数,数组元素a[2]统计2的次数,?? import java.util.Scanner; public class Ex_chap4_3_2 { public static void main(String[] args) { int a[]=new int[10]; int i,x; Scanner in=new Scanner(System.in); System.out.println(\请输入20个10以内的正整数:\); for(i=1;i<=20;i++){ //输入一个数,统计 x=in.nextInt(); a[x]++; } for(i=1;i<10;i++) //输出统计结果 System.out.println(\正整数\+i+\出现了\+a[i]+\次\); } } 说明:如果需要对输入的数据进行有效性检查,可将语句a[x]++; 改为如下的if 语句。 if(x>0&&x<10) a[x]++; else { System.out.println(\输入无效,请重输:\); i--; } 补充题:编程输出n行杨辉三角形,n从键盘输入。 import java.util.Scanner; public class YanghuiTringle { public static void main(String args[]){ int n,a[][],i,j; Scanner in=new Scanner(System.in); System.out.print(\请输入杨辉三角形的行数:\); n=in.nextInt(); a=new int[n][n]; for(i=0;i a[i][i]=1; //数组的对角线元素赋值1 a[i][0]=1; //数组的第1列元素赋值1 } //计算非1的元素值,从第2行第1列元素开始 for(i=2;i