Java程序设计.docx

上传人:李司机 文档编号:6768538 上传时间:2024-01-29 格式:DOCX 页数:110 大小:467.55KB
返回 下载 相关 举报
Java程序设计.docx_第1页
第1页 / 共110页
Java程序设计.docx_第2页
第2页 / 共110页
Java程序设计.docx_第3页
第3页 / 共110页
Java程序设计.docx_第4页
第4页 / 共110页
Java程序设计.docx_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《Java程序设计.docx》由会员分享,可在线阅读,更多相关《Java程序设计.docx(110页珍藏版)》请在三一办公上搜索。

1、第一章概述一、单项选择题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.

2、exe,解释器是.exe,JVM是虚拟机,JDK是软件开发工具包。4 .下列选项中,不属于特点的是A.类型定义B.解释执行C.与平台无关D.多线程答案:AoC中使用typedef进行类型定义,在中已经去掉了。另外三个选项都是的特点。5 .下列关于程序的叙述中,正确的是【】A.程序必须配合HTML文件才能执行BJVM解释执行源程序C.程序中可以使用指针D.程序生成的字节码文件与平台无关答案:Do程序在经过编译且正确后,可以使用命令直接执行,配合HTML文件才能执行的是APPlet。解弃执行的不是源程序,是源程序经编译后生成的字节码文件。中已经没有指针这个语法成分了。6 .下列选项中,不是程序主函

