「java运算符练习题」java运算符和表达式程序题
本篇文章给大家谈谈java运算符练习题,以及java运算符和表达式程序题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、哪儿有java练习题?
- 2、java 运算符 计算题
- 3、想找一些java的带讲解的基础练习题
- 4、java 中的 方法 总是调来调去的 求高人发题 专练习调方法的练习题 下下了 越多越好
- 5、java求练习题集
- 6、java练习题
哪儿有java练习题?
Java面向对象程序设计
考试卷
班级:
姓名:
时间: 90分钟
一、选择题(没有注明多选,则为单选)
1、 下列变量定义错误的是 D
A. int a;
B. double b=4.5;
C. boolean b=true;
D. float f=9.8; (9.8f)
2、 6+5%3+2的值是 D 3%5=3
A. 2
B. 1
C. 9
D. 10
3、 对于一个三位的正整数 n,取出它的十位数字k(k为整型)的表达式是
A. k = n / 10 % 10
B. k = ( n - n / 100 * 100 )%10
C. k = n % 10
D. k = n / 10
4、 下列语句序列执行后,k 的值是 D
1. int x=6, y=10, k=5;
2. switch( x % y ) (=6) (long类型不行)
3. {
4. case 0: k=x*y;
5. case 6: k=x/y;
6. case 12: k=x-y;
7. default: k=x*y-x; (default 位置可以改变)
8. }
A. 60
B. 5
C. 0
D. 54
5、 下列语句序列执行后,i的值是:
1. int i = 10;
2. do { i/=2; } while( i-- 1 ); (减去1)
A. 1
B. 5
C. 2
D. -1
6、 在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是:(同一个方法中参数不同,返回值类型可以不同也可以相同)
A. public getSort(float x) 没有返回类型 一定是构造函数 不能重载
B. int getSort(int y)(参数一样不是重载)
C. double getSort(int x,int y) (参数不一样是重载)
D. void get(int x, int y)
7、 下列哪个是合法的Java标识符:(两个答案) B C
A. TreeGlasses
B. FirstJavaApplet
C. _$theLastOne
D. 273.5
8、 设 a = 8,则表达式 a 2 的值是:C (无符号右移动)左移是乘 右是除
A. 1
E. 2
B. 3
C. 4
9、 下面的程序名为Student.java
1. public class Student
2. {
3. private String name;
4. public Student(String s_name) //1
5. {
6. name = s_name; //2
7. }
8. public static void main(String args[])
9. {
10. Student s = new Student(); //3
11. }
12. }
使用如下指令编译:javac Student.java将会得到什么结果?
A. 将会顺利通过编译,并将产生一个Student.class的类文件
F. 编译时在//3处出错
B. 编译时在//2处出错
C. 编译时在//1处出错
10、 下面选项中能把字符串转换成float类型的是?: B
A. float value = new Float(str); 创建一个对象
B. float value = Float.parseFloat(str);
C. float value = Float.floatValue(str);
D. float value = (new Float()).parseFloat(str);
11、 下边程序运行的结果是? 实例化子类对象要看父类
1.class Base {
2. Base() { System.out.print("Base"); }
3. }
4. public class Alpha extends Base {
5. public static void main( String[] args ) {
6. new Alpha();
7. new Base();
8. }
9. }
A. Base
B. BaseBase
C. 程序编译失败.
D. 程序运行但没有任何输出
12、 下面程序运行的结果是? A 值传递
1. public class X {
2. private static int a;
3. public static void main(String [] args) {
4. modify(a);
5. System.out.println(a);
6. }
7. public static void modify(int a) {
8. a++;
9. }
10. }
A. 0
B. 1
C. 程序编译失败
D. 程序抛出异常
13、 下面程序运行的结果是?
1.String s = "Hello" + 9 + 1;+字符连接(9+1+”hello”=10hello(string类型))
2.System.out.println(s);
A. Hello10
B. Hello91
C. Hello10.0
D. 程序编译失败
14、 下列说法正确的是? C
A. 一个子类可以有多个父类,一个父类也可以有多个子类
B. 一个子类可以有多个父类,但一个父类只可以有一个子类
C. 一个子类可以有一个父类,但一个父类可以有多个子类
D. 上述说法都不对
15、 下面程序运行的结果是?
1. abstract class AbstrctIt {
2. abstract float getFloat ();
3. }
4. public class AbstractTest extends AbstractIt {
5. private float f1= 1.0f;
6. private float getFloat () {return f1;} 权限只能扩大不能缩小
7. }
A. 编译成功
B. 在第6行产生一个运行时异常
C. 在第6行产生一个编译错误
D. 在第2行产生一个编译错误
16、 下面的程序输出的结果是:B
1. public class A implements B {
2. public static void main(String args[]){
3. int i;
4. A c1 = new A();
5. i= c1.k;
6. System.out.println("i="+i);
7. }
8. }
9. interface B {
10. int k = 10;接口(抽象方法和静态常量的结合)里的静态常量 public static final
11. }
A. i=0
B. i=10
C. 程序有编译错误
D. i=true
17、 方法methodA返回类型是:
1. public class returnIt{
2. returnType methodA(byte x, double y) {
3. return (short) x/y * 2;
4. }
5. }
A. int
B. byte
C. long
D. double
18、 下面的程序输出的结果是:A
1. public class IfTest {
2. public static void main(string[]args) {
3. int x = 3;
4. int y = 1;
5. if (x = y) =:赋值运算符 (==)比较运算符
6. System.out.println(“Not equal”);
7. else
8. System.out.println(“Equal”);
9. }
10.}
A. Equal
B. Not Equal
C. 编译失败
D. 程序没有任何输出结果
19、 在下面程序中,变量i可以使用的数据类型是:(两个答案) A B
1. switch (i) {
2. default:
3. System.out.println(“Hello”);
4. }
A. char
B. byte
C. float 不行
D. double 不行
E. object
20、 应用程序的main方法中有以下语句,则输出的结果是:A
1. int[] x={122,33,55,678,-987};
2. int y=x[0];
3. for(int i=1;ix.length;i++){
4. if(x[i]y)
5. y =x[i];
6. }
7. System.out.println(y);
A. 678
B. 122
C. -987
D. 33
21、 程序输出的结果是?C
1. public class X {
2. public static void main(String [] args) {
3. try {
4. badMethod();
5. System.out.print(“A”);
6. }
7. catch (Exception ex) {
8. System.out.print(“B”);
9. }
10. finally {
11. System.out.print(“C”);
12. }
13. System.out.print(“D”);
14. }
15. public static void badMethod() {}
17. }
A. AB
B. BD
C. ACD
D. ABCD
22、 程序输出的结果是?D
System.out.println(4 | 3);: 二进制 安位或
A. 0
B. 1
C. 5
D. 7
23、 关于下述程序哪个是正确的构造器重载(两个正确)
1. public class ConstOver {
2. public ConstOver (int x, int y, int z) {
3. }
4. }
A. ConstOver ( ) { }
B. protected int ConstOver ( ) { } 构造函数没有返回类型
C. private ConstOver (int z, int y, byte x) { }
D. public Object ConstOver (int x, int y, int z) { }
E. public void ConstOver (byte x, byte y, byte z) { }
24、 下述程序编译运行后在//1和//2处分别打印出什么值?
1. public class Test9静态变量和静态块只会初始化一次
2. {
3. static int i = 1;
4. static
5. {
6. i++;
7. }
8. public Test9()
9. {
10. i++;
11. }
12. public static void main(String[] args)
13. {
14. Test9 t1 = new Test9();
15. System.out.println(t1.i); //1
16. Test9 t2 = new Test9();
17. System.out.println(t2.i); //2
18. }
19. }
A. 2和2
B. 3和3
C. 3和4
D. 4和3
25、 下列答案正确的是:两个答案 A B
int[] arr = new int[10];
A. arr[0] 是null
B. arr[10]是0
C. arr[9] 是0
D. arr[0] 是0
26、 编译器能够为类A分配一个默认构造器的是?(两个答案) A D
A. class A {}
B. class A {
public A() { }
}
C. class A {
public A(int x) { }
}
D. class Z { }
class A extends Z {
void A() { }
}
27、 下面程序运行的结果是:
1.public class Foo {
2.public int i = 3;
3. public static void main(String args[]) {
4. Object o = new Foo();
5. Foo foo = (Foo)o;
6. System.out.println("i = " + foo.i);
7. }
8.}
A. i=3
B. i = 0.
C. 程序编译错误
D. 程序运行时抛出异常
28、 下面程序运行的结果是:
1. class Exc0 extends Exception { }
2. class Exc1 extends Exc0 { }
3. public class Test {
4. public static void main(String args[]) {
5. try {
6. throw new Exc1();
7. } catch (Exc0 e0) {
8. System.out.println("Ex0 caught");
9. } catch (Exception e) {
10. System.out.println("exception caught");
11. }
12. }
13. }
A. Ex0 caught
B. exception caught
C. 编译失败,错误在第2行
D. 编译失败,错误在第6行
29、 下面表达式计算的结果和返回值类型分别是?(两个答案) B D
Math.ceil(0.1 + Math.floor(Math.random())); 0-1之间的小数
A. 0.0
B. 1.0
C. float
D. double
E. 一个随机数
30、 下面程序运行的结果是:
1.public interface Test {
2. int frood = 42;
3.}
4.class TestImpl implements Test {
5. private static int frood;
6. public static void main(String[] args) {
7. System.out.println(++frood);
8. }
9.}
A. 0
B. 1
C. 42
D. 43
答题卡
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30
二、编程题
注意:书写清晰,看不清楚不给分,注意字体大小,写不下可以写在背面,标清题号。
1、 输出n行n列的空心矩形(要求使用嵌套循环),当n=5时,运行结果显示如下:
#####
# #
# #
# #
#####
2、 设计Java程序
假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
3、 设计Java程序,实现如下功能:
获取50个0至300之间的随机整数,并输出到屏幕上;
取出上面50个整数中的偶数,倒序排列输出到屏幕上。
4、 编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个类都有构造方法和输出相关数据的方法。
java 运算符 计算题
a*b = 1 * 2 = 2;
c/2 = 3 / 2 = 1; (除法只取整数部分,小数部分舍弃)
2*(a+b)/c = 2*(1+2)/3 = 2*3/3 = 6/3 = 2;
2 + 1 + 2 = 5;
我不知道为什么上面的答案说题目有问题?
想找一些java的带讲解的基础练习题
问题
• can not read xxx.java
• 怎样让char类型的东西转换成int类型?
• 我的applet原先好好的, 一放到web server就会有问题,为什么?
• 怎样在 Applet中用某个图形涂满整个背景?
• 怎样比较两个类型为String的字符串?
• 怎样将浮点数(float)相加 ? Float 好像没有办法?
• 如何将字串String转换成整数int?
• 如何将整数 int 转换成字串 String?
• 哪位可以推荐几个比较好的java/jsp论坛?
• JAVA的环境变量 请教一下哪位高手知道JAVA的环境变量怎么配置?让它在DOS中运行,我下载的版本是jdk1.5.0_01,系统属性环境变量中有一个用户变量和系统变量,该配置在哪个变量中呢?
• C++和JAVA的分别?
• 初学java用那本书好
• 我想学习JAVA编程语言,但不知从啥开始?
• 初学JAVA的人看书参考书最好
• 作用域public,private,protected,以及不写时的区别
• ArrayList和Vector的区别,HashMap和Hashtable的区别
• char型变量中能不能存贮一个中文汉字?为什么?
• 继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
• 谈谈final, finally, finalize的区别。
• Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
• Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)
• 和的区别
• HashMap和Hashtable的区别?
• Collection 和 Collections的区别?
• 什么时候用assert?
• GC是什么? 为什么要有GC? (基础)?
• String s = new String("xyz");创建了几个String Object?
• Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
• short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
• Java有没有goto?
• 数组有没有length()这个方法? String有没有length()这个方法?
• Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
• Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
• abstract class和interface有什么区别?
• abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
• 构造器Constructor是否可被override?
• 是否可以继承String类?
• 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
• try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
• 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
• swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
回答
• can not read xxx.java
首先看看你的文件是否保存为.java.txt的类型了(右点文件看属性里的扩张名) 重新保存 记得此时要把文件名.java加上引号 保存 。
返回顶部
--------------------------------------------------------------------------------
• 怎样让char类型的东西转换成int类型?
char c = 'A';
int i = c;
//反过来只要作强制类型转换就行了
c = (char) I;
返回顶部
--------------------------------------------------------------------------------
• 我的applet原先好好的, 一放到web server就会有问题,为什么?
一般来说,从以下方向试试:
确定class文件的格式没错——已经编译过,也没有损坏的情形;
确定所有用到的class文件放到web server上,少一个都不行;
确定所有的文件名和class名称一致,特别检查大小写有无差错;
如果程序中用到package,web server上的目录就要当心了。譬如您在class中宣告了一个叫COM.foo.util的package,那么web server的applet codebase目录底下就非得有 COM/foo/util这个子目录不可。(注意目录名称也有大小写之分);
web server上的文件档案应该事先设定好。(尤其是search,read和execute权限)
返回顶部
--------------------------------------------------------------------------------
• 怎样在 Applet中用某个图形涂满整个背景?
在背景建立 Panel 或 Canvas, 然后用图形填满它。
返回顶部
--------------------------------------------------------------------------------
• 怎样比较两个类型为String的字符串?
在两个对象之间使用 "==",会将“两个对象是否有同一reference”的结果传回。也就是说, 这等同于“两个对象是否拥有同一地址 (address)”,或者“两个对象物件是否为同一对象”。如果您的意思是判断两个字符串的内容是否相同,那么应该使用以下的方法才对:
if (s1.equals(s2) )
or if (s1.equalsIgnoreCase(s2) )
or if (s1.startsWith(s2) )
or if (s1.endsWith(s2) )
or if (s1.regionMatches(s1_offset, s2, s2_offset, length) )
or if (s1.compareTo(s2) 0)
返回顶部
--------------------------------------------------------------------------------
• 怎样将浮点数(float)相加 ? Float 好像没有办法?
我猜想您的程式大概写成这样:
Float One;
Float Two;
Float Hard = One + Two;
请注意 float 和 Float 是不同的,前者是 Java 基本类型之一, 而后者却是class。您应该将源代码改为:
float One;
float Two;
float Hard = One + Two;
或
Float One = new Float(1.0);
Float Two = new Float(2.0);
Float Hard = new Float(One.floatValue() + Two.floatValue());
返回顶部
--------------------------------------------------------------------------------
• 如何将字串String转换成整数int?
1)int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);
2)int i = Integer.valueOf(my_str).intValue();
注: 字串转成Double, Float, Long的方法大同小异。
返回顶部
--------------------------------------------------------------------------------
• 如何将整数 int 转换成字串 String?
有三种方法:
1)String s = String.valueOf(i);
2)String s = Integer.toString(i);
3)String s = "" + i;
注:Double, Float, Long 转成字串的方法大同小异。
返回顶部
--------------------------------------------------------------------------------
• 哪位可以推荐几个比较好的java/jsp论坛?
这个网站是我最近才发现的,虽然内容不多,但是提供的相关java工具挺齐全。还有就是里面提供了java教学视频录象的免费下载,好像一两周更换一段。个人觉得挺适合初学者的,尤其是那个classpath的设置,讲的很透彻,大家有空可以看一看。
java官方站点(英文)
要想了解最新的java动态,下载最新的java相关,比如j2se、j2ee、j2se的最新jdk版本就来这里吧。
java中文站
这个可能大家都知道,不用说了,他提供的java资源是最丰富的。注册论坛是免费的,还送积分,用积分可以下载软件和电子书等,如果积分用完了,就需要自己发表一些文章来赚新的积分。
中文java网站
跟上面站点类似的一个站,宗旨就是:为java爱好者服务。值得一看!
锋网
综合性的java网站,内含“下载中心”、“教程教学”等栏目。
返回顶部
--------------------------------------------------------------------------------
• JAVA的环境变量
请教一下哪位高手知道JAVA的环境变量怎么配置?让它在DOS中运行,我下载的版本是jdk1.5.0_01,系统属性环境变量中有一个用户变量和系统变量,该配置在哪个变量中呢?
Windows下JAVA环境变量的设置祥解
Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。下面逐个分析。
JAVA_HOME指向的是JDK的安装路径,如x:\JDK_1.4.2,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……
那么,下面的步骤和以后的应用你都要受累了,呵呵。设置方法:
JAVA_HOME=x:\JDK_1.4.2
PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译、执行程序时就不需要再键入一大串路径了。设置方法是保留原来的PATH的内容,并在其中加上%JAVA_HOME%\bin
(注,如果你对DOS批处理不了解,你可能不明白%%引起来的内容是什么意思;其实这里是引用上一步设定好的环境变量JAVA_HOME,你写成x:\JDK_1.4.2也是可以的;你可以打开一个控制台窗口,输入echo
%JAVA_HOME%来看一下你的设置结果) :
PATH=%JAVA_HOME%\bin;%PATH%
同样,%PATH%是引用以前你设置的PATH环境变量,你照抄以前的值就行了。
CLASSPATH环境变量我放在最后面,是因为以后你出现的莫名其妙的怪问题80%以上都可能是由于CLASSPATH设置不对引起的,所以要加倍小心才行。
CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
首先要注意的是最前面的".\;",如果你看不清,我给你念念——句点反斜杠分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件——为什么这样搞,这是由于LINUX的安全机制引起的,LINUX用户很明白,WINDOWS用户就很难理解(因为WINDOWS默认的搜索顺序是先搜索当前目录的,再搜索系统目录的,再搜索PATH环境变量设定的)
,所以如果喜欢盘根究底的朋友不妨研究一下LINUX。
为什么CLASSPATH后面指定了tools.jar这个具体文件?不指定行不行?显然不行,行的话我还能这么罗索嘛!:)
这个是由java语言的import机制和jar机制决定的,你可以查资料解决。
呵呵,具体的设定方法: win2k\xp用户右键点击我的电脑-属性-高级-环境变量,修改下面系统变量那个框里的值就行了。
win9x用户修改autoexec.bat文件,在其末尾加入:
set JAVA_HOME=x:\JDK_1.4.2
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
返回顶部
--------------------------------------------------------------------------------
• C++和JAVA的分别?
JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,
而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。
Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。
我在这里不能完全列出不同之处,仅列出比较显著的区别:
1.指针
JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。
2.多重继承
c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。
3.数据类型及类
Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而c++允许将函数和变量定义为全局的。此外,Java中取消了c/c++中的结构和联合,消除了不必要的麻烦。
4.自动内存管理
Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于c++的new操作符。下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法:
Read r=new Read();
r.work();
语句Read r=new Read();在堆栈结构上建立了一个Read的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序贝释放内存资源,增加了程序设计者的负扔。Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。JAVA里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。
5.操作符重载
Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。
6.预处理功能
Java不支持预处理功能。c/c十十在编译过程中都有一个预编泽阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。
7. Java不支持缺省函数参数,而c十十支持
在c中,代码组织在函数中,函数可以访问程序的全局变量。c十十增加了类,提供了类算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相似,然而,由于c十十仍然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。
Java没有函数,作为一个比c十十更纯的面向对象的语言,Java强迫开发人员把所有例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。
8 字符串
c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点:
(1)在整个系统中建立字符串和访问字符串元素的方法是一致的;
(2)J3阳字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分;
(3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误;
(4)可对字符串用“十”进行连接操作。
9“goto语句
“可怕”的goto语句是c和c++的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分支技术。鉴于以广理由,Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使用,使程序简洁易读。
l0.类型转换
在c和c十十中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持c十十中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
11.异常
JAVA中的异常机制用于捕获例外事件,增强系统容错能力
try{//可能产生例外的代码
}catch(exceptionType name){
//处理
}
其中exceptionType表示异常类型。而C++则没有如此方便的机制。
参考资料:
返回顶部
--------------------------------------------------------------------------------
• 初学java用那本书好
学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。
在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。
对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。
对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。
在所有的Java书籍当中,其实最最有用的,并不是O'reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。
对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web编程有很大的难度,我推荐O'reilly的《Java Server Pages 》这本书来学习Web 编程。
EJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。
但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。
如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。
在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习“设计模式”。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。
Java Learning Path(三)过程篇
每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。
学习Java的第一步是安装好JDK,写一个Hello World,? 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。
第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。
第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。
第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\lib\rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O'reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:
首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。
对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That'all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。
第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:
java.text.
java 中的 方法 总是调来调去的 求高人发题 专练习调方法的练习题 下下了 越多越好
第一章 java技术入门
1.练习环境变量的设置,如果出现问题,试分析其原因并更正。
2.编写HelloWorld程序,并编译执行。
3.在屏幕上打印出一下图形。
************************************************
**************Java程序设计**********************
*************************************************
4.编辑、编译、运行以下程序,说出程序的功能。改变变量n的初值,观察运行结果。
public class Sum10_for
{
public static void main(String[] args)
{
int i=1,n=10,s=0;
System.out.print("Sum("+n+")=");
for(i=1;in;i++)
{
s+=i;
System.out.print(i+"+");
}
System.out.println(i+"="+(s+i));
}
}
第二章 面向对象程序设计
1.创建一个带缺省构造方法的类,在构造方法中打印一条信息。为这个类创建一个对象
2.设计一个银行账户类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等账户信息,成员方法包括存款、取款等操作。
//3.定义一个点对象。
4.编写并测试一个代表地址的Address类,地址信息由国家、省份、城市、街道、邮编组成,并可以返回完整的地址信息。
5.定义并测试一个代表员工的Employee类。员工属性包括编号、姓名、基本薪水,还包括获取这些属性的方法。
6.创建一个Dog类,有名字、颜色、年龄等属性,定义构造方法来初始化类的这些属性,定义方法输出Dog信息,编写应用程序使用Dog类。
第四章 运算符、表达式和流程控制
1.测试++运算符。问:当a=1时,如下表达式:(++a)+(++a)+(++a);(a++)+(a++)+(a++);(++a)+(a++)+(++a)+(a++)的值分别是多少。
2.写一个打印从1到100值的程序
3.编写一个程序,求三个数中的最大值。
4.求1~1000之间可以同时被3、5、7整除的数字。
5.利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
程序分析:(ab)?a:b这是条件运算符的基本例子。
6.利用递归方法求5!。
第五章 数组
1.定义一个由整数组成的数组,要求求出其中的奇数个数和偶数个数。
2.现在有如下的一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将不为0的值存入一个新数组。
3.定义一个整型数组,求出数组元素的和、数组的最大值和最小值,并输出。
4.设级数Sn定义为:S0=0,S1=1,Sn=Sn-1+2*Sn-2(n=2),将前10个Sn数放入数组中。
5.打印出二维数组中元素的最大值,及其行、列位置。
第六章 面向对象编程进阶
1.设计一个表示用户的User类,类中的变量有用户名、口令等,定义类的三个构造方法(无参、为用户名赋值、为用户名和口令赋值),并设计获取和设置口令的方法和返回类信息的方法。
2.创建一个名为Dog的类,具有重载的bark()方法。此方法应根据不同的基本数据类型进行重载,并根据被调用的版本,打印出不同类型的狗的叫声。编写main()来调用所有不同版本的方法。
3.编写具有两个方法的类,在第一个方法内调用第二个方法两次:第一次调用不使用this,第二次调用时使用this。
4.编写具有两个重载构造方法的类,并在第一个构造方法中调用第二个构造方法。
5.创建一个带有public,private,protected和包访问权限的成员变量以及成员方法的类。创建该类的一个对象,看看在你试图调用所有类成员时,会得到什么类型的编译信息。注意在同一目录中的所有类都是缺省包范围。
6.(1)创建两个带有缺省构造器的类,A和B。从A中继承一个名为C的新类,并在C内创建一个B类的成员。不要给C编写构造器。创建一个C类的对象并观察其结果。
(2)对上述程序进行修改,使A和B含有带参数的构造器,以取代缺省的构造器。为C写一个构造器,并在其中执行所有初始化。
7.证明基类构造器(a)总是被调用(b)在导出类构造器之前被调用
8.创建一个仅有一个非缺省构造器的基类,并创建一个带有缺省构造器和非缺省构造器的导出类。在导出类的构造器中调用基类的构造器。
9.(1)创建一个Root类,令其含有名为Component1、Component2、Component3的类各一个实例(这些也由你写)。从Root中派生一个类Stem,也含有上述各“组成部分”。所有的类都应带有打印出类的相关信息的缺省构造器。
(2)修改上述程序,使每个类都仅有非缺省的构造器。
10.创建一个类,它应带有一个被重载了三次的方法。创建一个子类,并添加一个该方法的新的重载定义,展示着四个方法在子类中都可以使用。
11.建立一个人类(Person)和学生类(Student),功能要求如下:
(1)Person中包含4个保护型的数据成员name、addr、sex、age,表示姓名、地址、性别和年龄。用一个4参构造方法、一个两参构造方法、一个无参构造方法、一个输出方法显示4种属性。
(2)Studeng类继承Person类,并增加输出成员math、english存放数学和英语成绩。用一个6参构造方法、一个两参构造方法、一个无参构造方法和重写输出方法用于显示6种属性。
11.在包中编写一个类,你的类应具备一个protected方法。在包外部,试着调用该protected方法并解释此结果。然后,从你的类中派生一个导出类,并从该导出类的一个方法内部调用该protected方法。
12.(1)创建一个名为Amphibian的类。由此派生出一个被称为Frog的类。在基类中设置适当的方法。在main()中,编写一个Frog并向上转型至Amphibian,然后说明所有方法都可工作。
(2)修改上述程序,使Frog重载基类中方法的定义,并重新调用,观察现象。
13声明一个图书类,其数据成员为书名、编号(利用静态变量实现自动编号)、书价,并拥有静态数据成员册数,记录图书的总册数,在构造方法中利用此静态变量为对象的编号赋值,在主方法中定义对象数组,并求出总册数。
14.创建一个含有static final数据成员和final数据成员的类,说明二者间的区别。
15.创建一个带有final数据成员的类。由此派生出一个类并重载此数据成员。
16.创建一个包含两个方法的基类。在第一个方法中可以调用第二个方法。然后产生一个继承自该基类的导出类,且重载基类的第二个方法。为该导出类创建一个对象,向上转型到基类型并调用第一个方法,解释发生的情况。
第七章 高级类特性
1.(1)创建一个Rodent(啮齿动物):Mouse(老鼠),Gerbil(鼹鼠),Hamster(大颊鼠)这样的继承层次结构。在基类中,提供对所有的Rodent都通用的方 法,在基类中,根据特定的Rodent类型重载这些方法,以便执行不同的行为。(2)修改上述程序,使Rodent成为一个抽象类。只要有可能,就将Rodent的方法声明为抽象方法。
2.创建一个基类,包含抽象方法print(),并在导出类中将其重载。重载的版本中会打印基类中定义的某个整型变量的值。在定义该变量时,请赋予非零值。在基类的构造器中,可以调用这个方法。现在,在main()方法中,创建一个导出类对象,然后调用它的print()方法。解释发生的情形。
3.创建一个不包含任何方法的抽象类,从它那里导出一个子类,并添加一个方法。在测试类中创建一个静态方法,可以接受一个指向基类的引用,将其向下转型到导出类,然后再调用该静态方法。在main()方法中,证实它的可行性。
4.定义类Shape,用来表示一般二维图形。Shape具有抽象方法area和perimeter,分别用来计算形状的面积和周长。试定义一些二维形状类(如矩形、三角形、圆形等),这些类均为Shape类的子类。
4.在某个包中创建一个接口,内含三个方法,然后在另一个包中实现此接口。
5.创建三个接口,使之各有两个方法。再创建一个新的接口,继承三者,并添加一个新方法。然后创建一个类,在实现此新接口的同时,继承一个实际的类。并为这个类写四个方法,每个方法分别以四个接口中的一个作为参数。在main()中,创建这个类的对象,然后将它作为参数传递给那四个方法。
6.在第一个包中创建至少有一个方法的接口。然后在第二个包内创建一个类,在其中增加一个protected的内部类以实现那个接口。在第三个包中,继承这个类,并在一个方法中返回该内部类的对象,在返回的时候向上转型为第一个包中的接口类型。
7.创建一个至少有一个方法的接口。在某个方法内定义一个内部类,以实现此接口,这个方法返回此接口的引用。
8.创建一个private内部类,实现一个public接口。写一个方法,它返回一个指向此private内部类的实例的引用,并将此引用向上转型为该接口类型。通过尝试向下转型,说明此内部类被完全隐藏了。
9.创建一个仅有非缺省构造器的类。再创建第二个类,它包含一个方法,能够返回第一个类的引用。通过写一个继承自第一个类的匿名内部类,而创建一个用以返回的对象。
10.定义一个品牌电脑的枚举类,其中只有固定的几个电脑品牌。
11.定义一个Person类,其中包含姓名、年龄、生日、性别等属性,其中性别只能 是男或女。
第八章 异常处理
1.编写一个类,在main()的try块里抛出一个Exception对象。传递一个字符串参数给Exception的构造器。在catch子句里捕获此异常对象,并且打印字符串参数。添加一个finally子句,打印一条信息以证明这里确实得到了执行。
//2.使用extends关键字建立一个自定义异常类。为这个类写一个接受字符串参数的构造器,把此参数保存在对象内部的字符串引用中。写一个方法打印此字符串。写一个try-catch子句,对这个异常进行测试。
3.为一个类定义两个方法,f()和g()。在g()里,抛出一个泥定义的新异常。在f()里,调用g(),捕获它抛出的异常,并且在catch子句里抛出RuntimeException。在main()方法里测试你的代码。
第九章 精通常用的java类
1.计算字符串中子串出现的次数
2.写一个接收两个字符串的方法,判断两个字符串是否相等,做==的同时,用eques做测试,在main()里面用不同的字符串做测试,并打印结果。
3.写一个会随机生成25个整型值的程序。对每一个只,用if-else语句判断其实大于、小于,还是等于下一个随机生成的数。
4.统计一个字符串中单词的个数。设单词之间用一个或多个空格分隔,该字符串只由字母与空格组成。
5.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
6.编写程序,统计出字符串“want you to know one thing“中字母n和字母o
的出现次数。
7.字符串操作:
(1)从字符串“Java技术学习班20091211”中提取开班日期。
(2)将“IBM JAVA学习班”中的字符串JAVA替换为“J2SE”。
(3)取出“JAVA技术学习班20091211”中的第八个字符。
(4)清除“JAVA技术学习班20091211”中的所有的0.
(5)清除“JAVA 技术学习班 学生 信息”中的所有空格。
8.定义一个StringBuffer类对象,然后通过append()方法向对象中添加26个小写字母,要求每次只添加一次,共添加26次,然后按照逆序的方式输出,并且可以删除前五个字符。
9.输入一个Email地址,然后使用正则表达式验证该Email地址是否正确。
10.编写程序,用0~1之间的随机数来模拟扔硬币试验,统计扔1000次后出现正反面次数并输出。
11.编写正则表达式,判断给定的是否是一个合法的IP地址。
第十一章 集合与映射
1.(1)创建一个新类Gerbil(沙鼠),包含int gerbilNumber,在构造器中初始化它。添加一个方法hop(),用以打印gerbil的号码。创建一个ArrayList,并向其中添加一串Gerbil对象。使用get()遍历List,并且对每个Gerbil调用hop().
(2)修改上述程序,使用Iterator遍历List,并调用hop()。
2.使用上述中的Gerbil类,将其放入Map中,将Gerbil的名字String(键)与每个Gerbil(值)关联起来。有keySet()获取Iterator,使用它遍历Map,针对每个"键"查询Gerbil,然后打印出"键",并调用hop()。
3.创建一个新容器,用private ArrayList来保存对象。用Class reference来判断容器中的第一个对象的类型,然后只允许用户插入此类型的对象。
4.用String数组创建一个只能存取String的容器,这样使用的时候就没有类型转换的问题了。当容器发现数组不够大的时候,应该能够自动调整其内部数组的容量。
//5.创建一个包括两个String对象的类,然后做一个只比较第一个字符串的Comparable。产生多个对象并存入ArrayList。验证一下,排序能否正常工作。再做一个只比较第二个String的Comparator,然后验证一下,排序是否正常
6.写一个类,在其中创建一个已经初始化的对象数组。使用此数组填充List。使用subList()生成此List的子集,然后使用removeAll()将子集从List中移除。
7.创建自己的容器,使它只能容纳特定类型的对象。
8.编写学生类,该类定义了3个属性:学号、姓名、成绩。可以通过构造方法设
置3个属性的值,并覆写Object类的toString()放法,在List集合中加入5
个学生对象,并将内容输出,之后使用比较器将对象的内容进行排序并显示在屏幕上。
java求练习题集
Java程序设计习题集
第一章Java基础知识
§1.1Java概述
1.完成在Windows 2000操作系统下环境变量的配置
2.创建一个Java程序,输出自己的基本信息:名字和年龄。
3.概述Java语言的版本发展过程。
4.简述Java语言的运行机制。
5.在自己的机器上用JDK开发运行环境完成第一个Java程序的编辑、编译、运行过程。
6.简述Java语言的特点,Java虚拟机的概念及作用。
§1.2 Java基本语法
1.什么是变量?什么是常量?
2.什么叫表达式,Java语言中共有几种表达式?
3.下面哪些表达式不合法?为什么?
HelloWorld 2Thankyou _First -Month 893Hello
non-problem HotJava implements $_MyFirst
4. 以下的选项中能正确表示Java语言中的一个整型常量的是( )。
A) 12. B) -20 C) 1,000 D) 4 5 6
5. 以下选项中,合法的赋值语句是( )。
A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i );
6. 若所用变量都已正确定义,以下选项中,非法的表达式是( )。
A) a != 4||b==1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32
7. 若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。
A) 0 B) 4 C) 8 D) –4
8. 在Java语言中,逻辑常量只有true 和 ___________ 两个值。
9. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 __________两种具体类型。
10. Java语言是( )。
A.面向问题的解释型高级编程语言
B.面向机器的低级编程语言
C.面向过程的编译型高级编程语言
D.面向对象的解释型高级编程语言
11. 下列的变量定义中,错误的是( )。
A) int i; B) int i=Integer.MAX_VALUE;
C) static int i=100; D) int 123_$;
12. 以下的变量定义语句中,合法的是( )。
A) float $_*5= 3.4F; B) byte b1= 15678;
C) double a =Double. MAX_VALUE; D) int _abc_ = 3721L;
13. 以下字符常量中不合法的是( )。
A) '|' B) '\'' C) "\n" D) '我'
14. 若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是( )。
A) b = a!=7 ; B) a = 7 + b + c=9;
C) i=12.3* % 4; D) a = a + 7 = c + b;
15. 下列程序段执行后t5的结果是( )。
int t1 = 9, t2 = 11, t3=8;
int t4,t5;
t4 = t1 t2 ? t1 : t2+ t1;
t5 = t4 t3 ? t4 : t3;
A) 8 B) 20 C) 11 D) 9
16. 设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的
是( )。
A) a!=b c%d a B) a++ = =a+b+c+d
C) ++a*b--+d D) a+b=c+d
17. 请说出下面程序的运行结果。
public static void main(String[] args)
{
int nNum1 = 6;
int nNum2 = 8;
System.out.println();
//nNum1不自加短路原则
System.out.println(((nNum1 nNum2) (--nNum1) nNum2));
System.out.println("nNum1 is " + nNum1);
System.out.println(((nNum1 nNum2) (--nNum1) nNum2));
System.out.println("nNum1 is " + nNum1);
}
§1.3 流程控制语句
1.While与Do…While 语句的区别是什么?
2.下面程序的输出结果是什么?
public class MyFirst
{
public static void main(String args[])
{
int x = 1,y,total = 0;
while(x = 20)
{
y = x * x;
System.out.println(“y = “ + y);
total = total + y;
++x;
}
System.out.println(“Total is “ + total);
}
}
3.设计程序求1到100的和。
4.请指出下面程序的错误:
swith(n)
{
case 1 :
System.out.println(“First”);
case 2 :
System.out.println(“Second”);
case 3 :
System.out.println(“Third”);
}
5.水仙花数是指其个位、十位、百位三个数的立方和等于这个数本身,求出所有水仙花数。
6.试利用for循环,计算1+2+3+4+5+…+100的总和。
7.利用do…while循环,计算1!+2!+3!+…+100!的总和。
8.使用循环嵌套,编写一个输出如下图形的程序:
*
* *
* * *
* * * *
* * * * *
§1.4 Java应用程序Application与小应用程序Applet
1.Applet小应用程序的生命周期有哪些过程?
2.Applet小应用程序运行的过程怎样?
3.请编写一个小应用程序,在显示图片的同时播放音乐。
4. Applet可以做下列那些操作?( )
A)读取客户端文件 B)在客户端主机上创建新文件
C)在客户端装载程序库 D)读取客户端部分系统变量
第二章 面向对象的JAVA语言
§2.1 概 述
1. 面向对象编程语言的基本特征是什么?
2. 常见的面向对象的程序设计语言包括哪些?
3. Java语言中,被static关键字修饰的成员变量与类变量有什么区别?
4. 面向过程程序设计的核心是:
A.商业逻辑 B.客观实体 C.算法 D.要解决的问题
5. 面向对象技术中的对象具有状态,行为和_________等三个基本属性。
6. 使用一个对象前,必须声明并___________它。
§2.2 类、对象和方法
1.什么是对象?什么是类?对象与类的关系是什么?
2.类的定义中包括那些基本信息?
3.定义一个类包括定义类头和定义_______两个部分。
4.类变量与实例变量的区别?
5. 类方法与实例方法的区别?
6. 符合对象和类关系的是:
A.人和老虎 B.书和汽车 C.楼和建筑物 D.汽车和交通工具
7.什么是方法,以及方法的作用?
8.举例说明方法的调用?
9.简述方法的递归调用过程?
10.什么是方法的重载?
11.什么是异常?试列出三个系统定义的运行时异常类。
12.try-catch-finally语句的执行顺序是怎样的?
13. Java 程序可以分为 Application 和 Applet 两大类,能在 WWW 浏览器上运行的是 _________ 。
14. 如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法 __________了父类的同名方法。
15. 定义类头时能使用的修饰符是( )。
A) private B) static C) abstract D) protected
16. 下列方法定义中,正确的是( )。
A) int x( ){ char ch='a'; return (int)ch; }
B) void x( ){ ...return true; }
C) int x( ){ ...return true; }
D) int x( int a, b){ return a+b; }
§2.3 构造方法
1.构造方法在类中的作用是什么?
2.在创建派生类的对象的时候,基类与派生类中构造方法的调用顺序怎样?
3. 以下哪个方法仅在Applet程序被创建和首次被载入支持Java的浏览器时被调用
A)paint() B)init() C)action() D)start()
4. 在某个类A中存在一个方法:void GetSort(int x),以下能作为这个方法的重载的声明的是
A)Void GetSort(float x) B)int GetSort(int y)
C)double GetSort(int x,int y) D)void Get(int x,int y)
5. 有一个类A,以下为其构造函数的声明,其中正确的是( )。
A)void A(int x){...} B)A(int x){...}
C)a(int x){...} D)void a(int x){...}
6 阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。
1).下面是一个类的定义。
class ____________ // 定义名为myclass的类
{
__________ int var=666;
static int getvar()
{
return var;
}
}
2).下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。
__________ void paint(Graphics g)
{ g.____________("你好!",10,20); }
3).下面是用户程序对 Applet 类中方法 action( ) 的重新定义,功能为从单行文本编辑区 input 中输入数据赋给k。TextField 类的对象input和int型变量k已在类体中正确说明。
public ___________ action( Event e, Object o )
{ if( e.target==input )
k=Integer.parseInt( _______.getText( ) );
repaint( );
return true;
}
7. 请指出下面程序中的错误。
public class Test extends Base
{
public Test()
{
super();
}
public static void main(String[] args)
{
Test t = new Test();
Test t2 = new Test("TestName");
}
}
class Base
{
String name;
Base()
{
System.out.println("Base Constructor");
}
Base(String name)
{
this.name = name;
}
}
§2.4 继承
1. 是一种软件重用形式,在这种形式中,新类获得现有类的数据和方法,并可增加新的功能。
2.派生类构造方法可以通过关键字_______调用基类构造方法。
3. Java语言的类间的继承关系是( )。
A) 多重的 B) 单重的 C) 线程的 D) 不能继承
4.编程题
(1) 根据下面的要求实现圆类Circle:
Circle类的成员变量:
radius 半径
Circle类的方法成员
Circle() 构造方法,将半径置为0
Circle(double r) 构造方法,创建Circle对象时将半径初始化为r
double getRadius() 获得圆的半径值
double getPerimeter() 获得圆的周长
double gerArea() 获得圆的面积
void disp() 将圆的半径、周长、面积输出到屏幕
(2) 继承上题中的圆Circle类,派生圆柱体类Cylinder,要求如下:
Cylinder类的成员变量:
height 表示圆柱体的高
Cylinder类的方法成员:
Cylinder(double r,double h) 构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱高初始化为h
double getHeight() 获得圆柱体的高
double getVol() 获得圆柱体的体积
void dispVol() 将圆柱体的体积输出到屏幕
5.创建如下图所示继承层次结构中的类。Employee对象应当有姓名、年龄和社会保险号码,除此之外SalariedEmployee对象还有周薪,HourlyEmployee对象有相应的基本工资和工作小时数,CommissionEmployee 对象应当有佣金率和销售总额,BasePlusCommissionEmployee 对象应当有对应的基本工资。每个类有合适的构造方法和访问其成员属性的方法。请编写一个程序,实例化以上所有类的对象,输出相关员工的基本信息。
§2.5 多态
1.实现如图所示的shape层次结构。每个TwoDimensionalShape类应包含 getArea 方法,用来计算该图形的面积。每个ThreeDimensionalShape 类应包含getArea和 getVolumn 方法,分别用来计算该图形的面积和体积。创建应用程序,该程序使用一个Shape引用数组来保存层次结构中的所有图形的具体类的对象,该程序打印每个数组元素所引用的对象。此外,利用循环结构处理数组中的图形,以确定每个图形是TwoDimensionalShpae还是 ThreeDimensionalShape类 的对象,如果图形是TwoDimensionalShpae类的对象,则显示该图形的面积,如果是ThreeDimensionalShape类的对象,则显示该图形的面积和体积。
2.请指出下面程序中的错误
class Father
{
private int age;
public void setAge(int a)
{
this.age = a;
}
public int getAge()
{
return age;
}
public void disp()
{
System.out.println("age is " + age);
}
}
class Son extends Father
{
String name;
public void setName(String name)
{
name = name;
}
public void disp()
{
disp();
System.out.println("my name is " + name);
}
}
public class Test
{
public static void main(String args[])
{
Son s = new Son();
s.disp();
}
}
3. 为了区分重载多态中同名的不同方法,要求( )。
A)采用不同的形式参数列表 B) 返回值类型不同
C)调用时用类名或对象名做前缀 D) 参数名不同
§2.6 抽象类与接口
1.什么是接口?为什么要定义接口?接口与类有何异同?
2.如何定义接口?使用什么关键字?
3.一个类如何实现接口?实现接口的类是否一定要重写该接口中的所有抽象方法?
§2.7 包
1.Java中引入包的优点是什么?
2.如何将需要的外部类引入程序中?如何引用包中的某个类?如何引用整个包?
3.如何运行被打包后的字节码文件?
§2.8 异常处理
1.什么是异常?举出程序中常见的异常的种类?
2.Java中异常处理有什么优点?
3.在Java中,throw与throws有什么区别?他们各自用在什么地方?
4.请设计一个Java程序,程序中要进行数组操作和除法操作,要求对所设计的程序可能出现的异常进行处理。
5.定义一个邮件地址异常类,当用户输入的邮件地址不合法时,抛出异常。(其中邮件地址的合法格式为**** @****,也就是说必须是在@符号左右出现一个或多个其他字符的字符串。)
第三章 数组、向量和字符串
§3.1 数组
1.判断下面的说法是否正确。如果错误,请说明原因
①一个数组中可以存放多个不同类型的值
②数组下标通常是float型的
③二维数组其实质是一维数组的一维数组
2.找出并改正下面各程序段中的错误
①设int b[] = new int [10];
for ( int i = 0; i = b.length; i++ ){
b[ i ] = 1;
}
②设 int a[][] = { { 1, 2 } {3, 4} };
a[ 1, 1] = 5;
③int a[10] = new int[ 10 ];
3.写出下面代码的输出结果
int[][] a = new int[10][5];
System.out.println(a.length);
System.out.println(a[3].length);
4.设有一个名为table的数组,试执行以下任务
a)声明并创建该数组为3行3列的整数数组。
b)该数组包含多少个元素?
c)用for结构将数组的每个元素初始化为各自下标的和(假设整数变量i,j为控制变量)
5.将一个数组中的值按逆序重新存放。假定原来的顺序为4,1,3,5,9,2,1。要求改为1,2,9,5,3,1,4。
6.现有类Book定义如下
Class Book{
private String author;//作者
private String ISBN;//书号
private double price;//价格
public String getAuthor(){ return this.author; } //返回作者名
public void setAuthor(String author){ this.author = author; } //设置作者名
public String getISBN(){ return this.ISBN; } //返回书号
public void setISBN(String ISBN){ this.ISBN = ISBN; }//设置书号
public double getPrice() { return this.price; }//返回书价
public void setPrice() { this.price = price ; }//设置书价
}
请用1个数组存放随机产生的10个书籍对象的数据,并显示其中书价最高图书的书号。(要求使用对象数组完成)
7.设有定义语句int a[]={66,88,99}; 则以下对此语句的叙述错误的是( )。
A) 定义了一个名为a的一维数组 B) a数组有3个元素
C) a数组的下标为1~3 D)数组中的每个元素是整型
§3.2 向量
1.填空题
a)Java的类 提供了类似于数组数据结构的功能,可以动态调整自身大小。
b)如不指定容量的增加值。每次需要增加容量时,系统自动将Vector的大小 。
c)向量中存放元素的类型必须是 。
2.下面代码的输出是什么?
Vector vector = new Vector (3,2);
for(int i = 0; i 6; i++){
v.add("element "+ i);
System.out.println(vector.capacity()+" "+ vector.size());
}
3.下面代码的输出是什么?
Vector vector = new Vector();
for(int i = 0; i 6; i++){
vector.add(" element " + i);
}
vector.remove( 1 );
vector.remove( 3 );
4.简单解释Vector类的下列各个方法的作用:
a) add
b) insertElementAt
c) set
d) remove
e)removeAllElements
f) removeElementAt
g)firstElement
h) lastElement
i) isEmpty
j) contains
k) indexOf
l) size
m) capacity
5.解释为什么向一个当前大小小于其容量的Vector对象中插入元素是一个相对较快的操作,而向一个大小等于其容量的Vector对象插入元素是一个相对较慢的操作。
§3.3 字符串
1.Java中的字符串有什么特点?它与C/C++中的字符串有何区别?
2.判断正误。如果是错误的,请说明理由。
a) 在使用(==)运算符比较String对象时,如果String对象包含相同的值,则比较结果为真。
b) 在创建String对象后可以修改。
3.对于以下各题,请编写一条语句以执行所指定的任务。
a) 比较s1中的字符串与s2中的字符串是否具有相同的内容。
b) 使用+=运算符将字符串s2添加到字符串s1的后面。
c) 确定s1中字符串的长度。
4.编写一个使用String类中的indexOf()方法确定一字符串在另一字符串中出现次数的应用程序。例如字符串“this”在字符串“this is my first program. this…”中出现了2次。
第四章Java图形界面设计
§4.1 图形用户界面和Swing常用组件
1.使用Swing中的组件创建图4.1.12所示的GUI。
2.使用Swing中的组件创建图4.1.13所示的GUI。
3.使用Swing中的组件创建图4.1.14所示的GUI。
§4.2 对话框和菜单
1.对话框有 和 两种。这两种对话框的区别是:当 对话框弹出时,只有关闭此对话框才能继续进行其它窗口的操作;当 对话框弹出时,即使不关闭,也可以对后面的的窗口进行操作。
2.用户可以使用 类提供的方法来生成各种标准的对话框,也可以使用 类根据实际需要生成自定义对话框。
3. 方法将JMenuBar添加到JFrame中。
4. 类可用于创建菜单对象。 方法可以在菜单中放置分隔条。
5.使用Swing中的组件绘制图4.2.12所示的对话框。(提示:使用setBounds()方法来设置组件在对话框中的位置和大小)
§4.3 布局管理器
1.Java中有那些布局管理器?各有什么特点?
2.找出下列各题中的错误,并解释如何改正错误。
1) panelObject.GridLayout(8,8);//设置网格布局管理器
2) container.setLayout(new FlowLayout(FlowLayout.DEFAULT));//设置顺序布局器
3) container.add(button,EAST);//BorderLayout
3.使用布局管理器创建下图的GUI。读者不需要提供任何功能。
图4.3.23
4.选择正确的选项:
(1) 下列属于图形用户界面元素的有:
A. Applet B. 窗口 C. 按钮 D. 线程
(2) 下列属于容器的组件有:
A. JButton B. JFrame C. JPanel D. JApplet
(3) 每个使用Swing组件的程序必须至少有一个:
A. 按钮 B. 顶层容器 C. 标签 D. 菜单
(4) 如果希望所有的控件在界面上均匀排列,应该使用下列那种布局管理器?
A. BoxLayout B. GridLayout
C. BorderLayout D. FlowLayout
(5) 监听事件和处理事件:
A. 都由Listener完成
B 都由在相应事件Listener处登记过的组件完成
C 由Listener和组件分别完成
D. 由Listener和窗口分别完成
(6) Applet可以做下列哪些操作?
A. 读取客户端文件 B. 在客户端主机上创建文件
C. 在客户端装载程序库 D. 读取客户端部分系统变量
5.编程题
(1) 实现图4.3.24效果,通过选择单选按钮中的选项来设置标签组件的内容,由标签组件显示我们的选择。
图4.3.24 编程1效果图
(2) 实现图图4.3.25效果,当用户输入密码后,按下“登录”按钮,然后我们将密码输入是否正确的结果显示在文本域中。
图4.3.25 编程2效果图
(3) 用Applet改写上面程序
(4) 利用事件,实现下图效果,即点击图4.3.26按钮,弹出图图4.3.27。图4.3.27单击按钮改变背景颜色。
图4.3.26 请单击按钮 图4.3.27 改变背景色
6. 请完成下列Java程序:用位于JFrame窗口下方的Open按钮,打开一个文件对话框,检索.gif或者.png图形文件,并在窗口中央将图象显示出来.(提示:将图象文件嵌入图象标内,再将图像图标置于标签中)
注意:请勿改动main主方法和其他已有语句内容,仅在下划线处填入适当的语句.
importJava.awt.*;
import jova.awt.event.*;
importJava.io.*;
importJavax.swing.*;
public class ImageViewer
{ public stratic void main(String[]args)
{ JFrame frame=new ImageViewer Frame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class ImgeViewerFrame extends JFrame
{ public ImageViewerFrame()
{ setTitle("ImageViewer");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGTH);
label = new JLAbel();
Container contentpane = getContentpane();
contentpane.add(label.BorderLayout.CENTER);
chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
Button button = new Button("open");
contentpane.add(button,BorderLa
yout.SOUTH);
button.addActionListener(new
ActionListener()
{ public void actionperformed(ActionEvent evt)
{ int r = chooser.showOpenDialog(null)};
if(r = = JFilechooser.APPROVE_OPTLON)
{ String name
=________________
_______________
}
}
}};
}
private JLabel label;
private JFileChooser chooser;
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 400;
}
§4.4 事件处理
1. 简述Java语言中的事件处理机制。
2. 事件处理程序需要包括那三个部分。
java练习题
【程序1】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
【程序2】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
【程序3】
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
【程序5】
题目:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(ab)?a:b这是条件运算符的基本例子。
【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n'.
【程序8】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
【程序9】
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
【程序11】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
【程序12】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
【程序13】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:
【程序14】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
【程序15】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小。
【程序16】
题目:输出9*9口诀。
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
【程序17】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
1.程序分析:采取逆向思维的方法,从后往前推断。
【程序18】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
【程序19】
题目:打印出如下图案(菱形)
*
***
******
********
******
***
*
1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。
【程序20】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
【程序21】
题目:求1+2!+3!+...+20!的和
1.程序分析:此程序只是把累加变成了累乘。
【程序22】
题目:利用递归方法求5!。
1.程序分析:递归公式:fn=fn_1*4!
【程序23】
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
【程序24】
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
【程序25】
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
【程序26】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
【程序27】
题目:求100之内的素数
【程序28】
题目:对10个数进行排序
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。
【程序29】
题目:求一个3*3矩阵对角线元素之和
1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
【程序30】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
【程序31】
题目:将一个数组逆序输出。
1.程序分析:用第一个与最后一个交换。
【程序32】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~04)
(3)将上面二者进行运算。
【程序33】
题目:打印出杨辉三角形(要求打印出10行如下图)
1.程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
【程序34】
题目:输入3个数a,b,c,按大小顺序输出。
1.程序分析:利用指针方法。
【程序35】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
【程序36】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
【程序37】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
【程序38】
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
【程序40】
题目:字符串排序。
【程序41】
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
【程序42】
题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
【程序43】
题目:求0—7所能组成的奇数个数。
【程序44】
题目:一个偶数总能表示为两个素数之和。
【程序45】
题目:判断一个素数能被几个9整除
【程序46】
题目:两个字符串连接程序
【程序47】
题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
【程序48】
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
【程序49】
题目:计算字符串中子串出现的次数
【程序50】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
===============================================
虽然是C语言的题~但是JAVA一样做,也挺适合初学者的
java运算符练习题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java运算符和表达式程序题、java运算符练习题的信息别忘了在本站进行查找喔。
发布于:2023-01-28,除非注明,否则均为
原创文章,转载请注明出处。