一、选择题
1、java程序中,main方法的格式正确的是( D )(选择一项)
A、static void main(String[] args)
B、public void main(String[] args)
C、public static main(String[] args)
D、public static void main(String[] args)
2、给定java代码,如下:
public byte count(byte a,byte b){
return _____;
}
要使用这段代码能够编译成功,横线处可以填入( A )(选择一项)
A、 (byte)(a-b)
B、 (byte)a-b
C、a+b
D、 (byte)b/a
3、java语言中最简单的数据类型包括(D )
A、整型、实型、布尔型、字符串
B、整型、实型、字符型、字符串
C、整型、字符型、布尔型
D、整型、实型、布尔型、字符型
4、下列给出的变量定义正确的方式是(B )
A、int No.1;
B、char ch;
C、float new;
D、string 3a;
5、设a=6,b=4,则表达式a*=b+2的值为(D )
A、3
B、18
C、27
D、36
6、下列程序输出结果(B )
public static void main(String[] args){
int x=10,y=10;
System.out.println((x++)+","+(--y));
}
A、10,10
B、10,9
C、9,10
D、9,9
7、有如下定义:float a=12.28f;int i = (int)a;则i的值是:( D)
A、1
B、23
C、28
D、12
8、下列程序代码输出结果是:(A )
System.out.println(false||true&&false);
System.out.println(false||(true&&!false));
A、false true
B、true true
C、false false
D、true false
9、关于Java语言叙述错误的是:( C )
A、Java语言具有跨平台性
B、Java是一种面向对象的语言
C、Java语言中的类可以多继承
D、Java的垃圾收集机制自动回收程序已不再使用的对象
10、设有定义 int i=123; long j=456; 下面赋值不正确的语句是( D )
A、j=i;
B、j=(long)i;
C、i=(int)j;
D、i=j;
二、判断题
(1、)java.lang包下的类是默认导入的,不需要import显示导入类 ( T)
(2、)int a = 1;short b = 2+a;这两行代码是没有错误的,可以直接编译通过代码( F)
(3、)java编程中,源程序文件名可以不和类名一致( F)
(4、)java程序类,类名必须是大写,如果不是大写则编译不通过,程序报错。(F)
(5、)java随机类详细使用是import java.util.Random();先导入,再main方法中实例化
Random ra = new Random(); 然后就可以使用ra对象的方法了。(T)
三、简答题
(1、)请说出作用域public,private,protected,以及不写时的区别
答案:public 声明的为公共成员变量和函数成员,在整个类内类外都可使用。
private 声明的为私有成员变量和函数成员,只在声明的类内可以使用。
protected声明的为受保护成员变量和函数成员,类外不可使用。类内可以使用。
不使用关键字默认为类内使用
另外注意在继承的时候,他们的区别。
public 声明的在子类变为public
protected 声明的子类变为private
private 声明的在子类中不可用
作用域 当前类 包内 子类 包外
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
(2、)short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
答案:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
运算符对基本类型的影响
当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则:
只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;
否则,只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;
否则,只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
否则,两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。
四、程序题
(1、)编程求1-100内素数之和。
素数就是只能被1和自身整除的数,如: 2、3、5、7、11、13、17、19、23
public static void main(String[] args) {
int sss = 0;
for(int n=2;n<=100;n++) {
int i = n;
boolean f = true;
int t = 0;
for (int j = 2; j <= i - 1; j++) {
if (i % j == 0) {
t = j;
f = false;
break;
}
}
if (f) {
System.out.printf("% 3d ",i);
sss+=i;
}
}
System.out.println();
System.out.printf("1-100内素数和是:%d%n",sss);
}
(2、)编程打印出2000 到 现在年份闰年。
public static void main(String[] args) {
int a = 2000;
var c = Calendar.getInstance();
int b = c.get(Calendar.YEAR);
for (int i = a; i <= b; i++) {
if (i % 400 == 0 || i % 100 != 0 && i % 4 == 0) {
System.out.printf("%d ", i);
}
}
}
(3、)编程代码实现打印菱形效果图案。
public static void main(String[] args) {
int s = 20;
for (int m = 1; m <= 20; m += 2) {
System.out.println(" ".repeat(--s) + "*".repeat(m));
}
for (int m = 17; m >= 1; m -= 2) {
System.out.println(" ".repeat(++s) + "*".repeat(m));
}
}