3、数main。前面的修饰符的是【】A.classB.staticC.voidD.public答案:Aomain)函数前面的修饰符通常是:publicstaticvoid,不包括ClaSSoCIaSS关键字用在类定义的第一行中,即类头中。main。不是类,是类中的函数。main(前三个修饰符的次序可稍做变化,参见教材第一章第三节中的内容。7 .下列概念中,属于面向对象重要概念和机制之一的是【】A.方法调用B.模块C.继承D.结构化答案:C方法调用、模块、结构化都不仅仅是面向对象中的概念,在面向过程的中也有这些概念,并且它们并不体现面向对象的特点。而继承概念在面向过程的中是没有的,这是面向对象的特二

4、、填空题1 .假设程序保存在文件MyTeSl.中,则编译这个程序的命令是答案:cMyTest.CC是的编译器,C的后面是要编译的源文件名,而且是带后缀名的全名。2 .类TeSuI经编译程序编译后,产生的文件是。答案:字节码文件TestILcIasso源文件中的每个类编译后都生成一个类文件。文件名是类名,后缀是.class。3 JVM的全称是答案:虚拟机,英文是VirtualMachine32;的值是o答案:true.移位运算符的优先级高于比较运算符=,所以先计算132对于int型量,移位操作的位数对32取模,即132不移位,结果仍是1。这个结果再与1进行比较,相等,所以结果是true。三、简答

5、题1.支持的数据类型有哪些?列出中所有的基本数据类型。解答:支持的数据类型分为两大类,一类是基本数据类型,另一类是复合数据类型。基木数据类型共有8种,分为4小类,分别是逻辑型、字符型、整型和浮点型。复合数据类型包括数组、类和接口。逻辑类型或称布尔类型使用boolean表示,字符类型使用Char表示,整数类型共有4种,分别是:byte(l字节)、Short(2字节)、int(4字节)及Iong(8字节)。浮点数共有两种类型,分别是:单精度浮点数float(4字节)及双精度浮点数double(8字节)。【延伸阅读】中定义的各种数据类型占用固定的内存长度,与当前系统的软硬件环境无关。例如,int型整

6、数总是32位的,而不管是在LinUX、Windows还是AndrOid环境下。这个特点体现了的平台无关性。另外还为每种数据类型都预定义了一个默认值,以保证在任何情况下对变量的取值都是正确的。这个特点体现了的安全稳定性。一个Char表示一个UniCOde字符。每一个Unicode字符可用NUXXXx表示,其中XXXX是任意的一个16位无符号整数,即4位十六进制数,范围为0-65535。Char类型的常量值必须用一对单引号()括起来。例如,B的UniCOde值为u0042。byte表示的数的范围为-128127,ShOrt表示的数的范围为-3276832767,int表示的数的范围为-23-23-

7、1,long表示的数的范围为-2323整型常量可用十进制、八进制或十六进制形式表示,以19开头的数为十进制数,以0开头的数为八进制数,以OX开头的数为十六进制数。中4种整型量都是有符号的。float表示的数的范围约为L4e453.4e3,double表示的数的范围约为4.9341.8人0,2.中常用的运算符有哪几类?每类列出几个,并说明其含义。解答:运算符有算术运算符、关系运算符、逻辑运算符、位运算符,每类列出3个。此外还有几个特殊的运算符。如表2T所示。表2-1部分运算符及其含义类别运算符运算符含义算术运算符加法减法+加1关系运算符三大于等于=等于逻辑运算符&逻辑与逻辑或J逻辑非位运算符位与

8、A位异或左移特殊运算符new对象实例字符串连接赋值9-条件运算符i=或赋值3 .中运算符优先级是如何定义的?举例说明。解答:将全部运算符按从高到低划分了15个等级,每个等级中包含少则一个多则十余个的运算符。比如,数组下标运算符,后缀形式的加1和减1运算符具有最高优先级,扩展赋值运算符具有最低优先级,乘法、除法运算符的优先级高于加法、减法运算符的优先级等。在对一个表达式进行计算时,如果表达式中含有多个运算符,则要按运算符的优先顺序从高向低依次进行,同级运算符则根据结合律从左向右或从右向左进行。括号可以改变运算次序。各运算符的优先次序见教材的表2-8。4 .从下列字符串中选出正确的关键字:abst

9、ract,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,tran

10、sient,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,VoIa

11、tiIeo其余的都不是关键字:bit,character,comment,end,endif,extend,line,loop,old,oper,print,var,where,writeo5 .请叙述标识符的定义规则。指出下面给出的字符串中,哪些不能用作标识符,并说明原因:here,there,this,that,it,2tol,标识符,字符串,名字解答:在中,定义标识符的规则主要有:(1)标识符是以字母、下划线(_)或美元符($)开头,由字母、数字、下划线(_)或美元符($)组成的字符串。仅能含有这些字符。(2)标识符区分大小写。(3)标识符的长度没有限制。(4)注释和空白不能插在一个标识

12、符之中。(5)有许多关键字,它们都有各自的特殊意义和用法,不得用它们作为标识符。题目所给的标识符中,不正确的有this和2tol,其中this是中的关键字,不能用作标识符,2lol是以数字开头的字符串,也不符合对标识符的规定。其他的都是正确的标识符。汉字亦是字母。6 .转义字符是什么?列举几个转义字符。解答:有些字符在中有特殊的含义,表示它们时应使用转义字符。转义字符就是使用特殊格式表示的有特殊含义的字符。表2-2中列出了几个转义字符。表2-2几个转义字符及其含义转义字符含义b退格键(Backspacen换行符r回车符t水平制表符(Tab)W反斜杠单引号*双引号”7 .中的类型转换是指什么?解

13、答:每个数据都与特定的类型相关,运算时,允许整型、浮点型、字符型数据进行混合运算。不同类型的变量数据要先转换为同一种类型,然后再进行运算。是一种强类型,不支持变量数据间的自动任意转换,有时必须显式地进行变量类型的转换。如果同为整数类型,或同为浮点数类型,那么,转换的原则是位数少的类型可以转换为位数多的类型。对于不同类的数值类型,转换的原则是整数类型可以转换为浮点数类型。有一个特例是字符类型,它可以转换为位数更长的整数类型或浮点数类型。上述这几种转换称作自动类型转换,也就是表达式中不需要显式地指明相关的类型信息。凡是不符合自动类型转换规则的类型转换,都必须标注出目标类型的名字,这属于强制类型转换

14、。8 .与有什么区别?举例说明。解答:提供两种右移运算符。逻辑右移运算符(也称无符号右移运算符)只对位进行操作,而没有算术含义,它用O填充移位后左侧的空位。运算符“”执行算术右移,它使用最高位填充移位后左侧的空位。右移的结果为:每移一位,第一个操作数被2整除一次,移动的次数由第二个操作数确定。比如,-2564得到-16,-2564得到268435440,0xa22得到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(ab)%e%c-d解答:在中,在对一个

15、表达式进行计算时,如果表达式中含有多个运算符,则要按运算符的优先顺序从高向低依次进行,同级运算符则按结合律进行。括号可以改变运算次序。各表达式中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。变量声明也叫变量说明。【延伸阅读】根据变量是基本数据类型还是复合数据类型,其声明的效果也分两种结果。对于简单类型的变量,声明即为创建,也就是在内存中分配了适当的存储空间。完

16、成初始化后可以直接使用。而对于复合数据类型变量,声明只是定义了对所声明变量的一个引用,这个引用还没有指向任何可用的存储单元,还需要通过new运算符来实例化该对象,也就是分配内存,并让引用指向这个存储区的首地址。四、程序分析题阅读下列程序片段,请写出程序片段的执行结果。intbl=1;intb2=l:bl=31;b2=31;bl=31;bl=l;b2=31;b2=l;解答:与都是右移运算符,它们的不同之处在于使用不同位填充移位后左侧的空白。运算使用符号位填充左侧的空位,而使用零填充空位。也就是说,运算保持操作数的符号不变,而运算则可能改变原数的符号。分析上面的程序段。初始时,bl和b2都是int

17、型的变量,占32位,初值均为1,两个变量分别向左移动31位,两个值变为:100oOOoOOOoOoOOOoOooOOooooooOOoo,在计算机内部,这个值是:-2147483648。下一步,bl再向右移动31位,这里使用的是运算符。bl是一个负数,其最高位为1,右移时使用1填充左侧的空位。右移31位后bl的值为:UUlIllllIIIIIIIuIIllIllIlII11,在计算机内部,这个值是:bl继续向右移动1位,此时值不变,仍为实际上,此后使用运算符将bl向右移动任何位,它的值都不会再变了。使用运算符则有所不同。使用零填充左侧的空位,所以将b2向右移动31位后,它的值为:OOoOoOO

18、OOOooOOOOOOOOOoOoOooOOOol,即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,5g

19、oto语句使得程序的执行流程混乱,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块中最后一条语句应

20、该是【】A.defaultBxontinueC.breakD.goto答案:Co按照SWitCh语句的语法格式,每个CaSe块中最后条语句是break语句。表示针对这种情形的处理己经完成,程序的控制流转至switch之后的语句继续执行。5 .switch语句中,可以不写break语句的CaSe块是【】A.第一个块B.最后一个块C.任意一个块D.哪个块都不行答案:Bo实际上,从语法角度看,哪个CaSe块都可以不写break语句,但这可能不是原本想要的语义。没有break语句,控制流会一直执行下去,起不到多分支的作用。通常,每个CaSe块都要写break语句,保证执行了该块中的语句后控制流转到SW

21、itCh语句之后继续执行。如果进入最后一个CaSe块执行,则写不写break语句,控制流都转到SWitCh语句之后,所以这个break语句是可以省略的。6 .switch语句中,如果没有相匹配的条件,则执行【】A.任一个case后的语句B.default之后的语句C.所有CaSe后的语句D.循环执行SWitCh语句答案:BoSWitCh语句中,如果没能进入任何个CaSe块执行,则进入default块中,执行其中的语句。可以将default块看作是一个分支,即前面的条件均不满足时要执行的语句。8 .下列选项中,不是受检异常的是【】A-ClassNotFoundExceptionB.Arithme

22、ticExceptionC-FileNotFoundExceptionDJOException答案:BoArithmeticException异常属于运行时异常。9 .下列选项中,与try语句配套使用的语句是【】A.defaultB.catchC.breakD.case答案:BoIry-CaICh语句是异常处理语句,用Iry语句括住可能会出现异常的语句,后面使用CaICh语句捕获异常并进行处理。10 .处理异常时,catch语句的后面,一般都会出现的语句是【】A.defaultB.catchC.breakD.finally答案:D。catch语句的最后通常是finally语句。不论是否捕获到异

23、常,都要执行finally后面的语句。11.假设有定义:Strings=null,则下列选项中,能引发异常的是【】I.if(s!=null)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中,使用的是逻辑运算符&和一具有短路功能。对于具有短路功能的运算符,

24、如果运算符前面的子表达式能决定整个表达式的结果,则可以跳过运算符后面的子表达式的计算。11中,当S是空串时,s!=null的值为false,不必去执行s.lengthO0。当S不是空串时,调用SJength()是安全的。IV中,当S不是空串时,调用ShngthO=O是安全的。当S是空串时,s=null为IrUe,已经能够决定整个表达式的结果为true,不用去计算s.length(),所以也是安全的。二、填空题1 .能替换for语句的语句是或o答案:do-whilewhileofor语句、do-while语句和WhiIe语句都是循环语句,且可以互相替换。2 .能替换if语句的语句是答案:SWit

25、Ch语句。if语句与SWitCh语句都是分支语句,switch语句中的表达式与if语句中的条件表达式不完全相同,switch中表达式的计算结果必须是im类型或Char类型的,而if语句中是条件表达式,计算结果是逻辑值。3.switch语句中,表示条件的表达式只能是类型或类型。答案:intchar。4 .while语句中,While后面的条件必须是类型的。答案:逻辑/布尔。While语句中,While后面是条件表达式,计算结果是逻辑型的,或称布尔型的。5 .流控制语句有3类,对应于顺序流的语句是答案:赋值语句。流控制分为3类:顺序流、循环流和分支流。对应于顺序流的是赋值语句。6 .循环语句有语句

26、、语句和语句。答案: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语句的执行过程是:

27、计算表达式的值,用该值依次和cl、C2、Ck相比较。如果该值等于其中之一,例如ci,那么执行CaSeCi之后的语句组i,直到遇到break语句跳到SWitCh之后的语句。如果没有相匹配的ci,则执行default之后的语句。2 .程序3.1中如果某个break语句不写,则程序执行时的输出是什么?举例说明。解答:如果某个break语句不写,则当前执行的case块执行完毕,会继续执行下一个case块内的语句,直到遇到break语句时结束。举例来说,在程序3.1中,如果第一组CaSe对应的语句块内不写break语句,即不写第一个break语句,则当输入命令行第一个参数的首字符是数字时,比如输入“23

28、4”,那么输出内容是:Thefirstcharacterisdigit2及Thefirstcharacterislowercaseletter2。当然,后一条输出是不应该出现的。3 .请说明嵌套的if语句中,else语句的对应规则。解答:规定else子句属于逻辑上离它最近的if语句,也就是同一块中还没有匹配else的最近的ifo4 .请简要说明while语句与do-while语句的不同之处。解答:WhiIe语句和do-while语句的语法格式是不同的,vhiIe中条件表达式写在前面,do-while中条件表达式写在后面。两种语句条件表达式的判断时间也不同。while语句先判断条件表达式的值,然

29、后根据值的真假决定是否执行循环体。do-while语句先执行循环体,再判断条件表达式的值,以决定是否再次执行循环体。两种语句中循环体的执行次数也不同。WhiIe中,循环体语句可能一次也不执行,do循环中的循环体至少执行一次。5 .请简要说明while语句与for语句的适用情况。解答:for语句中,可以以执行次数来控制循环体的执行,当明确了次数后,可以选用for语句。而有时只知道循环体执行的前提条件,但执行次数并不明确,此时可以使用While语句。6 .什么是异常?解释“抛出”和“捕获”的含义。解答:把程序运行中可能遇到的错误分为两类,其中一类是非致命性的,通过某种修正后程序还能继续执行。这类错误称作异常(Exception)生成的异常对象传递给运行时系统,运行时系统寻找相应的代码来处理这一异常。生成异常对象并把它提交给运行时系统的这一过程称为抛出(throw)一个异常。运行时系统从生成对象的代码块开始进行I可溯,沿方法的调用栈逐层问溯,寻找相应的处理代码,直到找到包含相应异常处理的方法为止

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号