自考04747Java语言程序设计(一)自学辅导资料_第1页
自考04747Java语言程序设计(一)自学辅导资料_第2页
自考04747Java语言程序设计(一)自学辅导资料_第3页
自考04747Java语言程序设计(一)自学辅导资料_第4页
自考04747Java语言程序设计(一)自学辅导资料_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

59/594747Java语言程序设计(一)第一章Jave语言基础1.1Java语言的特点领会Java语言的特点、关键字

1010-11.Java语言采用多种机制来保证可移植性,其中最主要的是______。虚拟机1110-11.Java语言是一种____强类型语言___语言,它约束程序员必须遵守规定编写程序,能让编译器检测出程序中尽可能多的错误。1.2Java应用程序和小应用程序识记 Java应用程序与小应用程序的特点和区别11.一个应用程序必须在某个类中定义的方法是______。main()1201-11.能在浏览器上执行的Java程序被称为小应用程序。1.3Java程序的开发过程11.Java程序的字节码文件的扩展名是_________。Class1001-11.Java的编译程序先将Java源程序翻译成与机器无关的__________。字节码1101-11.Java源文件的扩展名是_____.java____。1210-11.如果Java源文件中有多个类,那么只能有一个__public____类。1404-11.类Testll经Java编译程序编译后,产生的文件是______。Test11.class1.4标识符和关键字简单应用:Java程序的标识符命名规则、注释、基本数据类型标识符可以用来标识文件名、变量名、类名、接口名和成员方法名等,其构造规则如下:标识符由Java字母和Java数字组成;首字符必须是Java字母;除去关键字、false、true和null;所有标识符是区分大小写的。注释:行注释 //块注释 /*….*/文档注释 /**…*/1404-1.以下标识符中,不是Java语言关键字的是A.waitB.newC.long D.switch1.下述字符组合不能作为Java程序标识符的是()A.Aa12 B.大xC.y小 D.5x1.下面供选字符序列中,不属于Java语言关键字的是()A.goto B.nullC.false D.native1.在下述字符串中,不属于Java语言关键字的是(C)A.float B.newC.java D.return1110-1.下面供选字符序列中,不属于Java语言关键字的是()A.throwB.synchronizedC.protect D.try1010-1.以下是关于Java语言关键字的叙述,其中正确的是()A.关键字可以用来描述类的成员类型,但是不能描述普通变量B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成C.关键字不可以用作变量、方法、类或标号的标识符D.break和main都是Java语言的关键字0开头表8进制常量,数字只能(0-7)1.5基本数据类型0开头表8进制常量,数字只能(0-7)1.下列字符组合不能作为Java整型常量的是()A.078 B.0x3ACBC.5000 D.0x3ABC1.在Java语言中,用于标记回车符的转义字符是A.\bB./bC.\n D./n1001-12.表达式¨23&18’’的值是__________。23181101-1.在Java语言中,int类型数据的长度是()A.1个字节B.2个字节C.4个字节 D.8个字节11.在Java语言中,双精度型变量在内存中占____8______个字节。1101-l4.布尔类型数组元素的默认初值是____false_____。第2章运算和语句选择填空简答程序填空2.1数据运算识记: 常用运算符的定义、包声明语句(package)和导入语句(import)领会: 条件运算和其他运算2.Java语言中数值数据的类型能自动转换,按照从左到右的转换次序为(B)A.byte→int→short→long→float→doubleB.byte→short→int→long→float→doubleC.byte→short→int→float→long→doubleD.short→byte→int→long→float→double1404-2.以下数据类型转换中,必须进行强制类型转换的是A.int→charB.short→longC.float→double D.byte→int2.以下程序代码的输出的结果是()intx=53;System.out.println(1.0+x/2);A.27.0 B.27.5C.1.026 D.1404-12.表达式“45&20”的十进制值是______。42.设有定义inti=6;,则执行语句“i+=i-1;’’后,i的值为A.10B.11C.121210-12.运算符‘‘<”、“*”和“&&”按优先级从高到低的顺序排列为__*<&&____。21.请写出表示条件“x=2与y=3有且只有一个成立”的Java表达式”。(x=2)!=(y=3)或(x=2&&y!=3)||(x!=2&&y!=3)12.构造一个Java表达式:y/x>5,并且x!=0。这个表达式是_________。y/x>5&&x!=01101-12.表达式-4>>l的十进制值是______-2___。(解法:-4/(2的一次幂))21.请写出表示year年是闰年的Java表达式。闰年的条件是:每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。(year%4==0)&&(year%4!=0)||(year%400==0)简答12.用条件运算符构造一个表达式:goal等于10时,表达式的值为“对了!”,否则,表达式的值为“错了!”。这个表达式是_________。1010-2.执行以下代码,输出结果是()intx=5,y=7,u=9,v=6;System.out.println(x>y?x+2:u>v?u-3:v+2);A.8B.62.以下程序代码的输出结果是()intx=73;System.out.println(x>>1);A.36B.36.5c.37 1110-2.以下程序代码的输出的结果是()doublex=25.6;System.out.println((int)x<<1);A.48B.50C.51D.521201-2.表达式“-1>>>1”A.-2B.231-1C.-(231-1)D.23212.在Java语言中,逻辑右移运算符为____>>>______。2.2语句简单应用: 阅读简单程序的功能和输出结果,编写简单的程序综合应用: Java语言语句的书写形式和语句的语义,算术运算符、自增自减运算符、关系运算符和逻辑运算符1210-2.以下关于Java语句的说法正确的是A.continue语句必须出现在多路按值选择结构或循环结构中B.return语句可以出现在方法体的外面C.编译系统会把单独的分号看成是空语句D.break语句的作用是提早结束当前轮次循环1001-21.请写出一段if语句,判断一个整数n是否为偶数。如果是偶数,输出“Yes.”;否则,输出“No.”。If(n%2==0){System.out.println(“Yes”);}else{System.out.println(“No”);}1110-12.在Java语言中,package_____语句用于表示出现在该文件中的所有类都属于这个程序包。1010-21.请使用for循环语句计算S=1+的值。doubles=0.0for(inti=1;s<=10;i++)s+=1.0/I;1404-21.已知变量n,请写出使用for语句计算的代码。1101-21.请写一个if语句,判断整数n是否同时满足“被3除余2,被7除余1”1110-21.请使用for循环语句实现计算的值。2.以下程序代码的输出结果是()intx=10;while(x>7){System.out.print("*");x--;}A.** B.***C.* D.****1101-2.在switch语句中,switch后面括号内的表达式的类型不能是()A.byteB.longC.char D.int1010-12.程序包声明的格式是______。12.import语句的格式是______。12、import包名.类名;1201-21.请写出以下程序段的执行结果。intc=0,d,n=3758;while(n>0){if((d=n%l0)>c)c=d;n/=10;}System.out.println("结果="+c);执行结果:结果=821.请写出下面程序段的执行结果。intn=90;intk=2;System.out.print(n+″=〞);while(k<=n){if(k==n){System.out.println(n);break;}elseif(n%k==0){System.out.print(k+″*″);n=n/k;)elsek++;}90=2*3*3*527.方法intmaxDigit(intn)的功能是找出十进制整数n各位中最大的一位数字。例如,n=23765,该方法的返回值是7。staticintmaxDigit(intn){intc=0,d;参考答案:n%10returnc参考答案:n%10returncd=_______;if(d>c)c=d;n/=10;}________;}27.方法intsigmaDigit(intn)的功能是求出十进制整数n的各位数字之和。例如,n=1234,该方法的返回值是10。staticintsigmaDigit(intn){intsum=0,d;while(n>0){d=n%10;_________;sum+=dn/=10;}_________;returnsum1010-27.方法booleanisPrime(intn)的功能是判断正整数n(n>1)是否为质数。staticbooleanisPrime(intn){inti;if(n==2)returntrue;if(n%2==0)returnfalse;for(i=3;i*i<=n;i+=2)if(_________)break;if(_________)returntrue;returnfalse;}1101-27.方法intnumberOfDigits(intn)的功能是计算十进制正整数n的位数。intnumberOfDigits(intn){intc=0:do{n/=10;_________;}while(_________);returnc;}第3章面向对象编程基础选择填空简答分析程序运行结果识记:类的内存模型,final、abstract、super、this的用法,Applet程序结构和执行过程。领会:抽象、对象、消息、类、继承、封装、接口、多态等面向对象的基本概念。简单应用:访问权限的设置,Applet类的init()、strart()、stop()、destroy()、paint()、repaint()等方法。综合应用:类的声明、成员变量(实例变量、类变量)和方法(实例方法、类方法)、构造方法、方法重载,对象的声明、创建和使用,接口的声明和使用。3.1面向对象的基本概念13.在面向对象语言中,对象之间的交互通过______实现。相互发送消息1110-13.在Java程序系统中,对象之间的交互通过相互发送_____消息__实现13.类是对一组相同对象的描述,类概括了同类对象的共有性质:_________。(P40)数据(属性)和方法(函数)1404-3.以下供选择的概念中,属于面向对象语言重要概念和机制之一的是A.函数调用B.模块C.继承 D.结构化1010-13.当联编推迟至运行时间实现时,该联编过程称为______。动态联编3.在以下供选择的概念中,不属于面向对象语言概念的是(B)A.消息B.模块C.继承D.多态性1101-22.请写出在面向对象系统中,类和对象的关系。1110-3.在以下供选择的概念中,不属于面向对象语言概念的是()A.类B.函数C.动态联编 D.抽象13.在Java语言中,通过扩展原有的类,声明新类的机制被称为___继承_____。3.2Java的类和对象22.请写出在类的方法的定义之前,加上修饰字public、private的区别。Public修饰的方法为公用方法,任何类的方法都可以访问他Private修饰的方法,本类内部可以访问1010-3.Java语言中,只限子类或者同一包中的类的方法能访问的访问权限是()A.publicB.privateC.protected D.<无修饰>1201-22.什么是方法重载,如何正确区分重载?方法重载是指在一个类中定义多个有相同名字的方法。区分方法:根据这些方法或参数不同或者按顺序参数的类型不同来区分。1101-13.在定义成员变量时,用关键字___static______修饰的是类变量。3.参照以下Java代码,以下四个叙述中最确切的是()classA{intx;staticinty;voidfac(Strings){Syatem.out.println("字符串:"+s);}}A.x、y和s都是成员变量B.x是实例变量、y是类变量、s是局部变量C.x和y是实例变量、s是参数D.x、y和s都是实例变量1201-3.Java语言中,在类定义时用final关键字修饰,是指这个类()A.子类必须实现父类未实现的方法 B.没有具体实现代码C.必须要有实例 D.不能被继承1210-3.不能被再继承的类是A.final类B.abstract类C.public类 D.用户自定义类1404-13.如果类A继承和扩展类B,则子类A和超类B之间的关系是__isa____。1201-12.如果子类A隐藏了超类B的成员变量x,而类A的某个方法f()要引用类B的x,则引用类B的x的引用代码可以写成super.x。1201-14.设u和v是类A的两个对象,则逻辑表达式“u==v”的意义是引用相同的对象。0901-32.阅读下列程序,请写出该程序的输出结果。classA{intx,y;标识:类的内存模型A(inta,intb){标识:类的内存模型x=a;y=b;}}publicclasssample{publicstaticvoidmain(Stringargs[]){Apl,p2;p2=newA(12,15);p1=p2;p2.x++;System.out.println("p1.x="+p1.x);}}p1.x=133.设类U声明,及对象u和v的定义如下:classU{intx,inty;理解引用和对象实体很重要U(inta,intb){x=a;y=b;}理解引用和对象实体很重要voidcopy(Ua){x=a.x;y=a.y;}}Uu=newU(1,2),v=newU(2,3);在以下供选择的代码中,可能引起系统回收内存的是()A.u.x=v.y;u.y=v.x; B.u=v;C.u.copy(v); D.v.copy(u);1010-32.阅读下列程序,请写出该程序的输出结果。考点:实例变量和类变量publicclassA{intm=5;staticintn=3;publicstaticvoidmain(String[]args){Aobj1=newA();Aobj2=newA();objl.m*=2;objl.n*=4;obj2.m+=1;obj2.n+=6;System.out.println("obj1.m=''+obj1.m);System.out.println("obj1.n="+obj1.n);System.out.println("obj2.m="+obj2.m);System.out.println("obj2.n="+obj2.n);}}22.如果类Student是类Person的子类,类Undergraduate是类Student的子类,请指出以下代码行中哪些是不合法的。继承――父子类间的赋值兼容Personp1=newStudent();Personp2=newUndergraduate();Students1=newPerson();Students2=newUndergraduate();Undergraduateug1=newPerson();Undergraduateug2=newStudent();Objectob=newStudent();参考答案:(P57)Students1=newPerson();Undergraduateug1=newPerson();Undergraduateug2=newStudent();[解析]本题考核知识点是类之间的is-a关系。在两个相关的类之间,可能会有is-a和has-a关系。若类A是继承扩展类B,则子类A和超类B之间是is-a关系,即类A是一个类B。这种情况下,A类对象一定可以是B类类型,因为B类的所有成员A类也有。也就是子类对象可以是超类类型。语句Bb=newA()是正确的,Aa=newB()是错误的。1001-32.阅读下列程序,请写出该程序的输出结果。classParent{privatevoidmethod1(){System.out.println("Parent′smethod1()");}publicvoidmethod2(){System.out.println("Parent′smethod2()");method1();}}classChildextendsParent{publicvoidmethod1(){System.out.println("Child′smethod1()");}publicstaticvoidmain(Stringargs[]){Parentp=newChild();p.method2();}此处应注意Parent此处应注意Parent类的method1()是私有方法,不能被继承,若为public则是覆盖则结果为Parent′smethod2()Child′smethod1()Parent′smethod2()Parent′smethod1()32.阅读下列程序,请写出该程序的输出结果。考点:多重继承子类对象的构造classTree{privateStringname;publicbooleanflower;publicintbirthYear;Tree(Stringn,booleanf,inty){name=n;flower=f;birthYear=y;}publicvoidsetName(Stringn){name=n;}publicStringgetName(){returnname;}publicvoidprintTree(Stringstr){System.out.println(str);System.out.println("Name:"+name);System.out.println("BirthYear:"+birthYear);System.out.println("Flower:"+flower);}}classPineTreeextendsTree{publicbooleanconiferous=true;PineTree(Stringn,booleanf,inty,booleanc){super(n,f,y);coniferous=c;}publicvoidprintTree(Stringstr){super,printTree(str);System.out.println("Coniferous:"+coniferous);}}classTest32{publicstaticvoidmain(String[]args){TreefOb=newTree("MayFlower",true,1980);PineTreesOb=newPineTree("Pine",false,2000,true);fOb.printTree("fOb:");sOb.printTree("sOb:");fOb:

