Java程序设计基础习题答案
- 格式:doc
- 大小:101.00 KB
- 文档页数:25
第一章1.1public class Test{public static void main(String[]args){System.out.println("Welcome to Java!"); System.out.println("Welcome to Computer Science!");System.out.println("Progr amming is fun.");}}1.2public class Test{public static void main(String[]args){for(int i=0;i<=4;i++){System.out.println("Welcome to Java!");}}}1.3public class Test{public static void main(String[]args){System.out.println("]");System.out.printl n("]");System.out.println("]]");System.out.println("]]");}}public class Test{public static void main(String[]args){System.out.println("A"); System.out.println("A A");System.out.println("AAAAA");System.out.println("A A");}}public class Test{public static void main(String[]args){System.out.println("V V");System.out.println("V V");System.out.println("V V");System.out.println(" V");}}1.4public class Test{public static void main(String[]args){System.out.println("a a^2a^3");System.out.println("111");System.out.println("248");System.out.println("3 927");System.out.println("41664");}}1.5public class Test{public static void main(String[]args){System.out.println((9.5*4.5-2.5*3)/(45.5-3.5) );}}1.6public class Test{public static void main(String[]args){int i=1,sum=0;for(;i<=9;i++)sum+ =i;System.out.println(sum);}1.7public class Test{public static void main(String[]args){System.out.println(4*(1.0-1.0/3+1.0/5-1.0/7+1.0/9-1.0/11));System.out.println(4*(1.0-1.0/3+1.0/5-1.0/7+1.0/9-1.0/11+1.0/13));}}1.8public class Test{public static void main(String[]args){final double PI=3.14; double radius=5.5;System.out.println(2*radius*PI);System.out.println(PI*radius*radius);}}1.9public class Test{public static void main(String[]args){System.out.println(7.9*4.5);System.out.p rintln(2*(7.9+4.5));}}1.10public class Test{public static void main(String[]args){double S=14/1.6;double T=45*60+30;double speed=S/T;System.out.println(speed);}1.11public class Test{public static void main(String[]args){int BN=312032486; //original person numbers double EveryYS,EveryYBP,EveryYDP,EveryYMP;EveryY S=365*24*60*60;EveryYBP=EveryYS/7;EveryYDP=EveryYS/13;Every YMP=EveryYS/45;int FirstYP,SecondYP,ThirdYP,FourthYP,FivthYP;FirstYP=(int)(BN+EveryYBP+EveryYMP-EveryYDP);SecondYP=(int)(FirstYP +EveryYBP+EveryYMP-EveryYDP);ThirdYP=(int)(SecondYP+EveryYBP+Ev eryYMP-EveryYDP);FourthYP=(int)(ThirdYP+EveryYBP+EveryYMP-EveryYD P);FivthYP=(int)(FourthYP+EveryYBP+EveryYMP-EveryYDP);System.out.pri ntln(FirstYP);System.out.println(SecondYP);System.out.println(ThirdYP);Syste m.out.println(FourthYP);System.out.println(FivthYP);}}1.12public class Test{public static void main(String[]args){double S=24*1.6; double T=(1*60+40)*60+35;double speed=S/T;System.out.println(sp eed);}}1.13import java.util.Scanner;public class Test{public static void main(String[]args){Scanner input=new Scan ner(System.in);System.out.println("input a,b,c,d,e,f value please:");double a=input.nextDouble();double b=input.nextDouble();double c=input.nextDouble();double d=input. nextDouble();double e=input.nextDouble();第二章package cn.Testcx;import java.util.Scanner;public class lesson2{public static void main(String[]args){@SuppressWarnings("resource")Scanner in put=new Scanner(System.in);System.out.print("请输入一个摄氏温度:");double Celsius=input.nextDouble();double Fahrenheit=(9.0/5)*Celsius+3 2;System.out.println("摄氏温度:"+Celsius+"度"+"转换成华氏温度为:"+Fahrenheit+"度");System.out.print("请输入圆柱的半径和高:");double radius=input.nextDouble();int higth=input.nextInt();double are as=radius*radius*Math.PI;double volume=areas*higth;System.out.println("圆柱体的面积为:"+areas);System.out.println("圆柱体的体积为:"+volume);System.out.print("输入英尺数:");double feet=input.nextDouble();double meters=feet*0.305;System.out.print ln(feet+"英尺转换成米:"+meters);System.out.print("输入一个磅数:");double pounds=input.nextDouble();double kilograms=pounds*0.454;Syste m.out.println(pounds+"磅转换成千克为:"+kilograms);System.out.println("输入分钟数:");long minutes=input.nextInt();long years=minutes/(24*60*365);long days=(minutes%(24*60*365))/(24*60);System.out.println(minutes+"分钟"+"有"+years+"年和"+days+"天");long totalCurrentTimeMillis=System.currentTimeMillis();long totalSeconds=t otalCurrentTimeMillis/1000;long currentSeconds=totalSeconds%60;long totalM inutes=totalSeconds/60;long currentMinutes=(totalSeconds%(60*60))/60;long currenthours=(totalMinutes/60)%24;System.out.print("输入时区偏移量:");byte zoneOffset=input.nextByte();long currentHour=(currenthours+(zoneOf fset*1))%24;System.out.println("当期时区的时间为:"+currentHour+"时"+currentMinutes+"分"+currentSeconds+"秒");System.out.print("请输入v0,v1,t:");double v0=input.nextDouble();double v1=input.nextDouble();doublet=input.nextDouble();float a=(float)((v1-v0)/t);System.out.println("平均加速度a="+a);System.out.println("输入水的重量、初始温度、最终温度:");double water=input.nextDouble();double initialTemperature=input.nextDou ble();double finalTemperature=input.nextDouble();double Q=water*(finalTemp erature-initialTemperature)*4184;System.out.println("所需热量为:"+Q);System.out.print("输入年数:");int numbers=input.nextInt();long oneYearsSecond=365*24*60*60;Longpop ulation=(long)((312032486+((oneYearsSecond/7.0)+(oneYearsSecond/45.0)-(oneYearsSecond/13.0))*numbers));System.out.println("第"+numbers+"年后人口总数为:"+population);System.out.print("输入速度单位m/s和加速度a单位m/s2:");double v=input.nextDouble();double a1=input.nextDouble();double l engthOfAirplane=(Math.pow(v,2))/(2*a1);System.out.println("最短长度为:"+lengthOfAirplane);System.out.print("输入存入的钱:");double money=input.nextInt();double monthRate=5.0/1200;for(int i=1;i<7; i++){double total=money*(Math.pow(1+monthRate,i));System.out.println("第"+i+"个月的钱为:"+total);//告诉我书上的银行在哪里,我要去存钱,半年本金直接翻6倍、、、}System.out.print("用户请输入身高(英寸)、体重(磅):");double height=input.nextDouble();double weight=input.nextDouble(); double BMI=(weight*0.45359237)/(Math.pow((height*0.0254),2));System.out.println("BMI的值为"+BMI);System.out.print("输入x1和y1:");System.out.print("输入x2和y2:");double x1=input.nextDouble();double y1=input.nextDouble();double x2 =input.nextDouble();double y2=input.nextDouble();double point1=Math.pow((x2-x1),2);double point2=Math.pow((y2-y1),2);double distance=Math.pow((point1+point2),(1.0/2));//也可以Math.pow((point1+point2),0.5)System.out.println("两点间的距离为:"+distance);System.out.print("输入六边形的边长:");double side=input.nextDouble();double area=(3*(Math.pow(3,0.5))*(Math.p ow(side,2)))/2;System.out.println("六边形的面积为:"+area);}}。
《JA V A程序设计》练习题一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A. javaB. .classC. htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A)。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( C )。
A. publicB. privateC. staticD. protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A)。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、关于选择结构下列哪个说法正确?( B )A.if语句和else语句必须成对出现B.if语句可以没有else语句对应C.switch结构中每个case语句中必须用break语句D.switch结构中必须有default语句6、while循环和do…while循环的区别是:( D)A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.while循环是先循环后判断,所以循环体至少被执行一次D.do…while循环是先循环后判断,所以循环体至少被执行一次7、关于for循环和while循环的说法哪个正确?( B)A.while循环先判断后执行,for循环先执行后判断。
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空8、下列修饰符中与访问控制无关的是( D)A.private B.publicC.protected D.final9、void的含义:( A)A.方法没有返回值B.方法体为空C.没有意义 D.定义方法时必须使用10、return语句:( C )A.只能让方法返回数值B.方法都必须含有C.方法中可以有多句return D.不能用来返回对象11、关于对象成员占用内存的说法哪个正确?( B)A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对12、下列说法哪个正确?( C)A.不需要定义类,就能创建对象B.对象中必须有属性和方法C.属性可以是简单变量,也可以是一个对象D、属性必须是简单变量13、下列说法哪个正确?( A )A、一个程序可以包含多个源文件B、一个源文件中只能有一个类C、一个源文件中可以有多个公共类D、一个源文件只能供一个程序使用14、关于方法main()的说法哪个正确?( C )A.方法main()只能放在公共类中B main()的头定义可以根据情况任意更改C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中15、构造函数何时被调用?( A )A、创建对象时B、类定义时C、使用对象的方法时D、使用对象的属性时16、抽象方法:( C )A、可以有方法体B、可以出现在非抽象类中C、是没有方法体的方法D、抽象类中的方法都是抽象方法17、关于继承的说法正确的是:( B )A、子类将继承父类所有的属性和方法。
《J a v a程序设计》课后练习答案第一章Java概述一、选择题1.( A )是在Dos命令提示符下编译Java程序的命令,( B )是运行Java程序的命令。
A.javacB.javaC.javadocD.javaw2.( D )不是Java程序中有效的注释符号。
A.//B.C.D.3.(A.B.C.D.4.JavaA.B.C.D.5.JavaA.1、JavaJava(JVM)Java以下图展示了Java程序从编译到最后运行的完整过程。
2、简述Java语言的特点Java具有以下特点:1)、简单性Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。
2)、可靠性和安全性Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。
3)、面向对象Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。
4)、平台无关和解释执行Java语言的一个非常重要的特点就是平台无关性。
它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。
Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。
Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)5)、6)、Java来。
1、/****/}}第二章Java语法基础一、选择题1.下面哪个单词是Java语言的关键字( B )?A. DoubleB. thisC. stringD. bool2.下面属于Java关键字的是( D )。
A. NULLB. IFC. DoD. goto3.在启动Java应用程序时可以通过main( )方法一次性地传递多个参数。
如果传递的参数有多个,可以用空格将这些参数分割;如果某一个参数本身包含空格,可以使用( B )把整个参数引起来。
java语言程序设计基础篇复习题答案Java语言程序设计基础篇复习题答案一、选择题1. Java是一种( A )。
A. 面向对象的编程语言B. 过程式编程语言C. 汇编语言D. 标记语言2. Java程序的执行流程是( B )。
A. 编译 -> 链接 -> 执行B. 编译 -> 运行C. 链接 -> 编译 -> 执行D. 执行 -> 编译 -> 链接3. 下列哪个是Java的关键字( D )。
A. ObjectB. StringC. IntegerD. class4. Java语言中,哪个是合法的类名( A )。
A. MyClassB. 2classC. my-classD. class5. 在Java中,哪个是正确的主方法声明( C )。
A. public void main(String args[])B. public void main(String[] args)C. public static void main(String[] args)D. static public void main(String args[])6. 下列哪个是Java的基本数据类型( C )。
A. StringB. IntegerC. intD. Object7. Java中,哪个操作符用于连接字符串( B )。
A. +B. +C. +=D. append()8. 以下哪个是Java的控制流语句( D )。
A. forB. whileC. ifD. 所有选项都是9. Java中,哪个是正确的数组声明( A )。
A. int[] numbers;B. int numbers[];C. numbers[] int;D. int numbers[]10. 在Java中,哪个是正确的方法定义( B )。
A. int add(int a, int b) { return a + b; }B. public int add(int a, int b) { return a + b; }C. private int add(int a, int b) { return a + b; }D. static int add(int a, int b) { return a + b; }二、简答题1. 简述Java语言的特点。
java语言程序设计基础篇复习题答案一、选择题1. Java语言属于以下哪种类型的编程语言?A. 编译型语言B. 解释型语言C. 汇编语言D. 机器语言答案:B2. 下面哪个是Java语言的正确数据类型?A. intB. floatC. doubleD. 所有选项都是答案:D3. Java程序的入口点是哪一个方法?A. main()B. start()C. run()D. execute()答案:A4. Java中,哪个关键字用于定义类?A. classB. typeC. defineD. struct答案:A5. Java中的异常处理是通过什么机制实现的?A. 继承B. 多态C. 接口D. 异常处理语句答案:D二、填空题1. Java语言是一种_________语言,它支持_________和_________。
答案:面向对象;封装;继承2. 在Java中,所有的类都是从_________类继承而来的。
答案:Object3. Java程序的执行流程是从_________方法开始的。
答案:main4. Java中的数组是_________的。
答案:固定长度5. Java语言支持_________和_________两种类型的异常。
答案:编译时异常;运行时异常三、简答题1. 请简述Java语言的特点。
答案:Java语言是一种面向对象的编程语言,具有跨平台性、安全性高、健壮性、多线程等特点。
2. 请解释Java中的“垃圾回收”机制。
答案:Java的垃圾回收机制是一种自动内存管理技术,它能够自动回收不再使用的对象所占用的内存,防止内存泄漏。
四、编程题1. 编写一个Java程序,实现计算两个整数的和。
```javapublic class SumCalculator {public static void main(String[] args) {int num1 = 5;int num2 = 10;int sum = num1 + num2;System.out.println("The sum of " + num1 + " and " + num2 + " is " + sum);}}```2. 编写一个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 = 99;参考答案:byte i 和 long l1可以编译通过。
而 byte j 和long l2 超出自身数据类型范围,所以编译失败。
4. 下列语句能否编译通过float f1 = ;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是不合法的。
《JA V A程序设计》练习题一、单项选择择题一、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A. javaB. .classC. htmlD. .exe二、设x = 1 , y = 2 , z = 3,那么表达式y+=z--/++x 的值是( A)。
A. 3B. 3. 5C. 4D. 53、不许诺作为类及类成员的访问操纵符的是( C )。
A. publicB. privateC. staticD. protected4、为AB类的一个无形式参数无返回值的方式method书写方式头,使得利用类名AB作为前缀就能够够挪用它,该方式头的形式为( A)。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )五、关于选择结构以下哪个说法正确?( B )A.if语句和else语句必需成对显现B.if语句能够没有else语句对应C.switch结构中每一个case语句中必需用break语句D.switch结构中必需有default语句六、while循环和do…while循环的区别是:( D)A.没有区别,这两个结构任何情形下成效一样B.while循环比do…while循环执行效率高C.while循环是先循环后判定,因此循环体至少被执行一次D.do…while循环是先循环后判定,因此循环体至少被执行一次7、关于for循环和while循环的说法哪个正确?( B)A.while循环先判定后执行,for循环先执行后判定。
B.while循环判定条件一样是程序结果,for循环的判定条件一样是非程序结果C.两种循环任何时候都不能够替换D.两种循环结构中都必需有循环体,循环体不能为空八、以下修饰符中与访问操纵无关的是( D)A.private B.publicC.protected D.final九、void的含义:( A)A.方式没有返回值B.方式体为空C.没成心义 D.概念方式时必需利用10、return语句:( C )A.只能让方式返回数值B.方式都必需含有C.方式中能够有多句return D.不能用来返回对象1一、关于对象成员占用内存的说法哪个正确?( B)A.同一个类的对象共用同一段内存B、同一个类的对象利用不同的内存段,但静态成员共享相同的内存空间C.对象的方式不占用内存D.以上都不对1二、以下说法哪个正确?( C)A.不需要概念类,就能够创建对象B.对象中必需有属性和方式C.属性能够是简单变量,也能够是一个对象D、属性必需是简单变量13、以下说法哪个正确?( A )A、一个程序能够包括多个源文件B、一个源文件中只能有一个类C、一个源文件中能够有多个公共类D、一个源文件只能供一个程序利用14、关于方式main()的说法哪个正确?( C )A.方式main()只能放在公共类中B main()的头概念能够依照情形任意更改C.一个类中能够没有main()方式D.所有对象的创定都必需放在main()方式中1五、构造函数何时被挪用?( A )A、创建对象时B、类概念时C、利用对象的方式时D、利用对象的属性时1六、抽象方式:( C )A、能够有方式体B、能够出此刻非抽象类中C、是没有方式体的方式D、抽象类中的方式都是抽象方式17、关于继承的说法正确的选项是:( B )A、子类将继承父类所有的属性和方式。
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就是不合法的。
java语言程序设计基础篇复习题答案# Java语言程序设计基础篇复习题答案一、选择题1. Java是一种面向对象的编程语言,它是由SUN公司开发的。
(对)2. Java程序的源文件扩展名是.java,编译后的文件扩展名是.class。
(对)3. Java语言是编译型语言,不是解释型语言。
(错)4. Java语言的跨平台特性主要得益于Java虚拟机(JVM)。
(对)5. 在Java中,可以通过`==`操作符来比较两个字符串的内容是否相等。
(错)二、填空题1. Java语言的基本数据类型包括:byte、short、int、long、float、double、char、boolean。
2. Java中用`public class`定义类时,类名必须与文件名相同。
3. Java程序的入口方法是`main`方法,它必须声明为`public static void main(String[] args)`。
4. Java中,`new`关键字用于创建对象。
5. 访问控制修饰符包括:public、private、protected、default(无修饰符)。
三、简答题1. 简述Java语言的特点。
- Java是一种面向对象的编程语言,具有封装、继承和多态性。
- Java是平台无关的,可以在任何安装了Java虚拟机的设备上运行。
- Java具有强类型检查,提高了代码的安全性和可读性。
- Java提供了丰富的标准库,方便开发者快速开发。
2. 解释Java中的异常处理机制。
- Java使用try-catch-finally块来处理异常。
- try块包含可能会抛出异常的代码。
- catch块用于捕获并处理异常。
- finally块中的代码无论是否发生异常都会执行,常用于资源的清理。
3. 描述Java中集合框架的基本概念。
- Java集合框架是一组相关的接口和类,用于存储和处理对象集合。
- 基本接口包括:Collection、List、Set、Map。
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.println(“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。