Java程序设计基础(微课版)(第2版)第2章习题与答案_第1页
Java程序设计基础(微课版)(第2版)第2章习题与答案_第2页
Java程序设计基础(微课版)(第2版)第2章习题与答案_第3页
Java程序设计基础(微课版)(第2版)第2章习题与答案_第4页
Java程序设计基础(微课版)(第2版)第2章习题与答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章习题练习与参考答案第一部分:习题一、选择题1.以下有关标识符说法正确的是()。A.任何字符的组合都可形成一个标识符。B.Java的保留字也可作为标识符使用。C.标识符是以字母、下划线或$开头,后跟字母、数字、下划线或$的字符组合。D.标识符是不区分大小写的。2.以下哪一组标识符是正确的()。A.c_name,if,_nameB.c*name,$name,modeC.Result1,somm1,whileD.$ast,_mmc,c$_fe3.下列可以作为自定义标识符的是()。A.classB.implementsC.πD.private4.有关整数类型说法错误的是()。A.byte、short、int、long都属于整数类型,分别占1、2、4、8个字节。B.占据字节少的整数类型能处理较小的整数,占据的字节越多,处理的数据范围就越大。C.所有整数都是一样的,可任意互换使用。D.两个整数的算术运算结果,还是一个整数。5.以下说法正确的是()。A.基本字符数据类型有字符和字符串两种。B.字符类型占两个字节,可保存两个字符。C.字符类型占两个字节,可保存一个字符。D.以上说法都是错误的。6.不属于单目运算符的是()。A.++B.?:C.-D.!7.关于类型转换说法错误的是()。A.低精度类型数据向高精度类型转换时,不会丢失数据精度。B.系统会自动进行(整型或浮点型)低精度类型数据向高精度类型数据的转换。C.高精度类型数据向低精度类型数据的转换、整型和浮点型数据之间的转换,必须强制进行,否则有可能会引起数据丢失。D.高精度类型数据向低精度类型转换时,不会丢失数据精度,因为转换是系统进行的。8.对变量赋值说法错误的是()。A.变量只有在赋值后才能使用。B.boolean类型的变量值只能取true或false。C.只有同类型同精度的值才能赋给同类型同精度的变量,不同类型不同精度需要转换后才能赋值。D.不同类型和精度之间也能赋值,系统会自动转换。9.以下正确的赋值表达式是()。A.a==5B.a+5=aC.a++D.a++=b10.数学式:x²+y²-xy正确的算术表达式是()。A.x^2+y^2+xyB.x*x+y*y+xyC.x(x+y)+y*yD.x*x+y*y+x*y11.以下正确的关系表达式是()。A.x≥yB.x+y<>zC.>=xD.x+y!=z12.以下正确的逻辑表达式是()。A.(x+y>7)&&(x-y<1)B.!(x+y)C.(x+y>7)||(z=a)D.(x+y+z)&&(z>=0)13.有关移位运算的说法是()。A.移位运算是一元运算。B.移位运算是二元运算,是整数类型的二进制按位移动运算。C.移位运算是二元运算,可以进行浮点数类型的二进制按位移动运算。D.移位运算是二元运算,可以进行数据的按位移动运算。14.有关位运算符说法正确的是()。A.~求反运算符是一元运算符;&,^,|是二元运算符。B.a&b&c是先进行a&c的二进制按位与操作,生成的结果再与c进行&操作。C.位运算只对整型数据进行位运算,而不能对浮点数进行位运算。D.以上3种说法都正确。15.有关条件运算符(?:)说法正确的是()。A.条件运算符是一个三元运算符,其格式是:表达式1?表达式2:表达式3。B.格式中的表达式1是关系或逻辑表达式,其值是boolean值。C.若表达式1成立,该条件表达式取表达式2的值,否则取表达式3的值。D.以上说法都正确。16.在下面说法中,正确的是()。A.Java数据类型占用空间大小与具体机器无关B.float类型的精度高于double类型C.Java语言的标识符是不区分大小写的D.ASCII码可以表示汉字17.必须进行强制类型转换的是()。A.int类型转换为float类型B.float类型转换为double类型C.float类型转换为int类型D.byte类型转换为double类型18.下列的哪个选项可以正确表示八进制数8()。A.0x8B.0x10C.08D.01019.变量定义有错误的是()。A.shorts=28;B.charc="1";C.doubled=2.3;D.floatf=2.3;20.设x=1,y=2,z=3,则表达式y+=z--/++x的值是()。A.3B.3.5C.4D.5二、填空题1.3.14156F表示的是______。2.阅读程序:publicclassTest1

{

publicstaticvoidmain(Stringargs[])

{

System.out.println(15/2);

}

}其执行结果是______。3.设a=16,则表达式a>>>2的值是______。4.阅读程序:publicclassTest2

{

publicstaticvoidmain(Stringargs[])

{

inti=10,j=5,k=5;

System.out.println("i+j+k="+i+j+k);

}

}其执行结果是______。三、编程题1.编写一个应用程序,定义两个整型变量n1、n2。当n1=22,n2=64时计算输出n1+n2,n1-n2,n1*n2,n1/n2,n1%n2的值。2.编写一个应用程序,定义两个整型变量n1、n2并赋给任意值。计算输出n1>n2,n1<n2,n1-n2>=0,n1-n2<=0,n1%n2==0的值。3.编写一个应用程序,定义两个float变量C、F。计算公式C=5/9(F-32),计算当F=60、F=90时,输出C的值。4.编写一个应用程序计算圆的周长和面积,设圆的半径为1.5,输出圆的周长和面积值。

