1.1 指出JAVA语言的主要特点和JAVA程序的执行过程。
答:(1)强类型;(2)编译和解释;(3)自动无用内存回收功能;(4)面向对象;(5)与平台无关;(6)安全性;(7)分布式计算;(8)多线程;程序执行过程如图所示:编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。
1.2 说出开发与运行JAVA程序的重要步骤。
答:(1)编写源文件:使用一个文本编译器,如Edit或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java;(2)编译Java源文件:使用Java编译器(javac.exe)编译源文件得到字节码文件;(3)运行Java程序:Java程序分为两类——Java应用程序必须通过Java解释器(java.exe)来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行。
1.3 如何区分应用程序和小应用程序?答:应用程序在与源文件名字相同的类中,有main()方法,该方法代表应用程序的入口; 小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。
1.4 说出JAVA源文件的命名规则。
答:源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源文件的public类同名。
1.6 JAVA语言使用什么字符集?共有多少个不同的字符?答:Java语言使用Unicode字符集,共有65535个字符。
1.7 JAVA语言标识符的命名规则是什么?(1)由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成(2)限定标识符的第一个字符不能是数字字符(3)不能和关键字重名(4)长度不能超过255个字符1.8 JAVA有那些基本数据类型,它们的常量又是如何书写的?1.9 指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。
整型常量: 4)0xABCL,8)003,10)077,12)056L浮点数类型常量:3)-1E-31,5).32E31 13)0.,14).0两者都不是: 1),2),6),7),9),11)第二章运算和语句2.1 Java的字符能参加算术运算吗?可以。
(1)字符与整型数据运算,结果为整型数据,只能赋给整型变量,如果附给字符型变量会损失精度,需要强制类型装换;(2)字符与字符运算,结果为字符型数据,可以直接赋给字符型或整型变量。
2.2 占字节多的变量能直接赋值给占字节少的变量么?答:不能直接赋值,需要强制类型转换。
2.3 试用Java语言表达式描述以下数学计算式或逻辑条件:1)3)34(rV⋅=π解:V = (4.0/3)*Math.PI*Math.pow(r,3);2))11(121RRR+=解:R = 1.0 / (1.0/R1+1.0/R2);3)635++=xxy解:y = Math.pow(x,5) + Math.pow(x,3) + 6;4)221RMMF⋅=解:F = 1.0 * M1 * M2 / (R * R);5)()()|2/cos|/sin xaxx⋅+π解:Math.sin(x) / a * x + Math.abs( Math.cos(π * x / 2) );6)0 < a <10解:a > 0 && a < 107) 条件 x=1 与 y=2 有且只有一个成立.解:( x == 1 && y != 2) || (x != 1 && y == 2)2.4 设在求以下表达式之前,整型变量a的值是4,试指出在求了以下表达式之后,变量a、b和c的值。
1);++*=aab解:a=5 ; b=16;2);aac+++=;解:a=5 ; c=102.6 若一个数恰好等于它的因子之和,则这个数称为“完全数”。
编写程序求1000之内的所有完全数。
分析:若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数。
例如6=1+2+3;28=1+2+4+7+14程序运行结果:/***@author段智敏*/public class Work2_6 {public static void main(String[] args) {String resultString = "1000以内,完全数有:"; //最后结果字符串for (int i = 1; i <= 1000; i++){if (isPerfectNumber(i)){resultString += i + ",";}}System.out.println(resultString);}private static boolean isPerfectNumber(int number) {int sum = 0;// 因子的和String str = new String("");for (int i = 1; i < number; i++){if (number % i == 0){sum += i;str += i + "+";}}if (sum == number){// 如果因子之和,等于本身,则是完数str = str.substring(0, str.length() - 1); // 去掉字符串最后一个多余的“+”;System.out.println(number + "的因子有:" + str);return true;}return false;}}2.7 编写输入正实数x,求平方不超过x的最大整数n,并输出。
程序运行结果:第一种命令行方式输入import java.util.Scanner;/***编写输入正实数x,求平方不超过x的最大整数n,并输出。
<BR>*命令行方式,输入正实数,输出结果<BR>*@author段智敏*/public class Work2_7_1{public static void main(String[] args){Scanner consoleScanner = new Scanner(System.in);System.out.print("请输入正实数X:");String str = consoleScanner.next();int number = -1;try{number = Integer.parseInt(str);}catch( NumberFormatException e ){System.out.println("输入非法字符,程序结束");return;}if (number < 1)System.out.println("输入的数不是正实数,程序结束");else{int n = (int) (Math.sqrt(number));System.out.println("平方不超过"+number+"的最大整数,n="+n+";");}}}第二种窗口方式输入运行结果如下图:/***编写输入正实数x,求平方不超过x的最大整数n,并输出。
*弹出窗口方式*@author段智敏*/import javax.swing.JOptionPane;public class Work2_7_2{private int number;public Work2_7_2(){number = this.getIntegerNumber("请输入一个正实数", 1);if (number < 1)return; // 非法,程序结束int n = (int) (Math.sqrt(number));showResult("平方不超过" + number + "的最大整数\nn = " + n + ";");}/***通过图形界面,得到符合规则的正整数的方法*@param message - 在弹出的对话框中,显示提示信息message*@param min -要求此数必须大于等于min*/public int getIntegerNumber(String message, int min){String str = JOptionPane.showInputDialog(null, "请输入一个正整数", "提示信息",RMATION_MESSAGE);int number = -1;try{number = Integer.parseInt(str); // 得到输入的正整数}catch( Exception e ){JOptionPane.showMessageDialog(null, "输入非数字字符\n程序结束", "错误警告",JOptionPane.ERROR_MESSAGE);return -1; // 输入的不是数字字符,程序结束}if (number < min){JOptionPane.showMessageDialog(null, "输入的数不符合规则,不是正整数\n程序结束","错误警告", JOptionPane.ERROR_MESSAGE);return -1; // 输入的数不是大于2的正整数时候,程序结束}elsereturn number;}/***弹出对话框,显示结果*@param str-需要显示的字符串*/public void showResult(String str){JOptionPane.showMessageDialog(null, str, "输出结果",RMATION_MESSAGE);}public static void main(String[] args){new Work2_7_2();}}2.8 输入正整数n,输出由n行n列星号字符组成的三角形图案。
程序运行结果:源代码文件:Work2_8.javaimport java.util.*;/***输入正整数n,输出由n行n列星号字符组成的三角形图案。
*@author段智敏*/public class Work2_8{public static void main(String args[]){Scanner consoleScanner = new Scanner(System.in);System.out.print("请输入正整数n:");String str = consoleScanner.next();int n = -1;try{n = Integer.parseInt(str);}catch( NumberFormatException e ){System.out.println("输入非法字符,程序结束");return;}if (n < 1)System.out.println("输入的数不是正实数,程序结束");else{for(int i=0;i<n;i++){for(int j=0;j<n-i-1;j++){System.out.print(" ");}for(int k=0;k<i+1;k++){System.out.print("*");}System.out.println();}}}}2.9 设有整型变量x和y的值分别为5和110。