1.java程序运行不了显示“仅当显示请求注释处理时接受类名称‘java’”
答:把工具中>首选项>自定义工具>javac中的参数改成文件名
2.请分别计算出x,y的值?
int x = 4;
int y = (x++)+(++x)+(x*10);
x的变化:4 6 6
y=4+6+6*10=70 x=6
*3.求1-10之间的和。
class Demo {
public static void main(String[] args) {
for(int i=1;i<=10;i++) {
int sum=0;
sum+=i;
System.out.println(sum);
}
}
该代码有错误吗?错在哪?
有,sum定义在for循环里,每次循环时都被赋值0,所以不能求和。正确方式应
将sum定义在for循环外(for循环上面)。输出语句放到for循环外执行
class Demo {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=10;i++) {
sum+=i;
}
System.out.println(sum);
}
*4.求水仙花数,下面代码哪里有错?
class Demo {
public static void main(String[] args) {
int sum=0;
for(int i=100;i<=999;i++) {
if(((i%10)*(i%10)*(i%10)+((i/10)%10)*((i/10)%10)*((i/10)%10)+((i/100)%10)*((i/100)%10)*((i/100)%10))==i) {
sum=i;
}
System.out.println(sum);
}
}
}
}
答:打印输出语句放在了if语句外,那该语句会执行899次,值也会在if语句后才
发生改变。所以正确格式应该将输出语句放在if语句里。
5.关于类的命名,正确说法是(C)
A. 可以由数字和英文拉丁字母组成,且可以任意排序
B. 命名要做到见名知意
C. 如果是由多个单词组成,每个单词首字母大写
D. 可以是Java已经定义过的关键字
答:少选个B选项,要做到和必须做到没分清
6.boolean b=true; (B)
if(b=false)
{
System.out.println("a");
}
else if(b)
{
System.out.println("b");
}
else if(!b)
{
System.out.println("c");
}
else
{
System.out.println("d");
}
A. a
B. b
C. c
D. d
答:应该选C选项,if语句中是将false赋值给b不是等于b
7.下面关于return语句说法正确的是: (AC )
A.只能让方法返回数值
B.方法都必须显式使用该关键字
C.方法中可以有多句return
D.可以用来返回数值以外的类型
答:应该选CD,return不一定只能返回数值。例如打印星星就没有返回值,return返回String类型的值就不是数值
8.阅读下面代码段:
public class Demo
{
public static void main (String[] args)
{
int[] arr = new int[10];
System.out.println(arr[1]);
}
}
执行结果正确的说法是( A )
A. 编译时将产生错误
B. 编译时正确,运行时将产生错误
C. 输出零
D. 输出空
答:应选C,public在class前是合法的,所以会继续走内部流程,数组中元素的初始
默认值为0所以选C
9.下面关于函数描述正确的是(A)
A. 函数是对功能代码块的封装
B. 函数没有返回值的时候不用写返回值类型
C. 没有返回值的函数,不能有return 语句
D. 函数是可以没有形参的
答:应该选AD,函数是可以没有形参的
比如public static void print() {
System.out.println("1111");
}
10.21. 下面程序执行的结果是( C)
class Demo
{
public static void main(String [] args)
{
int a=10;
if(a++>10)
{
a=20;
}
System.out.println(a);
}
}
A. 11
B. 12
C. 20
D. 21
答:应该选A,if内条件是a++,a的值先运算不比10大所以不执行if语句,
但本身有a++,所以应为11
11.下面的哪一个程序片断可能导致错误。 ( BC )
A.
String s = "Gone with the wind";
String t = " good ";
String k = s + t;
B.
String s = "Gone with the wind";
String t;
t = s[3] + "one";
C.
String s = "Gone with the wind";
String standard = s.toUpperCase();
D.
String s = "home directory";
s = s + "directory";
答:应选B,C选项为将字符串转换大小写,是正确的
12.下面的说法正确的是( C )
A. byte ,short,char 数据类型可以自动转化为int
B. float 数据类型可以自动转换为long。
C. 在java语言中默认小数为double
D. byte a=23; byte b=12; a+b的结果为byte类型
答:应选AC,A中前3个的数据类型都比int小,所以可以直接自动转化为int
13.下列哪个声明是错误的?(B)
A. int i=10;
B. float f=1.1;
C. int other = (int) true;
D. byte b=127;
答:答案为BC,因为boolean类型不参与运算,所以强制类型转换int也不正确
14.下面程序执行的结果是(B )
public static void main(String [] args)
{
int num=100;
if(num ++>100);
{
num =200;
}
System.out.println(num);
}
A. 100
B. 200
C. 201
D. 101
答:答案是B没错,但是不是因为num进入if语句执行了num=200的条件,而是if语句后有分号使if语句结束
而后面是一个局部代码块,所以一定会执行num=200
15.以下语句有语法错的是:(ABCD )
A.int x=1; y=2; z=3
B.for (int x=10,y=0; x>0; x++);
C.while (x>5);
D.for(; ;);
答:答案为A,正确格式应为x=1,y=2,z=3;
16.编译如下代码,编译运行时,结果是(A)
public static void main(String[] atgs){
for(int i=0;i<3;i++){
System.out.print(i);
}
System.out.print(i);
}
A. 编译时报错
B. 正确运行,输出012
C. 正确运行,输出123
D. 正确运行,输出0123
答:选A没错,不是因为atgs写错了,atgs只是一个标识符,是自定义的,错是因为
for语句结束后,内部初始化条件就释放了,第二个输出语句就没有被定义的i
17.下面程序哪个语句是正确的 (CD)
A. byte a=0,b=3; byte c =a+b;
B. short s =23; s=s+12;
C. short s=23; s+=12;
D. float f = 23+23.23;
答:答案为C,答案D中float f=23+23.23f;
18.在Java接口中,下列选项中属于有效的方法声明是(AC )。
A. public void aMethod();
B. final void aMethod();
C. void aMethod(){}
D. private void aMethod();
答案:选A。c中有方法体,接口中的方法只能是抽象方法不能有方法体
19.给定如下Java代码 , 以下( A )方法可以加入Child类中。
public class Parent{
int change(){
//此处省略N行代码
}
}
Class Child extends Parent{
//(此处可以放入下面哪个选项)
}
A. public int change(){}
B. int show(int i){}
C. private int change(){}
D. abstract int change(){}
答:答案为AB。B选项是自己定义的一个show方法。
20.在Java接口中定义常量,下面语法正确的是(b )。
A. static final int MALE = 1;
B. final int MALE = 1;
C. int MALE = 1;
D. private int MALE = 1;
答:答案ABC。接口默认会加上public static final
21.将Map集合中的键存储到Set集合的方法是( a )
a) entrySet()
b) get()
c) keySet()
d) put()
答案:答案为c,题目问的是将键存入Set集合中,如果是键_值对存入Set中才是a
22.下面的代码用于输出字符数组ch中每个字符出现的次数
public static void main(String[] args) {
char[] ch = { 'a', 'c', 'a', 'b', 'c', 'b' };
HashMap map = new HashMap();
for (int i = 0; i < ch.length; i++) {
//位置①
}
System.out.println(map);
} 应该填入位置①的代码是,不允许使用工具运行程序( d )
a)
if (map.contains(ch[i])) {
map.put(ch[i], map.get(ch[i]) + 1);
} else {
map.put(ch[i], 1);
}
b)
if (map.contains(ch[i])) {
map.put(ch[i], (Integer) map.get(ch[i]) + 1);
} else {
map.put(ch[i], 1);
}
c)
if (map.containsKey(ch[i])) {
map.put(ch[i], (int) map.get(ch[i]) + 1);
} else {
map.put(ch[i], 1);
}
d)
if (map.containsKey(ch[i])) {
map.put(ch[i], (Integer) map.get(ch[i]) + 1);
} else {
map.put(ch[i], 1);
}
答案:CD。C选项map中的get()方法返回一个Object类型的,需要强转成int或Integer
int个类型可以通过装箱转换
23.按照课堂要求重写equals和hashCode后,下面关于这两个方法说法正确的是( b )
a) 两个对象的hashCode值相同,那么他们调用equals()方法返回值一定为true
b) 两个对象的hashCode值相同,那么他们调用equals()方法返回值可以为false
c) hashCode值一般与对象的成员变量有关
d) 只要重写equals方法,就一定要重写hashCode方法
答案:BC。hashCode值可以直接return整数。
24.父类声明:public class FXfather<T>{….}
现在要定义一个Fxfather的子类son,下面定义错误的是( b )
a) class Son extends FXfather<String>{}
b) class Son<T,V> extends FXfather<T>{}
c) class Son<String> extends FXfather<String>{}
d) class Son<String> extends FXfather<T>{}
答案:D。子类里没有父类的泛型
25.关于将int数组使用系统提供的API转成集合后,不可以进行的操作是( c )
a) 增加集合中的元素
b) 迭代集合
c) 修改集合中的元素
d) 获取集合中元素的个数
答案:A。数组转成集合后,不能修改集合的长度。
26.在Java中,( ac )类可用于创建链表数据结构的对象
a) LinkedList
b) ArrayList
c) Collection
d) HashMap
答案:A。c选项是接口不是类
27.以下能以键_值对的方式存储对象的接口是( bc )
a) java.util.Collection
b) java.util.Map
c) java.util.HashMap
d) java.util.Set
答案:B。c选项是类不是接口。
|
|