java语言程序设计(基础篇)第1章 基本程序设计 复习题 解答_java语言程序设计(基础篇)第2章 基本程序设计 复习题 解答...

第2章基本程序设计

作者:wwj

复习题

2.2~2.7节

2.1.下列哪些标识符是合法的?哪些是java关键字?

applet ,Applet , a++ , --a , 4#R , $4 , #44 , apps ,class , public ,int ,x ,y ,radius

解:合法:applet , Applet, $4, apps , x, y ,radius.

不合法:a++ , --a , 4#R , #44 , class , public , int

关键字:class , public , int

2.2.将下面的算法翻译成java代码:

·第一步:声明一个名为miles初始值为100的double型变量。

·第二步:声明一个名为KILOMETERS_PER_MILE值为1.609的double型变量。

·第三步:声明一个名为kilometers的double型变量,将miles和KILOMETERS_PER_MILE相乘的结果赋给kilometers。

·第四步:将kilometers显示在控制台上。

在第四步之后,kilometers的值是多少?

解:1.double miles = 100;

2. final double KILOMETERS_PER_MILE = 1.609

3. kilometers = miles * KILOMETERS_PER_MILE;

4.System.out.println(kilometers);

kilometers=160.9

2.3使用常量的好处是什么?声明一个值为20的int型常量SIZE。

解:使用常量有三个好处:1)不必重复输入同一个值;

2)如果必须修改常量值,只需要在源代码的一个地方做修改;

3)给常量赋值一个描述性名字会提高程序易读性。

2.8~2.10节

2.4假设int a=1和double d=1.0 ,并且每个表达式都是独立的,那么下面的表达式的结果是什么?

a = 46 /9;=> a =5

a = 46 %9 + 4 * 4 – 2;=> a = 1 + 16 -2 = 15

a = 45 +43 % 5 * (23 * 3 % 2);=>a =45 + 3 * (1) = 48

a %=3 / a+ 3;=>a % = 3 + 3 => a = a % 6 = 1

d = 4 + d* d + 4;=> d = 4 + 1.0 + 4 = 9.0

d += 1.5* 3 + (++a);=> d + = 4.5 + 2 =>d = d + 6.5 = 7.5

d -= 1.5* 3 + a++;=> d -= 4.5 + 1 = > d = d – 5.5 = -4.5

2.5给出下面求余运算的结果。

56 % 6=> 2

78 % -4=>2

-34 % 5=>-4

-34 % -5=>-4

5 % 1=>0

1 % 5=>1

启发:求余运算的结果的正负取决于被除数的正负,若被除数为负余数为负,反之为正

2.6如果今天是星期二,那么100天后是星期几?

解:( 2 + 100 ) % 7 = 4 ,所以100天后是星期四

2.7分别找出byte、short、int、long、float和double中的最大数和最小数,哪种数据类型所需的存储空间最小?

解:类型范围最大数最小数存储大小

byte-128~ 127127-1288位

short-32768~32767-327683276716位

int-2147483648~2147483647-21474836482147483648

32位

long-9223372036854775808~9223372036854775807

-92233720368547758089223372036854775807

64位

float1.4E-45~3.4028235E+383.4028235E+381.4E-4532位

double

4.9E-325~1.7976931348623157E+30864位

2.8 25 / 4的结果是什么?如果希望得到的结果是浮点数,应该怎么改写这个表达式?

解:25 / 4 = > 6,如果希望得到的结果是浮点数,25/ 4应该改写为25.0 / 4.0、25.0 / 4

或者25 / 4.0

2.9下列语句正确吗?如果正确,写出其输出值。

System.out.println(“25 / 4 is” + 25 / 4);=> 6

System.out.println(“25 / 4.0 is” + 25 /4.0);=> 6.25

System.out.println(“3 * 2 / 4 is” +3 * 2 / 4);=> 1

System.out.println(“3.0 * 2 / 4 is” + 3.0 *2 / 4); => 1.5

2.10如果用java书写下面的算术表达式?

解:4.0 / (3.0 * (r + 34)) – 9 * (a +b * c) + (3.0 + d * (2 + a)) / (a + b * d)

2.11假设m和r都是整数。编写mr^2的java表达式,得到一个浮点数。

解:1.0 * m * ( r * r)

2.12下列说法哪些是正确的?

(1)任何表达式都可以用作语句。

(2)表达式x++可以用作语句。

(3)语句x=x+5也是一个表达式。

(4)语句x=y=x=0是非法的。

解:(2)(3)是正确的

2.13下列哪些是正确的浮点数直接量?

12.3,12.3e+2 , 23.4e-2 , -334.4 , 20 , 39F , 40D

解:都是正确的浮点数直接量

2.14找出并修改下列代码的错误:

1public class Test {

2public void main (string [] args){

3int i;

4int k = 100.0;

5int j = i + 1;

6

7System.out.println(“ j is” + j + “ and kis “ + k);

8}

9}

解:第2行:main方法没有用static修饰,参数列表中string应为String

第3行:i未初始化

第4行:double类型值不能直接赋给int型变量

第5行:i应先定义

