版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章Java语言概述选择题1-1在下列概念中,Java语言只保留了(B)A.运算符重载C.指针B.方法重载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..java1-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.javaimportjava.io.*;publicclassExerl_1{publicstaticvoidmain(Stringargs[]){System.out.print("Thisisa");System.out.println("strint.")}}该程序的输出结果如下:Thisisastring.1-2程序Exerl_2.javaImportjava.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.javaimportjava.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.javaimportjava.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.5Ok!参考程序内容如下: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.8B.16C.32D.642-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.8B.16C.32D.642-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和falseD.字符串常量含有结束符'\0'2-10下列关于定义符号常量的描述中,错误的是A,C。A.定义符号常量使用关键字constB.定义符号常量时要赋初值C.符号常量既可以定义为类成员,又可在方法中定义D.定义符号常量时必须给出数据类型2-11下列关于变量的默认值的描述,其中错误的是B,C。A.定义变量而没有进行初始化时,该变量具有默认值B.字符型变量的默认值为换行符C.布尔型变量的默认值是trueD.变量的默认值是可以被改变的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.2A.a+c+++dB.(a+c)--C.c<<bD.a!=b?c:d2-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.0B.1C.5D.无限2-22下列循环语句中,循环体被执行的次数为D。for(inti=0,j=0;(j!=18)||(i<4);i++)A.3B.4C.不确定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)-12-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.32-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)true2-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=28d+f=36.06st+"year"=newyearc+2=r!b||b=trueb?i:d=3.02-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=602-3Exer2_3.java程序publicclassExer2_3{publicstaticvoidmain(Stringargs[]){inti,j;First_Loop:for(i=1;i<50;i++){for(j=2;j<i;j++)if(i%j)==0continueFirst_Loop;System.out.println(i);}}}输出结果如下:1235711131719232931374143472-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");}}}输出结果如下:42-5Exer2_5.java程序publicclassExer2_5{publicstaticvoidmain(Stringargs[]){inta=3,b=5;if(a==3)if(b==1)a++;elseb++;System.out.println(a+","+b);intx=1,y=4;if(x==2){if(y==4)x++;}elsey++;System.out.println(x+","+y);}}输出结果如下:3,51,52-6Exer2_6.java程序publicclassExer2_6{publicstaticvoidmain(Stringargs[]){inti;for(i=1;i<10;i++){if(i>2)System.out.println("AB");elseSystem.out.println("BA");if(i==5)break;}System.out.println("i="+i);}}输出结果如下:BABAABABABi=52-7Exer2_7.java程序publicclassExer2_7{publicstaticvoidmain(Stringargs[]){longj1=1,j2=1;for(inti=5;i>=1;i--)j1*=i;for(inti=4;i>=1;i--)j2*=i;System.out.println("5!+4!"+(j1+j2));}}输出结果如下:5!4!=1442-8Exer2_8.java程序publicclassExer2_8{publicstaticvoidmain(Stringargs[]){Strings1="123456";charch[]={'4','5','6','7','8'};doubled[];d=newdouble[5];d[0]=1.2f;d[1]=2.3f;d[2]=3.4f;d[3]=4.5f;d[4]=5.6f;Strings2[]={"ab","cd","ef"};int[]a[]={{1,2,3},{4,5,6},{7,8,9}};System.out.println("s1="+s1);for(ingi=0;i<5;i++)System.out.print(ch[i]+",");System.out.println();for(i=0;i<5;i++)d[0]+=d[i];System.out.println("d[0]="+d[0]);System.out.println(s2[0]+";"+s2[1]+";"+s2[2]);for(i=0;i<3;i++){System.out.println();for(intj=0;j<3;j++)System.out.print(a[i][j])+"";}}}输出结果如下:s1=1234564,5,6.7.8d[0]=18.200000047683716ab;cd;ef1234567892-9Exer2_9.java程序运行时命令行带有参数。运行格式如下:C:\Exer2_951100↙程序Exer2_9.java内容如下:publicclassExer2_8{publicstaticvoidmain(Stringargs[]){intsum=0;ingi=Integer.parseInt(args[0]);intn=Integer.parseInt(args[1]);for(;i<=n;i++)sum=+=i;System.out.println("sum="+sum);}}输出结果如下:sum=37752-10Exer2_10.java程序publicclassExer2_8{publicstaticvoidmain(Stringargs[]){A:for(inti=0;i<5;i++){for(ingj=0;j<8;j++){System.out.print("*");System.out.println();continueA;}}}}输出结果如下:*****编程题2-11按下列要求写出Java语言的语句。(1)定义一个double型变量d,并赋初值为2.5。该语句如下:Doubled=2.5;(2)在屏幕上输出显示(1)中所定义的变量d的值。该语句如下:System.out.println("d="+d);(3)定义一个字符型一维数组ch它的大小为10。该语句如下:charch[]=newchar[10];(4)定义一个字符串常量s1,其字符串为“abc”Strings1="abc";(5)定义一个boolean型变量b,赋初值为true。booleanb=true(6)在屏幕上输出显示26个大写字母。实现该功能的程序段如下:for(charch='a';ch<='z';ch++)System.out.print(ch)System.out.println();(7)将代数式s=a2+2ab+b2写成一个赋值表达式语句。该语句如下:s=a*a+2*a*b+b*b(8)a,b和c是3个int型变量,用条件表达式写出a>b时,c值为a,否则c值为a,b,c;┊if(a>b)c=a;elsec=b;(9)用for循环语句实现下述循环:循环变量m为100,每次m循环减10;当m等于50时退出循环,循环体为空语句。for(intm=100;m==50;m-=10){}(10)使用带标号名的break语句,在双重for循环自勉结构中,一次从内层循环跳出外层循环。该功能程序段如下:┊F:for(ingi=…){┊for(ingj=…){┊breakF;}┊}┊2-12编程求出一个一维int型数组的元素最大值、最小值、平均值和所有元素之和。程序内容如下:importjava.io.*;publicclasspro2_1{publicstaticvoidmain(Stringargs[]){inta[]={23,76,45,21,63,90,46,83};intmax,min,sum;max=min=a[0];for(inti=1;i<8;i++)if(max<a[i])max=a[i];for(inti=1;i<8;i++)if(min>a[i])min=a[i];for(inti=1;i<8;i++)sum+=a[i];System.out.println("max="+max+",min="+min+",ave="+sum/8+",sum="+sum);}}运行该程序后,输出结果如下:Max=90,min=21,ave=53,sum=4242-3编程将一个浮点型数的整数部分和小数分别输出显示。importjava.io.*;publicclasspro2_2{publicstaticvoidmain(Stringargs[]){doubled=23.56dl;d1=d;intn=0;while(true){d--;if(d<0)break;n++}System.out.println("integer="+n+",decimal="+(d1-n));}}运行该程序后,输出结果请读者自己分析2-4编程生成Fibonacci数列,该数列定义为:nn-1+fn-2f1=f2=1,f=f(n≥3)程序内容如下:importjava.io.*;publicclasspro2_3{publicstaticvoidmain(Stringargs[]){intf1,f2;f1=f2=1for(inti=1;i<=5;i++){System.out.print(f1+""+f2+"");f1+=f2;f2+=f1;}System.out.println()}}这里假定生成Fiblnacci数列的前20项,可根据需要生成若干项。运行该程序后的输出结果如下:112358132134552-5编程求出自然数101~205中的所有素数。程序内容如下importjava.io.*;publicclasspro2_4{publicstaticvoidmain(Stringargs[]){intn=0;booleanprime=false;for(inti=101;i<=205;i+=2){prime=true;for(intj=2;j<i;j++)if(j%j==0){prime=false;break;}if(prime){System.out.print(i+"");n++;}if(n%8==0)System.out.println();}}}2-6使用switch语句根据考试成绩等级输出百分制的分数段。规定如下:A.85~100B.70~84C.60~69D.<60假定85~100分为A,70~84为B,60~69分为C,<60分为D。程序内容如下:importjava.io.*;publicclasspro2_5{publicstaticvoidmain(Stringargs[]){inta=Interger.valueOf(args[0].intValue());intn=a/5;if(a<60)n=11;switch(n){case20:case19:case18:case17:System.out.println("A");break;case16:case15:case14:System.out.println("B");break;case13:case12:System.out.println("C");break;case11:System.out.println("D");}}}输入的分数是通过命令行参数来实现的。假定命令参数为73时,运行该程序输出结果如下:B2-7百鸡百钱问题。公鸡每只3无,母鸡每只5无,小鸡3只一元,用100元买100只鸡,公鸡、母鸡、小鸡应各买多少?程序内容如下:importjava.io.*;publicclasspro2_6{publicstaticvoidmain(Stringargs[]){for(inta=1;a<34;a++)for(intb=1;b<21;b++)if(3*a+5*b+(100-a-b)/3==100&&(100-a-b)%3==0)System.out.println("公鸡="+a+",母鸡="+b+",小鸡="+(100-a-b));}}运行该程序后输出结果如下:公鸡=4,母鸡=12,小鸡=84公鸡=11,母鸡=8,小鸡=81公鸡=18,母鸡=4,小鸡=782-8编程输出如图所示的图形*************************程序内容如下:importjava.io.*;publicclasspro2_7{publicstaticvoidmain(Stringargs[]){for(inti=1;i<i+9;i++){for(intj=1;j<i+9;j++)if(j<=9-i)System.out.print("")elseSystem.out.print("*");System.out.println();}}}第3章Java语言面向对象的特征选择题3-1下列对封装性的描述中,错误的是(B).A.封装体包含了属性和行为B.封装体中的属性和行为的访问权限是相同的C.被封装的某些信息在封装体外是不可见的D.封装使得抽象的数据类型提高了可重用性3-2下列关于继承性的描述中,错误的是(C)A.一个类可以同时生成多个子类B.子类继承了父类的所有成员C.Java语言支持单重继承和多重继承D.Java语言通过接口可使子类使用多个父类的成员3-3下列对多态性的描述中,错误的是(A)A.Java语言允许运算符重载B.Java语言允许方法重载C.Java语言允许变量覆盖D.多态性提高了程序的抽象性和简洁性3-4在类的修饰符中,规定只能被同一包类所使用的修饰符是(B)A.public3-5在成员变量的修饰符中,规定只允许该类自身访问的修饰符是(A)A.privateB.publicC.默认D.protectedB.默认C.finalD.abstract3-6在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是(D)A.publicB.privateC.默认D.protected3-7下列关于构造方法的特点的描述中,错误的是(A)A.不可重载B.方法名同类名C.无返回类型D.系统自动调用3-8下列关于静态方法的特点的描述中,错误的是(D)A.在类体内说明静态方法使用关键字staticB.静态方法只能处理静态变量或调用静态方法C.静态方法不占用对象的内存空间,非静态方法占用对象的内存空间D.静态方法只能用类名调用3-9下列对静态初始化器的描述中,错误的是(D)A.静态初始化器是用来对类进行初始化的,而不是对某个对象初始化B.静态初始化器是由关键字static和一对花括号组成的语句组C.静态初始化器不同于构造方法,它不是方法D.静态初始化器在产生新对象时,是由系统自动调用的3-10下列关于抽象类的描述中,错误的是(C)A.抽象类是用修饰符abstract说明的B.抽象类是不可以定义对象的C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类3-11下列关于类的继承性的描述中,错误的是(D)A.继承是在已有类的基础上生成新类的一种方法B.子类继承父类的所有成员C.Java语言要求一个子类只有一个父类D.父类中成员的访问权限在子类中将被改变3-12下列关于子类继承父类的成员的描述中,错误的是(A)A.子类中继承父类中的所有成员都可以直接访问B.子类中定义有与父类同名变量时,子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量C.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法D.方法重载是编译时处理的,而方法覆盖是在运行时处理的3-13下列关于接口的描述中,错误的是(B)A.接口实际上是由变量和抽象方法构成的特殊类B.一个类只允许继承一个接口C.定义接口使用的关键字是interfaceD.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现3-14下列关于包的描述中,错误的是(A)A.包是一种特殊的类B.包是若干个类的集合C.包是使用package语句创建的D.包有有包名包和无名包两种3-15下列常用包中,存放用户图形界面类库的包是(A)A.java.awtB.java.langC.java.utilD.java.io3-16下列是系统提供的常用的类,所有类的父类的类是(B)A.MathB.ObjectC.SystemD.String判断题3-1类是一种类型,也是对象的模板。(对)3-2Java语言只支持单重继承,不支持多重继承。(对)3-3类中说明的方法可以定义在类体外。(错)3-4class不是定义类的唯一关键字。(错)3-5某类的对象可以作为另一个类的成员。(对)3-6在类体内说明成员变量时不允许赋初值。(错)3-7最终变量就是Java语言中的符号常量。(对)3-8静态变量的引用只能使用对象。(错)3-9静态方法只能处理静态变量。(对)3-10抽象方法是一种只有说明而无具体实现的方法。(对)3-11最终方法是不能被当前子类重新定义的方法。(对)3-12Java语言中,方法调用一律都是传址的引用调用。(错)3-13非静态方法中不能引用静态变量。(错)3-14静态初始化器是在构造方法被自动调用之前运行的。(对)3-15抽象方法仅有方法头,而无方法体。(对)3-16抽象方法一定出现在抽象类中。(对)3-17最终类,最终方法和最终变量的修饰符都用final。(对)3-18创建对象时系统将调用适当的构造方法给对象初始化。(对)3-19使用运算符new创建对象时,赋给对象的值实际上是一个地址值。(对)3-20使用构造方法只能给非静态成员变量赋初值。(对)3-21创建对象时,该对象占用的内存空间除了非静态的成员变量外,还有非静态的成员方法。(对)3-22Java语言中,对象成员的表示只使用运算符“.”。(对)3-23Java语言中,对象赋值实际上是同一个对象具有两个不同的名字,因为他们都有同一个地址值。(对)3-24对象可作方法参数,对象数组不能作方法参数。(错)3-25Java语言中,所创建的子类都应有一个父类。(对)3-26Java语言中,类的继承是可以传递的。(对)3-27Java语言中,构造方法是可以继承的。(错)3-28子类中构造方法应包含自身类的构造方法和直接父类的构造方法。(对)3-29调用this或super的构造方法的语句必须放在第一条语句。(对)3-30子类对象可以直接赋值给父类对象;而父类对象不可以赋值给子类对象。(错)3-31子类中所继承父类的成员都可以在子类中访问。(错)3-32成员方法的重载和覆盖是一回事。(错)3-33一个类可以实现多个接口。接口可以实现“多重继承”。(对)3-34实现接口的类不能是抽象类。(错)填空题3-1对象具有3大要素,它们分别是(状态),(行为),(标志)。这3大要素分别用(变量),(方法),(对象名)表示。3-2定义类时,通常要使用的关键字有(class),(extends),(implements)。3-3成员变量的定义格式如下:([<修饰符>])<变量类型><变量名>(=<初值>);3-4成员变量的非访问控制修饰符有(static),(final),(volatile)。3-5在成员方法的定义中可省略的部分有(修饰符),(参数表),(异常类名列表)。3-6Java语言中,重载方法的选择是在(编译)时进行的,系统根据(参数个数),(参数类型),(参数顺序)寻找匹配方法。3-7没有子类的类称为(最终类),不能被子类重载的方法称为(最终方法),不能被改变值的量称为常量,又称为(最终变量)。3-8创建一个对象时,通常要包含3项内容:(说明对象),给对象分配空间,(对象初始化)。3-9系统规定int型变量默认值为(0),浮点型变量的默认值为(0.0),布尔型变量的默认值为(false)。3-10Java语言中,定义子类时,使用关键字(extends)来给出父类名。如果没有指出父类,则该类的默认父类为(object类)。3-11系统规定:表示当前类的构造方法用(this()),表示直接父类的构造方法用(super())。3-12接口中默认的成员变量的修饰符为(final),默认的成员方法的修饰符是(abstract)。3-13实现接口中的抽象方法时,必须使用(完全相同)方法头,并且还要用(public)修饰符。3-14包名与子包名之间用(.)分隔。加载包的关键字是(import)。3-15字符串类又包含两大类,它们是(String)和(StringBuffer).分析程序的输出结果题3-1Exer3_1.javaclassA{intx,y,z,sum;A(inti,intj,intk){x=i;y=j;z=k;sum=x+y+z;}booleansameA(Aal){if((al.x==x)&(al.y==y)&(al.z==z))returntrue;elsereturnfalse;}booleansameS(Aal){if(al.sum==sum)returntrue;elsereturnfalse;}}classExer3_1{publicstaticvoidmain(Stringargs[]){Aa=newA(2,5,8);Ab=newA(2,5,8);Ac=newA(5,8,2);System.out.println(a,sameA(b));System.out.println(a,sameA(c));System.out.println(a,sameA(b));System.out.println(a,sameA(c));}}输出结果如下:truefalsetruetrue3-2Exer3_2.javaclassB{voidmeth(inti){System.out.println("Int:"+i);}voidmeth(doublei){System.out.println("Double:"+i);}}classExer3_2{publicstaticvoidmain(Stringargs[]){inti=8;doubled=6.8;shorts=10;floatf=5.3f;byteb=9;charc='a';Bob=newB();ob.meth(i);ob.meth(d);ob.meth(s);ob.meth((int)f);ob.meth(b);ob.meth(c);}}输出结果如下:Int:8Double:6.8Int:10Int:5Int:9Int:973-3Exer3_3.javaclassC{intc;C(inta){c=0;for(inti=0;i<=a;i++)c+=i;}C(Cb){c=b.c;}}classExer3_3{publicstaticvoidmain(Stringargs[]){Cc1=newC(6);Cc2=newC(newC(4));System.out.println("c1:"+c1.c);System.out.println("c2"+c2.c);}}输出结果如下:c1:21c2:103_4Exer3_4.javaclassD{staticintd=100;staticintmeth(){ints=d*10;return(s);}D(inti){d=i;}}classExer3_4{publicstaticvoidmain(Stringargs[]){System.out.println("d.meth:"+D.d);Ddd=newD(10);System.out.println("d:"+D.d);System.out.println("dd:"+dd.d);System.out.println("d.meth:"+D.meth());System.out.println("d.meth:"+dd.meth());System.out.println("d:"+D.d);D.d=500;System.out.println("d.meth:"+D.meth());}}输出结果如下:d.meth:100d:10dd:10d.meth:100d.meth:100d:10d.meth:50003_5Exer3_5.javaclassE{doubleh,w;voidshow(){System.out.println("width="+w+",height="+h);}}classTextendsE{doublearea(){returnw*h;}}classExer3_5{publicstaticvoidmain(Stringargs[]){Tt1=newT();Tt2=newT();t1.w=8.0;t1.h=5.0;t2.w=12.0;t2.h=16.0;t1.show();System.out.println("t1:area="+t1.area());t2.show();System.out.println("t2:area="+t2.area());}}输出结果如下:Width=8.0,height=5.0t1:area=40.0width=12.0,height=16.0t2:area=192.03-6Exer3_6.javaclassA{A(){System.out.println("classA");}}classBextendsA{intb;B(inti)(b=i);}classCextendsB{privateintc;C(inti,intj){super(j);c=i;}intreturnc(){returnc;}}classExer3_6{publicstaticvoidmain(Stringargs[]){Cc=newC(5,18);System.out.println("c:"+c.b*c.returnc());}}输出结果如下:classAc:903-7Exer3_7.javaclassA{voidshow(){System.out.println("classA");}}classBextendsA{voidshow(){System.out.println("classB");}}classCextendsB{voidshow(){System.out.println("classC");}}classExer3_7{publicstaticvoidmain(Stringargsp[]){Aa=newA();Bb=newB();Cc=newC();Ax=newA();x=a;x.show();x=b;x.show();x=c;x.show();}}输出结果如下:classAclassBclassC3-8Exer3_8.javaabstractclassShap{privatedoublew,h;Shap(doublei){w=h=i;}Shap(doublei,doublej){w=i,h=j;}Shap(Shaps){w=s.w;h=s.h;}doublegetw(){returnw;}doublegeth(){returnh;}abstractdoublearea();}classRestextendsShap{Rect(doublei){super(i);}Rect(doublei,doublej){super(i,j);}Rect(Rectr){super(r);}doublearea(){returngetw()*geth();}}classExer3_8{publicstaticvoidmain(Stringargs[]){Shaps[]=newShap[3];s[0]=newRect(8.0);s[1]=newRect(5.0,6.0);s[2]=newRect(newRect(12.0,4.0));for(inti=0;i<s.length;i++)System.out.println("s["+i+"]area="+s[i].area());}}输出结果如下:s[0]area=64.0s[1]area=30.0s[2]area=48.03-9addre.java(在子目录address下)packageaddress;publicclassaddre{privateStrings1,s2,s3;publicaddre(Stringstr1,Stringstr2,Stringstr3){s1=str1;s2=str2;s3=str3;}publicvoidshow(){System.out.print(s1);System.out.print("\t"+s2);System.out.println("\t"+s3);}}Exer3_9.javaimportaddress.*;classExer3_9{publicstaticvoidmain(Stringargs[]){addres[]=newaddre[2];s[0]=newaddre("PKU","building44","room109");s[1]=newaddre("PKU","building54","room209");for(inti=0;i<s.length;i++)s[i].show();}}输出结果如下:PKUbuilding44room109PKUbuilding54room2093-10Exer3_10.javainterfaceSeries{intgetVal();}classR1implementsSeries{intval;R1(){val=0;}publicintgetVal(){val++returnval;}}classR2implementsSeries{intval;R2(){val=0;}publicintgetVal(){val+=2;returnval;}}classExer3_10{publicstaticvoidmain(Stringargs[]){R1r1=newR1();R2r2=newR2();Seriess;for(inti=0;i<3;i++){s=r1;System.out.println("r1:"+s.getVal());s=r2;System.out.println("r2:"+s.getVal());}}}输出结果如下:r1:1r2:2r1:2r2:4r1:3r2:6第四章JavaApplet及其应用选择题4-1Applet类是属于(B)包的。A.java.awtB.java.appletC.java.ioD.java.lang4-2下列关于Applet程序的描述中,错误的是(B)。A.Applet程序的主类必须是Applet类的子类B.Applet程序的主类中应该有一个main()方法C.Applet不是完整的独立程序D.Applet的字节码文件必须嵌套在一个HTML文件中4-3下列关于Applet程序的描述中,错误的是(D)。A.将编辑好的Java源文件,使用javac命令生成字节码文件B.将字节码文件嵌入HTML文件,并存放在一个WWW服务器中C.使用浏览器解释HTML文件中的标记D.使用编译器直接执行嵌套在HTML文件中的字节码文件4-4在Applet类的主要方法中,用来实现初始化操作的是(A)。A.init()B.stop()C.start()D.paint()4-5下列关于HTML文件的描述中,错误的是(C)。A.HTML文件是使用一种超文本标记语言(HTML)书写的文件B.HTML文件中使用的标记通常是用一对尖括号括起来的,两个标记之间是正文内容C.HTML文件中没有单独出现的标记D.HTML中不区分大小写字母4-6下列关于向Applet程序传递参数的描述中,错误的是(A)。A.Applet程序可以通过命令获取外部参数B.Applet程序可以通过HTML文件获取外部参数C.使用Applet标记中的PARAM标志来实现D.Applet程序中使用getParameter()方法读取参数值4-7下列关于字体的描述中,错误的是(C)。A.Font类提供了创建字体对象的方法B.字体风格(字型)使用了3个静态常量表示C.表示字型的字体风格只能单独使用,不可以组合D.字号表示字的大小,用点表示,一个点为1/72英寸4-8下列用来获取当前颜色的方法是(A)。A.getColor()B.setColor()C.getRed()D.Color()4-9下列各种绘制矩形的方法中,绘制实心矩形的方法是(A)。A.fillRect()B.drawRect()C.clearRect()D.drawRoundRect()4-10下列演示图像的描述中,错误的是(D)。A.使用图像类Image定义图像对象B.使用方法getImage()获取图像信息C.使用方法drawImage()显示图像D.不可使用显示图像方法进行缩放判断题4-1Applet程序是通过浏览器中内置的Java解释器来解释执行的。(对)4-2Applet程序是以.Java为扩展名的Java语言源程序,该程序经过编译器后便可成为可执行文件。(错)4-3嵌入到HTML文件中的是Applet的源程序。(错)4-4运行Applet程序是使用AppletViewer命令运行嵌入了字节码文件的HTML文件,从而获得运行结果。(对)4-5Applet程序中的主类必须是Applet类的子类。(对)4-6Applet类是Java语言类库中的一个重要的系统类,它被存放在java.awt包中。(错)4-7init()方法是用来完成初始化操作的,在Applet程序运行期间只执行一次。(对)4-8start()方法被系统自动调用来启动主线程运行。通常在Applet程序被重启动时,该方法被系统自动调用。(对)4-9paint()方法是在需要重画图形界面时被系统自动调用来显示输出结果的。(对)4-10stop()方法是用来暂停执行操作的,它与start()方法不同,只被调用一次。(错)4-11init(),start(),stop()和destroy()4个方法构成Applet程序的生命周期。(对)4-12HTML语言中<HEAD>和</HEAD>是用来表示HTML文件开始和结束的标记。(错)4-13HTML中多数标记是成对出现的,也有不成对出现的标记。(对)4-14HTML中是区分大小写字母的。(错)4-15通过HTML文件中使用的PARAM标记可以向Applet程序传递参数的。(对)4-16parseInt()方法的功能是将int型数据转换成String型数据的。(错)4-17AWT提供了许多标准的GUI组件和布局管理等类。(对)4-18Java语言采用了16位颜色标准,Java的调色板保证128色。(错)4-19Graphics类提供了3种绘制文本的方法,其方法名都是drawString()。(对)4-20绘制椭圆的方法是drawOval(),使用该方法也可以绘制圆。(对)分析程序的输出结果题4-1Exer4_1.javaimportjava.applet.Applet;importjava.awt.*;publicclassExer4_1extendsApplet{Stringstr="学习JAVA小程序";publicvoidpaint(Graphicsg){g.drawString(str,100,100);}}请读者自编相应的HTML文件运行该程序之前,编写一个HTML文件,文件名为Exer4_1.html。程序内容如下:<HTML><BODY><APPLETcode="Exer4_1.class"width=300height=200></APPLET></BODY></HTML>运行时,先将Exer4_1.java文件使用javac命令编译成Exer4_1.class文件,然后,再运行Exer4_1.html文件,则输出显示如下信息:学习JAVA小程序4-2Exer4_2.javaimportjava.applet.Applet;importjava.awt.*;publicclassExer4_2extendsApplet{Stringstr1,str2;publicvoidinit(){str1=getParameter("name");str2=getParameter("birthday");if(str1==null)str1="";if(str2==null)str2="";}publicvoidpaint(Graphicsg){g.drawString("姓名是"+str1+"出生年月日是"+str2,100,100);}}Exer4_2.html文件内容如下:<HTML><BODY><APPLETcode="Exer4_2.class"width=500height=200><paramname="name"value="宋小山"><paramname="birthday"value="1966年8月8日"></APPLET></BODY></HTML>运行该程序后,输出如下结果。姓名是宋小山出生年月日是1966年8月8日4-3Exer4_3.javaimportjava.applet.Applet;importjava.awt.*;publicclassExer4_3extendsApplet{Stringstr="您好!";charch[]={'H','e','l','l','o'};bytebyt[]={97,98,99,100,101,102};publicvoidpaint(Graphicsg){g.drawBytes(byt,0,5,50,50);g.drawChars(ch,0,3,50,70);g.drawString(str,50,90);}}运行前编写一个相应的HTML文件,运行输出结果如下:abcdeHel您好!4-4Exer4_4.javaimportjava.applet.Applet;importjava.awt.*;publicclassExer4_4extendsApplet{publicvoidpaint(Graphicsg){for(inti=0;i<6;i++)drawGraphics(i,g);}publicvoiddrawGraphics(intn,Graphicsg){g.clearRect(10,10,300,300);switch(n){case0:case3:g.setColor(Color.red);g.drawRect(50,50,150,150);break;case1:case4:g.setColor(Color.blue);g.drawOval(40,40,160,160);break;case2:case5:g.setColor(Color.green);g.fillRect(50,50,200,200);break;}try{Thread.sleep(1500);}catch(InterruptedExceptione){System.exit(0);}}}运行该程序前编写相应的HTML文件,运行后在屏幕上显示变化的图形:先显示红色的正方形,再显示蓝色圆,最后显示用绿色填充的方块,并且重复一遍。编程题4-1编写Applet程序,在指定大小的屏幕界面上使用不同颜色绘制如下图形:(1)直径为100像素点的圆;(2)两个半轴长分别为50像素点和100像素点的椭圆;(3)长和宽都为150像素点的矩形;(4)使用红色填充(3)中的矩形;(5)大小由读者指定的填充圆弧。编写的Java小程序名为pro4_1.java,程序内容如下:importjava.applet.Applet;importjava.awt.*;publicclasspro4_1extendsApplet{publicvoidpaint(Graphicsg){g.clearRect(10,10,300,300);g.setColor(Color.blue);g.drawOval(40,40,100,100);g.setColor(Color.red);g.drawOval(160,40,50,100);g.setColor(Color.red);g.clearRect(50,150,150,150);g.setColor(Color.green);g.fillRect(50,150,150,150);g.setColor(Color.yellow);g.fillArc(220,50,180,125,30,120);}}相应的HTML文件内容如下:<HTML><BODY><APPLETcode="pro4_1.class"width=500height=500></APPLET></BODY></HTML>4-2编写Applet程序,选择3种不同的字体写出字符串“ILoveBeijing!”。编写的Applet小程序文件名为pro4_2.java,程序内容如下:importjava.applet.Applet;importjava.awt.*;publicclasspro4_2extendsApplet{Fontfnt1=newFont("Serif",Font.ITALIC,25);Fontfnt2=newFont("Monospaced",Font.BOLD,40);Fontfnt3=newFont("Helvetica",Font.BOLD,40);publicvoidpaint(Graphicsg){Stringstr="ILoveBeijing!";g.setFont(fnt1);g.setColor(Color.green);g.drawString(str,30,40);g.setFont(fnt2);g.setColor(Color.yellow);g.drawString(str,30,80);g.setFont(fnt3);g.setColor(Color.red);g.drawString(str,30,120);}}相应的HTML文件读者自编。4-3编写Applet程序,在一个椭圆内填写一个字符串。椭圆大小和位置以及字符串内容和字体都由读者自定。编写的Applet小程序的文件名为pro4_3.java,程序内容如下:importjava.applet.Applet;importjava.awt.*;publicclasspro4_3extendsApplet{publicvoidpaint(Graphicsg){intx0=30,y0=35,W=300,H=100;g.setColor(Color.green);g.drawOval(x0,y0,W,H);g.setColor(Color.red);g.setFont(newFont("Helvetica",Font.BOLD,45));g.drawString("北京,您好!",50,100);}}相应的HTML文件由读者自编。第5章图形用户界面设计选择题5-1下列关于容器的描述中,错误的是(D)A.容器是由若干个组建和容器组成的B.容器是对图形界面中界面元素的一种管理C.容器是一种对指定宽和高的矩形范围D.容器都是可以独立的窗口5-2下列界面元素中,不是容器的是(A)A.ListB.FrameC.DialogD.Panel5-3下列关于实现图形用户界面的描述中,错误的是(B,C)A.放在容器中的组件首先要定义,接着要初始化B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayoutC.容器中所有组件都是事件组件,都可以产生事件对象D.事件处理是由监听者定义的方法来实现的5-4下列关于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东农工商职业技术学院《行政管理专业导论》2023-2024学年第一学期期末试卷
- 广东梅州职业技术学院《影视编剧》2023-2024学年第一学期期末试卷
- 广东茂名幼儿师范专科学校《JSP程序设计》2023-2024学年第一学期期末试卷
- 四年级数学(四则混合运算)计算题专项练习与答案
- 国学智慧(东北师范大学)学习通测试及答案
- 2025新北师大版英语七年级下单词表
- 【名师一号】2020-2021学年新课标版物理选修3-1-第二章恒定电流-测试
- 【名师一号】2020-2021学年高中英语北师大版必修4-随堂演练-第十二单元综合测评
- 2025铜冶炼污酸梯级回收利用工程技术规范
- 【名师一号】2020-2021学年鲁科版化学检测题-选修五:第三章有机合成及其应用
- 工程开工报审表范本
- 航空小镇主题乐园项目规划设计方案
- 保洁冬季防滑防冻工作措施
- 少儿美术课件-《我的情绪小怪兽》
- 永续债计入权益的必备条件分析
- 预应力钢绞线张拉伸长量计算程序单端(自动版)
- 基坑监测课件ppt版(共155页)
- 蠕变、应力松弛、滞后和内耗讲解
- 开发区开发管理模式及发展要素PPT课件
- 急诊科科主任述职报告范文
- 基于MATLAB语音信号降噪处理
评论
0/150
提交评论