赛迪网Java程序员笔试题
第一大题:选择题(共20个小题,要求和分值按每题后面的提示,共60分)
1、下面哪些是java语言中的关键字? B
A、sizeof
B、abstract
C、NULL
D、Native
2、第一个java语言编译器是在()年推出。 D
A、1991
B、1992
C、2001
D、1996
3、以下()是JAVA的保留字 C
A、Java
B、Hello
C、class
D、Class
4、下面程序运行之后,变量x的值是() B
//swap方法的声明
public static void swap(int a,int b){
int
t=a;
a=b;
b=t;
}
//main方法
public static void main(String args[]){ A
int
x=2;
int
y=3;
swap(x,y);//简单数据类型是不会交换,如果是对象会发生变化
}
A、2 B、3 C、4 D、6
5、下面变量var的作用域范围是() C
//....
int x;
swhitch(x){
case
0:
{
int
var;
//process
}
break;
case
1:
{
int
var1;
//process
}
break;
}
A、1和16行之间 B、4和8行之间 C、6和8行之间 D、6和14行之间
6、以下的类(接口)定义中正确的是() B
A、
public class a{
private
int x;
public
getX(){
return
x;
}
}
B、
public abstract class a{
private
int x;
public
abstract int getX();
public
int aMethod(){
return
0;
}
}
C、
public class a{
private
int x;
public
abstract int getX();
}
//如果是抽象函数类必须声明为抽象
D、
public interface interfaceA{
private
int x;
public
int getX(){
return
x;
}
}
//接口都是抽象的,所有的方法都不能够被实现
7、已知A类被打包在packageA,B类被打包在packageB,且B类被声明为public,且有一个成员变量x被声明为protected控制方式。C类也位于packageA包,且继承了B类。则以下说法正确的是() C
A、A类的实例不能访问到B类的实例
B、A类的实例能够访问到B类一个实例的x成员
C、C类的实例可以访问到B类一个实例的x成员
D、C类的实例不能访问到B类的实例
8、以下()类不属于字符流类 C
A、Reader B、FileReader C、BufferedInputStream D、StringReader
//BufferedInputStream字节流
9、以下()类属于字节流类 D
A、FileWriter
B、PushbackReader
C、FilterReader
D、FileInputStream
//Writer/Reader基本是字符流
10、编译并运行下面的java代码段:
char c='a';
switch(c){
case 'a':
System.out.println("a");
default:
System.out.println("default");
}
输出结果是()。 B
A、代码无法编译,因为switch语句没有一个合法的表达式
B、a Default
C、a
D、default
char/int/byte/枚举
都可以匹配switch();
11、分析下面的java程序
public class yy{
public
static void main(String[] args)throws Exception{
try{
throw
new Exception();
}catch(Exception e){
System.out.println("Caught
in main()");
}
System.out.println("nothing");
}
}
输出结果为() A
A、Caught in
main() Nothing
B、Caught in
main()
C、nothing
D、没有任何输出
//发生异常,捕获;
12、在Java中,关于final关键字的说法正确的是()。A、C
A、如果修饰变量,则一旦赋了值,就等同一个常量
B、如果修饰类,则该类只能被一个子类继承
C、如果修饰方法,则该方法不能在子类中被覆盖
D、如果修饰方法,则该方法所在的类不能被继承
13、在java中,要想使只有定义该类所在的包内的类可以访问该类,应该用()关键字。A
A、不需要任何关键字
B、private
C、final
D、protected 保护的
14、在java中,下面关于包的陈述中正确的是() A、D
A、包的声明必须是源文件的第一句代码
B、包的声明必须紧跟在import语句的后面
C、只有公共类才能放在包中
D、可以将多个源文件中的类放在同一个包中
15、public
static void main方法的参数描述是正确的()。A、B
A、String
args[]
B、String[]
args
C、Strings
args[]
D、String args
16、在java中,关于CLASSPATH环境变量的说法不正确的是() A
A、CLASSPATH一旦设置之后不可修改,但可以将目录到该环境变量中
B、编译器用它来搜索各自的类文件
C、CLASSPATH是一个目录列表
D、解释器用它来搜索各自的类文件
17、编译并运行下面的java程序
class A{
int
var1=1;
int
var2;
public
static void main(String[] args){
int
var3=3;
A
a=new A();
System.out.println(a.var1+a.var2+var3);
}
}
将产生()结果 B
A、0
B、4
C、3
D、代码无法编译,因为var2根本没有被初始化
18、在单一文件中import、class和package的正确出现顺序是() A
A、package,import,class
B、class,import,package
C、import,package,class
D、package,class,import
19、编译,运行下列代码后的结果是() D//类的成员变量可以不赋初值,局部变量要赋初值
public class Test{
public
static void main(String args[]){
int
age;
age=age+1;
System.out.println("The
age is"+age);
}
}
A、编译,运行后没有输出
B、编译,运行后输出:The
age is1
C、能通过编译,但运行时产生错误
D、不能通过编译
20、下列哪些表达式返回true() A、B
A、"john"=="john"
B、"john".equals("john")
C、"john"="john"
D、"john".equals(new
Button("john"))
第二大题:
1、用循环控制语句打印输出:1+3+5+...+99=?结果
答题:
int sum=0;
for(int i=1;i<100;i+=2){
sum+=i;
System.out.println("i="+i+"sum="+sum);
}
结果:2500
2、请编写一个程序,实现从控制台读入字符,接收到"e"或者"E"退出程序
答题:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
while(true){
System.out.println("请输入任意字符(输入e或E退出):");
try {
String chars=br.readLine();
if(chars.equals("e")||chars.equals("E")){
System.out.println("输入的字符是e或是E,退出");
System.exit(0);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
3、编写两个方法分别计算合数n!.一个使用递归方法实现,另一个不用递归方法。
答题:(非递归方法)
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class test {
public static void main(String[] args) {
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
int num=1;
while(true){
System.out.println("请输入整数:");
try {
int note=Integer.parseInt(br.readLine());
if((note%1==0&¬e%2==0)||(note%1==0&¬e%3==0)||(note%1==0&¬e%5==0)||(note%1==0&¬e%7==0)){
System.out.println("你输入整数"+note+"是合数!");
for(int i=1;i<=note;i++){
num=num*i;
}
System.out.println(note+"的阶乘结果是:"+num);
num=1;
}else{
System.out.println(note+"不是合数");
}
if(note==-1){
System.out.println("退出");
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
------------------------------------------------------------------------------
答题:(递归方法)
import java.io.*;
public class Test {
public static void main(String[] args) {
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
while(true){
System.out.println("请输入一个整数:");
try {
int note=Integer.parseInt(br.readLine());
if((note%1==0&¬e%2==0)||(note%1==0&¬e%3==0)||(note%1==0&¬e%5==0)||(note%1==0&¬e%7==0)){
System.out.println("你输入整数"+note+"是合数!");
}
Test t = new Test();
int n = t.calc(note);
System.out.println(note+"阶乘结果是:"+n);
if(note==0){
System.out.println("输入0退出");
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public int calc(int n) {
if(n==0){
return 1;
}
return n*calc(n-1);
}
}
4、编写一个程序,在控制台接收数据,程序会让用户输入名字,并检查用户的输入:不允许输入空名字:一旦用户完成输入,程序会向该用户发出问题:“Hello,你输入的名字”。(提示:如果希望在控制台中与用户交互,一种可能的做法就是将System.in包装成)BufferedReader要做到这一点,必须使用InputStreamReader类将System.in这个InputStream对象转换成一个Reader即BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
答题:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
while(true){
System.out.println("请输入名字:");
try {
String name=br.readLine();
if(name.equals("")){
System.out.println("你输入的名字是空,退出!");
System.exit(0);
}else{
System.out.println("Hello,"+name+"!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}