欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    Java程序设计.docx

    • 资源ID:6768538       资源大小:467.55KB        全文页数:110页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java程序设计.docx

    第一章概述一、单项选择题1 .若程序中公有类的名字是OneAPP,则保存该程序的文件名是【】AQneiippB.Oneapp.classC.OneAppD.OneApp.class答案:Co保存源程序的文件名要与公有类的名字一致,包括大小写也要完全相同,且文件名的后缀是一个源程序文件中最多只能有一个公有类。C-OneAppD.OneApp.class2 .程序OneAPP.编译后的类文件名是A.OncappB.Oneapp.class答案:Do源程序经编译后,生成的类文件的名字与原来的名字相同,后缀是.class。3 .的解释器是AJVMB.c.exeC.exeDJDK答案:0,的编译器是c.exe,解释器是.exe<,JVM是虚拟机,JDK是软件开发工具包。4 .下列选项中,不属于特点的是A.类型定义B.解释执行C.与平台无关D.多线程答案:AoC中使用typedef进行类型定义,在中已经去掉了。另外三个选项都是的特点。5 .下列关于程序的叙述中,正确的是【】A.程序必须配合HTML文件才能执行BJVM解释执行源程序C.程序中可以使用指针D.程序生成的字节码文件与平台无关答案:Do程序在经过编译且正确后,可以使用命令直接执行,配合HTML文件才能执行的是APPlet。解弃执行的不是源程序,是源程序经编译后生成的字节码文件。中已经没有指针这个语法成分了。6 .下列选项中,不是程序主函数main。前面的修饰符的是【】A.classB.staticC.voidD.public答案:Aomain)函数前面的修饰符通常是:publicstaticvoid,不包括ClaSSoCIaSS关键字用在类定义的第一行中,即类头中。main。不是类,是类中的函数。main(前三个修饰符的次序可稍做变化,参见教材第一章第三节中的内容。7 .下列概念中,属于面向对象重要概念和机制之一的是【】A.方法调用B.模块C.继承D.结构化答案:C方法调用、模块、结构化都不仅仅是面向对象中的概念,在面向过程的中也有这些概念,并且它们并不体现面向对象的特点。而继承概念在面向过程的中是没有的,这是面向对象的特二、填空题1 .假设程序保存在文件MyTeSl.中,则编译这个程序的命令是答案:cMyTest.CC是的编译器,C的后面是要编译的源文件名,而且是带后缀名的全名。2 .类TeSuI经编译程序编译后,产生的文件是。答案:字节码文件TestILcIasso源文件中的每个类编译后都生成一个类文件。文件名是类名,后缀是.class。3 JVM的全称是答案:虚拟机,英文是VirtualMachine<.4 .程序主函数main。前面的修饰符是。答案:publicstaticvoido这三个关键字的次序可以略有不同。5 .源文件经编译后生成的二进制文件称为c答案:字节码文件。字节码文件是类文件。参见教材第一章第一节中的内容。6 .编写好的源程序在计算机上运行需依次经历两个阶段,分别是和解释执行。答案编译。参见(材第一章第三节中的内容。7 .公有类MyFirStTeSt所在的文件经编译程序编译后,产生的文件是。答案:MyFirstTestxIass。三、简答题1 .请简要叙述的特点。解答:是通用的、面向对象的,并具有分布性、安全性和健壮性等特点。具体表现在以下方面。(1)语法简单,功能强大的语法非常像C+,同时去掉了C+中不常用且容易出错的地方,解释器只占用很少的内存,适合在各种类型的机器上运行。(2)与平台无关一个非常重要的特点就是与平台的无关性,虚拟机(VirtUaIMachine,简称JVM)是实现这一特点的关键。编译器将程序编译成虚拟机能够识别的字节码(bytecode)字节码就是虚拟机的机器指令,它与平台无关,有统一的格式,不依赖于具体的硬件环境,只运行在JVM±o在任何安装运行时环境的系统上,都可以执行这些代码。JVM在执行字节码文件时,把字节码解释成具体平台上的机器指令执行。所以程序在不同的平台上运行时,不需要重新编译。规定了统一的数据类型,有严格的语法定义,在任何平台上,同一种数据类型是一致的,为程序跨平台的无缝移植提供了很大的便利。(3)解释编译两种运行方式程序可以经编译器得到字节码。在现在的版本中又加入了编译功能(即justintime编译器,简称JlT编译器),JlT编译器将字节码转换成本机的机器代码,然后可以以较高速度执行,使得执行效率大幅度提高。(4)多线程内置了级多线程功能,提供现成的类Thread,只要继承这个类就可以编写多线程的程序,可使用户程序并行执行。(5)动态执行兼有丰富的APl文档及类库执行代码是在运行时动态载入的,程序可以自动进行版本升级。在网络环境下,可用于瘦客户机架构,减少维护工作。为用户提供了详尽的API文档说明,开发工具包中的类库包罗万象,类库与时俱进,随时更新,增加的新方法和其他实例,不会影响到原有程序的执行。2 .为什么说是平台无关的?解答:一般的高级程序在不同的平台上运行时,需要针对本计算机机器指令集而编译成不同的目标文件。而JVM屏蔽了具体平台的差异。编译器将程序编译成虚拟机能够识别的字节码(bytecode)。字节码就是虚拟机的机器指令,它与平台无关,有统一的格式,不依赖于具体的硬件环境,只运行在JVM上。在任何安装运行时环境的系统上,都可以执行这些代码。JVM在执行字节码文件时,把字节码解释成具体平台上的机器指令执行。所以程序在不同的平台上运行时,不需要重新编译。规定了统一的数据类型,有严格的语法定义,在任何平台上,同一种数据类型是一致的,为程序跨平台的无缝移植提供了很大的便利。3 .什么是虚拟机?解答:虚拟机(VirtUalMaChine,简称JVM)是一台虚拟计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。不同的操作系统有不同的虚拟机,它类似于一个小巧而高效的CPU,是实现平台无关性的保证。【延伸阅读】虚拟机规范中给出了JVM的定义:JVM是在一台真正的机器上用软件方式实现的一台假想机。JVM使用的代码存储在.class文件中。JVM的某些指令很像真正的CPU指令,包括算术运算、流控制和数组元素访问等。JVM的具体实现包括:指令集(等价于CPU的指令集)、寄存器组、类文件格式、栈、垃圾收集堆、内存区。虚拟机规范提供了编译所有代码的硬件平台。因为编译是针对假想机的,所以该规范能让程序独立于平台。它适用于每个具体的硬件平台,以保证能运行为JVM编译的代码。JVM不但可以用软件实现,而且可以用硬件实现。JVM的代码格式为压缩的字节码,因而效率较高。由JVM字节码表示的程序必须保持原来的类型规定。主要的类型检查是在编译时由字节码校验器完成的。的任何解释器必须能执行符合JVM定义的类文件格式的任何类文件。虚拟机规范对运行时数据区域的划分及字节码的优化并不做严格的限制,它们的实现依平台的不同而有所不同。JVM的实现叫做运行时系统或运行时环境(RUnlimeEnvironment),简称为运行时。运行时必须遵从虚拟机规范,这样,编译器生成的类文件才可被所有运行时系统下载。嵌入了运行时系统的应用程序,就可以执行程序了。目前有许多操作系统和浏览器都嵌入了运行时环境。4 .查阅APl文档,列出APl文档中4个包名。解答:从APl文档中选出了4个比较常用的包:.awtJang,.utiKx.swing编程时会用到这4个包,后续章节中也会提及。5 .查阅APl文档,列出.Iang中4个类。解答:从Iang包中选出了常用的4个类:Math、StringSystemThread«编程时会用到这4个类,后续章节中也会提及。6 .查阅APl文档,列出.awt.event中4个接口。解答:.awt.event是处理事件的包,选出4个常用接口:ItemListenerKeyListenerMouseListenerMouseListenero讲授事件一节时会提及。7 .查阅APl文档,列出.lang.Math类中4个常用方法。解答:lang.Math类中包含了许多常用函数,选出4个常用方法如下。staticiniabs(inta):返回ini型值a的绝对值。staticdoublemax(doublea,doubleb):返回两个double型值a、b中的较大者。staticdoublepow(doublea,doubleb):返回a的b次哥的值。staticdoublerandom():返回大于等于0.0且小于1.0的一个正的double型值。8 .查阅APl文档,列出.IangSring类中4个常用方法。解答:Jang.String是处理字符串的类,选出4个常用方法如下。charcharAt(intindex):返回由index指定的索引处的字符。Stringconcat(Stringstr):将指定字符串str添加在本串的最后。booleanequals(bjectanbject):将本串与指定对象anbject进行比较。intindexOf(StringStr):返1可指定子串Str在本串中第一次出现的索引。9 .查阅APl文档,列出.UtiLRandom类中2个常用方法。解答:UtiiRandOm类是用来生成伪随机数的类。选出2个常用方法如下。doublenexlDouble):根据本随机数生成器,从0.0到1.0之间、均匀分布的double型伪随机数序列中,返回下一个伪随机数。intnextlnt(intbound):根据本随机数生成器,从0(含)到指定值bound(不含)之间、均匀分布的int型伪随机数序列中,返回一个伪随机数。10 .查阅APl文档,列出.awt.Color类中2个构造方法。解答:.awt.Color是用来处理颜色的类。选出2个常用方法如下。Color(floatr,floatg,floatb):使用指定的范围在(0.0T.0)间的红色、绿色和蓝色值r,g,b,创建一个不透明的SRGB颜色。Color(intr,intg,intb):使用指定的范围在(0-255)间的红色、绿色和蓝色值r,g,b,创建一个不透明的SRGB颜色。第二章数据和表达式一、单项选择题1 .以下选项中,能作为关键字的字符串的是【】A.defineB.tyeC.includeD.switch答案:Dodefine可以进行宏定义,是C中预处理命令中的一种,在中已经丢弃。C中使用include语句包含h文件,中使用的是import语句。switch用在多重分支语句中。参看教材第三章第二节的内容。2 .以下标识符中,不是关键字的是【】A.waitB.newC.longD.switch答案:Ao使用new调用类的构造方法来创建对象。long表示长整型类型。switch是多分支语句,其用法参见教材第三章第三节的内容。3 .以下字符串中,能作为程序中的标识符的是【】A.ValB.OK#C.2ValD.catch答案:AoOK#中含有特殊字符2Val是以数字2开头。CatCh是关键字。它们都不能用作标识符。4 .以下字符串中,能作为程序变量名的是【】A.defaultB.finalC.longD:CASE答案:Do变量名必须是一个合法的标识符,CASE是全大写的,全小写的CaSe是关键字,两者是不相同的。default用在多重分支语句中,final用在异常处理语句中。long表示长整型类型。5 .下列选项中,能作为注释的是【】A.从/*开始直到行尾B.从/开始直到行尾C.从/*开始直到*结束D.从/*开始直到行尾答案:Bo程序中的注释,如果是以/*开头的,则必须以*/结尾。所以选项A不正确,它没有结束标记。类似的,选项D也是没有结束标记*/。选项C的结束标记符号不正确。6 .标识符MAIN不能用作【】A.类名B.接口名C.程序名D.主函数名答案:D0程序中,主函数名必须是main,且全小写。MAIN是正确的标识符,可以用作类名、接口名及程序名。7 .不属于基本数据类型的是【】A.记录型B.整型C.浮点型D.布尔型答案:Ao记录型是C中由程序员通过IyPedef定义的,中除了整型、浮点型、布尔型等基本数据类型外,程序员仅能定义类类型(由CIaSS标识)和接口(由interface标识)。8 .以下数据类型转换中,必须进行强制类型转换的是JA.intcharB.shortlongC.floatdoubleD.byteint答案:Aaint比Char的位数多,所以不能进行自动类型转换,必须进行强制类型转换。选项B、C和D都是由位数少的类型转换为位数多的类型,可以自动完成。9.以下数据类型转换中,必须进行强制类型转换的是【】A.longbytcB.shortfloatC.intlongD.byteshort答案:Ao10.以下选项中,不是转义字符的是(A.u061BAtC.14D.u0061答案:Ao选项B是水平制表符,选项C和D表示的都是字符a。V后面是3位八进制数。u'后面必须是4位十六进制数。二、填空题1 .用来声明布尔变量(逻辑变量)的保留字是O答案:boolean02 .方法内定义的变量称作答案:自动变量,或是局部变量/临时变量/栈变量。自动变量需要由程序员为其初始化。3 .逻辑与和逻辑或运算符有一个特殊的功能,当左侧操作数能决定表达式的值时,跳过右侧操作数的运算。这个功能是答案:短路操作。4 .一个byie类型的操作数和一个int类型的操作数进行运算,结果的类型是答案:into不同类型的量进行混合运算时,要先转换为同一种类型,然后再进行运算。通常是位数少的类型转换为位数多的类型。byte类型的操作数要先转换为血类型的,进行运算后的类型也为int类型的。5 .当不同数值类型的数据进行运算时,表示范围较小的类型转换为表示范围较大的类型的转换称作O答案:自动类型转换。对于整数类型,位数少则表示范围较小,位数多则表示范围较大。对于浮点数类型也是如此。而int型是32位,Iong型是64位,相应地,float是32位,double是64位。它们之间,整数的表示范围小于浮点数的表示范围。整型转为浮点型也是自动进行的。6 .当不同数值类型的数据进行运算时,表示范围较大的类型转换为表示范围较小的类型的转换称作。答案:强制类型转换。不符合自动类型转换规则的数据进行混合运算时,如果需要进行类型转换,必须标注目标类型,进行强制类型转换。7 .表达式“45&20”的十进制值是。答案:4。45的二进制表示为IOlI(H,20的二进制表示为I(HO0,两个数进行位与运算,即对应位进行与运算,两个位都为1时结果为1,其余为0。IOlloI&10100=OoOlOO,即是4。8 .表达式1=1>>>32;的值是o答案:true.移位运算符>>>的优先级高于比较运算符=,所以先计算1>>>32°对于int型量,移位操作的位数对32取模,即1>>>32不移位,结果仍是1。这个结果再与1进行比较,相等,所以结果是true。三、简答题1.支持的数据类型有哪些?列出中所有的基本数据类型。解答:支持的数据类型分为两大类,一类是基本数据类型,另一类是复合数据类型。基木数据类型共有8种,分为4小类,分别是逻辑型、字符型、整型和浮点型。复合数据类型包括数组、类和接口。逻辑类型或称布尔类型使用boolean表示,字符类型使用Char表示,整数类型共有4种,分别是:byte(l字节)、Short(2字节)、int(4字节)及Iong(8字节)。浮点数共有两种类型,分别是:单精度浮点数float(4字节)及双精度浮点数double(8字节)。【延伸阅读】中定义的各种数据类型占用固定的内存长度,与当前系统的软硬件环境无关。例如,int型整数总是32位的,而不管是在LinUX、Windows还是AndrOid环境下。这个特点体现了的平台无关性。另外还为每种数据类型都预定义了一个默认值,以保证在任何情况下对变量的取值都是正确的。这个特点体现了的安全稳定性。一个Char表示一个UniCOde字符。每一个Unicode字符可用NUXXXx'表示,其中XXXX是任意的一个16位无符号整数,即4位十六进制数,范围为0-65535。Char类型的常量值必须用一对单引号()括起来。例如,'B'的UniCOde值为"u0042'。byte表示的数的范围为-128127,ShOrt表示的数的范围为-3276832767,int表示的数的范围为-23-23-1,long表示的数的范围为-2323整型常量可用十进制、八进制或十六进制形式表示,以19开头的数为十进制数,以0开头的数为八进制数,以OX开头的数为十六进制数。中4种整型量都是有符号的。float表示的数的范围约为L4e453.4e3,double表示的数的范围约为4.9341.8人0,2.中常用的运算符有哪几类?每类列出几个,并说明其含义。解答:运算符有算术运算符、关系运算符、逻辑运算符、位运算符,每类列出3个。此外还有几个特殊的运算符。如表2T所示。表2-1部分运算符及其含义类别运算符运算符含义算术运算符加法减法+加1关系运算符<小于>三大于等于=等于逻辑运算符&&逻辑与逻辑或J逻辑非位运算符«位与A位异或«左移特殊运算符new对象实例字符串连接赋值9-条件运算符i=或赋值3 .中运算符优先级是如何定义的?举例说明。解答:将全部运算符按从高到低划分了15个等级,每个等级中包含少则一个多则十余个的运算符。比如,数组下标运算符,后缀形式的加1和减1运算符具有最高优先级,扩展赋值运算符具有最低优先级,乘法、除法运算符的优先级高于加法、减法运算符的优先级等。在对一个表达式进行计算时,如果表达式中含有多个运算符,则要按运算符的优先顺序从高向低依次进行,同级运算符则根据结合律从左向右或从右向左进行。括号可以改变运算次序。各运算符的优先次序见教材的表2-8。4 .从下列字符串中选出正确的关键字:abstract,bit,boolean,case,character,comment,double,else,end,endif,extend,false,final,finally,float,for,generic,goto,if,implements,import,inner,instanceof,interface,line,long,loop,native,new,null,old,oper,outer,package,print,private,rest,reium,short,static,super,switch,synchronized,this,throw,throws,transient,var,void,volatile,where,write解答:关键字包括:abstract,boolean,case5double,else,false,final,finally,float,for,generic,goto,if,implements,1mport,inner,instanceof,interface,long,native,new,null,outer,package,private,rest,return,short,static,super,switch,synchronized,this,throw,throws,transient,void,VoIatiIeo其余的都不是关键字:bit,character,comment,end,endif,extend,line,loop,old,oper,print,var,where,writeo5 .请叙述标识符的定义规则。指出下面给出的字符串中,哪些不能用作标识符,并说明原因:here,there,this,that,it,2tol,标识符,字符串,名字解答:在中,定义标识符的规则主要有:(1)标识符是以字母、下划线(_)或美元符($)开头,由字母、数字、下划线(_)或美元符($)组成的字符串。仅能含有这些字符。(2)标识符区分大小写。(3)标识符的长度没有限制。(4)注释和空白不能插在一个标识符之中。(5)有许多关键字,它们都有各自的特殊意义和用法,不得用它们作为标识符。题目所给的标识符中,不正确的有this和2tol,其中this是中的关键字,不能用作标识符,2lol是以数字开头的字符串,也不符合对标识符的规定。其他的都是正确的标识符。汉字亦是字母。6 .转义字符是什么?列举几个转义字符。解答:有些字符在中有特殊的含义,表示它们时应使用转义字符。转义字符就是使用特殊格式表示的有特殊含义的字符。表2-2中列出了几个转义字符。表2-2几个转义字符及其含义转义字符含义b退格键(Backspacen换行符r回车符t水平制表符(Tab)W反斜杠单引号*双引号”7 .中的类型转换是指什么?解答:每个数据都与特定的类型相关,运算时,允许整型、浮点型、字符型数据进行混合运算。不同类型的变量数据要先转换为同一种类型,然后再进行运算。是一种强类型,不支持变量数据间的自动任意转换,有时必须显式地进行变量类型的转换。如果同为整数类型,或同为浮点数类型,那么,转换的原则是位数少的类型可以转换为位数多的类型。对于不同类的数值类型,转换的原则是整数类型可以转换为浮点数类型。有一个特例是字符类型,它可以转换为位数更长的整数类型或浮点数类型。上述这几种转换称作自动类型转换,也就是表达式中不需要显式地指明相关的类型信息。凡是不符合自动类型转换规则的类型转换,都必须标注出目标类型的名字,这属于强制类型转换。8 .>>>与>>有什么区别?举例说明。解答:提供两种右移运算符。逻辑右移运算符(也称无符号右移运算符)>>>只对位进行操作,而没有算术含义,它用O填充移位后左侧的空位。运算符“>>”执行算术右移,它使用最高位填充移位后左侧的空位。右移的结果为:每移一位,第一个操作数被2整除一次,移动的次数由第二个操作数确定。比如,-256>>4得到-16,-256>>>4得到268435440,0xa2>>>2得到40。9 .下列表达式中,找出每个操作符的计算顺序,在操作符下按次序标上相应的数字。a+b+c-da+b/c-da+bc*d(a+b)+c-d(a+b)+(c-d)%e(a+b)+c-d%e(a÷b)%e%c-d解答:在中,在对一个表达式进行计算时,如果表达式中含有多个运算符,则要按运算符的优先顺序从高向低依次进行,同级运算符则按结合律进行。括号可以改变运算次序。各表达式中I运算符的计算顺序如下所示。a+b+cI,23a+b/c,d312(a+b)*C-d123(a+b)+(c-d)%c1423(a+b)+c-d%e1 243(a+b)%e%-d2 3410.什么是变量声明?解答:中,通过在对象类型后紧跟一个变量名来对变量进行声明。例如;intnum。变量声明也叫变量说明。【延伸阅读】根据变量是基本数据类型还是复合数据类型,其声明的效果也分两种结果。对于简单类型的变量,声明即为创建,也就是在内存中分配了适当的存储空间。完成初始化后可以直接使用。而对于复合数据类型变量,声明只是定义了对所声明变量的一个引用,这个引用还没有指向任何可用的存储单元,还需要通过new运算符来实例化该对象,也就是分配内存,并让引用指向这个存储区的首地址。四、程序分析题阅读下列程序片段,请写出程序片段的执行结果。intbl=1;intb2=l:bl<<=31;b2<<=31;bl=31;bl=l;b2=31;b2=l;解答:与都是右移运算符,它们的不同之处在于使用不同位填充移位后左侧的空白。运算使用符号位填充左侧的空位,而使用零填充空位。也就是说,运算保持操作数的符号不变,而运算则可能改变原数的符号。分析上面的程序段。初始时,bl和b2都是int型的变量,占32位,初值均为1,两个变量分别向左移动31位,两个值变为:100oOOoOOOoOoOOOoOooOOooooooOOoo,在计算机内部,这个值是:-2147483648。下一步,bl再向右移动31位,这里使用的是运算符。bl是一个负数,其最高位为1,右移时使用1填充左侧的空位。右移31位后bl的值为:UUlIllllIIIIIIIuIIllIllIlII11,在计算机内部,这个值是:bl继续向右移动1位,此时值不变,仍为实际上,此后使用运算符将bl向右移动任何位,它的值都不会再变了。使用运算符则有所不同。使用零填充左侧的空位,所以将b2向右移动31位后,它的值为:OOoOoOOOOOooOOOOOOOOOoOoOooOOOol,即b2的值为1。再向右移动1位,则它的值为:OooOoOoOoOooOOooOoOOoOOOooooOO00,即b2的值为0。第三章流程控制语句一、单项选择题1 .以下选项中,不属于语句的是【】A.for语句B.switch语句C.while语句Djncludc语句答案:Doinclude语句是C中用来包含头文件的语句。中引入包的语句是import语句。2 .以下选项中,不属于语句的是D.for语句A.break语句Bxontinue语句C.goto语句答案:Co程序的易读性降低,中已经不再使用该语句。,i和j的值分别为C.5,6D.5,5goto语句使得程序的执行流程混乱,3 .设i的初值为6,则执行完j=i;后A.6,6B.6,5答案:C给j赋值时,使用的是i原来的值,即6。赋值后,i的值减1,为5。4 .在一个if语句中,下列选项中正确的是【】A.if的个数一定多于else的个数B.if的个数一定与else的个数相等C.if的个数一定少于else的个数D.if的个数可能多于else的个数答案:Doif语句是允许嵌套的,而且else语句是可选的。当在一个if语句中又嵌套了if语句时,就会出现多个if的情况。而因为else是可选的,所以它的个数少于等于if的个数。5switch语句中,大多数情况下,每个CaSe块中最后一条语句应该是【】A.defaultBxontinueC.breakD.goto答案:Co按照SWitCh语句的语法格式,每个CaSe块中最后条语句是break语句。表示针对这种情形的处理己经完成,程序的控制流转至switch之后的语句继续执行。5 .switch语句中,可以不写break语句的CaSe块是【】A.第一个块B.最后一个块C.任意一个块D.哪个块都不行答案:Bo实际上,从语法角度看,哪个CaSe块都可以不写break语句,但这可能不是原本想要的语义。没有break语句,控制流会一直执行下去,起不到多分支的作用。通常,每个CaSe块都要写break语句,保证执行了该块中的语句后控制流转到SWitCh语句之后继续执行。如果进入最后一个CaSe块执行,则写不写break语句,控制流都转到SWitCh语句之后,所以这个break语句是可以省略的。6 .switch语句中,如果没有相匹配的条件,则执行【】A.任一个case后的语句B.default之后的语句C.所有CaSe后的语句D.循环执行SWitCh语句答案:BoSWitCh语句中,如果没能进入任何个CaSe块执行,则进入default块中,执行其中的语句。可以将default块看作是一个分支,即前面的条件均不满足时要执行的语句。8 .下列选项中,不是受检异常的是【】A-ClassNotFoundExceptionB.ArithmeticExceptionC-FileNotFoundExceptionDJOException答案:BoArithmeticException异常属于运行时异常。9 .下列选项中,与try语句配套使用的语句是【】A.defaultB.catchC.breakD.case答案:BoIry-CaICh语句是异常处理语句,用Iry语句括住可能会出现异常的语句,后面使用CaICh语句捕获异常并进行处理。10 .处理异常时,catch语句的后面,一般都会出现的语句是【】A.defaultB.catchC.breakD.finally答案:D。catch语句的最后通常是finally语句。不论是否捕获到异常,都要执行finally后面的语句。11.假设有定义:Strings=null,则下列选项中,能引发异常的是【】I.if(s!=null)<fe(s.lengthO>O)I.if(s!=null)&&(s.length)>0)III .if(s=null)(s.length)=O)IV .if(s=null)ll(s.length)=O)A.IB.I和IIIIC.II和IVD.III答案:BoI和In中,使用的分别是&和运算符,这是位运算符,没有短路功能,所以&或运算符的前后子表达式都要执行。如果S是空串,则调用s.length()时会发生异常。11和IV中,使用的是逻辑运算符&&和一具有短路功能。对于具有短路功能的运算符,如果运算符前面的子表达式能决定整个表达式的结果,则可以跳过运算符后面的子表达式的计算。11中,当S是空串时,s!=null的值为false,不必去执行s.lengthO>0。当S不是空串时,调用SJength()是安全的。IV中,当S不是空串时,调用ShngthO=O是安全的。当S是空串时,s=null为IrUe,已经能够决定整个表达式的结果为true,不用去计算s.length(),所以也是安全的。二、填空题1 .能替换for语句的语句是或o答案:do-whilewhileofor语句、do-while语句和WhiIe语句都是循环语句,且可以互相替换。2 .能替换if语句的语句是答案:SWitCh语句。if语句与SWitCh语句都是分支语句,switch语句中的表达式与if语句中的条件表达式不完全相同,switch中表达式的计算结果必须是im类型或Char类型的,而if语句中是条件表达式,计算结果是逻辑值。3.switch语句中,表示条件的表达式只能是类型或类型。答案:intchar。4 .while语句中,While后面的条件必须是类型的。答案:逻辑/布尔。While语句中,While后面是条件表达式,计算结果是逻辑型的,或称布尔型的。5 .流控制语句有3类,对应于顺序流的语句是答案:赋值语句。流控制分为3类:顺序流、循环流和分支流。对应于顺序流的是赋值语句。6 .循环语句有语句、语句和语句。答案:forwhiledo-whileo这3种语句都是循环语句。7 .分支语句有语句和语句。答案:ifswitch这两种语句都是分支语句。8 .如果想使用其他包中的类,则需要在程序的开头使用语句。答案:引入/import语句。三、简答题1.请说明SWitCh语句的执行过程。解答:switch语句的语法格式是:SWitCh(表达式)casecl:语句组1;break;/break语句可选casec2:语句组2;break;/break语句可选caseck:语句组k;break;/break语句可选defoult:语句组;break;/break语句可选switch语句的执行过程是:计算表达式的值,用该值依次和cl、C2、Ck相比较。如果该值等于其中之一,例如ci,那么执行CaSeCi之后的语句组i,直到遇到break语句跳到SWitCh之后的语句。如果没有相匹配的ci,则执行default之后的语句。2 .程序3.1中如果某个break语句不写,则程序执行时的输出是什么?举例说明。解答:如果某个break语句不写,则当前执行的case块执行完毕,会继续执行下一个case块内的语句,直到遇到break语句时结束。举例来说,在程序3.1中,如果第一组CaSe对应的语句块内不写break语句,即不写第一个break语句,则当输入命令行第一个参数的首字符是数字时,比如输入“234”,那么输出内容是:Thefirstcharacterisdigit2及Thefirstcharacterislowercaseletter2。当然,后一条输出是不应该出现的。3 .请说明嵌套的if语句中,else语句的对应规则。解答:规定else子句属于逻辑上离它最近的if语句,也就是同一块中还没有匹配else的最近的ifo4 .请简要说明while语句与do-while语句的不同之处。解答:WhiIe语句和do-while语句的语法格式是不同的,vhiIe中条件表达式写在前面,do-while中条件表达式写在后面。两种语句条件表达式的判断时间也不同。while语句先判断条件表达式的值,然后根据值的真假决定是否执行循环体。do-while语句先执行循环体,再判断条件表达式的值,以决定是否再次执行循环体。两种语句中循环体的执行次数也不同。WhiIe中,循环体语句可能一次也不执行,do循环中的循环体至少执行一次。5 .请简要说明while语句与for语句的适用情况。解答:for语句中,可以以执行次数来控制循环体的执行,当明确了次数后,可以选用for语句。而有时只知道循环体执行的前提条件,但执行次数并不明确,此时可以使用While语句。6 .什么是异常?解释“抛出”和“捕获”的含义。解答:把程序运行中可能遇到的错误分为两类,其中一类是非致命性的,通过某种修正后程序还能继续执行。这类错误称作异常(Exception)生成的异常对象传递给运行时系统,运行时系统寻找相应的代码来处理这一异常。生成异常对象并把它提交给运行时系统的这一过程称为抛出(throw)一个异常。运行时系统从生成对象的代码块开始进行I可溯,沿方法的调用栈逐层问溯,寻找相应的处理代码,直到找到包含相应异常处理的方法为止

    注意事项

    本文(Java程序设计.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开