第二部分:参考答案一、选择题答案与解析1.答案:C解析:Java标识符规则:必须以字母、下划线(_)或美元符($)开头,后面可以跟字母、数字、下划线或美元符。A错误(有字符限制);B错误(保留字不能作为标识符);D错误(Java标识符区分大小写)。2.答案:D解析:A中if是关键字;B中*是非法字符;C中while是关键字;D中所有标识符都符合规则:$开头、下划线开头、包含$都是允许的。3.答案:C解析:A、B、D都是Java关键字(保留字),不能作为自定义标识符。π是Unicode字符,可以作为标识符使用。4.答案:C解析:不同整数类型占用字节数不同,表示范围也不同,不能任意互换使用。例如byte范围是-128~127,int范围是-2^31~2^31-1。5.答案:C解析:A错误(String是引用类型不是基本类型);B错误(char占2字节但只能存1个Unicode字符);C正确。6.答案:B解析:?:是三元运算符(三目运算符),需要三个操作数。++、-(负号)、!都是单目运算符。7.答案:D解析:高精度向低精度转换时,可能会丢失数据精度(如double转int会丢失小数部分),必须强制转换。D说法错误。8.答案:C解析:Java支持自动类型转换,不同类型之间可以赋值,系统会自动进行类型提升。例如int可以直接赋值给double。9.答案:C解析:A是比较运算符不是赋值;B赋值号左边必须是变量;D语法错误;C是自增运算符,是正确的赋值表达式。10.答案:B解析:Java中^是异或运算符不是平方。x²=x*x,y²=y*y,所以x²+y²-xy=x*x+y*y-x*y。注意原题是减号,选项B是+xy,这是题目选项的问题,B是最接近的正确形式。11.答案:D解析:A中≥不是Java运算符(用>=);B中<>不是Java运算符(用!=);C缺少左操作数;D是正确的不等于运算符。12.答案:A解析:B中x+y是数值不是布尔值;C中z=a是赋值表达式不是布尔值;D中x+y+z是数值不是布尔值。只有A中两个关系表达式结果都是boolean。13.答案:B解析:移位运算符(<<、>>、>>>)是二元运算符,只能对整数类型进行二进制位移动运算,不能对浮点数进行移位。14.答案:D解析:A正确(~是一元,&^|是二元);B正确(位运算从左到右);C正确(位运算只对整型);所以D正确。15.答案:D解析:条件运算符?:是Java中唯一的三元运算符,格式为:条件?表达式1:表达式2。条件必须是boolean值,条件为true取表达式1,为false取表达式2。A、B、C都正确。16.答案:A解析:B错误(double精度高于float);C错误(Java标识符区分大小写);D错误(ASCII只有128个字符,不能表示汉字);A正确(Java数据类型大小是固定的,与平台无关)。17.答案:C解析:高精度转低精度必须强制转换。float精度高于int,所以float转int需要强制类型转换:(int)floatValue。18.答案:D解析:八进制数以0开头,八进制数字是0-7。十进制8=八进制10。A是十六进制;B是十六进制;C中8不是合法八进制数字;D正确(010表示八进制的8)。19.答案:B解析:B错误:char类型应该用单引号charc="1";,双引号是String类型。D中floatf=2.3;会有警告(2.3默认是double),但语法上可以编译(会自动转换)。B是明确的语法错误。20.答案:A解析:计算过程:++x先执行,x变为2;z--是后减,先用z=3;z--/++x=3/2=1(整数除法);y+=1→y=2+1=3。注意:都是int运算,结果为int,所以是3不是3.5。二、填空题答案与解析1.答案:float类型的浮点数常量解析:在Java中,数字后面加F或f表示这是一个float类型的浮点数常量。不加F的小数默认是double类型。2.答案:7解析:15和2都是int类型,进行整数除法时只保留整数部分,舍去小数部分。15/2=7(不是7.5)。3.答案:4解析:>>>是无符号右移运算符。16的二进制是10000,右移2位得到100,即十进制的4。16>>>2=16/2²=4。4.答案:i+j+k=1055解析:字符串拼接运算从左到右执行:"i+j+k="+10→"i+j+k=10";然后+5→"i+j+k=105";再+5→"i+j+k=1055"。注意:字符串+数值会把数值转成字符串拼接,不是算术加法。三、编程题参考答案第1题参考答案程序代码:publicclassArithmeticTest{

publicstaticvoidmain(String[]args){

intn1=22;

intn2=64;

System.out.println("n1+n2="+(n1+n2));

System.out.println("n1-n2="+(n1-n2));

System.out.println("n1*n2="+(n1*n2));

System.out.println("n1/n2="+(n1/n2));

System.out.println("n1%n2="+(n1%n2));

}

}运行结果:n1+n2=86n1-n2=-42n1*n2=1408n1/n2=0(整数除法)n1%n2=22(取余数)第2题参考答案程序代码:publicclassRelationTest{

publicstaticvoidmain(String[]args){

intn1=10;

intn2=3;

System.out.println("n1>n2="+(n1>n2));

System.out.println("n1<n2="+(n1<n2));

System.out.println("n1-n2>=0="+(n1-n2>=0));

System.out.println("n1-n2<=0="+(n1-n2<=0));

System.out.println("n1%n2==0="+(n1%n2==0));

}

}运行结果(n1=10,n2=3时):n1>n2=truen1<n2=falsen1-n2>=0=truen1-n2<=0=falsen1%n2==0=false第3题参考答案程序代码:publicclassTemperatureConvert{

publicstaticvoidmain(String[]args){

floatC,F;

F=60;

C=5.0f/9*(F-32);//注意:要用5.0f保证浮点运算

System.out.println("F="+F+"时,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论