编写一个java程序,输入一个整形数或java字符串转整形数组,得到相应小数点后位数的圆周率值。

Java中 怎么保证小数点后一直是七位 如3.1415926 多的舍掉 少的添0_百度知道
Java中 怎么保证小数点后一直是七位 如3.1415926 多的舍掉 少的添0
我有更好的答案
double&f&=&3.2;&//原始数据DecimalFormat&df=new&DecimalFormat(&#.0000000&);System.out.println(df.format(f));结果为:3.1415942
采纳率:59%
为您推荐:
其他类似问题
小数点的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。当前位置: >>
java习题集
第一章 Java 语言概述 一、判断题 1.Java 语言不区分大小写。 )2.Java 程序源文件的扩展名为“*.class”( ) 3.Java 程序中都含有 main 方法,因为 ( 。 它是所有 Java 程序执行的入口。 ) 4. ( Java 程序可以运行在任何操作系统上, 只要有对应操作系统的虚拟机。 ) 5. ( Java 程序源文件名应该与主类名保持一致。 ) ( 二、选择题 1.作为 Java 程序应用程序入口的 main 方法,其声明格式是: ) ( A public static int main (String args[ ]) B public static void main (String args[ ]) C public void main (String args[ ]) D public int main (String args[ ]) 2.设有一个 Java 小程序,源程序名为 Appfirst.java,其 HTML 文件为 Appfirst.html,则 运行该小程序的命令为。 ) ( A java Appfirst B javac Appfirst.java C appletviewer appfirst.java D appletviewer appfirst.html 3.下面命令正确的是。 ) ( A Java appfirst. java B Java appfirst C Java appfirst. class D Javac appfirst 4.对主类的说明正确的是。 ) ( public class Helloworld { public static void main(String args[ ]) { System.out.println(&欢迎访问 Java 世界!&);} } A 源程序无法通过编译,因为主方法的声明不正确 B 源程序可以通过编译,但无法运行,因为该文件没有 public 类 C 源程序可以通过编译,但在运行时会出现“程序中没有主方法的异常”D 程序能正常运行 5.如果已经编写了 Java 小程序 Appfirst.java,在编写它所对应的 HTML 文件时能正确将 其嵌入到 HTML 网页文件的语 句是。 ) ( A &applet code=”Appfirst.java” width=300 height=60&&/applet& B &applet code=”Appfirst” width=300 height=60&&/applet& C &applet code=”Appfirst.class” width=300 height=60&&/applet& D 以上都不对。 三、简答题 1 Java 语言的编译过程与一般编程语言的编译过程有何不同? 2、Java 开发 Application 和 Applet 小程序,主要区别是什 么? 四、编程题 1.编写一个 Java 应用程序,屏幕运行结果如下图所示: Hello java! 2.对第 1 题的 Java 应用程序改写成为 Applet 程序,注意 Application 和 Applet 的区别, 并分别用 appletviewer 和 IE 浏览器查看结果。 第二章 Java 编程基础 一、判断题 1. “//”即可以表示单行注释,也可以表示多行注释。 ) 2.Java 中的整型 int 占 2 个字节,取值范围为-3。 ( ( ) 3.在 Java 语言中,执行语句 ”boolean t=1 && 0;”的结果是给 boolean 类型变量 t 赋初 值为 false。 ) 4.声 ( 明变量时必须定义一个类型。 ( ) 5.注释的作用是使程序在执行时在屏幕上显示注释符号之后的内容。 ) 6.Java 认 ( 为变量 Sum 与 sum 是相同的。 ( ) 7.求模运算符(%)只可用于整型操作数。 ( ) 8.算术运算符*,/,%,+和有相同的优先级。 ( ) 9.Java 语言中的标识符可以以数字、字母或下划线开头。 ( ) 10.Java 中小数常量的默认类 型为 float 类型,所以表示单精度浮点数时,可以不在后面加 4 F 或 f。 ( ) 二、选择题 1.下面这些标识符那个是错误的: ) A Javaworld B _sum C 2Java Program D $abc ( 2.下列那组基本数据类型所占的字节数相同。 ) A 布尔型和字符型 B 整型和单精度型 C 字节型和长整型 D 整型和双 ( 精度型 3.下列那一组运算符的优先级顺序是那由高到低排序的。( ) A |、&、 B&、^、||; C ! !; 、%、++; D &、&&、++ 4.下面哪个赋值语句不会产生编译错误( ) A char a=?abc?; B byte b=152; C float c=2.0; D double d=2.0; 5.下面哪个单词是 Java 语言的关键字。 ) A False B FOR C For ( D for 6.有如下的程序: ) ( public class Welcome3 { public static void main( String args[] ) { System.out.println( &How\nare\nyou!\n& ); } } 则它的输出结果是: A How are you ! B How are you ! C How are you ! D How are you! 7.执行下面程序后,哪个结论是正确的( ) int a,b,c; a=1 ; b=3 ; c=(a+b&3 ?++a:b++) A a 的值为 2,b 的值为 3,c 的值为 1 B a 的值为 2,b 的值为 4,c 的值为 2 C a 的值为 2,b 的值为 4,c 的值为 1 D a 的值为 2,b 的值为 3,c 的值为 2 A char a=?abc?; B byte b=152; C float c=2.0; D double d=2.0; 8.设各个变量的定义如下,哪些选项的值为 true( ) int a=3,b=3; boolean flag= A ++ a = =b B ++a= =b++ C (++a= =b) || flag D (++a= =b) & flag 9.使整值变量 x 加 1,下面写出的形式不对的是: ) A x + + B + + x C x = x + 1 D x = + 1 ( 10.下面表达式的值的类型为( ) (int)6.5/7.5*3 A short B int C double D float 11.设 a,b,x,y,z 均为 int 型变量,并已赋值,下列表达式的结果属于非逻辑值的是( )。 A.x&y && b&a B C z&x-y C y==++x D y+x*x++ 12.下面语句输出的结果为( ) system . out . println(5^2) A6 B7 C 10 D 25 13.设 x 为 int 型变量,则执行以下语句段后,x 的值为( ) x=15; x+=x-=x-x; A 10 B 20 C 30 D 40 14.对下面的语句执行完正确的说法是( ) int c=?c?/3; System.out.println(c) ; A 输出结果为 21 B 输出结果为 22 C 输出结果为 32 D 输出结果为 33 15.以下选项中变量 a 以定义类型,合法的赋值语句为( ) A a= int(y) B a==1 C a=a+1=3 D ++a 16.阅读以下程序,选择正确的答案( ) int x=7,y=8,z=9;6 char ch='A'; x++;z--; System.out.println(x= =y); System.out.println(y=z--); System.out.println(x= =z); System.out.println(ch++= ='A'); System.out.println(ch++= ='B'); A 程序输出结果均为布尔值 B 程序中输出 3 个 true C 程序运行后,ch 的值为‘C’ D 程序运行后,z 的值为 8 17.执行下列程序段后,b,x,y 的值正确的是( ) int x=3,y=4; ch=x&y||++x==--y; A true,3,4 B true,4, 3C false,3,4 D false,4,3 18.执行下列程序段后,b,x,y 的值正确的是( ) int x=3,y=4; ch=x&y|++x==--y; A true,3,4 B true,4,3 C false,3,4 D false,4,3 三、简述题 1.Java 有那些基本数据类型。写出 int 型所能表达的最大、最小数据。 2.Java 有哪些算术运算符、关系运 算符、逻辑运算符、位运算符和赋值运算符?试列举单 目和三目运算符。 3. 写出下面表达式的运算结果, a=2,b=-4,c=true。(1) - - a % b+ + (2) ( a &= 1 && a &= 10? a : b) (3) c ^( a & b) (4) 设 (- - a )& &a (5) (double)(a+b)/5+a/b 第三章 Java 的控制结构 一、判断题 1.default 在 switch 选择结构中是必需的。 )7 2.break 语句在 switch 选择结构是必需的。 ) 3.while 循环中循环体至少 ( ( 执行一次。 ) 4.if 结构和 if/else 结构所做的动作是相同。 ) 5. break 语句只用于循环语句中,它起到终止本次循环的 ( ( 作用。 ) 6. continue 语句只用于循环语句中,它起到终止本次循环的作用。 ) 7.结构化程序设计提高了程序的清晰简 ( ( 单性,并且它只需使用三种形式的控制结构就足够了。 ( ) 二、选择题 1.所有的程序均可以用几种类型控制结构编写。( ) A 顺序结构、选择结构、循环结构 B 顺序结构、循环结构 C 顺序结 构、选择结构 D 选择结构、循环结构 2.当条件为真和条件为假时,( )控制结构可以执行不同的动作。 A switch B while C for D if/else 3.下面程序片段输出的是什么? ( ) int a=3; int b=1; if(a=b)System.out .println(“a=”+a); A a=1 B a=3 C 编译错误, 没有输出 D 正常运行,但没有输出 4.下面程序的输出结果是:( ) public class Test{ void printValue(int m){ do { System .out .println(“The value is”+m); } while(- - m&10); } public static void main(String arg[]){ int i=10; Test t= new Test(); t.printValue(i); } } A 8 B 9 C 10 D 11 5.下列语句执行后,x 的值为( ) int a=4,b=5,x=3; if(++a==b) x=x*a; A 3 B 12 C 15 D 20 6. 下列语句执行后, 的值为( ) int x=3,y=4,z=0; switch(x%y+2) { case 0:z=x*y; case 6:z=x/y; case 12:z=x-y; z default:z=x*y-x; } A 15 B 0 C -2 D 12 7.请看下面的程序代码:( ) if(x&0) { System .out .println(“first”);} else if(x&20) { System .out .println(“second”);} else { System .out .println(“third”) } 当程序输出“second”时,x 的范围为: A x & = 0 B x & 20 && x & 0 C x & 0 D x &= 20 8.请看下面的程序代码: ) switch(n) { case 0: System .out .println(“first”); case 1: case 2: System .out .println(“second”); ( default: System .out .println(“end”); } 当 n 为何值时,程序段将输出字符串 second:A 0 B 1 C 2 D 以上都可以 9.下列语句执行后,x 的值是( ) int x=2; do {x+=x; }while(x&17); A4 B 16 C 32 D 256 10.下列语句执行后,j 的值是( ) int j=3,i=3; while(--i!=i/j) j=j+2; A4 B5 C6 D7 11.下列语句执行后,i,j 的值是( ) int i=1, j=8; do {if(i++&--j) continue;}while(i&4); A i=4,j=5 B i=5,j=4 C i=4,j=5 D i=5,j=6 12. 下列语句执行后,k 的值是( ) int j=4,i,k=10; for(i=2;i!=j;i++) k=k-i; A4B5C6D7 13. 下列语句执行后,c 的值是( ) char c='\0'; for(c='a';c&'z';c+=3) { if(c&='e') } A ?e? B ?d? C ?f? D ?g? 14.下列语句执行后,k 的值是( ) int i,j,k=1; lable:for(i=1;i&8;i++) { for(j=1;j&6;j++) { k*=i+j; if(j==3) } } A 22 B 23 C 24 D 25 15.下列语句执行后,k 的值是( ) int i,j,k=1; lable:for(i=1;i&3;i++) { for(j=1;j&4;j++) { k+=i+j; if(j==3) } } A 22 B 23 C 24 D 25 三、程序填空 1 以下程序的功能是:求 s=1/2+1/6+1/12+1/20+??+1/(19*20);请将下列程序补充完 整。 double s=0.0; 2.求 1-100 内的奇数并输出。 int n=1; public class oddnum{ do public static void main(String[] args) {s= ① { ; ① n= ② {if( ② ;}while(n&20); ) System.out.println(s); 11 四、编程题 System.out.print(i+&,&);} 1.打印九九乘法表 2.编写一个求 1!+2!+3!+ ?+10! }} 3.编写一个应用程序,计算和打印从 1 加到 10 的累加和。用 while 结构循环执行 计算及加 1 语句。循环必须在 x 加到 11 时终止。 第四章 方法 一、判断题 1.Java 语言的模块只有类。 ) 2.定义方法时方法名可以是任何标识符。 ) 3.方法体中至少有一条 return ( ( 语句。 ) 4.如果需要可以在方法中再声明一个方法。 ) 5.方法定义语句 void x( int a,int b ) { return (a-b); }是正确的。 ( ( ( ) 6.方法内定义的变量是可以在方法外使用的。 ) 7.只有直接调用自身的方法才叫递归方法。 ) 8.Java 中允 ( ( 许两方法同名,只要它们参数的类型或个数不同就行。 ) 9.每个应用程序都必须要有 main 方法。 ( ) 10.方法定 ( 义语句 float x( int a,int b ) { return (a-b); }是正确的。 ) ( 二、选择题 1.方法的作用不包含: A 使程序结构清晰 A 功能复用 A 代码简洁 A 重复代码 2.方法内定义的变量: A 一定在方法内所有位置可见 B 可能在方法内的局部位置可见 C 在方法外可以使用 D 在方法外 可见 3.方法的形参: A 可以没有 B 至少有一个 C 必须定义多个形参 D 只能是简单变量 4.方法的调用: A 必须是一条完整的语句 B 只能是一个表达式 C 可能是语句,也可能是表达式 D 必须提供实际参数 5.return 语句: A 不能用来返回对象 B 只可以返回数值 C 方法都必须含有 D 一个方法中可以有多个 return 语句 6.void 的含义: A 方法体为空 B 方法体没有意义 C 定义方法时必须使用 D 方法没有返回值 7.main()方法的返回类型是: A boolean B int C void D static 8.方法重载所涉及的方法: A 有相同的名字 B 参数个数必须不同 C 参数类型必须不同 D 返回类型必须不同 三、阅读程序写结果。 1.public class Class431 { public static void main(String[] args) { int a = 3; char m='a'; prt(&m in main=&+m); prt(&a in main=&+a); prt(&return from test2 : &+test2()); prt(&m + a=&+test1(m,a)); } static float test1(char x, int y) { int z = x+y;13 } static float test2() { int a = 60; for (int i = 8; i & 12; i++) a= a+i; prt(&a in test2 is : &+a); } static void prt(String s) { System.out.println(s); } } 2.public class Class432 { static int i=123; public static void main (String[] args) { int i=456; System.out.println(&main( ) 中的 i=&+i); m1( ); m2( ); } static void m1( ) { int i=789; System.out.println(&m1( ) 中的 i=&+i); } static void m2( ) { System.out.println(&类变量 i=&+i); i+=6; System.out.println(&加 6 后的类变量 i=&+i); } } 14 四、编程题 1.用两个方法打印出 200 以内的全部素数(一个是 main()方法,一个是专门判定一个数是 否为素数的方法) 2.已知菲 。 波那契数列的数学表达式为: fibonacci(n)=n, n=0,1; fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n≥2; 用递归方法计算 Fibonacci 序列, 并打印出其 前 15 项的值。 3.编写一个 Application,其中包含三个同名方法 mySqrt(),它们都只有一个参数,参数的 类型分别为 int 型、float 型和 double 型,它们的功能均为返回参数的平方根,返回值的类 型与参数的类型相同。在方法 main( ) 中调用上面的三个方法 并输出结果。 4.编程生产 100 个 1 到 6 之间的随机数,统计 1 到 6 每个数出现的概率。 第五章 数组与字符串 一、判断题 1.下标是用于指出数组中某个元素位置的数字或变量。 ) 2.同一个数组中可以存放多个不同类型的数据。 ( ( ) 3.数组的下标可以是 int 型或 float 型。 ) ( 4.数组可以声明为任何数据类型。 ) 5. 执行语句 int a[]后数组元素的值为 0。 ) 6.假定整形数组的某个元素被传递 ( ( 给一个方法并被该方法修改。 当调用方法执行完毕时, 个元素中含有修改过的数值。 ) 7. 执行语句 int a[] = new int[50] 这 ( 后数组元素的值为 0。 ) 8. 对于二维数组 s 来说,s [2].length 给出数组 s 第 2 行的元素个数。 ) 9.数组作参数时, ( ( 数组名后必须加方括号。 ) 10.用运算符“==”比较字符串对象时,只要两个字符串包含的是同一个值,结果便为 true。 ( ( ) 11.String 类字符串在创建后可以被修改。 ) 12.方法 replace (String srt1, String srt2)将当前字符串中所有 srt1 子 ( 串换成 srt2 子串。 13.方法 compareTo 在所比较的字符串相等时返回 0。 ) 14.方法 IndexOf((char ch,-1)返回字符 ch ( 在字符串中最后一次出现的位置。 ) 15.方法 startsWith 判断当前字符串的前缀是否和指定的字符串一致。 ) ( ( 二、选择题 1.数组元素之所以相关,是因为它们具有相同的xx。 A 名字 B 类型 C 下标 D 地址 2.设有定义语句 int a[ ]={66,88,99}; 则以下对此语句的叙述错误的是xx。 A 定义了一个名为 a 的一维数组 B a 数组有 3 个元素 C a 数组的元素的下标为 1~3 D 数组中的每个元素是整型 3.为了定义三个整型数组 a1.a2.a3,下面声明正确的语句是xx。 A intArray [ ] a1,a2; int a3[ ]={1,2,3,4,5}; B int [ ] a1,a2; int a3[ ]={1,2,3,4,5}; C int a1,a2[ ]; int a3={1,2,3,4,5}; D int [ ] a1,a2; int a3=(1,2,3,4,5); 4.设有定义 int[ ] a=new int[4]; ,a 的所有数组元素是xx。 A a0, a1, a2, a3 B a[0], a[1], a[2], a[3] C a[1], a[2], a[2], a[4] D a[0], a[1], a[2], a[3], a[4] 5.下面哪个选项正确地声明了一个字符串数组: A char str[] B char str[][] C String str[] D String str[10] 6. 请看下面的程序段: public class class1{ public static void main(String a[]) { int x [] = new int[8]; System .out .println(x [1]); } } 当编译和执行这段代码时会出现: A 有一个编译错误为“possible reference before assignment” B 有一个编译错误为“illegal array declaration syntax” C 有异常出现为“Null Pointer Exception” D 正确执行并且输出 0 7.已知 String 对象 s=&abcdefg&,则 s.substring(2, 5)的返回值为____。 A &bcde& B &cde& C &cdef& D &def& 8.请看下面的代码 String s = “people”; String t = “people”; String c[ ] = {?p?,?e?,?o?,?p?,?l? ,?e?}; 下面哪一选项的语句返回值为真: A s .equals(t); B t .equals(c); C s==t; D t .equals(new String(“people”)); E. t==c; 9.已知 s 为一个 String 对象,s=&abcdefg&,则 s.charAt(1)的返回值为____。 A a B b C f D g 10.请看下面的代码 String s = “good”; 下面选项语句书写正确的是: A s += “student”; B char c = s[1]; C int len = s . D String t = s.toLowerCase( ); 11.正确创建一个含有 5 个元素的字符串数组的选项是: A String s[ ] = new String[5]; for(int i=0;i&5;s[i++]=“”); B String s[ ]={“”, “”, “”, “”, “”}; C String s[5]; D String [5]s; 12.请看下面的代码 public class class1{ String str = new String(&Girl&); char ch[ ]={'d','b','c'}; public static void main(String args[ ]){ class1 x=new class1( ); x.change(x.str,x.ch);System .out .println(x.str +& and &+x.ch[0]+x.ch[1]+x.ch[2]); } public void change(String str,char ch[ ]){ str=&Boy&; ch[0]='a'; } }该程序的输出结果是: A Boy and dbc B Boy and abc C Girl and dbc D Girl and abc 三、填空题 1. 定义一个整型数组 y, 它有 5 个元素分别是 1, 3, 5。 2, 4, 用一个语句实现对数组 y 的声明、 创建和赋值: ____________。 2.设有整型数组的定义:int x [][]={{12,34},{-5},{3,2,6}};,则 x.length 的值为____。 3.求取二维数组 a [][] 第 i 行元素个 数的语句是______。 4.若有定义 int[ ] a=new int[8]; 则 a 的数组元素中第 8 个元素的下标是__ 。 5.已知 String 对象 s=“hello” ,运行语 句 System.out.println(s.concat (“World !”)); 后 s 的值为____。 6.使用+ =将字符串 s2 添加到字符串 s1 后的语句是 ________。 7.比较 s1 中的字符串和 s2 中的字符串的内容是否相等的语句是________。 8. 已知 sb 为 StringBuffer 的一个实例, 且 sb= &abcde &, 则 sB reverse()后 sb 的值为____。 9. 已知 sb 为 StringBuffer 的一个实例,且 sb= &abcde &,则 sB delete(1,2)后 sb 的值为 ____。 10. 用 for 循环求一维整型数组 a 数组的所有元素之 和的语句段是__________。 11.下面程序的功能为计算数组各元素的和,完成程序填空。 import javA awt.G import javA applet.A public class SumArray extends Applet { int a[] = { 1, 3, 5, 7, 9, 10 }; public void init() { total = 0; for ( int i = 0; ___________; i++ ) total=______________; } public void paint( Graphics g ) { g.drawString( &Total of array elements: & +total, 25, 25 ); } } 12.下面程序的功能为计算数组下标为奇数的各元素的和, 完成程序填空。 import javA awt.G import javA applet.A public class SumOfArray _______ Applet { public void paint( Graphics g ) { int a[] = { 1, 3, 5, 7, 9, 10 }; int total=0; for ( int i = 1; i & A _______ ) total+=a[i]; g.drawString( &Total of array elements: & + total, 25, 25 ); } } 四、编程题 1.编写自定义方法生成 k 个 50~100 之间的随机整数,再另写一个输出方法。在应用程序的 main( )方法中调用这两个 方法,生成一个整型数组并输出该数组的所有元素。 2.编写一个 Application 程序, 比较命令行中给出的两个字符串是否相等, 并输出比较的结 果。 3. 请编写一个 Application 实现如下功能:接受命令行中给出的一个字母串,先将该串原样 输出,然后判断该串的第一个字母是否为大写,若是大写 则统计该串中大写字母的个数,并将 所有大写字母输出;否则输出信息串”第一个字母不是大写字母!” 4.一个应用程序, 。 接受用户输入的一行字符串,统计字符个数,然后反序输出。 第六章面向对象编程 一、判断题 1.不需要定义类,就能创建对象。 ) 2.构造方法用于给类的 private 实例变量赋值。 )19 3.对象一经声明就 ( ( 可以立即使用。 ) 4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。 ) 5.Java 程序中的参数传递都 ( ( 是把参数值传递给方法定义中的参数。 6.在类定义中,成员访问权限修饰符不能多次出现。 ) 7.new 操作符动态地为对 ( 象按其指定的类型分配内存,并返回该类型的一个引用。 ( ) 8.类的方法通常设为 public,而类的实例变量一般也设为 public。 ) 9.构造方法在创建对象时被调用。 ) 10.通过点运算符与类对象的引用相连,可以访问此类的成员。 ) 11. ( ( ( 声明为 protected 的类成员只能被此类中的方法访问。 ) 12.同一个类的对象使用不同的内存段,但静态成员共享相同的内 ( 存空间。 ) 13.类的成员变量可以放在类体的任意位置。 ) 14.声明为 protected 的类成员可以被此类作用域中的任何对 ( ( 象访问。 ) 15.没有返回值的方法可以用 void 来表示,也可以不加。 ) ( ( 二、选择题 1. 下面对对象概念描述错误的是:( ) A 操作是对象的动态属性 B 任何对象都必须有继承性 C 对象间的通讯靠消息 传递 D 对象是属性和方法的封装体 2.编译并运行下面的程序,运行结果为:( ) public class A { public static void main(String[] args) { A a=new A(); a.method(8); } void method(int i) { System.out.println(“int: “+i); } void method(long i) { System.out.println(“long: “+i); } } A 程序可以编译运行,输出结果为 int:8B 程序可以编译运行, 输出结果为 long:8 C 程序有编译错误,因为两个 method()方法必须定义为静态(static)的 D 程序可以编译运行,但没有输 出 3.下面关于类的说法不正确的是: ) A 类是 Java 语言中的一种复合数据类型 B 类中不包含数据变量和方法 C 类是对 ( 所有具有一定共性的对象的抽象 D Java 语言的类只支持单继承 4.能作为类及其成员的修饰符是: ) A interface B class C protected D public ( 5.设 x、y 均为已定义的类名,下列声明对象 x1 的语句不可能正确的是: ) A public x xl=new y(); B public y xl=new ( x(); C x xl=new x(); D x xl=x(); 6.面向对象程序设计技术的特点是: ) A 可重用性 B 可维护性 C 表示方法的一致性 D 可重用性、可维护性、表示方 ( 法的一致性 7.下列方法定义中,方法头不正确的是: ) A public static x(double a){…} B public static int x(double y){…} C void x(double ( d) D public int x(){…} 8.设已声明了一个类 A 的两个对象 al、 a2,为了初始化 a1 和 a2,下面语句正确的是: ) ( A al=new(); a2=new(); B al=A new(); a2=A new(); C al,a2=new A(); D al=new A(); a2=new A(); 9.构造方法何时被调用?( ) A 类定义时 B 使用对象的变量时 C 调用对象方法时 D 创建对象时 21 10.下列哪个类声明是正确的?( ) A public abstract class Car{…} B abstract private move(){…} C prot D abstract final class Hl{…} 11.下列不属于面向对象程序设计的基本特征的是: ) A 抽象 B 封装 C 继承 D 静态 ( 12.请看下面的程序段 class Person { String name, public Person(String n) { name = } public Person(String n,int a) { name = age = } public Person(String n,String d,int a) { //doing the same as two arguments version of constructer //including assignment name=n,age=a } } 下面那一选项可以添加到“//doing the same??”处: ) A Person(n,a) B this(Person(n,a)) C this(n,a) D this(name.age) ( 13. )是一个特殊的方法,用于对类的实例变量进行初始化。 A 终止函数 B 构造函数 C 重载函数 D 初始化函数 ( 14.关于变量和它们范围的说法,正确的是: ) ( A 实例变量是类的成员变量 B 实例变量要用关键字 static 来声明 C 在一个方法执行时,定义在该方法的局部变量才被创 建 D 局部变量必须在它们使用前初始化 15. 请看下面的程序段 class Test{ public static void fun(){ //some code… } } 方法 fun()如何来访问变量 m: ) A ( 将 private int m 改成 protected int m B 将 private int m 改成 public int m C 将 private int m 改成 static int m D 将 private int m 改成 int m 16.在 Java 中,方法 main()将返回一个( )值。 A String B int C char D void 17.有一个类 A,对于其构造函数的声明正确的是( ) A void A(int x){…} B public A(int x){…} C A A(int x){…} D int A(int x){…} 18.请看下面的程序段 public class Test { long a[ ] = new long[10]; public static void main(String arg[ ]) { System .out .println(a[6]); } } 那一个选项是正确的: ) A 不输出任何内容 B 输出 0 C 当编译时有错误出现 D 当运行时有错误出现 ( 19.关键字( )表明一个对象或变量在初始化后不能修改。 A extends B final C this D finalizer 20.声明为 static 的方法不能访问( )类成员。 A 超类 B 子类 C 非 static D 用户自定义类 三、简述题 1.什么叫类?类和对象有什么关系?用类的概念带来什么优点? 2.什么叫实例变量?什么叫类变量?它们之间的区别是什 么? 3.说明构造方法的用途和特点? 4.Java 程序中使用的类分为那两种?什么是系统定义的类?什么是用户定义自定义 类? 5.调用方法有哪些语句形式,如果一个方法没有返回值,应如何调用? 6.在调用方法时参数的传递有赋值调用和引用 两种方式, 其有何区别, 什么情况下用传值方式, 什么情况下用引用方式? 四、编程题 1.定义了一个学生的类 Student,包括成员变量“学号” 、 “班号” 、 “姓名” 、 “性别” 、 “年龄” , 成员方法: “获得学号” 、 “获得班号” 、 “获得性别” 、 “获得姓名” 、 “获得年龄” 。请为 Student 类定义构造函数初 始化所有的成员变量。增加一个方法 public String toString()把 Student 类对象的所有信息组合成一个字符串。 2.构造函数 是否可以被重载?试举例。 3.构造一个类来描述屏幕上的一个点,该类的构成包括点的 x 和 y 两个坐标,以及一些对点 进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并 对其进行操作。 4.编程创 建一个 Box 类,在其中定义三个变量表示一个立方体的长、宽、高,再定义一个方 法 setDemo 来对这 3 个变量进行初始 化,然后定义一个方法来求立方体的体积。创建一个对 象,求给定尺寸的立方体的体积。 5.定义一个类实现银行帐户的 概念,包括的变量有“帐号”和“存款余额” ,包括的方法有“存 款” 、 “取款”和“查询余额” 。定义主类,创建 帐户类的对象,并完成相应操作。 第七章类的封装 一、判断题 1.在子类中可以用完全相同的 signature 重新定义一个超类方法,这称为方法的覆盖 (override)( ) 2.final 修饰的方法是 。 不能被子类覆盖的,只能被覆盖。 ) ( 3.声明为 final 的类不能是超类。 ) 4.当一个超类成员不适合该子类时,子类会以恰当的方式重新定义它。 ) 5.对子类 ( ( 实例化对象需要调用超类的构造函数进行初始化工作, 完成对子类中的超类实例变量 的初始化,则子类可以继承超类的构 造函数。 ) 6.在类的定义中如果不明确给出超类,那么默认超类就是 Object 类。 ) ( ( 7.protected 类型的实例变量或方法只能由声明该变量或方法的类本身及其子类访问。 ) 8.Java 的每个子类的构造函数都 ( 要显式的调用它的直接超类的构造函数。 ) ( 9.超类对象的集合通常比它的任何一个子类对象集合大。 ) 10.子类可以从多个超类中派生出来。 ) ( ( 二、选择题 1.为了区分重载多态中同名的不同方法,要求: ) A 参数名不同 B 返回值类型不同 C 采用不同的形式参数列表 D 选 ( 项 A B C 都对 2.在某个类中定义一个方法:void GetSort(int x),以下关于能否作为这个方法的重载错 误的是: ) ( A void GetSort(float x){x*=x;} B int GetSort(double y){ return(int)(2*y); } C double GetSort(int x,int y){return x+y; } D 都 不能 3.下列对继承的说法,哪个是正确的: ) ( A 子类只能继承父类 public 方法和状态 B 子类能继承父类的非私有方法和状态 C 子类能继承父类的所有方法和状态 D 子类只能继承父类的方法,而不继承状态 4.定义类 A 如下: class A { int a,b,c; public void B(int x,int y,int z){a=x; b=y; c=z; } } 下面对方法 B()的重载哪些是正确的: ) A public void A(int xl,int yl,int z1){ a=x; b=y; c=z; } B public void B(int x1,int ( yl,int z1){ a=x; b=y; c=z;} C public void B(int x,int y){ a=x; b=y; c=0;} D public B(int x,int y,int z){a=x; b=y; c=z; } 5.下列程序的结果输出为: ) class Strange{ Strange(){ this(4); } Strange(int j){ this.j=j; } } ( class MainStrange{ public static void main(string[] args){ Strange funny=new Strange(); System.out.println(“j=“+funny.j); } } A j=2 B j=4 C j=6 D j=7 6.下列说法正确的是: ) ( A Java 中允许一个子类有多个父类 B 某个类是一个类的子类,它仍有可能成为另一个类的父类 C 一个父类只能有一个子 类 D 继承关系最多不能超过 4 层 7.下列说法正确的是: ) A 子类只能覆盖父类的方法,而不能重载 B 子类只能重载父类的方法,而不能覆盖 C 子类 ( 不能定义和父类同名同形参的方法,否则,系统将不知道使用哪个方法。 D 重载就是一个类中有多个同名但不同形参和方 法体的方法 8.关于构造函数的说法正确的是: ) ( A 一个类只能有一个构造函数 B 一个类可以有多个不同名的构造函数 C 构造函数与类同名 D 构造函数必须自己定义, 不 能使用父类的所有构造函数 9.下面是有关子类调用父类构造函数的描述正确的是: ) A 子类定义了自己的构造函数,就不会调用父类的构造函数 B ( 子类必须通过 super 关键字调用父类有参数的构造函数 C 如果子类的构造没有通过 super 调用父类构造函数, 那么子类 会先调用子类自己的构造函 数,再调用父类不含参数的构造函数。 D 创建子类的对象时,先调用子类自己的构造函数,然 后调用父类的构造函数 10.构造方法何时被调用? ( ) A 类定义时 B 使用对象的变量时 C 调用对象方法时 D 创建对象时 11.如果超类不允许其通过继承的方式产生的子类访问它的某些成员,那么它必须以什么方 式声明该成员。 ) A public B ( private C rotected D static 12.声明为 final 的变量不能在子类中覆盖,声明为( )和 ( )的方法是隐式的 final。 ) ( A public private B private protected C protected static D static private 13.继承性使xx成为可能,它不仅节省开发时间,而且也鼓励人们使用已经验证无误和调 试过的高质量软件。 ) ( A 节省时间 B 软件复用 C 软件管理 D 延长软件生命周期 14.编译运行下面的程序,结果是( ) 。 Public class A { public static void main(String[] args) { B b=new B(); b.test(); } void test() { System.out.print(“A”); } } class B extends A { void test() { super.test(); System.out.println(“B”); } } A 产生编译错误 B 代码可以编译运行,并输出结果:AB C 代码可以编译运行,但没有输出 D 编译没有错误,但会产生运 行时异常 15.已知类关系如下: class E class Manager extends E class Director extends E 则以下语句正确的是: ( ) A Employee e=new Manager(); B Director d=new Manager(); C Director d=new Employee(); D Manager m=new Director(); 16.一个xx类的对象可以当作相应的xx类对象看待。 ) A 子 系统 B 用户 系统 C 子 超 D 超 用户 ( 17.哪个方法是对如下方法的重载?( ) public void example(){...} A public void example( int m){...} B public int example(){...} C public void example2(){...} D public int example ( int m, float f){...} 18、被声明为 private,protected 及 public 的类成员,在类外部: ( ) A 只能访问到声明为 public 的成员 B 只可能访问到声明为 protected 和 public 的成员 C 都可以访问 D 都不能访问 19、现有两个类 A、B,以下描述中表示 B 继承自 A 的是( ) A class A extends B. B class B implements A. C class A implements .D class B extends A 20、设类 B 是类 C 的父类,下列声明对象 x1 的语句中不正确的是( ) A C x1=new B(); B B x1=new C(); C C x1=new C(); D B xl=new B(); 三、简述题 1.方法的重载和覆盖有什么区别? 2.简述超类和子类的关系。 3.在方法体中可以使用 this 和 super 关键 字,其意义是什么,在什么情况下使用? 4.试分清“是一个”关系和“有一个”关系。 5.调用构造方法遵循什么规则? 6.要使一个类的多个对象具有不同的初 始状态,应如何实现? 四、编程题 1.定义一个学生类 Student,它继承自 person 类。 (1)Student 类有以下几个变量: 继承自父类的变量:姓名(name),字符串类型(String);性别(sex),字符型(char);年 龄(age), 整型(int)。 子类新增加的变量: 学号(number),长整型;三门功课的成绩:哲学(phi),整型;英语 (eng),整型;计算机(comp),整型。 (2)Student 类有以下几个方法: 子类新增加的方法:求三门功课的平均成绩 public double aver():该方法没有参数,返 回值 类型为 double 型;求三门功课成绩的最高分 public int max():该方法没有参数,返回 值为 int 型;求三门功课成绩的最低 分 public int min():该方法没有参数,返回值为 int 型。 覆盖父类的同名方法:public String toString():获取学号、姓名、 性别、平均分、最 高分、最低分信息。 2.编写 Student 类的测试程序 程序要求实现:学生信息(学号、姓名性别、年龄、平均分、 最高分、最低分)在程序中 设置,要求通过运行程序,在屏幕中输出如下的结果:例如:学号: 200501 姓名:李丽 性别:女 年龄:20 平均分:90.0 最高分:95 分 最低分:87。 3.定义 Point、Circle、Cylinder 三个类,三个类都拥有 x,y 属性,而 Circle 又增加了属性 radius,Cylinder 类又增加了属 性 height。都有获得 x,y 坐标,设置 x,y 坐标,求面积、体 积的方法。 4.请编写程序由三个类定义组成: 类 A 中只定义了一个类型为 String 的对象 x 和带有一个 参数的构造函数 (用来初始化 x) ;类 B 是类 A 的子类,其中定义了一个 int 类型的变量 x 和 一个带两个参数的构造函数(用来为父类中的对象 x 和 类 B 中的变量 x 做初始化) ,还定义了 一个方法 myPrint( ),功能为输出父类 A 中的 x 和其子类 B 中的 x 的值;测试 类中定义了 B 类的对象 b,请通过创建 b 为上述两个 x 赋值(类 A 中的 x 的值为“这是父类的 x.”, 类 B 中 的 x 的 值为 68,显示两个 x 的值。 5.请编写程序,它由三个类定义组成,类名分别为 A、B 和 Applet1:类 A 中定义了一个类 型为 float 的属性 f 和一个 类型为 byte 的私有属性 k; A 还定义了一个带有一个参数的构 造函数 类 (用于初始化 f)和两个公共方法 setk( )和 getk( ), , 其中 setk( ) 的功能为给私有属 性 k 赋值,getk( )的功能为返回私有属性 k 的值。类 B 是类 A 的子类,其中仅定义了一个 类型 为 boolean 的属性 b 和一个带两个参数的构造函数(用来为父类中的变量 f 和本类的变量 b 做初始化) 。Test 类中 定义了一个初值为 123 的 int 型变量 n 和一个 B 类的对象 x,请通过 创建 x 为上述 f 和 b 赋值(f 的值为 68.963,b 的 值为 true); 在 paint()方法中, 给 A 类的私有 属性 k 赋值 66,然后显示 f,k,b,n 的值。 6.设有 1 个 Professor 类,继承自 Human 类,该类是教师的蓝图,它除继承相应的属性和 方法外,还具有下面的成员属 性: 讲授课程属性:private String course 教学效果属性:private int result 该属性的取值为 0―3,1 表示效果良好,2 表示可以 接受,3 表示效果不佳,0 表示未予 评价 成员方法: public String getDetails() 将姓名、性别、年龄和讲授课程属性以字符串方式返回。 public boolean set_reslut(int x) 该方法用于设置教学效果, 必须考虑设置是否合理 (若 不是 0-3 之间,则不允许设置)构造方法: 用于设置姓名,性别 和年龄和讲授课程。 public Professor(String name, boolean sex, int age, String course) 第八章接口和基本类库 一、判断题 1.Java 中的类和接口都只支持单重继承。 ) 2. 由于 Java 中类只支持单重继承,所以一个类只能继承一 ( 个抽象类和实现一个接口。 ) 3.内部类始终可以访问外部类。 ) 4.对于一个抽象类,改变它的属性和方法一定会改 ( ( 变它所有子类的属性和方法。 ) 5.一个类可以实现抽象类的所有方法,也可以只实现部分方法,但实现部分方法的类仍 ( 然是 一个抽象类。 ) 6.在实现接口的时候,要实现所有方法。 ) 7.接口其实是一个特殊的 abstract class。 ) 8.一 ( ( ( 个接口不可以继承其他接口。 ) 9.如果存储空间十分宝贵,应使用 Vector 类的 trimToSize 方法将 Vector 调整到准确 ( 的大小。 ) 10.Java 的 Vector 类提供了能自动调整大小的类似数组的数据结构。 ) ( ( 二、选择题 1.下面有关接口的说法,哪个是正确的?( ) A 接口与抽象类是相同的概念 B 一个类不可实现多个接口 C 接口之间不能 有继承关系 D 实现一个接口必须实现接口的所有方法 2、在使用 interface 声明一个接口时,可以使用( )修饰符修饰该接口。 A private B protected C private or protected D public 3.下列哪个不是属于接口用途的?( ) A 通过接口可以实现不相关类的相同行为 B 通过接口可以指明多个类需要实现的 方法 C 通过接口可以了解对象的交互界面 D 通过接口可以了解对象所对应的类 4.定义字符串 s:String s=&Micrsoft 公司&;执行下面的语句,char c=s.charAt(9); c 的值为: ) A null B 司 C 产生数组 ( 下标越界异常 D 公 5.虽然接口和抽象类不能创建对象,但它们的对象引用仍可指向该类型的对象。这种说法 ( ) A 正确 B 不正确 C 不 能确定 D 接口和抽象类不能说明其对象引用 6.下面哪个类包括 drawImage( )方法、drawString( )方法和 setColor( )方法。 ( ) A java .awt .Applet B java .awt .Image C java .awt .Graphics D java .util .Date 7.接口中说明了一组公共的抽象方法,其中是否包含公共的静态方法?答案是( ) A 可以 B 不可以 C 不能肯定 D 因 静态方法不能被改写,故不能出现在接口中 8.接口是 Java 面向对象的实现机制之一,以下说法正确的是: ( ) A Java 支持多重继承,一个类可以实现多个接口 B Java 只支持单重继承,一个类可以实现多个接口 C Java 只支持单重继承,一个类只可以实现一个接口 D Java 支持多重继 承,但一个类只可以实现一个接口 9.关于接口的定义和实现,以下描述正确的是: ( ) A 接口定义中的方法都只有定义没有实现 B 接口定义中的变量都 必须写明 final 和 static C 如果一个接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一的代码 D 如果一 个类实现一个接口,则必须实现该接口中的所有方法,但方法未必声明为 public 10.下面的说法正确的是: ( ) A 接口是 Java 中的一个重要特点 B 在实现接口函数的时候要用关键字 public C 在继 承一个类时,可以同时实现一个或者多个接口。 D 接口可以内嵌在一个类中 11.声明接口的保留字是( ) A interface B protect C final D static 12.下面关于 Vector 类的说法不正确的是: ) A 类 Vcetor 在 java.util 包中 B 一个向量(Vcetor)对象存放的是一组有序 ( 的对象 C 一个向量(Vcetor)对象大小可以根据存放的元素个数的增加而自动增加 D 一个向量(Vcetor)对象中每个元素必须是相同类 型的对象 13.下面的接口(类)定义正确的是: ) ( A public class A { public getx() { } } B public abstract class A { public abstract int getx(); public int amethod() { return 0; } } C public class A { public abstract int getx(); } D public interface Interfacea { public int getx() { } } 14.接口具有下面的特性。 ) A 多重继承 B 不可继承 C 抽象性 D 嵌套 ( 15.定义一个包的关键字是( ) A import B package C interface D protected 。 16.下列选项中,用于在程序开头引入包的关键字是( ) A import B implements C integer D protected 。 17.以下语句输出的结果是( ) System.out.println(Math.floor(-0.8)); A 0 B -1C -0.8 D 0.8 。 18.下面的程序段执行后,变量 a、b、c 的值分别是( ) 。 int a,b,c; a=(int)Math.round(-4.51); b=(int)Math.ceil(-4.51); c=(int)Math.floor(-4.1); A -5, -4, -5 B -4,-4,-5 C -5,-5,-5 D -4,-4,-4 19.下面( )说法不正确。 A 如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字 B 如果源 文件包含 import 语句,则该语句必须是除空行和注释行外的第一个语句行 C 如果某源文件包含 package 语句,则该语句 必须是第一个非空、非注释行 D 接口中的方法不一定是抽象方法,所以可以不用关键字 abstract 修饰 20 . 下 面 的 程 序 段 输 出 的 结 果 是 ( ) 。 StringBuffer buf1=new StringBuffer(20); System.out.println(buf1.length()+”,”+buf1.capacity()); A 0,20 B 0,null C 20,20 D 0,0 三、简述题 1.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类 (concrete class)? 2.当一个类调用 有多个父接口的子接口时,应遵循什么规则? 3.abstract class 和 interface 有什么区别? 4.Java 的接口有什么特点?引入接口的定义带来什么优点? 5. 说明使用接口时 有哪些要注意的事项? 四、阅读程序写结果 2.已有 Bird 类的定义如下: 1. class P { void printMe() public class Bird { { System.out.println(&parent&); } } protected static int referenceCount=0; class Child extends Parent public Bird(){referenceCount++;} { void printMe() protected void fly(){ }; { System.out.println(&child&); } static int getReCount(){return referenceC} } void printAll() 有类 Nightingale 的定义如下,请写出它的输出结果。 { super.printMe(); package singers; this.printMe(); class Nightingale extends abcde.Bird { printMe(); } } Nightingale( ) { referenceCount++;} public class Test public static void main( String args[ ]){ { public static void main(String args[ ]) System.out.print(“Before:”+referenceCount); { Child myC=new Child(); Nightingale florence=new Nightingale( ); myC.printAll(); } } System.out.println(“ After:”+referenceCount); 3.florence.fly( ); } } import java.io.*; public class abc { public static void main(String args[]) { String s1 = &Hello!&; String s2 = new String(&World!&); System.out.println(s1.concat(s2)); } } 4. import java.io.* ; public class abc { public static void main(String args[ ]) { SubSubClass x = new SubSubClass(10 , 20 , 30); x.show(); } } class SuperClass { int a,b; SuperClass(int aa , int bb) { a= b= } void show( ) { System.out.println(&a=&+a+&\nb=&+b); } } class SubClass extends SuperClass { SubClass(int aa,int bb,int cc){ super(aa,bb); c= } } class SubSubClass extends SubClass { SubSubClass(int aa,int bb,int cc) { super(aa,bb,cc); a=aa+bb+ } void show() { System.out.println(&a=&+a+&\nb=&+b+&\nc=&+c); } } 五、编程题: 1.定义一个接口或多个接口,并用一个类实现。 2.定义一个抽象类,并定义它的两个非抽象子类。 3.定义接口 A,接 口内有两个方法: method1(int x)和 method2(int x,int y),它们的返 回值类型均为 int。请编写一个 Applet,并使其实现接口 A:令方法 method1(int x)的功能 是求 5 的 x 次方、方法 method2(int x,int y) 的功能是求两参数的最大值。在 paint()方 法中调用这两个方法,显示 method1(2)和 method2(2,8)的结果。 4.定义名为 VolumeArea 的抽象类,在其中定义圆周率? 的值为 3.14159,并定义两个抽象 方法 volume(double r)和 area(double r),它们的返回值类型均为 float。再定义以类 VolumeArea 为父类的子类 VolumeAndArea,在该子类中实现父类中的抽象方法:方法 volume(double r) 的功能是求半径 为 r 的球的体积(公式为:4?r 3 ?3 ;方法 area(double r)的功能是求半径为 r 的圆的面积(公式为:?r 2 ) ) 。请编写一个 Application ,在其主类中定 义一个 VolumeAndArea 类的对象 x,通过对象 x 求半径为 r(r 的值由命令行给定)的球的体积 及该球最大切面的圆的面积,并输出计算结果。 5.定义一个图形的抽象类,具有求面积和画图形的方法,再定义点、线、圆的类继承这个抽 象类实现它的方法。 第九章异常处理 一、判断题 1.Java 语言的模块只有类。 ) 2.定义方法时方法名可以是任何标识符。 )3.方法体中至少有一条 return ( ( 语句。 ) 4.如果需要可以在方法中再声明一个方法。 ) 5.方法定义语句 void x( int a,int b ) { return (a-b); }是正确的。 ( ( ( ) 6.方法内定义的变量是可以在方法外使用的。 ) 7.只有直接调用自身的方法才叫递归方法。 ) 8.Java 中允 ( ( 许两方法同名,只要它们参数的类型或个数不同就行。 ) 9.每个应用程序都必须要有 main 方法。 ( ) 10.方法定 ( 义语句 float x( int a,int b ) { return (a-b); }是正确的。 ) ( 二、选择题 1.方法的作用不包含: A 使程序结构清晰 B 功能复用 C 代码简洁 D 重复代码 2.方法内定义的变量: A 一定在方法内所有位置可见 B 可能在方法内的局部位置可见 C 在方法外可以使用 D 在方法外 可见 3.方法的形参: A 可以没有 B 至少有一个 C 必须定义多个形参 D 只能是简单变量 4.方法的调用: A 必须是一条完整的语句 B 只能是一个表达式 C 可能是语句,也可能是表达式 D 必须提供实际参数 5.return 语句: A 不能用来返回对象 B 只可以返回数值 C 方法都必须含有 D 一个方法中可以有多个 return 语句 6.void 的含义: A 方法体为空 B 方法体没有意义 C 定义方法时必须使用 D 方法没有返回值 7.main()方法的返回类型是: A boolean B int C void D static 8.方法重载所涉及的方法: A 有相同的名字 B 参数个数必须不同 C 参数类型必须不同 D 返回类型必须不同 三、阅读程序写结果。 1.public class Class431 { 2.public class Class432 public static void main(String[] args) { { int a = 3; static int i=123; char m='a'; public static void main (String[] args) prt(&m in main=&+m); { prt(&a in main=&+a); int i=456; prt(&return from test2 : &+test2()); System.out.println(&main( ) 中的 i=&+i); prt(&m + a=&+test1(m,a)); m1( ); } m2( ); static float test1(char x, int y) { } int z = x+y; static void m1( ){
} static float test2() { int a = 60; for (int i = 8; i & 12; i++) a= a+i; prt(&a in test2 is : &+a); } static void prt(String s) { System.out.println(s); }} 四、编程题 1.用两个方法打印出 200 以内的全部素数(一个是 main()方法,一个是专门判定一个数是 否为素数的方法) 。 2.已知菲波那契数列的数学表达式为: fibonacci(n)=n, n=0,1; fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n≥2; 用 递归方法计算 Fibonacci 序列,并打印出其前 15 项的值。 3.编写一个 Application,其中包含三个同名方法 mySqrt(),它们都只有一个参数,参数的 类型分别为 int 型、float 型和 double 型,它们的功能均为返回参数的平方根,返回值的类 型与参数的类型相同。在方法 main( ) 中调用上面的三个方法 并输出结果。 4.编程生产 100 个 1 到 6 之间的随机数,统计 1 到 6 每个数出现的概率。 第十章图形用户界面 一、判断题 1.BorderLayout 是面板的缺省布局管理器。 ) ( 2.当鼠标指针位于一个 GUI 构件的边上时,发生一个 MouseOver 事件。 ) ( 3.一个面板(JPanel)不能被加入到另一个面板(JPanel)中。 ) ( 4.在 BorderLayout 中,添加到 NORTH 区的两个按钮将并排显示。 ) ( 5.在使用 BorderLayout 时,最多可以使用 5 个构件。 ) ( 6.Swing 构件经常被称为轻量构件。 ) ( 7.在 GUI 上输出文本或提示信息的方法是使用标签。 ) ( 8.为了处理图形用户界面的事件,程序员必须注册一事件监听器。 ) ( 9.用户在 JtextField 和 JpasswordField 输入数据后键入回车键,可以激活一个事件。 ) ( 10.JCheckBox 类和 JRadioButton 类都是 JtoggleButtond 的子类。 ) ( 11.程序员在创建一个 Frame 时,至少必须创建一个菜单,并将它加入 Frame 中。 ) ( 12.fill 变量属于 GrideLayout 类。 ) ( 13.在一个程序中不能同时使用 Jframe 和 applet。 ) ( 14.Jframe 和 applet 的左上角坐标为(0,0)( ) 。 15.JTextArea 的文本总是只读的。 ) ( 16.JTextArea 类是 Component 类的直接子类。 ) ( 17.Box 的缺省布局是 BoxLayout。 ) ( 18.JTextArea 用于支持对多行文本的操作。 ) ( 19.程序员可以在任何时候用 JScrollPane 类的 setHorizontalScrollBarPolicy 方法和 setVerticalScrollBarPolicy 方法来设置 JScrollPane 的水平滚动条和垂直滚动条。 ) ( 20.JPanel 只能用来作为接受鼠标事件的专用绘图区域。 ) ( 二、选择题 1.鼠标被移动时会调用xx方法,并且注册一个事件监听器处理此事件。 A actionPerformed B addItemListener C mouseMove D add 2.用户不能修改的文本是xx。 A word 文档 B txt 文档 C 可编辑的 D 不可编辑的 41 3.xx用来在 Container 上排列 GUI 构件。 A BorderLayout 类 B Component 类 C 事件控制 D 布局管理器 4.为添加一个构件的 add 方法是xx类方法。 A BorderLayout B Component C Container D ButtonGroup 5.使用方法xx为构件容器设置布局管理器。 A BorderLayout B setLayout C Container D Component 6.GUI 是xx的缩写。 A 布局管理器 B 资源管理器 C 用户界面布局 D 图形用户界面 7.mouseDragged 事件先触发了一个xx事件接着又触发一个xx。 A mousePressed B mouseClicked C mouseReleased D mouseEntered 8.Java 程序的图形用户界面中有那些用户自定义成分? A 几何图形 B 文字 C 颜色控制 D 图像 E.动画 9.当构件中按钮的位置可以被自动调整,应使用哪种布局管理器: A BorderLayout B FlowLayout C CardLayout D GridLayout 10.当构件中按钮的位置可以被自动调整,应使用哪种布局管理器: A BorderLayout 42 B FlowLayout C CardLayout D GridLayout 11.使用xx类创建菜单对象。 A Dimension B JMenu C JMenuItem D JTextArea 12.使用xx方法创建菜单中的分隔条。 A setEditable B ChangeListener C add D addSeparator 13.向 JTextArea 的xx方法传递 false 参数可以防止用户修改文本。 A setEditable B ChangeListener C add D addSeparator 14.xx接口的xx方法用于处理 Jslider 事件。 A setEditable B stateChanged C ChangeListener D addSeparator 15.GridBagConstraints 实例变量xx被缺省地设置为 CENTER。 A gridwidth B relative C remainder D anchor 16.下面哪个组件可以被添加到容器中: A Button B MenuItem C Choice D HelpMenu 17.下面哪个菜单组件可以被添加到任何组件中: A MenuBar B HelpMenu C CheckboxMenuItem D PopMenu 43 E Menu 18.下面哪个组件是独立的组件: A Panel B Window C Frame D ScrollPanel E FileDialog 19.下面哪个组件需要使用 requestFocus( )方法来接收用户输入数据: A Choice B Canvas C Button D MenuItem E Panel 20.下面哪个布局管理器是非法的: A FlowLayout B BorderLayout C CardBagLayout D GridLayout 21.实现下列哪个接口可以对 TextField 对象的事件进行监听和处理?____ A MouseMotionListener B FocusListener C ActionListener D WindowListener 22.Frame 的默认的布局管理器是下列哪一个?____ A FlowLayout B CardLayout C GridLayout D BorderLayout 23.下列哪个属于容器的构件?___________ A JPnel B JButton C JFrame D JApplet 24.如果希望所有的控件在界面上均匀排列,应使用下列哪种布局管理器?_____ A BoxLayout B FlowLayout C BorderLayout D GridLayout 44 25.监听事件和处理事件____。 A 都由 Listener 完成 B 由 Listener 和窗口分别完成 C 由 Listener 和构件分别完成 D 都由相应事件 Listener 处登记过的构件完成 26.监听器接口的方法返回值是什么? A int B String C void D Object 27.请问如下哪个方法可以将 MenuBar 加入 Frame 中? A setMenu() B setMenuBar() C add() D addMenuBar() 三、简述题 1.什么是图形用户界面?它与字符界面有何不同?你是否使用过这两种界面?试列出图形用 户界面中你使用过的组件。 2.简述图形界面的构成成分以及它们各自的作用。 设计和实现图形用户界面的工作主要有那两 项? 3.简述 Java 的事件处理机制和委托事件模型。什么是事件源?什么是监听者?Java 的图形 用户界面中,谁可以充当事件源?谁可以充当监听者? 4.动作事件的事件源可以有那些?如何响应动作事件? 5.找出下面语句中的错误,并说明如何改正。 ① buttonName = Jbutton(“Caption”); ② JLable aLable,JL// ③ txtField = new JtextField(50,“Default Text”); ④ Container c = getContentPane( ); SetLayout (new GrideLayout(9,9)); button1 = new JButton(“North Star” ); button2 = new Jbutton(“South Pole” ); C add(button1); C add(button2); 6.文本框与文本区域在创建方法、常用方法和事件响应上有何异同?什么操作将引发文本事 件?如何响应文本事件?编写 Applet 包括一个文本框、一个文本区域和一个按钮,当用户单 击按钮时,程序将文本区域中被选中的字符串复制到文本框中。 7.什么是选择事件?那些操作将引发选择事件?可能产生选择事件的 GUI 组件有那些?它们 45 之间有什么异同?分别适合于什么场合? 8.什么是调整事件?调整事件与选择事件有何不同?什么是滚动条/如何创建和使用滚动 条? 9.什么是容器的布局策略?试列举并简述 Java 中常用的几种布局策略。 10.找出下面语句中的错误,并说明如何改。 ① J ② mySlider = Jslider(,450); ③ gbC fill = GridBagConstraints.NORTHWEST;//set fill ④ //override to paint on a customized Swing component public void paintcomponent(Graphics g) { g.drawString(“HELLO”,50,50); } ⑤ //create a JFrame and display it JFrame f = new JFrame(“A Window”); f.show( ); 四、编程题 1.编辑一个小程序,显示一个半径为 150 的圆内接五角星,要求圆为黄色填充,五角星为红 色,背景为蓝色,在图片的正下方显示文字“圆内接五角星” ,字体为楷体 12 号,白色,在 下方画一个边框为 5,长 300,高 180 的红色矩形。 2.编辑一个小程序,界面上加入一个标签,显示内容为你的姓名和班级,并注明是 xx 月 xx 日作业,在标签下面增加列表、两个单选框(控制列表是否为多选状态) ,一个文本框,三个 按钮,分别控制将文本框的内容加入列表、删除、删除全部列表内容,当选择列表时,按照当 前状态(是否多选) ,在文本框中显示用户选择的列表内容。再加入一个文本区,用来显示用 户操作的过程,比如:您输入了文字 XXX,您删除了 xxx 等。 3.创建一个 300×200 的窗口,标题为“显示窗口程序” 。 4.仿照记事本的 GUI 编写一个 JAVA 简易记事本程序。只要菜单及界面,具体功能除[退出] 外均不用实现。 5.编辑一个应用程序,使用 GridLayout 布局,用两个按钮分别控制当前窗口现实[三行两列] 和[两行三列]的标签。 第十一章多线程机制 一、判断题 1.C 和 Java 都是多线程语言。 ) ( 2.如果线程死亡,它便不能运行。 ) ( 46 3.在 Java 中,高优先级的可运行线程会抢占低优先级线程。 ) ( 4.Windows 和 Windows NT 的 Java 系统使用分时的方法。 因此可以使某一线程抢占具有相 同优先级的线程。 ) ( 5.线程不是能够独立运行的程序,是某个程序内部的一个顺序执行流。 ) ( 6.程序开发者必须创建一个线程去管理内存的分配。 ) ( 7.一个线程在调用它的 start 方法,之前,该线程将一直处于出生期。 ) ( 8.当调用一个正在进行线程的 stop( )方法时,该线程便会进入休眠状态。 ) ( 9.如果线程的 run 方法执行结束或抛出一个不能捕获的例外,线程便进入等待状态。 ) ( 10.一个线程可以调用 yield 方法使其他线程有机会运行。 ) ( 二、选择题 1.Java 语言中提供了一个xx线程,自动回收动态分配的内存。 A 异步 B 消费者 C 守护 D 垃圾收集 2.进程独有的内容包括xxxx。 A 数据 B 系统栈 C 寄存器 D 代码 3.有三种原因可以导致线程不能运行,它们是xxxx。 A 等待 B 阻塞 C 休眠 D 挂起及由于 I/O 操作而阻塞 4.当xx方法终止时,能使线程进入死亡状态。 A run B setPrority C yield D sleep 5.用xx方法可以改变线程的优先级。 A run B setPrority C yield D sleep 6.线程通过xx方法可以使具有相同优先级线程获得处理器。 A run 47 B setPrority C yield D sleep 7.线程通过xx方法可以休眠一段时间,然后恢复运行。 A run B setPrority C yield D sleep 8.xx方法使对象等待队列的第一个线程进入就绪状态。 A run B notify C yield D sleep 9.方法 resume( )负责重新开始xx线程的执行。 A 被 stop( )方法停止 B 被 sleep( )方法停止 C 被 wait( )方法停止 D 被 suspend( )方法停止 10.xx方法可以用来暂时停止当前线程的运行。 A stop( ) B sleep( ) C wait( ) D suspend( ) 三、简述题 1.简述程序、进程和线程之间的关系?什么是多线程程序? 2.线程有那 5 个基本状态?它们之间如何转化?简述线程的生命周期。 3.什么是线程调度?Java 的线程调度采用什么策略? 4.如何在 Java 程序中实现多线程? 5.试简述 Thread 类的子类或实现 Runnable 接口两种方法的异同? 四、编程题 1.利用多线程技术编写 Applet 程序,其中包含一个滚动的字符串。字符串从左向右运动,当 所有的字符都从屏幕的右边消失后,字符串重新从左边出现并继续向右移动。 2.编写一个应用程序,在线程同步的情况下来实现“生产者D消费者”问题。 3.利用多线程设计一个程序,同时输出 50 以内的奇数和偶数,以及当前运行的线程数。 48 第十二章输入/输出处理 一、判断题 1.程序员必须创建 System .in,System .out 和 System .err 对象。 ) ( 2.如果顺序文件中的文件指针不是指向文件头,那么必须先关闭文件,然后在再打开它才能从 文件头开始读。 ) ( 3.在随机存取中查找指定记录时不必检查每一条记录。 ) ( 4.随机存取文件中的记录必须等长。 ) ( 5.seek 方法必须以文件头为基准进行查找。 ) ( 6.Java 中的每个文件均以一个文件结束标记(EOF) ,或者以记录在系统管理数据结构中的 一个特殊的字节编号结束。 ) ( 7.如果要在 Java 中进行文件处理,则必须使用 Java .swing 包。 ) ( 8.InputStream 和 OutputStream 都是抽象类。 ) ( 9.Java 语言中对文件没有结构要求,所以需要使用随机存取的程序必须自己建立它们。 ) ( 10.当把一个 RandomAccessFile 流与一个文件相联是,读写数据的位置由文件位置指针来 指定,并且所有数据均以基本数据类型来读写。 ) ( 二、选择题 1.计算机处理的数据最终分解为xx的组合。 A0 B 数据包 C 字母 D1 2.计算机处理的最小数据单元称为xx。 A 位 B 字节 C 兆 D 文件 3.一组相关记录称为xx。 A 位 B 字节 C 字符 D 数据库 4.字母、数字和特殊符号称为xx。 A 位 B 字节 49 C 字符 D 文件 5.xx文件流类的 close 方法可用于关闭文件。 A FileOutStream B FileInputStream C RandomAccessFile D FileWrite 6.RandomAccessFile 类的xx方法可用于从指定流上读取整数。 A readInt B readLIne C seek D close 7.RandomAccessFile 类的xx方法可用于从指定流上读取字符串。 A readInt B readLIne C seek D close 8.RandomAccessFile 类的xx方法可用于设置文件定位指针在文件中的位置。 A readInt B readLIne C seek D close 9.在 FilterOutputStream 类中,下面哪个类是合法: A File B InputStream C OutputStream D FileOutputStream 10.在xx情况下用户能使用 File 类。 A 改变当前的目录 B 返回根目录名 C 删除一个文件 D 查找一个文件是否包含文本或二进制信息 三、简述题 1.Java 的输入输出类库是什么?Java 的基本输入输出类是什么?流式输入输出的特点是什 么? 2.Java 程序使用什么类来管理和处理文件?写出一条语句在 C 盘的 windows 目录下创建一个 子目录 myJavaPath。 50 3.RandomAccessFile 与其他输入输出类有何不同?它实现了那两个接口,具有那些较为强 大的输入输出功能? 4.假设以下语句用于同一程序: ①编写语句,打开 oldmast .dat 文件进行输入,使用与一个 FileInputStream 对象连接的 ObjectInputStream 对象 inOldMaster。 ②编写语句,打开 trans .dat 文件进行输入,使用与一个 FileInputStream 对象连接的 ObjectInputStream 对象 inTransaction。 ③编写语句,打开 newmast .dat 文件进行输入,使用与一个 FileOutputStream 对象连接 的 ObjectOutputStream 对象 outNewMaster。 ④编写语句,从 oldmast .dat 文件读取一条记录,记录中包括整数 accountNum,字符串 name,浮点数 currentBalance;使用 ObjectInputStream 对象 inOldMaster。 ⑤编写语句,从 trans .dat 文件读取一条记录,记录中包括整数 accountNum,浮点数 dollarAmount;使用 ObjectInputStream 对象 inTransaction。 ⑥编写语句,从 newmast .dat 文件读取一条记录,记录中包括整数 accountNum,字符串 name,浮点数 currentBalance;使用 ObjectOutputStream 对象 outNewMaster。 四、编程题 1.编写字符界面的 Application 程序,接收依次输入的 10 个整数数据,每个数据一行,将这 些数据按升序排序后从系统的标准输出设备输出。 2.编写一个图形界面的 Java Application 程序, 接收用户输入的 5 个浮点数据和一个文件名, 将这个数据保存在该文件中。 3.修改上题的程序,利用 FileDialog 选定文件名。 4.通过 File 类来实现列出一个目录下所有的*.class 文件 5.编写代码实现文件复制的功能 6. 读出指定的文件内容并在显示屏幕上显示输出 第十三章 Applet 一、判断题 1. Applet 可以与服务器以外的任何其他主机通信。 ) ( 2. Applet 的执行从 init() 方法开始。 ( ) 3. Applet 中不一定要声明 main( )方法。 ( ) 4.Java 目前支持两种格式的图像文件,这两种类型的文件名分别以.jif 和.gpg 结束。 ) ( 5.重构 applet 的 update 方法调用不清除 applet 的 paint 方法将显著地减少动画闪烁。 ) ( 6.Graphics 类提供用于画图的方法。 ) ( 7.在 Applet 的坐标系中,(0,0) 代表输出窗口左上角的象素点。 ) ( 8. Applet 中输出文字使用 println 方法。 ) ( 51 9. drawRect 方法绘制实心矩形。 ) ( 10.Java 提供两种在 applet 中播放声音的机制: Applet 类的 play 方法和 AudioClip 接口的 play 方法。 ) ( 11. Applet 程序提取 HTML 文件中参数的命令是&param name=参数名&。 ) ( 12.URL 方法返回当前网页所在的 URL。 ) ( 二、选择题 1.任何一个 Applet 开始执行时必然会自动调用三个方法,它们被调用的顺序是: A init paint start B init start paint C paint start init D start paint init 2.每当浏览器的用户再次访问 applet 所在的 HTML 页时都调用xx方法。 A main B restart C start D update 3.每当浏览器的用户离开 applet 所在的 HTML 页时都调用xx方法。 A pause B repaint C stop D paint 4.下面程序的正确输出结果是: import javax.swing.JA import javA awt.G public class WelcomeLines extends JApplet { public void paint( Graphics g ) { g.drawLine( 15, 15, 210, 15 ); g.drawLine( 15, 35, 210, 35 ); g.drawString( & Java Programming!&, 25, 25 ); } } A 上方显示一条横线,下方显示 Java Programming! B 下方显示一条横线,上方显示 Java Programming! C 上下方各显示一条横线,中间显示 Java Programming! D 上方显示 Java ,下方显示 Programming! 52 5.下面语句书写正确的是: A import javA B import javA swing.*; C import javA swing.JA D import javA swing.JoptionP 6.下列方法中,xx方法通常是一个 applet 中定义的第一个方法。 A start B init C paint D start paint 7. xx方法调用 applet 的 update 方法。 A paint B init C stop D repaint 8.在 g.drawRect(15,18,300,20)的语句中,xx代表矩形的宽度和高度。 A 15 18 B 18 300 C 300 20 D 20 15 9.imageIcon 类的xx方法显示 ImageIcon 中的图像。 A Graphics B Icon C paintIcon D Component 10. applet 中播放声音的方法是xx。 A Applet 类的 play 方法 B MediaTracker 类的 play 方法 C AudioClip 接口的 play 方法 D Sound 接口的 play 方法 11.Applet 类的xx方法将图像装入 applet。 A drawing B drawImage C getImage D getPicture 12.Graphics 类的xx方法在上 applet 显示图像。 A getImage B show 53 C update D drawImage 三、简述题 1.什么是 applet?它与 Java 应用程序有什么区别? 2.出于安全考虑,applet 被赋予了严格限制,这些限制主要包括哪些内容? 3.Applet 类中,方法 init()、start()、stop()和 destroy()何时被调用? 4.写 Java 语句,实现在 1 行中从(15,15)开始画出消息“This is a Java Program” 。 5. 写 Java 语句,自(20,10)处显示文字“This is a Java” ,在其下方的同一位置显示文 字“program” 。 6.Panel 与 Applet 有何关系?Panel 在 Java 程序里通常起到什么作用? 四、编程题 1.编写一个 applet 程序,使其在窗口中分别以红色、蓝色、绿色显示以下内容: My applet.program is very beatuful. 2.请编写一个 Applet,其功能为:在 Applet 窗口中用绿色画一个左上角坐标为 (10,10)、高 为 90、宽为 110 的矩形框;然后画内切于该矩形的红色椭圆。 3.请编写一个实现如下功能的 Applet: 在窗口中从 45°开始逆时针画一个 60°的绿色扇形, 并令其内切于左上角坐标为 (20,60)、宽为 100、高为 80 的矩形区域。 4.编写 Applet, 显示一幅后缀名为 jpg 的图片,图片显示的左上角坐标为(20,40) ,宽、 高为 80、80 像素(图片在计算机中查找) 。小程序中还包含两个按钮,按钮名称分别为&放大 图片&和&缩小图片&。每次按下&放大图片&按钮时,把图片显示的宽、高分别增加 10 像素;每 次按下&缩小图片&按钮时,把图片显示的宽、高分别减小 10 像素。 5.请编写一个 Applet 实现如下功能:定义三个文本框。其中,第一个文本框上面的文本信息 为“请输入口令: ” ;第二个文本框为口令输入域;第三个文本框上的信息由程序设置:若口令 (假设口令为字符串”MyKey” )正确,则设置为“通过! ” ,否则设置为“口令错! ” ; 。 6.编写小程序,响应键盘事件:敲击字母 r,改变小程序背景色为 red;敲击字母 b,改变小 程序背景色为 blue;敲击字母 g,改变小程序背景色为 green;其他字母,改变小程序背景 色为 black。 点:对 while 循环结构的调用。 54 第十四章 JDBC 基础 一、判断题 1.最流行的数据库查询语言是 SQL。 ) ( 2.Java 将表可以作为 connection 对象来操作。 ) ( 3.关键字唯一地表示表中的每个记录。 ) ( 4.数据库是集中控制的数据的有机集合。 ) ( 5.Applet 包中含有 Java 中操作关系数据库的类和接口。 ) ( 6.sun .jdbc .odbc 类代表了 JDBC 到 ODBC 数据库驱动程序。 ) ( 7.共享是数据库系统的一个关注焦点。 ) ( 8.数据库系统的主要特点之一是数据的独立性,既应用程序无需关心数据的存储和访问。 ) ( 9.宿主语言通常包括一种数据库子语言,用于处理数据库对象和操作的细节。 ) ( 10.数据库的表一般都有主关键字,但主关键字并不是必需的。 ) ( 二、选择题 1.数据库的表由xx和xx组成。 A 行 B 数据 C 列 D 方法 2.SQL 关键字xx的后面是在查询中选择记录的条件。 A WHERE B ORDER BY C INNER JOIN D ON 3.SQL 关键字xx指定记录的排序顺序。 A WHERE B ORDER BY C INNER JOIN D ON 4.SQL 关键字xx用于合并两个或多个表。 A WHERE B ORDER BY C INNER JOIN D ON 5.xx同时是另一个表中的主关键字。 55 A WHERE B ORDER BY C INNER JOIN D 外关键字 6.一个xx对象用于向数据库提交查询。 A ResultSet B Connection C Statement D Applet 7.数据库模型主要有: A 层次模型 B 网状模型 C 关系模型 D 结构模型 8.下面说服错误的是: A 当某个字段被指定为主关键字字段时,不对这个字段赋值将违反实现完整性规则,是错误 的。 B 当某个字段被指定为主关键字时,都个记录在这个字段使用相同的值是错误的。 C 在不区分大小写的系统上,SQL 关键字按惯例全部使用大写字母。 D 使用选择标准减少从数据库返回的记录数不能提高性能 9.Java 通过xx接口的方法提供事物处理。 A ResultSet B Connections C Connection D Statement 10.下面语句书写有误的是: A SELECT * FROM 表名 WHERE 标准 B SELECT * FROM 表名 ORDER BY 字段 ASC C SELECT * FROM 表名 WHERE 标准 ORDER BY 字段 ASC D SELECT * FROM 表 1 INNER JOIN 表 2 三、简述题 1.试简述数据库系统的主要优点。 2.与层次和网状模型相比,关系数据库的组织形式有那些优点? 3.试建立一个 Book.mdb 数据库, 该数据库包含 4 个表: Authors、 Publishers、 AuthorISBN 和 Title。 56 四、编程题 1.编写一个应用程序,显示一个 test.mdb 中表 test 的字段。 2.编写一个应用程序,显示一个 test.mdb 中表 test 的所有数据。 3.编写一个应用程序,为 test.mdb 中表 test 添加一条记录。 4.编写一个应用程序,为 test.mdb 中表 test 删除 id 为 100 的一条记录。 5.编写一个应用程序,为 test.mdb 中表 test 修改 id 为 101 的一条记录的 name 值为”张 三” 。 第十五章网络编程 一、判断题 1.已建立的 URL 对象不能被改变。 ) ( 2.UDP 是面向连接的协议。 ) ( 3.进程利用流 socket 建立与其他进程的连接。 ) ( 4.服务器在一个端口等待客户的连接。 ) ( 5.数据报传输是可靠的,包按顺序先后达到。 ) ( 6.出于安全考虑, 许多 Web 浏览器, 只允许 Java applet 在它允许的计算机上进行文件操作。 ( ) 7.Web 浏览器往往限制 applet,使下载 applet 只能与它原来所处的计算机进行通信。 ) ( 8.Java 的大部分网络类都包含在 Java .applet 包中。 ) ( 9.构成 World Wide Web 基础的关键协议是 TCP/IP。 ) ( 10.URL 是统一资源定位器的缩写。 ) ( 二、选择题 1.如果在关闭 socket 时发生一个 I/O 错误,会抛出xx。 A IOException B UnknownHostException C SocketException D MalformedURLExceptin 2.当找不到客户的服务器地址时会抛出xx。 A IOException B UnknownHostException C SocketException D MalformedURLExceptin 3.如果 DatagramSocket 构造函数不能正确地创建一个 DatagramSocket,会抛出xx。 A IOException 57 B UnknownHostException C SocketException D MalformedURLExceptin 4.URL 构成函数将决定作为参数的字符串是否是合法的统一资源定位器。如果合法,则初始 化包含统一资源定位器的 URL 对象,否则将产生xx。 A IOException B UnknownHostException C SocketException D MalformedURLExceptin 5.使用xx类建立一个 socket,用于不可靠的数据报的传输。 A Applet B Datagramsocket C InetAddress D AppletContext 6.xx类的对象中包含有 Internet 地址。 A Applet B Datagramsocket C InetAddress D AppletContext 7.AppletContext 类的xx方法接收 URL 对象作为参数,并在浏览器中显示该 URL 对应的 WWW 资源。 A getLocalHost B ShowDocument C accept D get 8.InetAddress 类的 getLocalHost 方法返回一个xx对象, 它包含了运行该程序的计算机的 主机名。 A Applet B Datagramsocket C InetAddress D AppletContext 9.下面xx类能够支持 TCP/IP 连接。 A InetAddress B Packet C Socket D ServerSocket 10.xx对象管理基于流的连接。 A ServeSocker 58 B Socket C Vector D DatagramSocket 三、简述题 1.URL 对象有何作用?其中包含那 4 部分数据?URLConnection 类与 URL 类有何异同?功 能上有那些增强? 2.Java 提供了流 socket 和数据报 socket,流 socket 起到什么作用?数据报 socket 起到什 么作用? 3.用一个 Java 建立一个简单的服务器需要几个步骤? 4.虽然用户都期望编写各种功能强大的网络应用程序,但出于安全方面的考虑,Java 语言受 到那些限制? 四、编程题 1.编写一个应用程序,要求用 URL 类将搜狐主页源码显示在工作台上。 2.编写图形界面的 Application 程序,包含一个 TextField 和 Lable 一个。TextField 接受 用户输入的主机名,把这个主机的 IP 地址显示出来。 3.编写 Applet,接受用户输入的网页地址,并与程序中事先保存的地址比较,若二者相同则 使浏览器指向该网页。 4.编写 Applet,访问并显示在 URL 地址处的图像和声音资源。 59 习题答案 第一章 一、判断题 1.难度:容易 答案:错误 知识点:Java 语言区分大小写。 2.难度:容易 答案:错误 知识点:Java 程序源文件的扩展名为“*.java” 。 3.难度:容易 答案:错误 知识点: Java 应用程序中都含有 main 方法, 因为它是所有 Java 程序执行的入口。 但 Java 小程序中不包含主方法。 4.难度:容易 答案:正确 知识点:Java 虚拟机工作原理。 5.难度:容易 答案:正确 知识点:Java 程序名应该与主类名保持一致。 二、选择题 1.难度:容易 答案:B 知识点:Java 应用程序入口的 main 方法格式要求。 2.难度:容易 答案:D 知识点:运行小程序命令 appletviewer 用法。 3.难度:容易 答案:B 知识点:运行 Java 程序基本命令用法。 4.难度:容易 答案:C 知识点:main 方法只是 Java 应用程序的入口,不是 Java 小程序的入口,因此定义一个与 作为应用程序入口的 main 方法不相同的 main 方法是可以通过编译的, 只是在执行应用程序 时会提示没有应用程序的入口。 60 5.难度:适中 答案:C 知识点:Java 小程序嵌入到 HTML 网页文件的语句。 三、简述题 1.Java 语言的编译过程与一般编程语言的编译过程有何不同? Java 应用程序由编译器编译成字节码,这个字节码不是最终可执行的程序,不能在具体 的平台上运行,还需要由运行系统上的字节码解释器将其解释成机器语言,从而达到边解释边 执行的目的。 2.Java 开发 Application 和 Applet 小程序,主要区别是什么? 对于 Application,它是一种独立的程序,通过解释器就可以即时运行,不依赖浏览器; 对于 Applet,它不是独立的程序,必须嵌入 WWW 页面中,在支持 Java 的 WWW 浏览器上 才能执行。 四、编程题 1. 难度:容易 答案:源程序名 Appli。java import java.io.*; public class Appli { public static void main(String args[ ]) { System.out.println(&欢迎访问 Java 世界!&); } } 2. 难度:适中 答案:源程序名 Apple。java import java.awt.G import java.applet.A public class firstapplet extends Applet { public void paint(Graphics g) { g.drawString(&Hello Java&,50,50); } } HTML 文档名 Apple。Html &html& &head& &title&A simple Applet&/title& &/head& 61 &body&该程序的输出结果为:&/p& &applet code=&apple.class& width=&200& height=&70&&&/applet& &/body& &/html& 第二章 一、判断题 1.难度:容易 答案:错误 知识点: “//“表示单行注释,多行注释以“/*”开始并以“*/”结束。 2.难度:容易 答案:错误 知识点:Java 中的整型 int 占 4 个字节,取值范围为-2 31 ~2 31 -1。 3.难度:容易 答案:错误 知识点:&&两侧的操作数都应该为布尔型。 4.难度:容易 答案:正确 知识点:Java 中变量的声明。 5.难度:容易 答案:错误 知识点: 注释在程序执行时不会造成任何操作的执行, 她们仅用于将程序文本化并提高可读性。 6.难度:容易 答案:错误 知识点:Java 是对大小写字母敏感的,所以这些变量不相同。 7.难度:容易 答案:错误 知识点:模运算操作符在 Java 中也可用浮点数。 8.难度:容易 答案:错误 知识点:运算符*,/和%是在同一优先级上,而运算符+和- 在另一个优先级。 9.难度:容易 答案:错误 知识点:标识符的命名规则 10.难度:容易 答案:错误 知识点:Java 中小数常量的默认类型为 double 类型 二、选择题 62 1.难度:容易 答案:C 知识点:Java 的标识符可以由字母、数字、下划线和美元符号组成,不能以数字开头。 2.难度:容易 答案:B 知识点:基本数据类型所占字节数。 3.难度:容易 答案:B 知识点:运算符优先级。 4..难度:容易 答案:D 知识点:基本类型变量初始化要求。 5..难度:容易 答案:D 知识点:关键字的定义。 6.难度:容易 答案:D 知识点:单条语句通过使用换行符可以显示多行信息。 7.难度:适中 答案:D 知识点:自加条件运算符运算规则。 8.难度:适中 答案:C 知识点:运算符运算法则。 9.难度:容易 答案:D 知识点:赋值运算符应该是+ =。 10.难度:容易 答案:C 知识点:强制转换的是把 6.5 转换成整数 6,再除双精度数 7.5 后所的到的双精度数再乘以 3, 所以得到的结果为双精度数。 11.难度:容易 答案:D 知识点:逻辑运算符及运算符之间的优先级。 12.难度:容易 答案: B 知识点:异或运算符。 13.难度:容易 63 答案: C 知识点:复合赋值运算符用法。 14.难度:容易 答案: D 知识点:把字符’c’转换成整型数据为 99,99/3=33。 15.难度:容易 答案: C 知识点:=为赋值符号,==为等号 16.难度:适中 答案: C 知识点:逻辑运算符和自加运算符的应用。 17.难度:适中 答案: A 知识点:逻辑运算符“||”的应用。 18.难度:适中 答案: B 知识点:逻辑运算符“|”的应用。 三、简述题答案 1.难度:容易 答案:Java 的基本数据类型包括:布尔型、字节型、字符型、短整型、整型、长整型、浮点 型、双精度型。int 型所能表达的最大数据为 ,最小数据为-。 知识点:Java 的数据类型。 2.难度:适中 答案: (1)Java 的算术运算符有: 双目运算符 +、-、*、/、%; 单目运算符 + +、- -、-。 (2)关系运算符 = =、!=、&、&、&=、&=。 (3)逻辑运算符 &、|、!、^、&&、||。 (4)位运算符 ~、&&、&&、&&&。 (5)赋值运算符 + =、- =、* =、/ =、% =、&=、|=、^=、&ó、&=、&&&=。 (6)三目运算符 ?: 。 知识点:Java 运算符 3.难度:适中 答案: (1)- - a % b+ + = 1 (2) ( a &= 1 && a &= 12 ? a : b ) = 2 (3)f ^ ( a & b ) = false (4) ( - - a )& & a = 4 64 (5) (double)(a+b)/5+a/b=-0.4 知识点:Java 中算术表达式的运算符优先原则。 第三章 一、判断题 1.难度:容易 答案:错误 知识点:default 可缺省,若不需要缺省的操作,就可以不写 default 项。 2.难度:容易 答案:错误 知识点:break 语句用于退出 default 结构,当 default 作为 switch 结构的最后一种情况时, 可以不写 break 语句。 3.难度:容易 答案:错误 知识点:do-while 循环语句中循环体至少执行一次。 4.难度:容易 答案:错误 知识点:if 结构仅选择或忽略某一个动作,if/else 要在不同的动作之间做选择。 5.难度:适中 答案:错误 知识点:switch 语句中也可以使用 break 语句。 6.难度:容易 答案:错误 知识点:Java 语言支持 goto 语句。 7.难度:适中 答案:正确 知识点:结构化程序设计的优点。 二、选择题 1.难度:容易 答案:A 知识点:所有的程序均可以用顺序结构、选择结构、循环结构三种类型控制结构编写。 2.难度:容易 答案:D 知识点:当条件为真和条件为假时,if/else 控制结构可以执行不同的动作。 3.难度:容易 答案:C 知识点: ”a=b”的结果不是布尔类型值。 4.难度:适中 65 答案:C 知识点:while 循环的应用。 5.难度:适中 答案:D 知识点:if 分支的应用。 6}

我要回帖

更多关于 java字符串转换为整形 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信