求大量JAVA练习!!!急!!!(不是编程问题)
“Java编程”练习
一、是非问题
1,Java语言采用面向对象编程的思想,具有跨平台、分布式、多线程的优点。( )
2.一个Java源程序可以有多个类,但是只有一个公共类,程序名与公共类名相同。( )
3.方法中的形参可以与方法所属类的属性同名。( )
4.该接口没有构造函数,不能有实例,也不能定义常数。( )
5.File对象可用于确定文件或目录是否存在。( )
6.JFrame、JPanel、JApplet和JButton都是容器组件。( )
7.BorderLayout是面板的默认布局管理器。( )
8.BorderLayout最多可以使用5个组件。( )
9.一个面板(JPanel)不能添加到另一个面板(JPanel)中。( )
10.菜单需要JMenuBar对象,以便可以将它们添加到JFrame中。( )
11.线程可以使用yield来运行具有相同优先级的线程。( )
12和System.in是标准的输入流,键盘输入可以通过read方法读取。( )
13,数据流是数据通信通道,是指在计算机的输入输出之间移动的数据序列。( )
第二,填空
1,设x,y,z,y,z的值分别为真,假,假,试计算以下逻辑表达式的值:
(1)x & amp;& ampy||!z & amp& amp真(2)!x||!y & amp& amp!z
(3) (!x & amp& amp!y)||(!y & amp& amp!z)(4)x & amp;& ampy | |真& amp& amp!z
2.求下列表达式的值:
(1)给定x=2,y=6,z = 5.0,求x+(int)y/2*z%4。
(2)给定x=123,求X/100+X % 100/10+X % 10。
(3)给定x=160,y=2.8,z = 5,求(byte)x+(int)y+(float)z;
(4)设int x = 17,y = 5;执行语句x% = x++/-y后,x的值为。
(5)设int a = 7,b = 6,c = 5;,表达式(a+b)>(c * c)& amp;& ampb = = c | | c & gtb的值是。
(6)设int a = 3,b = 5,c = 7;,表达式a & gtc | | c >;b!= 0 & amp& ampc==b+a的值为。
3.下列表达式中n和x的值是什么?
int n = 0;
int x = 1;
n = x+++x++;//这里n=,x=
n = n++-x-;//这里n=,x=
n = x-+-x++;//这里n=,x=
n = ++ x+x++;//这里n=,x=
4.使用方法设置组件的布局管理器。JFrame的默认布局管理器是,内容面板的默认布局管理器是。
5.编写四个常见的异常示例:、和。重新抛出异常语句。
6.线程可以通过方法休眠一段时间,然后继续运行。当出现这种情况时,线程进入死状态。
7.写线程可以通过和实现。
8.创建file (c:\test.txt)对象的说法是DataInputStream对象提供了一个可以逐行读取文件内容的方法。
9.容器的_ _ _ _ _ _方法可以给容器增加_ _ _ _ _种成分。
10.在执行Java线程的程序中,程序通过调用_ _ _ _ _ _方法启动线程,然后调用_ _ _ _ _ _ _ _ _方法。
11.用法:设置组件的布局管理器。JFrame的默认布局管理器是,内容面板的默认布局管理器是。
12,Java . swing . jframe . getcontentpane()的返回类型是。
13,数据交叉抛出的异常类是,整数除以零抛出的异常类是,算术溢出抛出的异常类是。
三、选择题
1.以下哪些是非法的变量名?( )
a)2D B)True C)_ name D)t 1e)while-ture
2.下列变量定义不正确: ()
a)布尔状态=假;b)浮动d = 45.6
c)char c = " a ";d)int k = 1+' 1 ';e)浮点数f = 1/4;
3.以下数组的定义是非法的: ()
a)char c[][]= new char[2][3];
b)char c[][]= new char[6][];
c)char[][]c = new char[3][3];
d)char[][]c = new char[][4];
e)int[]a[]= new int[10][10];
4.对于以下代码:
公共类示例{
String str =新字符串(" hello ");
char ch[]={'d ',' b ',' c ' };
公共静态void main(String args[]){
Example ex=new Example()。
ex.change(ex.str,ex . ch);
System.out.println(ex.str+"和"+ex . ch[0]);
}
public void change(String str,char ch[]){
str = " worldch[0]= ' a ';
}
}
输出结果是: ()
a)你好,d)你好,a
c)世界和D)世界和a
5.以下哪个陈述是正确的?( )
A)子类不能定义与父类具有相同名称和参数的方法。
b)子类只能继承父类的方法,不能重载。
c)重载是指一个类中有多个同名但参数和方法体不同的方法。
d)子类只能覆盖父类的方法,不能重载。
6.如果一个程序段中有多个catch,程序会执行以下哪种情况?( )
a)在找到适当的异常类型后,继续执行以下catch。
b)找到每个符合条件的catch并执行一次。
c)找到合适的异常类型后,不会执行下面的catch。
d)每次捕获一次。
7.以下哪一项不是File类的函数: ()
a)创建一个文件
b)创建一个目录
c)删除文件
d)复制文件
8.以下哪个陈述是正确的?( )
A) BorderLayout是面板的默认布局管理器。
b)当鼠标指针位于GUI组件的边缘时,发生MouseOver事件。
c)一个面板(Jpanel)不能添加到另一个面板(Jpanel)
d)在BorderLayout中,添加到北部区域的两个按钮将并排显示。
9.在java程序中,下列关于线程的说法是错误的: ()
run方法是运行线程的主体。
b)运行过程中多个流程的执行顺序是连续的。
c)如果线程死了,它就不能运行。
d)在java中,高优先级可运行线程会抢占低优先级线程。
10,关于JDBC访问数据库的说法是错误的: ()
a)建立数据库连接时,必须加载驱动,可以通过Class.forName()实现
DriverManager类的getConnection方法可用于建立与数据源的连接。
c)建立数据库连接时,必须进行异常处理。
d)JDBC中查询语句的执行方法必须通过语句类来实现。
四、程序阅读题
1,读取以下程序,程序另存为Test.java:
1)公共课考试
2) {
3)公共静态void main(String[] args)
4) {
5)system . out . println(args[2]);
6) }
7) }
上面的程序用java Test 1 2 3编译运行后的输出是什么?
2.阅读以下程序:
①公共课考试{
②公共静态void main(String[] a){
③int I = integer . parse int(a[0]);
④开关(i) {
⑤案例1:System.out.println("第一季");打破;
⑥案例二:System.out.println(《第二季》);
⑦案例三:System.out.println("第3季");打破;
⑧案例四:System.out.println("最后一季");
⑨ }
⑩ }
}
上面的程序编译成功了吗?如果编错了,指出哪一行错了,并说明原因;如果编译正确,用java Test 2运行的输出是什么?
3.阅读以下程序:
①公共课考试{
②公共静态void main(String[ ] args) {
③ int x,y=2,i=0,j = 0;
④if(args . length & lt;2)system . exit(-1);
⑤x = integer . parse int(args[1]);
⑥开关(x){
⑦机箱1:开关(y){
⑧案例1:i++;打破;
⑨情况二:j++;打破;
⑩默认:i++;j++;
}
案例二:i++;j++;打破;
默认:i++;j++;
}
system . out . println(" I = "+I ");
system . out . println(" j = "+j ");
}
}
上面的程序编译成功了吗?如果编错了,指出哪一行错了,并说明原因;如果编译正确,用java Test 1 2 3运行的运行结果是怎样的?
4.阅读下面的程序,该程序保存为Test.java:
1)公共课考试
2) {
3)短值;
4)公共静态void main(String[] args)
5) {
6)int a = 32;
7)int b = 56;
8)测试os =新测试(a+b);
9) os。show();
10) }
11)保护测试(短值){ mValue = aValue}
12)public void Show(){ system . out . println(mValue);}
13) }
上面的程序编译成功了吗?如果编错了,指出哪一行错了,并说明原因;如果编译正确,运行结果如何?
5.阅读以下程序:
分类试验
{
公共静态void main(String[] args)
{
int I = 1;
int All = 0;
for(;我& lt=10;i++)
{
if (i%6==0)中断;
if(I % 2 = = 0){ I = I+2;继续;}
All = All+I;
}
system . out . println(All);
}
}
上面的程序编译成功了吗?如果编错了,指出哪一行错了,并说明原因;如果编译正确,运行结果如何?
6.阅读下面的程序,该程序保存为Test.java:
1)公共课考试
2) {
3)公共静态void main(String[] args)
4) {
5)int I = 100;
6)int j = 0;
7)布尔b =真;
8) while (b)
9) {
10)if(b | |(I & lt;50)) b =假;
11)else b = true;
12)j = j+1;
13)I = I-1;
14) }
15)system . out . println(j);
16) }
17) }
编译后的程序运行后输出是什么?
7.阅读以下程序:
1)公共课考试
2) {
3)公共静态void main(String argv[])
4) {
5)鸟b =新鸟();
6) b .苍蝇(3);
7) }
8) }
9)类鸟
10) {
11)静态int类型= 2;
12)私有void Fly(int an_Type)
13) {
14)Type = an _ Type;
15) System.out.println("飞天..."+类型);
16) }
17) }
上面的程序编译成功了吗?如果编错了,指出哪一行错了,并说明原因;如果编译正确,运行结果如何?
8.阅读以下程序:
1)抽象基类{
2)抽象公共void my func();
3) public void another(){
4) System.out.println("另一种方法");
5) }
6) }
7)公共类别Abs扩展基础{
8)公共静态void main(String argv[]){
9)基数b =新Abs();
10)b . another();
11) }
12) public void myfunc(){
13)system . out . println(" My Func ");
14) }
15) public void another(){
16)my func();
17) }
18) }
上面的程序编译后运行结果如何?
9.阅读以下程序:
1)级超级{
2)public int I = 0;
3)公超(){
4)I = 1;
5) }
6) }
7)公共类Sub扩展Super{
8)公共Sub(){
9)I = 2;
10) }
11)公共静态void main(String args[]){
12)Sub s = new Sub();
13)system . out . println(s . I);
14) }
15) }
上面的程序编译后运行结果如何?
10,读取以下程序,程序另存为Test.java:
1)公共课考试{
2)公共静态void main(String[ ] args) {
3)int index = 0;
4)while(index & lt;=100) {
5)索引+= 10;
6)如果(索引==40)
7)破;
8) System.out.println("索引为"+index);
9) }
10) }
11) }
编译后的程序运行后输出是什么?
动词 (verb的缩写)问题和答案
1.设int类型X和Y的变量分别初始化为3和100。以下语句的循环体将被执行多少次?执行以下语句后,x和y的值是多少?
(1)而(x & lt= y)x = 2 * x;
(2)while(y/x & gt;5)如果(y-x & gt;25)x = x+1;else y = y/x;
(3)do { x = 2 * x;} while(x & lt;y);
(4)do { x = y/x;y = y-x;} while(x & gt;= y);
(5)do { y = y/x-1;如果(y & gt= x)y = x;} while(y & gt;=1);
2.简要描述对象和类的概念。
3.简述封装、继承和多态的概念。
4.根据以下设计要求编写java源代码。
类名:Circle
实例数据(全部私有):
Radius(double) //圆的半径。
方法:
构造方法(无参数,设置半径值为10.0)
SetRadius(有一个双参数将Radius的值设置为这个新值),
GetRadius(无参数,返回半径值)
SameSize(有一个参数,是对另一个Circle对象的引用。如果两个圆形对象的半径差小于0.001,则返回true)。
5.下面的代码使用了上一个问题中的Circle类。请回答以下问题:
公共类CircleTester {
公共静态void main(String[] args) {
圆c1,c2,C3;
c1 =新圆();
c2 =新圆();
system . out . println(" are same is:"+c 1 . samesize(C2));
C2 . setradius(20.0);
compare.reset()。
system . out . println(" are same is:"+c 1 . samesize(C2));
}
}
问题:
(1) ***创建了多少个圆形对象?
(2)程序运行的结果是什么?
6.假设有一个ArrayMethods类,它包含以下方法:
public static void replace(double[]a,int p,double v)
用v替换数组a中下标为p的元素的值。
公共静态void fill(double[] a,int p,double v)
用value值填充数组A中的前p个元素(即,将数组A的前p个元素的值设置为V)。如果数组的长度小于P,所有元素都设置为v。
公共静态空显示(双[] a)
在屏幕上显示数组A的内容。
现在假设您已经在main()方法中声明了以下变量:
double[] array1={4.5,6.0,0.1,2.2 };
double[]array 2;
双num 1;
int pos = 3;
以下三组说法,请回答是否合法(即没有编译错误)。如果合法,请描述程序运行的效果。如果不是,请说明原因。
1)num 1 = array 1[2];
array methods . replace(array 1,pos,num 1);
array methods . display(array 1);
2)num 1 = array 1[0];
ArrayMethods.fill(array1,pos,num 1);
array methods . display(array 1);
3)num 1 = array 1[1];
array 2 = new double[num 1];
array methods . display(array 2);
六、编程问题
1.用for、while、do~while分别写出并计算正整数n1到n2的累计和。
2,写一个程序,给定t的一个值(t的值也可以通过命令行输入),按公式计算y的值并输出,要求分别写一条if语句和一条switch语句。
t2-1 0≤t<1
t3-2?t-2 1≤t<3
y= t2-t?烧结温度3≤t<5
t+1 5≤t<7
T-1其他
3.设计一个类TestArraySum,用10个元素定义一个int数组A,值为11 ~ 20,然后定义一个方法arraySum(int[] a)返回数组中所有元素的和,最后用main方法在屏幕上输出数组A中所有元素的和。
4.写一个java程序Suansu.java,定义两个整型变量A和B,用构造函数将A初始化为10,B初始化为5,定义方法求A和B的和(方法名为AddAB)、差(方法名为SubAB)、积(方法名为MultiAB)和商(方法名为DivAB)
用另一个java程序TestSuansu.java测试Suansu.java定义的方法,并在屏幕上输出结果。
5.创建一个名为Rectangle的类来表示一个矩形,其宽度和高度用于改变数量。矩形的宽度和高度由构造方法决定。为Rectangle类创建以下方法:
GetArea返回矩形的面积,所需长度和高度范围为0到50;
GetPerimeter返回矩形的周长;
Draw使用星号(*)作为绘图符号绘制矩形(假设宽度和高度为整数);
在另一个类TestRectangle中编写main方法来测试Rectangle类。
6.用面向对象的思想定义一个接口Area,里面包含一个计算面积CalsulateArea()的方法,然后设计MyCircle和MyRectangle两个类,在这个接口中实现CalsulateArea()方法,分别计算圆形和矩形的面积,最后写一个程序测试上面的类和方法。
7.创建一个带有两个按钮和一个文本字段的框架。单击按钮以在文本字段上显示按钮信息。
8.创建如下所示的GUI程序(注意:不需要函数)。
9.编写一个文件复制程序,将文件C:\test1.txt的内容复制到C: \ test2.txt..
10,写一个程序,统计给定文件中每个字母出现的频率。
11.写一个程序,统计给定文件中包含的字数,并按照单词列表的顺序显示统计结果。
12.设计一个简单的带有图形界面的计算器。
13.用图形界面实现简单的银行柜台业务,包括开户、取款、存款、查询账户余额等业务。