资源描述
JAVA笔试题
l 软件开发工程师(JAVA)笔试题
请在90分钟以内做答 答案请写在答题纸上
一、选择题
1、下面哪项是不合法的标识符:(c e)
A. $persons B. TwoUsers C. *point D. _endline E. final
2、下列运算符合法的是(a )
A.&& B.<> C.if D.:=
3、下面描述中哪两项相等:(bg)[选择两项]
A. <%= YoshiBean.size%>
B. <%= YoshiBean.getSize()%>
C. <%= YoshiBean.getProperty(“size”)%>
D. <jsp:getProperty id=”YoshiBean” param=”size”/>
E. <jsp:getProperty name=”YoshiBean” param=”size”/>
F. <jsp:getProperty id=”YoshiBean” property=”size”/>
G. <jsp:getProperty name=”YoshiBean” property=”size”/>
4、设float x = 1,y = 2,z = 3,则表达式 y+=z--/++x的值是:(a)
A. 3.5 B. 3 C. 4 D. 5
5、下面的哪些叙述为真:(d)
A. equals()方法判定引用值是否指向同一对象
B. ==操作符判定两个不同的对象的内容和类型是否一致
C. equal()方法只有在两个对象的内容一致时返回true
D. 类File重写方法equals()在两个不同的对象的内容和类型一致时返回true
6、如果一个对象仅仅声明实现了cloneable接口,但是不声明clone方法,外部能够调用其clone方法吗?(b)
A. 能 B. 不能 C. 不确定
7、下列说法错误的有(bd )
A. 能被java.exe成功运行的java class文件必须有main()方法
B. J2SDK就是Java API
C. Appletviewer.exe可利用jar选项运行.jar文件
D. 能被Appletviewer成功运行的java class文件必须有main()方法
8、下列正确的有(acd )
A. call by value不会改变实际参数的数值
B. call by reference能改变实际参数的参考地址
C. call by reference不能改变实际参数的参考地址
D. call by reference能改变实际参数的内容
9、下列说法错误的有(bcd )
A. 数组是一种对象
B. 数组属于一种原生类
C. int number=[]={31,23,33,43,35,63}
D. 数组的大小可以任意改变
10、不能用来修饰interface的有( ad)
A.private B.public C.protected D.static
11、关于Float,下列说法正确的是 (a)
A.Float是一个类
B.Float在java.lang包中
C.Float a=1.0是正确的赋值方法
D.Float a= new Float(1.0)是正确的赋值方法
12、下列哪种说法是正确的( d)
A. 实例方法可直接调用超类的实例方法
B. 实例方法可直接调用超类的类方法
C. 实例方法可直接调用其他类的实例方法
D. 实例方法可直接调用本类的类方法
13、下列说法错误的有( c)
A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
14、下面说法哪些是正确的? bd
A.Applet可以访问本地文件
B.对static方法的调用不需要类实例
C.socket类在java.lang中
D.127.0.0.1地址代表本机
??15、类Test1、Test2定义如下:
1. public class Test1 {
2. public float aMethod(float a, float b) throws
3. IOException { }
4. }
5. public class Test2 extends Test1 {
6. //Line6
7. }
将以下(ac)方法插入行6是不合法的。
A. float aMethod (float a, float b) {}
B. public int aMethod (int a, int b) throws Exception {}
C. public float aMethod (float P, float q) {}
D. public int aMethod (int a, int b) throws IOException {}
16、关于以下程序段,正确的说法是:(b)
1. String s1 = “abc” + “def”;
2. String s2 = new String(s1);
3. if(s1.equals(s2))
4. System.out.println(“.equals() succeeded”);
5. if(s1 == s2)
6. System.out.println(“== succeeded”);
A. 行4与行6都将执行 B. 行4执行,行6不执行
C. 行6执行,行4不执行 D. 行4、行6都不执行
17、下面程序的执行结果为:(a)
1. public class Test {
2. static Boolean foo(char c) {
3. System.out.println(c);
4. return true;
5. }
6. public static void main(String[] args) {
7. int i = 0;
8. for (foo(‘A’); foo(‘B’)&&(i<2); foo(‘C’)) {
9. i++;
10. foo(‘D’);
11. }
12. }
13. }
A. ABDCBDCB B. ABCDABCD
C. Compilation fails C. An exception is thrown at runtime
18、阅读下面的程序
1. public class Outer {
2. public void someOuterMethod() {
3. //Line3
4. }
5. public class Inner() {}
6. public static void main(String[] args) {
7. Outer o = new Outer();
8. //Line8
9. }
10. }
Which instantiates is an instance of Inner? (c)
A. new Inner(); // At line3 B. new Inner(); // At line 8
C. new o.Inner(); // At line 8 C. new Outer.inner(); // At line 8
19、选出能正确赋值的:
public class TestA {
private int a;
public int change(int m) {
return m;
}
}
public class TestB extend TestA{
public int b;
public static void main() {
TestA aa = new TestA();
TestB bb = new TestB();
int k;
// Line 13
}
}
在Line13处可以正确赋值的有: (d)
A. k= m; B. k=b; C. k=aa.a; D. k=bb.change(30); E. k=bb.a
20、已知如下代码:
switch (m)
{
case 0: System.out.println("Condition 0");
case 1: System.out.println("Condition 1");
case 2: System.out.println("Condition 2");
case 3: System.out.println("Condition 3");break;
default: System.out.println("Other Condition");
}
当 m 的值为什么时输出 "Condition 2"? ( abc)
A . 0 B . 1 C . 2 D . 3 E. 4 F . None
21、给出程序段
public class Parent
{
public int addValue(int a,int b)
{
int s;
s=a+b;
return s;
}
}
class Child extends Parent{}
可以加在Child类的方法有:(cd)
A. int addValue(int a,int b){}
B. public void addValue(int a,int b){}
C. public int addValue(int a){}
D. public int addValue(int a,int b){}
22、下述哪些说法是正确的?(d)
A. 实例变量是类的成员变量
B. 实例变量是用static关键字声明的
C. 方法变量在方法执行时创建
D. 方法变量在使用之前必须初始化
23、对于下列代码:
public class Sample{
long length;
public Sample(long l){ length = l; }
public static void main(String arg[]){
Sample s1, s2, s3;
s1 = new Sample(21L);
s2 = new Sample(21L);
s3 = s2;
long m = 21L;
}
}
下列哪些表达式返回值为'true'? (d )
A .s1 = = s2; B. s2 = = s3; C. m = = s1; D. s1.equals(m)
26、当 Frame 改变大小时,放在其中的按钮大小不变,则使用如下哪个 layout? ( e )
A. FlowLayout
B. CardLayout
C. North and South of BorderLayout
D. East and West of BorderLayout
E. GridLayout
27、已知如下的命令执行 java MyTest a b c
请问哪个语句是正确的? ( cd)
A . args[0] = "MyTest a b c"
B . args[0] = "MyTest"
C . args[0] = "a"
D . args[1]= "b"
28、下面哪个语句是创建数组的正确语句?( ab)
A . float f[][] = new float[6][6];
B . float []f[] = new float[6][6];
C . float f[][] = new float[][6];
D . float [][]f = new float[6][6];
E . float [][]f = new float[6][];
30、 以下关于数据库范式的描述,哪些是错误的(c)
A. 如果把多个数据项用一个大的 String 表示为一个字段,则不满足第一范式
B. 满足数据库范式使得数据库的效率更高
C. 如果满足更高的范式,则必须首先满足低级别的范式
D. 数据库第二范式要求把表中与所有键没有直接关系的数据全部拆分到其他表中
二、问答题
1、阅读下面的代码
interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public void play() {
ball = new Ball("Football");
System.out.println(ball.getName());
}
}
上面代码是否有错,如果有错,错误在何处?
红处
2、详细解释下面的语句:
Class.class.getClass()
Class与class继承自Object,class试题来代表java运行时的class和interface等等
Class.class就是得到或者生成这个Class类的Class Object
而getClass()本身就是返回一个类对应的Class Object,
所以最后Class.class.getClass()最后还是返回Class Object
7、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,应该输出为“我ABC”而不是“我ABC+汉的半个”。
public static boolean isLetter(char c){
int k=0X80;
return c/k==0?true:false;
}
public static int lengths(String strSrc){
if (strSrc==null){
return 0;
}
int len=0;
char[] strChar=strSrc.toCharArray();
for (int i=0;i<strChar.length;i++){
len++;
if (!isLetter(strChar[i])) len++;
}
return len;
}
public static String subString(String origin,int len){
if (origin==null || origin.equals("")|| len<1){
return "";
}
if (len>lengths(origin)){
return origin;
}
byte[] strByte=new byte[len];
System.arraycopy(origin.getBytes(),0,strByte,0,len);
int count=0;
for (int i=0;i<len;i++){
int value=(int)strByte[i];
if (value<0) count++;
}
if (count % 2 !=0){
len=(len==1)?++len:--len;
}
return new String(strByte,0,len);
}
public static void main(String[] args) {
System.out.println(""+ subString("我ABC汉DEF",6));
}
10、SQL问答题
表结构:
1、 表名:g_cardapply
字段(字段名/类型/长度):
g_applyno varchar 8: //申请单号 (关键字)
g_applydate bigint 8: //申请日期
g_state varchar 2: //申请状态
2、 表名:g_cardapplydetail
字段(字段名/类型/长度):
g_applyno varchar 8: //申请单号 (关键字)
g_name varchar 30: //申请人姓名
g_idcard varchar 18: //申请人身份证号
g_state varchar 2: //申请状态
其中,两个表的关联字为申请单号
题目:
1、 查询身份证号码为610103198012223082的申请日期
2、 查询同一个身份证号码有两条以上记录的身份证号码及记录个数
3、 将身份证号码为610103198012223082的记录在两个表中的申请状态均改为07
4、 删除g_cardapplydetail表中所有姓李的记录
1、 select g_applydate from g_cardapply a,g_cardapplydetail b where a.g_applyno=b.g_applyno and b.g_idcard=’610103198012223082’
2、 select g_idcard,count(g_applyno) from g_cardapplydetail group by g_idcard having count(g_applyno)>2
3、 update g_cardapply a,g_cardapplydetail b set a.g_state=’07’,b.g_state=’07’ where a.g_applyno=b.applyno and b.g_idcard=’ 610103198012223082’
4、 delete from g_cardapplydetail where g_name like ‘李%’
第 8 页 共 8 页
展开阅读全文