当前位置:文档之家› Java程序设计基础习题答案

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案第2章1、关于Java Application 的入口方法main()的检验:main()方法的参数名就是否可以改变?main()方法的参数个数就是否可以改变?该方法名就是否可以改变?参考答案:(1)main()方法的参数名可以改变。

(2)main()方法的参数个数不可以改变。

(3)该方法名不可以改变。

2、当一个程序没有main()方法时,能编译不?如果能编译,能运行不?参考答案:当一个程序没有main()方法就是,就是可以编译通过的,但就是不能给运行,因为找不到一个主函数入口。

3、下列语句能否编译通过?byte i = 127;byte j = 128;long l1 = 999999;long l2 = 9999999999;参考答案:byte i 与long l1可以编译通过。

而byte j 与long l2 超出自身数据类型范围,所以编译失败。

4、下列语句能否编译通过?float f1 = 3、5;float f2 = 3、5f;参考答案:java中浮点型的数据在不声明的情况下都就是double型的,如果要表示一个数据就是float型的,必须在数据后面加上“F”或“f”;因此,float f1 无法编译通过。

5、验证int 与char,int与double等类型就是否可以相互转换。

参考答案:(1)char类型可以转换为int 类型的,但就是int类型无法转换为char类型的;(2)int 可以转换为double类型的,但就是double类型无法转换为int 类型的。

6、计算下列表达式,注意观察运算符优先级规则。

若有表达式就是非法表达式,则指出不合法之处且进行解释。

(1) 4+5 == 6*2 (2) (4=5)/6(3) 9%2*7/3>17 (4) (4+5)<=6/3(5) 4+5%3!=7-2 (6) 4+5/6>=10%2参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法的。

7、下列()就是合法的Java标识符。

(1) Counter1 (2) $index,(3) name-7 (4) _byte(5) larray (6) 2i(7) try (8) integer参考答案:Java标识符由数字,字母与下划线(_),美元符号($)组成。

在Java中就是区分大小写的。

而且还要求首位不能就是数字。

最重要的就是,Java关键字不能当作Java标识符。

因此,(1)、(4)、(5)、(8)就是合法标识符。

8、下列各项中定义变量及赋值不正确的就是()(1) int I = 32;(2) float f = 45、0;(3) double d = 45、0;参考答案:(2)不正确,选项(2)定义float 类型时必须在数据后面加上“F”或“f”。

9、Java语言中,整型常数123占用的存储字节数就是()(1) 1 (2) 2 (3) 4 (4) 8参考答案:正确选项就是(3), Java语言中,默认整型数占用4个字节数。

10、以下代码的编译运行结果就是public class Test{public static void main(String[] args){int age;age = age + 1;System、out、print ln(“the age is “ + age);}}(1)编译通过,运行无输出(2)编译通过,运行结果为“the age is 1”(3)编译通过但运行时出错(4)不能通过编译参考答案:(4)为正确选项。

Java 在使用变量前应该先初始化。

11、写出下列表达式的运行结果(1) 6+3<2+7 (2) 4%2+4*3/2(3) (1+3)*2+12/3 (4) 8>3&&6==6&&12<4(5)7+12<4&&12-4<8 (6) 23>>2参考答案:(1) false;(2) 6;(3) 12; (4) fale;(5) false;(6) 5;第3章1.编码验证i++与++i的区别。

参考答案:++i 与i++在单独使用时, 就就是i=i+1。

而 a = ++i, 相当于i=i+1; a = i; (先i = i + 1,再使用i 的值),而a = i++,相当于a = i; i=i+1; (先使用i 的值,再i = i + 1)。

2、写出下面表达式的结果(1)5/3(2)5/3、0(3)5%3(4)5%-3参考答案:(1)1(2)1、6666666666666667(3)2(4)23、考虑如下的Test、java,并指出错误原因。

程序清单:Test、javaclass Test {public static void main(String[] args) {byte b = 5;b = (b – 2);System、out、println(b);}}参考答案:b=(b-2);错误,在进行b-2时,运算结果类自动提升为int,而b就是byte类型,编译的时候会报错,因为存在高类型数据向低类型数据转化的风险。

而byte b=5;就是正确的,因为在编译的时候就能够确定5在byte允许的范围内,虚拟机在编译时做了一定的优化处理。

4、考虑一下对于if……else……语句,还有没有更简洁的写法。

例如:if( x > 0 ) {y = x;} else {y = -x;}可以简写成什么?参考答案:y=x>0?x:-x;5.给定N,编程实现打印N*N的乘法表。

参考答案:public static void main(String[] args){int a = 0, b = 0, c = 0;for(int i=0; i<9; i++) {a=i+1;for(int j=0;j<i+1;j++) {b = j+1;c = a*b;System、out、print(a + "*" + b + "=" + c + " ");}System、out、println(" ");}}6、将下列语句转换成Java代码:(1)如果b1为真,打印“one”,否则打印“two”。

(2)如果b1为假并且b2为真,打印“one”,否则打印“two”。

(3)如果b1为假,并且如果b2为真则打印“one”,如果b2为假则打印“two”;否则打印“three”。

参考答案:(1) if(b1=true) {System、out、print("one");} else {System、out、print("two");}(2)if(b1=false && b2 =true) {System、out、print("one");} else {System、out、print("two");}(3)if(b1=false && b2 =true) {System、out、print("one");} else if (b1=false && b2 =false){System、out、print("two");} else {System、out、print("three");}7、找出如下各项中的语法错误:(1)for(int k=0;k<100;k++)System、out、println(k)(2)for(int k=0;k<100;k++);System、out、println(k);(3)int k=0while k<100 {System、out、println(k);k++};(4)int k=0;do{System、out、println(k);k++;} while k<100;参考答案:(1)for(int k=0;k<100;k++) {System、out、println(k);}(2)for(int k=0;k<100;k++) {System、out、println(k);}(3)int k=0;while (k<100 ){System、out、println(k);k++;}(4)int k=0;do{System、out、println(k);k++;} while (k<100);8.写出三个不同的循环―for、while与do-while循环,打印出从0(包括0)开始直到1000的所有10的倍数。

参考答案:(1) int n=0;while(n<=1000 && n%10==0) {System、out、print(n);n++;}(2)int n=0do{if(n%10==0){System、out、print(n);}n++;}while(n<1000);(3)for(int n=0;n<=1000;n++){if(n%10==0) {system、out、print(n);}9.给定N,编程实现打印行数为N的菱形。

参考答案:public static void main(String[] args) {Scanner read = new Scanner(System、in);int n;while (true) {System、out、println("输入一个整数(>=0)");if (read、hasNextInt()) {n = read、nextInt();if (n < 0)continue;break;} else {read、next();}}for (int i = 0; i < n; i++) {for (int j = 1; j < n - i; j++)System、out、print(" ");for (int j = 0; j < i * 2 + 1; j++)System、out、print("*");for (int j = 1; j < n - i; j++)System、out、print(" ");System、out、println();}for (int i = n - 2; i >= 0; i--) {for (int j = 1; j < n - i; j++)System、out、print(" ");for (int j = 0; j < i * 2 + 1; j++)System、out、print("*");for (int j = 1; j < n - i; j++)System、out、print(" ");System、out、println();}}10、写出下面程序的输出结果:public class TestWhile {public static void main(String[] args) {int a=0;while(++a<=100)if ((a%9)==0)System、out、print(a+"\t");System、out、println();}}参考答案:9 18 27 36 45 54 63 72 81 90 99第4章1、比较String与StringBuffer的区别,并说明什么时候适合使用StringBuffer。

相关主题