Java语言程序设计第版第章课后习题标准答案.docx
- 文档编号:5884266
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:84
- 大小:158.59KB
Java语言程序设计第版第章课后习题标准答案.docx
《Java语言程序设计第版第章课后习题标准答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计第版第章课后习题标准答案.docx(84页珍藏版)》请在冰豆网上搜索。
Java语言程序设计第版第章课后习题标准答案
Java语言程序设计(第版)第-章-课后习题答案
————————————————————————————————作者:
————————————————————————————————日期:
第1章 Java语言概述
选择题
1-1在下列概念中,Java语言只保留了(B)
A.运算符重载B.方法重载
C.指针D.结构和联合
1-2下列关于Java语言特性的描述中,错误的是(D)
A.支持多线程操作
B.Java程序与平台无关
C.Java和程序可以直接访问Internet上的对象
D.支持单继承和多继承
1-3下列关于JavaApplication程序在结构上的特点的中,错误的是(C)
A.Java程序是由一个或多个类组成的
B.组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中
C.Java程序的文件名要与某个类名相同
D.组成Java程序的多个类中,有且仅有一个主类
1-4Java程序经过编译后生成的文件的后缀是(C)
A..objB..exeC..classD..java
1-5下列关于运行字节码文件的命令行参数的描述中,正确的是(A)
A.第一个命令行参数(紧跟命令字的参数)被存放在args[0]中
B.第一个命令行参数被存放在args[1]中
C.命令行的命令字被存放在args[0]中
D.数组args[]的大小与命令行参数的个数无关
判断题
1-1JavaC++的语言之前问世的。
(错)
1-2Java语言具有较好的安全性和可移植性及与平台无关等特性。
(对)
1-3Java语言中取消了联合的概念,保留了结构概念。
(错)
1-4Java语言中数据类型占内在字节数与平台无关。
(对)
1-5Java语言中可用下标和指针两种方式表示数组元素。
(错)
1-6Java语言的源程序不是编译型的,而是编译解释型的。
(对)
1-7操作系统中进程和线程两个概念是没有区别的。
(错)
1-8Java语言既是面向对象的又是面向网络的高级语言。
(对)
1-9Java程序分为两大类:
一类是Application程序,另一类是Applet程序。
前者又称Java应用程序,后者又称为Java小应用程序。
(对)
1-10JavaApplication程序是由多个文件组成的,其中可以有也可以没有主文件。
(错)
1-11组成JavaApplication的若干类中,有且仅有一个主类,只有主类中含有主方法main()。
(对)
1-12JavaApplication程序中,必有一个主方法main(),该方法有没有参数都可以。
(对)
1-13Java程序中是不区分大小写字母的。
(错)
1-14下述两个命令:
javac和java是不同的,编译时用前者,运行时用后者。
(对)
1-15Java程序编译后生成的是字节码文件,其后缀是.exe。
(错)
1-16字节码文件机器是不能直接识别的,它要经过解释器,边解释边执行。
(对)
1-17在Java程序中,使用import语句引入类是在解释器中实现的。
(对)
1-18在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。
(错)
1-19Java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名。
(错)
1-20Java程序中出现的输出方法println()和print()是完全一致的。
(错)
分析程序的输出结果题
1-1程序Exerl_1.java
importjava.io.*;
publicclassExerl_1
{
publicstaticvoidmain(Stringargs[])
{
System.out.print("Thisisa");
System.out.println("strint.")
}
}
该程序的输出结果如下:
Thisisastring.
1-2程序Exerl_2.java
Importjava.io.*;
PublicclassExerl_2
{
Publicstaticvoidmian(Stringargs[])
{
Charch="";
System.out.println("Inputacharacter:
");
Try{
ch=(char)System.in.read();
}
Catch(IOExceptione)
{}
System.out.println("Thecharacteris\'"+ch+"\'");
}
}
该程序的输出结果如下
Inputacharacter:
k↙
Thecharacteris‘k’
1-3程序Exerl_3.java
importjava.io.*;
publicclassExerl_3
{
Publicstaticvoidmain(Stringargs[])
{
Stringstr=""
System.out.println("Inputastring:
");
Try{
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
str=in.readLine();
}
Catch(IOExceptione)
{}
System.out.println("Thestringis\'"+str+"\"");
}
}
1-4程序Exerl_4.java
importjava.io.*
publicclassExerl_4
{
publicstaticvoidmain(Stringargs[])
{
Aa=newA;
a.i=8;
a.d=1.25;
a.meth("该程序输出结果如下所示");
System.out.println("\ti="+a.i+",d="+a.d);
}
}
classA
{
inti;
doubled;
voidmeth(stringstr)
{
System.out.println(str);
}
}
该程序输出结果如下所示
i=8,d=1.25
编程题
1-1编写一个JavaApplication程序,使该程序运行后输出字符串"Hello!
Howareyou."。
参考程序内容如下
importjava.io.*;
publicclassprol_1
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("Hello!
Howareyou.");
}
}
1-2编写一个JavaApplication程序,使该程序输出显示如下结果:
Var1=10,var2=19.5
Ok!
参考程序内容如下:
importjava.io.*;
publicclassprol_2
{
publicstaticvoidmain(Stringargs[])
{
intvar1=10;
doublevar2=19.5;
System.out.println("var1="+var1+",var2="+var2);
System.out.println("ok!
");
}
}
第2章 Java语言语法基础
选择题
2-1Java语言所用的字符集中字符是B位。
A.8
B.16
C.32
D.64
2-2下列关于标识符的描述中,正确的是A。
A.标识符中可以使用下划线和美元符
B.标识符中可以使用连接符和井号符
C.标识符中大小写字母是无区别的
D.标识符可选用关键字
2-3Java语言和各种分隔符中,非法的是D。
A.空白符
B.分号
C.逗号
D.问号
2-4下列是Java语言中可用的注释,其中错误的是C。
A.//
B./*…*/
C./**…**/
D./**…*/
2-5Java语言中字符型数据的长度是B位。
A.8
B.16
C.32
D.64
2-6下列描述的两种数据类型的长度不相等的是A。
A.字符型和布尔型
B.字节型和布尔型
C.短整型和字符型
D.整型和单精度浮点型
2-7下列是Java语言中的复合数据类型,其中错误的是C。
A.数组
B.接口
C.枚举
D.类
2-8下面是关于Java语言中数据类型的强制转换的描述,其中错误的是C,D。
A.当数据类型从高转换为低时需强制转换
B.强制转换时使用强制转换去处符,形如(<类型>)
C.浮点型数据强制转换为整型时,小数部分四舍五入
D.赋值操作中都要采用强制类型转换
2-9下列关于常量的描述中,错误的是B,D。
A.Java语言的常量有5种
B.浮点型数12.456是单精度的
C.布尔型常量只有两个可选值:
true和false
D.字符串常量含有结束符'\0'
2-10下列关于定义符号常量的描述中,错误的是A,C。
A.定义符号常量使用关键字const
B.定义符号常量时要赋初值
C.符号常量既可以定义为类成员,又可在方法中定义
D.定义符号常量时必须给出数据类型
2-11下列关于变量的默认值的描述,其中错误的是B,C。
A.定义变量而没有进行初始化时,该变量具有默认值
B.字符型变量的默认值为换行符
C.布尔型变量的默认值是true
D.变量的默认值是可以被改变的
2-12下列关于变量定义的描述中,正确的是A,C。
A.定义变量时至少应指出变量名字和类型
B.定义变量时没有给出初值该变量可能是无意义值
C.定义变量时,同一个类型多个变量间可用逗号分隔
D.定义变量时必须要给变量初始化
2-13下列关于变量作用域的描述,错误的是D。
A.在某个作用域定义的变量,仅在该作用域内是可见的,而在该作用域外是不可见的
B.在类中定义的变量的作用域在该类中的方法内可以使用
C.在方法中定义的变量的作用域仅在该方法体内
D.在方法中作用域可嵌套,在嵌套的作用域中可以定义同名变量
2-14下列关于增1(++)减1(--)1运算符的描述中,正确的是A,B。
A.增1减1运算符都是单目运算符
B.增1减1运算符都具有前缀运算和后缀运算
C.增1减1运算符不会改变变量的值
D.增1减1运算符前缀运算和后缀运算后表达式值是相同的
2-15关于运算符优先级的描述中,错误的是D。
A.在表达式中,优先级高的运算符先进行计算
B.赋值运算符优先级最高
C.单目运算符优先级高于双目和三目运算符
D.逻辑运算符优先级高于逻辑位运算符
2-16下列关于表达式的描述中,正确的是A,C。
A.任何表达式都有确定的值和类型
B.算数表达式的类型由第一个操作数的类型决定
C.逻辑表达式的操作数是逻辑型的
D.赋值表达式的类型取决于右值表达式的类型
2-17下列表达式中,非法的是B,C。
inta=5,b=6;doublec=1.1,d=2.2
A.a+c+++d
B.(a+c)--
C.c<
D.a!
=b?
c:
d
2-18下列关于条件语句的描述中,错误的是A,C。
A.If语句可以有多个else子句和elseif子句
B.If语句中可以没有else子句和elseif子句
C.If语句中的〈条件〉可以使用任何表达式
D.If语句的if体、else体内可以有循环语句
2-19下列关于开关语句的描述中,错误的是B,C,D。
A.开关语句中,default子句可以省略
B.开关语句中,case子句的〈语句序列〉中一定含有break语句
C.开关语句中,case子句和default子句都可以有多个
D.退出开关语句的唯一条件是执行break语句
2-20下列关于循环语句的描述中,错误的是B,D。
A.任何一种循环体内都可以包含一种循环语句
B.循环体可以是空语句,也可以是空
C.循环体内可以出现多个break语句
D.循环语句中,循环体至少被执行一次
2-21下列循环语句的循环次数是D。
inti=5;
do{
System.out.println(i--);
i--;
}while(i!
=0);
A.0
B.1
C.5
D.无限
2-22下列循环语句中,循环体被执行的次数为D。
for(inti=0,j=0;(j!
=18)||(i<4);i++)
A.3
B.4
C.不确定
D.无限
2-23下列关于Java语言的数组描述中,错误的是D。
A.数组的长度通常用length来表示
B.数组下标从0开始
C.数组元素是按顺序存放在内在的
D.数组在赋初值和赋值时都不判界
2-24下列关于数组的定义形式,错误的是A,C,D。
A.int[]a;a=newint;
B.charb[];b=newchar[80]
C.int[]c=newchar[10]
D.int[]d[3]=newint[2][]
2-25下列关于字符串的描述中,错误的是B。
A.Java语言中,字符串分为字符串常量和字符串变量两种
B.两种不同的字符串都String类的对象
C.Java语言中不再使用字符数组存放字符串
D.JavaApplication程序的main()和参数args[]是一个String类的对象数组,用它可存放若干个命令行参数
判断题
2-1Java语言标识符中可以使用美元符。
(对)
2-2Java语言标识符中大小写字母是没有区别的。
(错)
2-3分号(;)、逗号(,)和冒号(:
)都可作为Java语言中的分隔符。
(对)
2-4文档注释符/**…*/是Java语言特有的注释符。
(对)
2-5Java语言的基础数据类型有4种:
整型、浮点型、字符型和布尔型。
(对)
2-6Java语言的复合数据类型有3种:
数组、类和包。
(错)
2-7Java语言中,字节型与字符型是一样的。
(错)
2-8Java语言是一种强类型语言,数据类型转换有两种:
隐含转换和强制转换(对)
2-9数据由高类型转换到低类型时,采用强制转换,数据精度要受到损失。
(对)
2-10布尔型常量可以自动转换为短整型常量。
(错)
2-11Java语言使用的是Unicode字符集,每个字符在内在中占8位。
(错)
2-12Java语言的字符串中不隐含结束符。
(对)
2-13Java语言中定义符号常量使用final关键字。
(对)
2-14Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。
(对)
2-15Java语言中只有无符号的字符型。
(对)
2-16字符型变量中只存放一个字符。
(对)
2-17定义变量时必须进行初始化,否则变量具有无意义的值。
(错)
2-18若定义变量时不进行初始化,则该变量一定具有默认值。
(错)
2-19Java语言中,变量出现的位置只有一种,即为类体内定义的成员变量。
(错)
2-20Java语言规定在的程序块中不允许定义同名变量。
(对)
2-21求余运算符%可用于整数和浮点数。
(错)
2-22关系运算符组成的表达式是逻辑表达式。
(错)
2-23逻辑运算符&和&&是没有区别的,都具有逻辑与的功能。
(错)
2-24运算符&是逻辑与运算符还是按位与运算符取决于操作数的类型。
(对)
2-25运算符“>>”和“>>>”都是右移运算符,其区别在于对向右移出的位是舍弃还是保留。
(错)
2-26赋值运算符组成的赋值表达式中,通常将右边表达式的类型转换为左边变量的类型后再赋值。
(对)
2-27三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的(对)
2-28强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。
(对)
2-29对象运算符instanceof是一个单目运算符,其表达式的值的类的对象。
(错)
2-30内存分配运算符new可以为创建的数组分配内存空间,但不能为创建的变量分配空间。
2-31运算符的优先级中,最低的是三目运算符。
(错)
2-32运算符的结合性中,除了三目运算符是自右向左外,其余都是自左向右。
(错)
2-33关系表达式和逻辑表达式的值都是布尔型的。
(对)
2-34赋值表达式的值不能是逻辑型的。
(错)
2-35条件表达式的类型总是“?
”和“:
”之间的操作数的类型。
(错)
2-36块语句可能嵌套,外层块语句定义的变量在内层块语句中是可见的(对)
2-37条件自勉中的<条件>表达式可以是任何表达式。
(错)
2-38在条件语句的嵌套结构中,一个if子句最多有一个else子句与它配对,而且一定是距离它最近的。
(对)
2-39开关语句中,case子句后面的<语句序列>可以是块语句。
(对)、
2-40循环语句中,<条件>表达式必须是逻辑型表达式。
(对)
2-41在Java语言中,break语句不能作用在<标号名>的左边。
(错)
2-42Java语言中,数组在静态和动态赋值时都判越界。
(对)
2-43说明或声明数组时不分配内存大小,创建数组时分配内存大小。
(对)
2-44基本数据类型的数组在创建时系统将指定默认值。
(对)
2-45数组在定义时可以进行初始化,使用初始值表。
(对)
2-46Java语言中数组元素只有下标表示,没有指针表示。
(对)
2-47创建数组时,系统自动将数组元素个数存放在length变量中,可供用户对数组操作时使用。
(对)
2-48字符串可分为字符串常量和字符串变量两种,它们都是对象。
(对)
2-49Java语言中不使用字符数组存放字符串(对)
2-50下列创建字符串s的方法是错误的。
(对)
charch[]={'m',m','n','n'};
chars[]=newchar(ch);
计算表达式的值,上机验证其结果题
2-1已知:
inta=3,b=5;
求下列表达式的值:
(1)(a+b)%b
(2)b>>a
(3)-b>>>a
(4)A&b
(5)++a-b++
答案:
(1)3
(2)0(3)53670911(4)1(5)-1
2-1已知:
doublex=1.5,y=2.8;
求下列表达式的值:
(1)x++>y—
(2)x+4/5
(3)2*x==y
(4)y/6*6
(5)y+=x-=1
答案
(1)false
(2)1.5(3)false(4)2.8(5)3.3
2-3已知:
Booleanb1=true,b2=false;inta=6;
求值:
(1)b1&b2
(2)!
b1&&b2||b2
(3)b2&b1|!
b2
(4)b1!
=b2
(5)!
(a>6)&a6|b2=true)
答案:
(1)false
(2)false(3)true(4)false(5)true
2-4已知:
inta[]={3,5,7,9};
求值:
(1)a[0]+a[1]
(2)a[3]=6
(3)a[2]*a[3]>4*a[3]
(4)(a[0]+=a[1])+++a[2]
(5)for(inti=1;i<4;i++)
a[0]+=a[i];
答案:
(1)8
(2)6(3)true(4)16(5)24
分析程序输出结果题
2-1Exer2_1.java程序
publicclassExer2_1
{
publicstaticvoidmain(Stringargs[])
{
inti=3;
charc='p';
floatf=3.5f;
doubled=32.56;
shorts=25;
booleab=true;
stringst="new";
System.out.println("i+s="+(i+s));
System.out.println("d+f="=(d+f));
System.out.println("st+\"year\"="+st+"year");
System.out.println("!
b||b="+(!
b||b));
System.out.println("b?
i:
d="+(b?
i:
d));
}
}
输出结果如下:
i+s=28
d+f=36.06
st+"year"=newyear
c+2=r
!
b||b=true
b?
i:
d=3.0
2-2Exer2_2.java程序
publicclassExer2_2
{
publicstaticvoidmain(Stringargs[])
{
intsuma=0,sumb=0;
for(inta=0,b=0;a<5;a++,b++)
{
suma+=a;
sumb+=b;
}
System.out.println("suma="+suma+",sumb="+sumb)
}
}
输出结果如下:
suma=10,sumb=60
2-3Exer2_3.java程序
publicclassExer2_3
{
publicstaticvoidmain(Stringargs[])
{
inti,j;
First_Loop:
for(i=1;i<50;i++)
{
for(j=2;j
if(i%j)==0
continueFirst_Loop;
System.out.println(i);
}
}
}
输出结果如下:
1
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
2-4Exer2_4.java程序
publicclassExer2_4
{
publicstaticvoidmain(Stringargs[])
{
charch='B';
switch(ch)
{
case'A':
System.out.println("5"):
break;
case'B':
System.out.println("4"):
break;
case'C':
System.out.println("3"):
break;
default:
System.out.println("0");
}
}
}
输出结果如下:
4
2-5Exer2_5.java程序
publicclassExer2_5
{
publicstaticvoidmain(Stringargs[])
{
inta=3,b=5;
if(a==3)
if(b==1)
a++;
else
b++;
System.out.println(a+","+b);
intx=1,y=4;
if(x==2)
{
if(y==4)
x++;
}
else
y++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 第版第章 课后 习题 标准答案