JAVA基础知识考核题
一、选择题
1.Java编译器的命令是(D )
A.java B. appletviewer
C. jdb D. javac
- Java解释器的命令是(A )
A.java B. appletviewer
C. jdb D. javac
3.Java开发人员使用的开发工具包是(D )C
A.JVMjava虚拟机 B. JRE
C.JDK D. Eclipse
4. 下列说法正确的是(B )
A. 使用Java语言开发的程序可以在任何平台下运行,且不需要JRE
B. 使用Java语言开发的程序可以在任何平台下运行,但需要JRE
C. Java虚拟机是独立的,JDK中不包含虚拟机
D. Java语言编译后是字节码文件,操作系统可直接执行
5. 下列全部是合法的Java标识符的是(B )
A. 09stu teacher $money
B _salary post123 name
C case abstract final
D #ID list today
6. 程序中有如下语句,下列说法正确的是(C )
final float PI = 3.14f;
A PI 是一个变量,初始化的值是3.14.
B 定义有错误,PI 是float类型3.14后不能加f
C PI 是一个常量,其值是3.14
D 对PI可以重新赋值,如PI = 3.1415926;
7 下列初始化值正确的是(B )
A float score = 90.5; B boolean flag = false;
C char name = "张三"; D boolean num = 1;
8. 有如下代码
class ScopeVar {
public static void main(String[] args) {
int num = 10;
if ( num = = 10) {
int num1 = num * num;
}
num1 = num1+10;
System.out.println(num1);
}
}
输出正确的是(D )
A 110 B 20
C执行报错 D编译错误
9. 下面对Scanner 描述正确的是( C )
A Scanner类提供输入数据的方法,但只能输入字符串
B Scanner的使用方法:Scanner.next();
C 使用Scanner需要导入java.util.Scanner类
D 从键盘读取一个整数的方法如下:
Scanner sc = new Scanner();
int num = sc.nextInt();
10.有String str1="hello"; int num=100;
则对str1+100 说法正确的是(B )A
A str1+100 的值是一个字符串hello100
B str1+100会产生语法错误,字符串不能和整数相加
C str1+100不会产生语法错误,最终的结果是100,str1的值被忽略掉
D str1+100不会产生语法错误,最终的结果是hello,100被忽略掉
11. 哪种方法返回数组中的元素个数(D )
A.size() B.length()
C.width() D.length
12. 下面创建数组正确的是( B )
A int[] int_array = int[10];
B int[] int_array = new int[10];
C int[] int_array = new int(10);
D int[] int_array = new int{10};
13. 研究下面的Java代码:
switch(x){
case 1:
System.out.println(1);
case 2:
case 3:
System.out.println(3);
case 4:
System.out.println(4);
}
当x=2时,运行结果是(C )
A 没有输出任何结果
B 输出结果为3
C 输出结果为3和4
D 输出结果为1、3和4
14 .阅读以下代码 //单从逻辑角度,不考虑方法调用格式
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(“请输入买包子所用的钱的数目”)
double money = sc.nextDouble();
int count = buy(money);
System.out.println(“可买包子的数目为:”+count);
}
public static int buy(double money){
int count = (int) (money/0.4);
return count;
}
}
描述正确的是( B )
A 如果输入5,输出是:可买包子的数目为:12
B 如果输入5,输出是: 可买包子的数目为:5
C 如果输入5,输出是:可买包子的数目为:12.5
D 程序错误,没有输出
15. 在Java中,下列代码运行的结果是(C )
public static void main(String[] args) {
int a=1, b=2, c=3;
if (a<0)
if (b<0) c=10;
else c=20;
System.out.println(c);
}
A、输出:10 B、输出:20
C、输出:3 D、编译报错
16. 分析下面的Java代码片段,编译运行后的输出结果是(D )。
for (int i = 0; i < 6; i++) {
int k = ++i;
while(k <5) {
System.out.print(i);
break;
}
}
A)024 B) 02 C) 123 D) 13
17.分析下面的Java源程序,编译后的运行结果是(D )
import java.util.*;
public class Test {
public static void main (String [] args) {
int [] numbers = new int[]{2,1,3};
Arrays.sort (numbers);
System.out.println (numbers[2]);
}
}
A、输出:0 B、输出:1 C、输出:2 D、输出:3
18 对于if 语句下列描述错误的是( A )
A.if 语句必须跟else联用 B.if 语句的条件必须是boolean类型
C.if语句属于分支结构 D.if 语句后可以没有大括号
19:对于switch 语句下列描述正确的是(C )D
A.switch()括号内可以是任意类型数据
B. case后可以是常量也可以是变量
C. case后必须有break语句
D. 允许多个case共用一组执行语句
20.对于循环语句下列描述正确的是(C )D
A.while和do-while实现的效果一样 最终效果
B. while循环可以用for循环代替某些情况
C.while(1)表示无限循环 while里必须布尔类型
D.continue可以跳出循环 跳出一次循环
21.有以下程序段,输出结果是( B)
int x=1,a=0,b=0;
switch(x){
case 0:b++;
case 1:a++;
case 2:a++;b++;
}
System.out.println("a="+a+",b="+b);
A . a=1, b=1 B. a=2, b=1 C. a=1,b=0 D. a=2,b=2
22、研究下面C代码段
int cnt = -1;
do{
cnt++;
}while (cnt++<1);
在该程序段执行后计数变量cnt的值应该是(D )
A、0 B、陷入无限循环 C、 1 D、以上都不是
在Java语言中,有如下定义,则输出结果是(C)
超纲了
public static void f(int x,int y) {
int t=0;
if (x<y) {t=x;x=y;y=t;}
}//逆序排列,之所以值不变,是因为基本类型传值不传地址
public static void main(String[] args){
int a=4,b=3,c=5;
f(a,b);f(a,c);f(b,c);
System.out.println(a+","+b+","+c);
}
A、3,4,5 B、5,3,4 C、5,4,3 D、4,3,5
24、public static void main(String[] args) {
int i=0,a=0;
for(i=0;i<5;i++){
switch(i){
case 0:
case 1:
case 2: a+=3;
case 3: a+=2;
default: a+=5;
}
}
System.out.println ( );
}
执行后输出的结果是( C )
A、16 B、38 C、42 D、32
25、public static void main(String[] args){
for(int i=1;i<=5;i++){
if(i%2==1)printf("*");
else continue;
System.out.print ("#");
}
System.out.print ("$");
}
以上程序的输出结果,正确的是( B )
A、*#$ B、*#*#*#$ C、*#*#*$ D、$
26、public static void main(String[] args){
int x=0, y=0 ;
Scanner sc = new Scanner(System.in);
x = sc.nextInt();
y = sc.nextInt();
if (x>y) { x+=y; y++;}
else y+=x ;
x++ ;
System.out.println(x+","+y) ;
}
在java语言中,对上面的程序,正确的判断是( B )
A、若输入数据1和4,则输出2和6 B、若输入数据4和1,则输出6和2
C、若输入数据4和4,则输出4和8 D、有语法错误,不能通过编译
27、有以下程序段
public static void main(String[] args){
int x = 0;
Scanner sc = new Scanner(System.in);
x = sc.nextInt();
if(x--<5) System.out.println(x);
else System.out.println(x++);
}
运行后,如果从键盘上输入5,则输出结果是(B )
A. 3 B.4 C.5 D.6
28、有以下程序段
public static void main(String[] args){
int i=0, j=0, num=0;
for(i=0; i<4; i++)
for(j=i; j<2; j++)
num=num+j;
System.out.println(num);
}
程序执行后,num的值应该是(A )。
A、2 B、4 C、0 D、3
29、以下程序的输出结果为( C )
public static void main(String[] args){
int a=2,b=-1,c=2;
if(a<b)
if(b<0) c=0;
else c+=1;
System.out.println(c);
}
A、0 B、1 C、2 D、3
30.有一段java 应用程序,它的主类名是A1,那么它的源文件名可以是(A )
A、A1.java B、A1.class C、a1 D、都对
31.整型数据类型中,需要内存空间最少的是( D )
A、short B、long C、int D、byte
32. 关于以下程序段,正确的说法是(C )
String s1=”abc”+”def”; //1
String s2=new String(s1);//2
if(s1= =s2)//3
System.out.println(“= = succeeded”); //4
if (s1.equals(s2)) //5
System.out.println(“.equals() succeeded”); //6
A、行4与行6都将执行 B、行4执行,行6不执行
C、行6执行,行4不执行 D、行4、行6都不执行
33.下面哪一个循环会导致死循环?(C )
A、for (int k = 0; k < 0; k++)
B、for (int k = 10; k > 0; k--)
C、for (int k = 0; k < 10; k--)
D、for (int k = 0; k > 0; k++)
34.有如下程序段:
int total = 0;
for ( int i = 0; i < 4; i++ ){
if ( i == 1) continue;
if ( i == 2) break;
total += i;
}
则执行完该程序段后total的值为:(A )。
A 、0 B 、1 C 、3 D、6
35. 给出以下代码,请问该程序的运行结果是什么?(C )。
public class Example{
public static void main(String args[]){
int i = 0, j = 2;
do{
i = ++i;
j--;
}while(j>0);
System.out.println(i);
}
}
A 、0 B、1 C 、2 D 、编译失败
36. 给出以下Java代码,请问该程序的运行结果是( C )
public class Test{
public static void main(String[] args){
int i=10;
do{
i--;
}while(i>2);
System.out.println(i);
}
}
A 、0 B 、1 C 、2 D 、-1
37. 给出以下代码,请问该程序的运行结果是什么?(C )
public class Example{
public static void main(String args[]){
int x = 1, y = 10;
while(y-->0){
x++;
}
System.out.println(“x = ”+x+”y = ”+y);
}
}
A 、x = 10 y = 0 B 、x = 11 y = 0
C 、x = 11 y = -1 D 、编译错误
二、编程题
1.编程求出1-100之间所有的素数(只能被1和它本身整除),要求全部存入数组,每5个换行输出。
import java.util.Arrays;
public class F0731_1_youhua {
public static void main(String[] args) {
int sum = 0;
int[] arrOld = new int[100];
for (int i = 2; i <= 100; i++) {
for (int j = 2; j <= i; j++) {
if (i % j == 0 && i != j) {
break;
}
if (i == j) {
arrOld[sum] = i;
sum++;
}
}
}
int[] arr = Arrays.copyOf(arrOld, sum);
for (int i = 0; i < arr.length; i++) {
if ((i + 1) % 5 == 0) {
System.out.println(arr[i] + ",");
} else {
System.out.print(arr[i] + ",");
}
}
}
}2.任意输入5个整数,存入数组,从小到大的顺序排列后输出,再任意输入1个整数,仍要求所有数按从小到大的顺序输出。
import java.util.Arrays;
import java.util.Scanner;
public class F0731_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] a = new int[5];
for (int i = 0; i < a.length; i++) {
System.out.println("请输入第" + (i + 1) + "个数字");
int num = sc.nextInt();
a[i] = num;
}
Arrays.sort(a);
System.out.println(Arrays.toString(a));
int[] b = Arrays.copyOf(a, 6);
System.out.println("请输入数字");
int num1 = sc.nextInt();
b[5] = num1;
Arrays.sort(b);
System.out.println(Arrays.toString(b));
sc.close();
}
}
3. 鸡兔同笼。鸡兔一共有50只,脚一共有160只,问鸡和兔各多少只?要求鸡兔至少一样一只。
public class F0731_3 {
public static void main(String[] args) {
for (int i = 1; i <= 50; i++) {
for (int j = 1; j <= 50; j++) {
if (i + j == 50 && 2 * i + 4 * j == 160) {
System.out.println("鸡" + i + "兔" + j);
}
}
}
}
}