第一章练习:
一.选择题:
1.以下错误的说法是:( C )
A)机器语言是用0和1两种符号来表示电位的高、低或者电流的通、断两种稳定状态。
B)汇编语言是一种面向机器的语言,其中涉及了大量的机器细节。
C)现在所说的高级语言就是C#语言、C++语言和Java程序设计语言,而C语言已经落伍了,不能算是高级语言。
D)面向对象编程可以更好地解决重用性问题,使数据与程序始终保持相容。
2.以下哪个不是面向对象程序设计语言的优点:( D )
A)能够比较直接的反映客观世界的本来面目。
B)目前最接近人类使用的自然语言。
C)软件开发人员能够运用人类认识事物所采用的一般思维方法来进行软件开发。
D)将数据和过程分离为独立的实体,使程序中的数据和操作有效地组织在一起。
3.面向对象编程能更好地描述客观事物及其联系,其具体体现错误的是:( D )
A)客观事物具有静态特征(属性)和动态特征(行为)。面向对象程序语言将客观事物抽象为对象,用一组数据描述对象的属性,用一组方法刻画对象的行为。
B)面向对象程序设计语言用类来表示一组具有相同属性和方法的对象。
C)面向对象程序设计语言用父类来描述事物的共性,子类描述个性。
D)一个客观事物可能与其他事物有联系,面向对象程序设计语言通过封装机制,把相关的事物封装在一起来描述这种动态连接。
二.Java语言的特点:
1. 假如我要在Linux下进行Java程序开发,我要安装哪个软件包?( a )
a) jdk-6u18-Linux-i586.bin
b) jdk-6u18-solaris-i586.sh
c) j2re-6u18-linux-i586-rpm.bin
d) j2re-6u18-linux-i586.bin
2. 假如我已经在windows操作系统下成功编写了一个程序“Test.java”,并且成功编译得到字节码文件“Test.class”,假如我要把这个文件放到Linux操作系统上运行,我要怎样做最好? ( b )
a) 在操作系统Linux下安装j2sdk,把源文件“Test.java”拷贝到linux分区,用Linux的java编译器重新编译,得到字节码文件后,再用java解释器执行得到结果。
b) 在操作系统Linux下安装j2re,把字节码文件“Test.class”拷贝到linux分区,直接用java解释器执行得到结果。
c) 在操作系统Linux下安装j2re,把源文件“Test.java”拷贝到linux分区,用Linux的java编译器重新编译,得到字节码文件后,再用java解释器执行得到结果。
d) 在操作系统Linux下安装j2sdk,把字节码文件“Test.class”拷贝到linux分区,直接用java解释器执行得到结果。
3. 关于Java的特点,正确的是:( c )
a) Java是一种简单、安全、面向过程、可移植、高性能的语言。
b) Java是一种完全面向对象的程序设计语言,每一个类就是一个对象。
c) Java是一种完全面向对象的程序设计语言,一个对象是一个类的实例。
d) 现在的网络编程一般使用C语言或C++语言,因为Java程序设计语言的执行效率慢,影响到传输速度,所以Java并不适合网络编程。
4. Java与C/C++的比较错误的是:( c )
a) Java是直译式(解释式)语言,由于字节码不是在系统上直接运行,而是通过解释器执行的所以比C和C++等编译式语言慢。
b) C语言和C++语言都不是跨平台语言,当程序要在不同操作系统上运行的时候,必须改变程序。
c) Java语言和C++语言都允许多重继承,C语言由于是面向过程的,所以只允许单一继承。
d) Java语言没有了指针类型,使用对象引用来代替指针存取对象数据。
5. 判断题:
a) 假如要编译和运行Java程序,我们必须对J2SDK的开发环境进行设置。( F )
b) J2SDK有3个版本,我们进行一般的程序开发都是使用J2SE(Java 2 Standard Edition)版本。( T )
c) 在编写Java应用程序的时候,必须要定义一个public类型的类。( F )
d) 在编写Java应用程序的时候,每个类一定都有一个main方法。( F )
e) Java 应用程序的Main方法的写法是:public static void main(String args[]){….}。( T )
f) 在编写Java应用程序的时候,一定要有一个(有且仅有一个)main方法作为程序的开端。( T )
g) 假如一个类用public关键字来定义,则这个类一定要有main方法。 ( F )
三、编程题
编写一个Java程序,要求输出:“This is my first Java Program!”
附程序:
public class First{
public static void main(String[] args){
System.out.println(“This is my first Java Program!”);
}
}
第二章 Java基础:
1.找出正确的标识符(多选):(ABD )
A. IDoLikeTheLongNameClass
B. $byte
C. const 关键字
D. _ok
E. 3_case 不能以数字开头
2.下面的程序可以成功编译的是(多选):(BC )
A. int i=0; boolean i=true;
if (i) { i 应该为boolean类型
System.out.println(“Hi”);
}
B. boolean b=true;
boolean b2=true;
if(b==b2) {
System.out.println(“So true”);
}
C. int i=1;
int j=2;
if(i==1|| j==2)
System.out.println(“OK”);
D. int i=1;
int j=2;
if (i==1 &| j==2) &| 这个符号不符合规则
System.out.println(“OK”);
3.给出程序:
public class a {
public static void main (String args[]) {
int i = 0xFFFFFFF1;
int j = ~i;
System.out.println("j="+j+"/ni="+i);
}
}
到第五行时,十进制变量j的值是:(C )
A. 0
B. 1
C. 14
D. –15
E. 在第三行出现编译错误。
F. 在第四行出现编译错误。
填空题:
1. Java语言的特点有(写出4个):_面向对象、平台无关性、分布式、安全性和可靠性、多线程________________________________________________
2. 表达式3+“5.2”的值是:___________________35.2_____________________________________
3. 以下代码的输出结果是:______i=0_____________
public class Test{
public static void main(String args[]){
int i=0;
while(i<0){
System.out.println(“死循环”);
i--;
}
System.out.println(“i=”+i);
}
}
4. 以下代码的输出结果是:_________1__________
public class Test{
public static void main(String args[]){
int i=0;
int j=1;
System.out.println(i+j);
}
}
5. 以下代码的输出结果是:______结果是:01_____________
public class Test{
public static void main(String args[]){
int i=0;
int j=1;
System.out.println(“结果是:”+i+j);
}
}
6. 所有Java应用程序都必须包含的一个类的方法是______________main方法______________________
7. 与‘+’有相同优先级或更高优先级的运算符有(写出5个)__-、*、/、++、--、[]、()_______________________
8. 改正以下语句的错误:(结果应该是:“x=10,y=10”,注意是一行地输出这个结果)
public class Test{
public static void main(String[] args){
int x=0;
int y=0;
do{
y++;
}while(x<10);
System.out.println(“x=”+x);
System.out.println(“y=”+y);
}
}
编程题任选一题,C级难度最易,B级是中等,A级是最难:(根据难度不同有不同加分)
(C +10, B +20, A +30)
1. 写一个程序,要求的到的结果是(C级):
根据输入的不同显示不同的结果:
C:/> java Triangle 5
*****
****
***
**
*
2. 写一个程序,实现十进制数到二进制数的转换,只要求显示得到二进制数字表示法(B级):
运行结果:
C:/> java DecToBin 2
十进制数字2的二进制表示是:10
3. (勾股弦数)直角三角形的三条边可以同时是整数。直角三角形边的一组3个整数称为勾股弦数。这三条边满足以下关系:两直角边的平方和等于斜边的平方。试编程找出3条边都小于500的所有勾股弦数。可以用3重嵌套的for循环检查所有可能性。这是“蛮力法”的一个例子。以后你在更深入的计算机课程中将学到,大量的问题出了用蛮力法以外尚未发现其他算法。(A级)(注: x2 在Java里面可以这样写: Math.pow(x,2) 或 x*x;)