Java基础测试
一、单项选择题
1.以下()不是Java的原始数据类型。
A.short B.boolean C.String D.float
Java的原始数据类型一共就8个,分别是:byte、short、int、long、boolean、char、float、double。
2.请分析下列的Java定义正确的是(B)
A.public static float _num = 32.5 ;
B.public static int num=20;
C.public String name=’张三’;双引号
D. public int $_2 = 3.14;
3. 编译Java源程序文件将产生相应的字节码文件,这些字节码文件和源文件的扩展名分别为( B )
A. .java和.class B. .class 和 .java C. .html 和 .java D. .class 和 .exe
4.一个Java 源程序名为MyClass.java,下列在该文件中定义public修饰的类名正确的是(D)
A、myClass B、MYCLASS C、myclass D、MyClass
5.下列声明哪个是错误的( A )
A、int i = 1.0f; B、float f = 1;
C、double d = 34.4; D、long m = 4990;
float a = 1;这里的1是整形,当赋值给一个float时,存在一个隐式转换,不损失精度。
float a = 1f;1f就是float类型的。
如果你这样定义 f
float f = 1.0;
肯定会出错。 因为1.0默认是double类型的。double范围比float大。为了不损失精度,不会自动转换。这是必须这样写
float f = 1.0f;
一般一个数如果没有加什么的是默认int类型,然后回自动转换成float。
而后面加f表示这个是一个float数,
一个小数默认是double,而那时候你赋值给float就不行了,必须加这个了,好像是这个只能往大范围转换,小范围转换就需要辅助的
6.以下for循环的执行次数是( B )
for(int x=0;(x==0)&(x>4);x++){
}
A、无限次 B、一次也不执行 C、执行4次 D、执行3次
//& : 每一位都比较,有0则0,无0则1.
7.以下方法声明正确的是(C)
A. public int show(double a){ return a;} B. public static show(){ }
C. public void show() { return ; } D. public String show(){ }
Java void :可以写return;表示程序结束,但是没有返回值
8.在A类中定义一个method()方法,使其可以通过类名直接调用,即A.method(),下列方法定义符合要求的是( A )
A、static void method( ){} B、public void method( ){}
C、int method( ){} D、method( ){}
(概念)static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
(概念)用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
9. Java方法定义中void 的含义( C )
A. 方法体为空
B. 定义的方法没有形参
C. 定义的方法没有返回值
D. 方法的返回值不能参加算术运算
10. 在JAVA中,下面关于方法说法不正确的是(B)
A.方法无返回值用return
B.方法有返回值用void修饰
C.方法有返回值用return返回
D.有参方法,参数之间用逗号分隔
11. 以下代码执行的结果:(B)
int x = 3 , y = 5 , z = 1;
int result=--z>y++?x+y++:++z;
System.out.println(result);
A. 3 B. 1 C. 0 D. 2
12. 分析如下Java程序段,程序编译运行结果是(C)。
public class A {
public static void main(String[] args) {
int num=0;
switch(num){
default:
System.out.println("Default");
num++;
case 1:
System.out.println("num="+ num);
num+=2;
case 2:
System.out.println("num=" + ++num);
break;
case 3:
System.out.println("num="+ ++num);
break;}
}
}
A. 输出:Default
num=1
num=3
B.输出:Default
C. 输出:Default
num=1
num=4
D. 程序编译出错
13.在JAVA中,( B ) 关键字用来终止本次循环语句。
A.return B.continue C.break D.exit
continue是跳出该循环进入下一个循环,break是跳出循环体,执行循环外的函数体,return是跳出整个函数体,函数体后面的部分也不执行
14、给定一个java源程序Test.java ,在命令行中,使用下面( A )语句可以编译、运行该程序。
A.javac Test.java,java Test B.javac Test.java,java Test.class
C.java Test.java ,javac Test D.java
Testjava ,javac Test.class
15.给定java代码,如下:
public int count(int b1,double b2){
return______;
}
要使用这段代码能够编译成功,横线处可以填入(D)。
A. (double) b1/b2 B.(int) b1-b2 C.b1-b2 D. b1-(int)b2
https://www.cnblogs.com/liujinhong/p/6005714.html
16、在JAVA中,无论测试条件是什么,下列( B )循环将至少执行一次。
A、for B、do…while C、while D、while…do
17.关于Java中的垃圾回收器,下列说法正确的是(D)
A.垃圾回收器可以及时清理垃圾
B. 垃圾回收器只有通过调用System.gc()方法后才可以清理垃圾
C. 程序员既可以自行清理垃圾,也可以通过垃圾回收器清理
D. 垃圾需要通过垃圾回收器清理,程序员无法干预
https://www.cnblogs.com/xumaodun/p/4876110.html
二.填空题
1. 以下标识符正确的是: 23
① 1_str ② _name ③ $a ④ @str ⑤ 7a ⑥ str_%@
2. 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;实现的功能是__X与y数值转换__
2. 已知有如下的二进制: 01010111 ,则转换成十进制为:___87____
3. 在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用_____2_____字节内存空间,这样,无论是中文字符还是英文字符,都是占用______2______字节内存空间。char类型数据的取值范围是 : 0~ 65535
unicode是不定长度的字符表达方式。
也就是说,一个字符可能是一个字节,也可能是2个字节,也可能有多个字节。
但是java的默认字节输出方式是utf-8,也就是固定的2个字节长度。
utf-8是unicode的一种存储方式。
三.简答题
1.简述执行Java程序的三个步骤?
答: ①编写源程序
②编译源程序生成字节码文件
③执行程序
五.编程题
import java.util.Scanner;
/*
3.输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个正整数n,如果它是素数,输出"YES",否则,输出"NO"
(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
要求定义并调用函数prime(m)判断m是否为素数。
例如:
输入
4 (repeat=4) 意思就是重复4次
然后输入:
1
NO (1不是素数)
2
YES (2是素数)
9
NO (9不是素数)
17
YES (17是素数)
* */
public class demo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个范围在0到10之间,且不包含0和10的正整数:");
int repeat = sc.nextInt();
if(repeat>0&&repeat<10){
for(int j = 0 ; j < repeat ; j++){
Scanner input = new Scanner(System.in);
System.out.println("然后请输入一个正整数:");
int n = input.nextInt();
// System.out.println(n);
prime(n);
System.out.println("------------end-----------");
}
}else{
System.out.println("输入有误!");
}
}
public static void prime(int m){
boolean stutas = true;
for(int i = 2; i<m;i++){
if(m%i==0){
stutas = false;
}
}
if(stutas == true&&m!=1){System.out.println(m+"是素数");}
else{System.out.println(m+"不是素数");}
}
}