Name:MayFlower

BirthYear:1980

Flower:true(2分)

sOb:

Name:Pine

BirthYear:2000

Flower:false

Coniferous:true(2分)}fOb:

Name:MayFlower

BirthYear:1980

Flower:true(2分)

sOb:

Name:Pine

BirthYear:2000

Flower:false

Coniferous:true(2分)}3.以下关于抽象类及抽象方法的说法中,不正确的是A.抽象方法只能出现在抽象类中 B.抽象类必须有抽象方法C.有抽象方法的类一定是抽象类 D.抽象方法没有实现的代码13.在类声明之前用_________修饰,声明类是不能被再继承的类,即它不能再有子类。Final3.Java语言中,在类定义时用final关键字修饰,是指这个类()A.不能被继承 B.在子类的方法中不能被调用C.能被别的程序自由调用 D.不能被子类的方法覆盖1001-13.如果类A某个成员变量的类型是类B,则类A和类B之间是__________关系。(P57)Has-a3.3接口1001-22.请写出接口定义的一般形式。(P59)1404-22.请写出接口体中可能包含的内容。1101-3.以下关于接口的叙述中,正确的是()A.所有的接口都是公共接口,可被所有的类和接口使用B.一个类通过使用关键字interface声明自己使用一个或多个接口C.接口中所有的变量都默认为publicabstract属性D.接口体中不提供方法的实现1201-13.接口有与类相似的基本形式,它有常量定义和方法定义,但没有方法的实现代码。3.4基本类3.5Java小应用程序基础标识:小应用程序与Applet类的关系,小应用程序结构和执行过程简单应用:Applet类的init()、strart()、stop()、destroy()、paint()、repaint()等方法。11.一个小应用程序必须定义成一个_________。Applet(JApplet)类的子类1010-22.请写出Applet类中init()方法的功能创建所需要的对象,设置初始状态,装载图像,设计对数等22.为了系统安全,对JavaApplet小应用程序有什么限制?30.某小应用程序实现幻灯片放映。小应用程序的init()方法将幻灯片读入数组中存储和注册鼠标监视器。程序运行时,单击鼠标,就顺序变换放映幻灯片的序号。这里给出的是其中的paint()方法和mousePressed()方法。paint()方法需要Graphics类型参数,当单击鼠标时,要在paint()方法中再次显示图片,可以调用repaint()方法,使程序先清除paint()运行的结果,再运行paint();也可以调用update()方法,该方法会使系统自动调用repaint()方法。finalintnumber=30;//假定幻灯片有30张paint()方法需要Graphics类型参数,当单击鼠标时,要在paint()方法中再次显示图片,可以调用repaint()方法,使程序先清除paint()运行的结果,再运行paint();也可以调用update()方法,该方法会使系统自动调用repaint()方法。intcount=0;Image[]pic=newImage[number];publicvoidpaint(______gc){if((pic[count])!=null)gc.drawImage(pic[count],10,10,pic[count].getWidth(this),pic[count].getHeight(this),this);}publicvoidmousePressed(MouseEvente){count=(count+1)%number;//循环逐张显示__________;}32.阅读下列程序,请写出该程序的输出结果。importjava.applet.*;importjava.awt.*;classPoint{intx,y;Point(intxx,intyy){x=xx;y=yy;}Point(Pointp){x=p.x;y=p.y;}voidm(intdx,intdy){x+=dx;y+=dy;}}classCircleextendsPoint{intr;Circle(Pointp,intrr){super(p);r=rr;}floatc(){return3.14f*2.0f*r;}floata(){return3.14f*r*r;}}publicclasssampleextendsApplet{Circleyuan;Pointd;参考答案:yuanCircle62.8(2分)yuanArea314.0(2分)参考答案:yuanCircle62.8(2分)yuanArea314.0(2分)publicvoidpaint(Graphicsg){g.drawString("yuanCircle"+(int)(yuan.c()*100.0)/100.0,5,20);g.drawString("yuanArea"+(int)(yuan.a()*100.0)/100.0,5,40);}

}第4章数组和字符串简单应用:非平衡的多维数组的创建,StringTokenizer类的用法,字符串与字节数组之间的转换,对象的字符串表示综合应用:一维数组、二维数组、字符串的声明和创建,字符串的常用处理方法,字符串与基本数据类型之间的转换4.1数组1210-14.数组名如同对象名一样,是一种__________。23.请写出声明int类型的二维数组intArr的三种形式。IntintArr[][]Int[][]intArrInt[]intArr[]1110-14.数组每个元素按存储顺序对应一个下标,下标从___0____开始顺序编号4.在下述Java语言语句中,错误的创建数组的方法是(D)A.intintArray[];intArray=newint[5];B.intintArray[]=newint[5];C.int[]intArray={1,2,3,4,5};D.intintArray[5]={1,2,3,4.5};1404-4.以下Java程序代码中,能正确创建数组的是A.intmyArray[];myArray[]=newint[5];B.intmyArray[]=newmy(5);C.int[]myArray={1,2,3,4,5};D.intmyArray[5]={1,2,3,4,5};1201-23.请写出定义一个包含2个子数组的二维整型数组对象aArr的代码,其中第一个子数组有5个元素,第二个子数组有3个元素。intaArr[][]=newint[2][];aArr[0]=newint[5];aArr[1]=newint[3];14.设有数组a和b的定义如下:int[]a={1,2,3};int[]b={4,5,6}……执行以下代码“a=b;”,除了完成赋值操作之外,引起系统额外要做的工作是_________。(P45)回收内存(引用类型)0901-33.阅读下列程序,请写出调用pascal(4)的输出结果。staticvoidpascal(intn){intpas[];pas=newint[n];pas[0]=1;System.out.println(pas[0]);for(inti=2;i<=n;i++){/*由存储在pas中的原来内容生成新内容*/pas[i-l]=1;1111111211331pas[j]=pas[j]+pas[j-1];for(intj=0;j<i;j++)System.out.print(pas[j]+"");System.out.println();}}0910-33.阅读下列程序,请写出该程序的输出结果。引用参数传递classTest33{staticvoids(intb[],intk){inti,j,t;for(i=1;i<k;i++){for(t=b[i],j=i-1;j>=0&&t<b[j];j--)b[j+l]=b[j];b[j+1]=t;}}publicstaticvoidmain(String[]args){inti,a[]={6,12,7,11,5};s(a,5);for(i=0;i<a.length;i++)System.out.print(a[i]+"");System.out.Println();}}56711121010-33.阅读下列程序,请写出该程序的输出结果。classTest33{staticintmerger(int[]a,int[]b,int[]c){inti=0,j=0,k=0;while(i<a.length&&j<b.length){if(a[i]<b[j])c[k++]=a[i++];elsec[k++]=b[j++];}while(i<a.length)c[k++]=a[i++];123569while(j<b.length)c[k++]=b[j++];123569returnk;}publicstaticvoidmain(String[]args){inta[]={3,6,9};intb[]={1,2,5};int[]c=newint[100];intp=merger(a,b,c);for(intk=0;k<p;k++)System.out.print(c[k]+(k<p-1?"":"\n"));}}0910-27.方法intsigmaEvenNum(int[]a)的功能是求已知数组中偶数的个数。staticintsigmaEvenNum(int[]a){ints=0;for(inti=0;______;i++){if(______)s++;}returns;}1001-27.方法voidmoveOddForword(inta[])的功能是将数组中的所有奇数移到所有偶数之前。voidmoveOddForword(inta[]){for(inti=0,odd=0;___i<a.length_____;i++)if(___a[i]%2==0_____){intt=a[i];a[i]=a[odd];a[odd]=t;odd++;}}1010-4.设有数组定义int[][]x={{1,2},{3,4,5},{6},{}};,则x.length的值为()A.3B.4C.60901-37.编写数组复制方法。该方法从已知平衡的两维数组的左下角复制出一个非平衡的三角二维数组。设复制数组方法的模型为:publicstaticdouble[][]leftDownConer(double[][]anArray)publicstaticdouble[][]leftDownConer(double[][]anArray){ intl1=anArray.length; intl2=anArray[0].length; doubletemp[][]; if(l1<=l2){ temp=newdouble[l1][]; for(inti=0;i<l1;i++){ temp[i]=newdouble[i+1]; for(intj=0;j<i+1;j++) temp[i][j]=anArray[i][j]; } returntemp; }else{ temp=newdouble[l2][]; for(inti=0;i<l2;i++){ temp[i]=newdouble[i+1]; for(intj=0;j<i+1;j++) temp[i][j]=anArray[l1-l2+i][j]; } returntemp; } }0910-37.编写方法intsearchMaxNumIndex(int[]a),寻找已知数组中最大数的下标并返回。 intsearchMaxNumIndex(int[]a){

inti,maxIndex;(1分)

for(i=maxIndex=0;i<a.length;i++){(2分)

if(a[i]>a[maxIndex])(1分)

maxIndex=i;(1分)

}

returnmaxIndex;(1分)

}37.编写一个方法halfArray(),要求该方法有一个元素类型为int的数组参数,方法返回一个新数组,新数组的长度与参数数组的长度相同,而新数组元素的值是参数数组各元素的一半。(6分)[解析]本题考核知识点是面向对象程序设计中的方法设计。编写方法,需要确定方法名,已给出halfArray;再确定参数个数及类型,要求是一个int型数组参数即halfArray(int[]);再就是确定方法返回值类型,要求返回一个新数组,新数组元素类型要确定下来,根据题意,新数组元素是参数数组相应元素的一半,这一半应该可能是小数,所以方法头应该为