第7~8行:字符串不能断行

2.15如何使用System.currentTimeMillis()方法获取当前分钟数?

解:long totalMilliseconds =System.currentTimeMillis();

先调用System.currentTimeMillis()获取当前时间与1970年1月1日0点之间单位为毫秒的差值。

接着通过totalMilliseconds/1000来计算总的秒数

long totalSeconds = totalMilliseconds / 1000;

计算总的分钟数

long totalMinutes = totalSeconds / 60;

最后获取当前分钟数

long currentHour = totalHours % 24;

2.11节

2.16不同类型的数值能在一起计算吗?

解:当然可以。不同类型可以进行相同的计算成为类型转换。

2.17如果显式地将double型转换为int型,那么对double型值的小数部分是如何处理的?类型转换是否改变被转换变量的值?

解:小数部分被截去,类型转换不改变被转换变量的值。

2.18写出下面语句段的输出:

float f =12.5F;

int i =(int)f;

System.out.println(“fis “ + f);=> 12.5

System.out.println(“iis “ + i);=> 12

2.13节

2.19使用打印语句求出‘1’、‘A’、‘B’、‘a’、‘b’的ASCII码。使用打印语句求出ASCII码为十进制数40、59、79、85、90的字符。使用打印语句求出ASCII码为十六进制40、5A、71、72、7A的字符。

解:

System.out.println((int)'1');

System.out.println((int)'A');

System.out.println((int)'B');

System.out.println((int)'a');

System.out.println((int)'b');

System.out.println((char)40);

System.out.println((char)59);

System.out.println((char)79);

System.out.println((char)85);

System.out.println((char)90);

System.out.println((char)0X40);

System.out.println((char)0X5A);

System.out.println((char)0X71);

System.out.println((char)0X72);

System.out.println((char)0X7A);

2.20下列哪些是正确的字符直接量?

‘1’,‘\u345dE’,‘\u3fFa’,‘\b’,\t

解:‘\u345dE’是错的,应为4个16进制数,而不是5个

其他都正确。

2.21如何显示字符\和“?

解:'\\' and '\”';

2.22执行下述代码:

int i = ‘1’;

int j = ‘1’ + ‘2’;

int k = ‘a’;

char c = 90;

解:i变成49因为1的ASCII码是49

j变成99因为1的ASCII码是49,2的ASCII码是50

k变成97因为a的ASCII码是97

c变成‘z’,因为90是’z’是的ASCII码

2.23下面哪些类型的转换是允许的?如果允许,写成转换后的结果。

char c = ‘A’;

i = (int)c;=>i = 65

float f = 1000.34f;

int i = (int)f;=> i = 1000

double d = 1000.34;

int i = (int)d;=> i = 1000

int i = 97p;

char c = (char)i;=> c = ‘a’

2.24给出下面程序的输出结果:

public class Test{

public static void main(String[] args){

char x = ‘a’;

char y = ‘c’;

System.out.println(++x);=> b

System.out.println(y++);=> c

System.out.println(x – y); => -2

}

}

2.15节

2.25给出下面语句的输出结果

System.out.println("1" + 1);=> 11

System.out.println('1' + 1);=> 50(since the Unicode for 1is 49

System.out.println("1" + 1 +1);=> 111

System.out.println("1" + (1 +1)); => 12

System.out.println('1' + 1 + 1); => 51

2.26计算下面表达式的结果

1 + “Welcome “ + 1 +1=>1Welcome 11

1 + “Welcome “ + (1 + 1) =>1Welcome 2

1 + “Welcome “ + (‘\u0001’ + 1)=>1Welcome 2

1 + “Welcome “ + ‘a’ +1 =>1Welcome a1

2.16~2.17节

2.27类名、方法名、常量和变量的命名习惯是什么?根据Java的命名习惯,下面哪些是常量、方法、变量或类?

解:类名:首字母要大写

变量和方法名:第一个单词字母小写,后面所有的单词的首字母要大写

常量:所有的字母都要大写

2.28根据编程风格和文档指南,使用次花括号方式,重新布局下列程序的格式。

publicclass Test

{

//main method

public static void main(String[] args){

/** Print a line*/

System.out.println(“2 % 3 = “+2%3);

}

}

解:

publicclass Test{

//main method

public static void main(String[] args){

/** Print a line*/

System.out.println(“2 % 3 = “+2%3);

}

}

2.29描述何谓语法错误、运行错误和逻辑错误。

解:语法错误:在编译过程中出现的错误

运行错误:引起程序非正常中断的错误。

逻辑错误:程序没有按预期的方式执行时所发生的错误。

2.18节

2.30为什么必须导入JoptionPane类而无须导入Math类?

解:Math类是包含在java.lang包中,是系统自动引入的

2.31如何使用对话框提示用户输入一个整数?

解:String s = JoptionPane.showInputDialog(”Enteran input”);

2.32如何将字符串转换为整数?如何将字符串转换为double型?

解:int i= intger.parseInt(intString);

double s =double.parstDouble(double string);

你可能感兴趣的:(基本程序设计,复习题,解答)