[解析]本题考核知识点是面向对象程序设计中的方法设计。编写方法,需要确定方法名,已给出halfArray;再确定参数个数及类型,要求是一个int型数组参数即halfArray(int[]);再就是确定方法返回值类型,要求返回一个新数组,新数组元素类型要确定下来,根据题意,新数组元素是参数数组相应元素的一半,这一半应该可能是小数,所以方法头应该为

float[]halfArray(int[])而不应该是int[]halfAray(int[]),方法体中的一半也应该是除以2.0。并转换成float类型,方法体定义的数组b也应该是float类型。或者返回值类型和数组b的类型都定义成double类型。float[]halfArray(int[]a){(1分)float[]b=newint[a.length];(2分)for(intk=0;k<a.length;k++){(2分)b[k]=float(a[k]/2.0);}returnb;(1分)}4.2字符串1001-14.Java语言提供了两个用于处理字符串的类,它们是__________。String\StringBuffer14.设有两个字符串对象str1和str2,则表达式“strl==str2”的意义是判别字符串strl和str2______。是否引用同一个对象1404-14.Java语言提供的用于处理不可改变的字符串类是______。String4.设有以下代码:Stringsl="123";Strings2="123";Strings3=newString("123");则表达式s1==s2和s1==s3的值分别是()A.true,true B.false,falseC.true,false D.false,true14.已知字节数组b,取由b[i]开始至b[j](其中j≥i≥0)结束的字节字符构造一个字符串s,其语句为:Strings=newString(__b,I,j________);。14.设有字符串定义:Strings="ABCDABCD";则表达式s.indexOf("B")的值是_________。11101-4.以下代码段的输出结果是()Strings="JavaWorld";System.out.print(s.indexOf("a",4));A.-1B.OC.1D.41210-4.已知Strings="ABCDEFGHIJABC",以下说法错误的是A.s.indexOf("C")等于2 B.s.indexOf("EFG",2)等于4C.s.indexOf("A",7)等于10 D.s.indexOf("D",4)等于34.执行下列程序语句后,b的值是Stringa=〃Hello〃;Stringb=a.substring(1,3);A.elB.HeC.ellD.Hel1110-4.在Java语言中,能够实现字符串连接的方法是()A.Stringsubstring(intstartpoint) B.Stringconcat(Strings)C.Stringreplace(charold,charnew) D.Stringtrim()1201-4.表达式"java程序设计".1ength()的值是()A.0B.12C.81201-15.要获得对象的字符串表示,调用的方法是StringtoString()。1010-37.请编写方法intcountNum(Stringstr),该方法的功能是统计已知字符串str中数字的个数。例如,countNum("A42B83C2D")的返回值是5。33.阅读下列程序,请写出该程序的功能。参考答案:程序获得当前日期,将日期的字符串表示输出;(2分)截取日期字符串中从第11位开始到字母‘参考答案:程序获得当前日期,将日期的字符串表示输出;(2分)截取日期字符串中从第11位开始到字母‘C’之前的部分字符串,并输出。(2分)publicclassClass1{publicstaticvoidmain(Srtingargs[]){Datedate1=newDate();System.out.println(datel);Stringt=datel.toString();intendPos=t.indexOf(`C');t=t.substring(11,endPos);System.outprintln(t);}}4.以下是关于字符串运算的代码,执行该代码段的输出结果是()Strings=″0123456789″,sl,s2;sl=s.substring(2);s2=s.substring(2,5);System.out.println(s1+s2);A.0122345 B.234567892345C.012234 D.23456789234java.util.StringTokenizer类用来把字符串分解为标记。4.需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java.util包中的类是()A.String B.StringBufferC.StringTokenizer D.stringTokenizer1001-33.阅读下列程序,请写出该程序的功能。importjava.util.*;importjavax.swing.*;publicclassTest33{publicstaticvoidmain(Stringargs[]){Stringstr=(String)JOptionPane.showInputDialog(null,″请输入信息″,″输入对话框″,JOptionPane.PLAIN_MESSAGE,null,null,null);StringTokenizerpas=newStringTokenizer(str,″,″);intn=pas.countTokens();System.out.println(″输入的信息有单词:″+n+″个,全部单词如下:″);while(pas.hasMoreTokens()){Strings=pas.nextToken();System.out.println(s);}})答:在输入对话框中输入文字,并以多好作为分割符输出单词个数,及各个单词1010-14.使用默认字节字符对应表,将字符串转化为字节数组的方法是______。getBytes()1001-37.请编写方法voidstrReverse(Stringstr),该方法的功能是输出一个新字符串,新字符串字符排列顺序与原字符串str的字符排列顺序相反。例如,strReverse(″ABCD″)所输出的结果是″DCBA″。请使用字符串与字节数组的相互转换方法进行设计。答:publicstaticvoidstrReverse(Stringstr){ byte[]s=str.getBytes(); Stringt=""; for(inti=s.length-1;i>=0;i--){ t+=(char)s[i]; } System.out.println(t);}第五章图形界面设计(一)创建框架窗口的方法,设计标签、按钮和按钮事件的处理方法面板,布局设计,文本框和文本区数据输入和输出的方法5.1图形界面设计基础领会:AWT和Swing的基础知识,组件和容器,事件驱动的概念5.能够直接添加组件的Swing容器是A.JFrameB.JDialogC.JWindow DJPanel1404-5.某Java程序的类A要利用Swing创建框架窗口,则A需要继承的类是A.JWindowB.JFrameC.JDialog D.JApplet5.以下关于AWT与Swing之间关系的叙述,正确的是()A.Swing是AWT的提高和扩展B.在写GUI程序时,AWT和Swing不能同时使用C.AWT和Swing在不同的平台上都有相同的表示D.AWT中的类是从Swing继承的15.一个基于Swing的应用程序可能在任何平台上都会有相同的______。外观与风格1010-5.在以下Swing的类中,属于容器的是()A.JappletB.JbuttonC.JTextArea D.JMenu1101-5.以下不属于AWT库中定义的类是()A.ComponentB.ContainerC.ImagesD.Graphics1101-23.请写出JFrame、Frame以及Window这三个类的继承关系(按照从父类到子类顺序排列)。Window>frame>jframe1110-5.在以下供选择的容器类中,属于顶层容器的是()A.JDialogB.JPanelC.JScrollPane D.JToolBar1210-5.以下Swing提供的GUI组件类和容器类中,不属于顶层容器的是A.JFrameB.JAppletC.JDialog D.JMenu2框架窗口综合应用:声明JFrame的子类和创建JFrame窗口5.要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是()A.JFrame(s) B.window(s)C.newJFrame(s) D.super(s)5.在Swing中,它的子类能用来创建框架窗口的类是(B)A.JWindowB.JFrameC.JDialog D.JApplet1110-15.用Swing编写GUI程序时,通常用__Jframe__类派生的子类创建窗口对象。24.请写出在JFrame框架窗口对象中添加组件的步骤。5.3标签、按钮和按钮事件简单应用:声明和创建按钮标签综合应用:声明和创建按钮和按钮事件的处理1210-15.为了让监视器与事件对象关联起来,需要对事件对象做__监视器注册____,告诉系统事件对象的监视器。1404-23.请写出对事件对象作监视器注册的作用。1110-22.请写出Java语言中编写事件处理程序的两种方案。1110-23.请写出代码段,用来创建一个标签对象lbl,显示文字为“Java”,背景色设为绿色。15.在实现接口ActionListener的方法actionPerformed()中,常用的有两个获得事件源的方法,它们是getActionCommand()和_________。getSource()1404-15.要使得已注册的按钮对象暂时不响应事件,需使用的方法是______。setEnabled()1001-15.某程序用代码“JTextFieldtext=newJTextField();”创建了一个文本框,并对这个文本框注册了监视器,则在监视器处理方法actionPerformed(ActionEvente)中,判定是在这个文本框上发生事件的条件表达式是__________。e.getSource()==text1001-23.请写出Java语言编写事件处理程序的两种主要方案。(P87)28.某程序的界面包含一个文本区text1、一个文本框text2和一个按钮button。实现在文本区中输入整数序列后,点击按钮,程序响应按钮事件,累计文本区输入的整数序列,并将总和输出在文本框中。这里给出的是其中相应按钮事件的方法。publicvoidactionPerformed(ActionEvente){intsum;if(e.getSource()==button){Strings=text1.________;//获取text1中的信息StringTokenizerfenxi=newStringTokenizer(s,",,,\n");intn=fenxi.countTokens();doublea[]=newdouble[n];参考答案:

getText()

参考答案:

getText()

sum+=a[i]或sum=sum+a[i]Stringtemp=fenxi.nextToken();a[i]=Double.valueOf(temp).doubleValue();}sum=0;for(inti=0;i<n;i++){__________;}text2.setText(""+sum);//刷新显示。}0910-28.某小应用程序窗口包含有文本区dispArea,以及一个带文字“追加”的按钮。当点击这个按钮时,程序弹出一个输入信息的对话框,并将对话框中输入的内容追加到文本区中。以下是其中相应“追加”按钮事件的方法。publicvoidactionPerformed(ActionEvente){if(e.______.equals("追加")){Stringresult=(String)JOptionPane.showInputDialog(null,"请输入信息","输入对话框",JOptionPane.PLAIN_MESSAGE,null,null,null);dispArea.______(result+"");getActionCommand()

getActionCommand()

append}1010-28.某小应用程序窗口中有一个文本框,一个8行10列的文本区以及一个按钮,点击这个按钮时,在文本框中输入的内容会追加到文本区中。importjava.applet.*;importjavax.swing.*;importjava,awt.event.*;publicclassTextAPPextendsAppletimplementsActionListener{JTextFieldinput;JTextAreadisplay;JButtonappend;publicvoidinit(){input=newJTextField(10);display=new;append=newJButton("追加");add(input);add(display);add(append);input.requestFocus();display.setLineWrap(true);append.addActionListener(this);}publicvoidactionPerformed(ActionEvente),{display.(input.getText()+"");}}5.4面板综合应用:声明JPanel类的子类,创建JPanel对象简单应用:声明JScrollPane类的子类,创建JScrollPane对象1010-15.在Swing中,带有滚动条的面板的类名是______。JScrollPane1101-15.在Swing中,面板有两种,一种是JPanel,另一种是__JScrollPane____。5.5布局设计综合应用:FlowLayout,BorderLayout,Cardlayout,GridLayout布局设计策略设计界面识记:null布局与setBounds方法1201-24.请写出创建一个JPanel对象p,并为对象p设定GridLayout布局的代码。JPanelp=newJPanel();p.setLayout(newGridLayout());15.将容器区域分成东、南、西、北、中五个区域的布局类是_BorderLayout_____。5.以下是关于FlowLayout布局组件排列顺序的叙述,正确的是()A.从上到下排列 B.从左到右排列C.从下到上排列 D.从右到左排列1201-5.以下关于BorderLayout布局的叙述中,不正确的是()A.把容器内的空间划分成5个区域 B.加入组件应该指明要放入的区域C.是框架窗口的默认布局 D.一个位置可直接放多个组件34.阅读下列程序,请用示意图画出程序运行时呈现的界面。importjava.applet.*;importjava.awt*;importjavax.swing.*;classMyPanelextendsJPanel{JButtonbutton;JLabellabel;MyPanel(Strings1,Strings2){this.setLayout(newGridLayout(2,2));button=newJButton(s1);label=newJLabel(s2,JLabel.CENTER);add(button);add(label);add(newJLabel());}}publicclassClass1{publicstaticvoidmain(Stringargs[]){JFramemw=newJFrame("一个示意窗口");mw.setSize(400,250);Containercon=mw.getContentPane();con.setLayout(newBorderLayout());MyPanelpanel1,panel2;panel1=newMyPanel("按钮1","标签1");panel2=newMyPanel("按钮2","标签2");JButtonbutton=newJButton("开始按钮");con.add(panel1,"North");con.add(panel2,"South");con.add(button,"Center");mw.setVisible(true);}}1001-34.阅读下列程序,请用示意图画出程序运行时呈现的界面。importjava.applet.*;importjava.awt.*;importjavax.swing.*;classMyPanelextendsJPanel{JTextFieldtextl,text2;MyPanel(Stringsl,Strings2){textl=newJTextFieId(s1);text2=newJTextField(s2);add(text1);add(text2);}}classMySubPanelextendsMyPanel{JTextFieldtext;MySubPanel(Stringsl,Strings2,Strings3){super(s1,s2);text=newJTextField(s3);add(text);}}publicclassTest34{publicstaticvoidmain(Stringargs[]){JFramemw=newJFrame(″一个示意窗口″);mw.setSize(350,150);Containercon=mw.getContentPane();con.setLayout(newBorderLayout());MyPanelpl=newMyPanel(″文本框l″,″文本框2″);MySubPanelp2=newMySubPanel(″文本框3″,″文本框4″,″文本框5″);JTextAreatext=newJTextArea(″这里是一个文本区″);con.add(pl,″North″);con.add(p2,″South″);con.add(text,″Center″);mw.setVisible(true);}}6文本框和文本区综合应用:声明和创建文本框,处理文本框事件和在文本框中输入输出数据声明和创建文本区域,将文本区域放置于滚动面板,在文本框中输入输出数据23.请写出程序处理文本框输入结束事件(回车)添加监视器的方法,以及监视器类必须实现的接口方法。参考答案:(P102)为对象添加监视器的方法是addActionListener;类必须实现的方法是

publicvoidactionPerformed(ActionEvente)。34.阅读下列程序,请写出该程序的功能。importjava.applet.*;importjavax.swing.*;importjava.awt.event.*;publicclassClasslextendsAppletimplementsActionListener{JTextFieldtext1,text2;publicvoidinit(){text1=newJTextField(10);text2=newJTextField(10);setSize(200,100);add(text1);add(text2);text1.addActionListener(this);}publicvoidactionPerformed(ActionEvente){在第一个文本框输入数据,输入结束(回车)后,(2分)在第二个文本框输出该整数的平方。(2分)longn;在第一个文本框输入数据,输入结束(回车)后,(2分)在第二个文本框输出该整数的平方。(2分)if(e.getSource()==text1){n=Long.parseLong(text1.getText());text2.setText(String.valueOf(n*n));}}}1010-34.阅读下列程序,请写出该程序的功能。importjava.awt.*;importjavax.swing.*;importjava.applet.*;importjava.awt.event.*;publicclassClasslextendsAppletimplementsActionListener{JTextFieldTextI=newJTextField(5);JTextFieldText2=newJTextField(5);JTextFieldText3=newJTextField(5);JLabelLabel1=newJLabel("Pleaseinputthreenumbers:");JLabelLabel2=newJLabel("");JButtonbut=newJButton("Start!");publicvoidinit(){setLayout(newGridLayout(6,1));add(Label1);add(Textl);add(Text2);add(Text3);add(but);add(Label2);Label2.setFont(newFont("Courier",1,20));but.addActionListener(this);}publicvoidactionPerformed(ActionEvente){inta,b,c;a=Integer.parseInt(Text1.getText());b=Integer.parselnt(Text2.getText());c=Integer.parselnt(Text3.getText());if(a+b<c||b+c<a||c+a<b){Label2.setForeground(Color.red);Label2.setFont(newFont("Courier",1,24));Label2.setText("No.");}else{Label2.setForeground(Color.blue);Label2.setFont(newFont("Courier",2,24));Label2.setText("Yes.");}}}38.一个Java小应用程序,界面有三个文本框和两个按钮,前两个文本框用于输入整数,第三个文本框用于输出结果。两个按钮分别表示加和减运算。当前两个文本框输入整数后,点击相应按钮,程序就将计算结果输出在第三个文本框中。以下是程序的大部分,其中监视按钮事件的方法未给出,试编写处理按钮事件的方法。注:这里是给定部分的程序,你要编写的是actionPerformed(ActionEvente)方法。importjava.applet.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;classPanel1extendsJPanel{JTextFieldtext1,text2,text3;JButtonaddButton,subButton;Panel1(){text1=newJTextField(10);text2=newJTextField(10);text3=newJTextField(10);setLayout(newGridLayout(5,1));addButton=newJButton("加");subButton=newJButton("减");add(text1);add(text2);add(text3);add(addButton);add(subButton);}}publicclassClasslextendsAppletimplementsActionListener{Pane1panel;//持有需访问对象的引用publicvoidinit(){setSize(100,200);panel=new

温馨提示

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

评论

0/150

提交评论