还剩7页未读,继续阅读
文本内容:
大学计算机科学与技术学院学年第二学期《Java语言基础》试卷A卷考试方式睡本试卷考试分数占学生总评成绩的70%
一、单项选择题每题1分,共10分
1、Java语言的许多特点中,下列哪个特点是C++语言所不具备的?A、高性能B、跨平台C、面向对象D、有类库
2、不允许作为类及类成员的访问控制符的是A、publicB、privateC、staticD、protected
3、Java中A、一个子类可以有多个父类,一个父类也可以有多个子类B、一个子类可以有多个父类,但一个父类只可以有一个子类C、一个子类可以有一个父类,但一个父类可以有多个子类D、以上说法都不对
4、以下标识符中哪项是不合法的A、constB、$doubleC、helloD、BigMeaninglessName
5、Java源文件名必须与相同A、类名B、public类名C、方法名D、属性名
6、Java每个源文件中之多只能定义个公共类A、0B、1C、大于2D、
27、自定义的异常类可以从下面那个类继承OA、Error类B、AWTError类C^VirtualMachineError类D、Exception及其子类A、数据类B、位流C、字节流D、字符流
9、下列关于继承的说法,正确的是A、子类能够继承父类的非私有方法和状态B、子类能够继承父类的所有方法和状态C、子类能够继承父类的public方法和状态D、子类只能继承父类方法,不能继承父类状态
10、下面那个类是Java中所有类的父类,Java语言的所有类都直接或间接继承该类OA、Class类B、System类C、Object类D、Root类
二、填空题每题1分,共10分
1、JDK安装时需要配置的环境变量包括和o
2、Java中用于引入包的语句是o
3、在一个Java类里面,使用表示属性,使用表示行为
4、Java创建对象使用的关键字为o
5、构造方法的特殊之处在于123只能使用new关键字调用
6、Java中异常处理常用的处理方法有两种,分别是:与
7、Java的四种访问权限由宽至严分别为:公共的、、和私有的
8、Java中创建一个文本文件并向文件中写入字符要用类及其方法O
9、Java中不能生成任何实例对象的类被称为类,使用关键字修饰
10、Java中表示文件的类为如果表示的文件在文件系统中不存在,可以调用方法创建该文件
三、编写程序共60分
1、已知函数请设计一个方法实现上面的函数,根据传入的值X的不同,返回对应的Y值10分publicclassTest02{publicstaticvoidmainStringargs[]inty=function0;System.out.printIny;publicstaticintfunctionintx{inty;ifx0{y=x+3;}elseifx==0{y=0;}else{y=x*x-l;}returny;
2、请按照以下要求设计一个学生类Student并测试要求如下:1Student类中包含姓名、成绩两个属性2分别给这两个属性定义两个方法,一个方法用于设置值,一个方法用于获取值3Student类中定义一个无参构造方法和一个接收两个参数的构造方法,两个参数分别为姓名与成绩赋值4在测试类中建立两个Student对象,一个使用无参的构造方法,然后给构造方法给姓名与成绩赋值,另一个使用有参的构造方法,在构造方法中给姓名与成绩赋值10classStudent{privateStringname;privatedoublegrade;publicStudent{publicStudentStringnamedoublegrade{this.name=name;this.grade=grade;publicStringgetName{returnname;publicvoidsetNameStringname{this.name=name;publicdoublegetGrade{returngrade;}publicvoidsetGradedoublegrade{this.grade=grade;}publicclassTestOl{publicstaticvoidmainString[]args{Studentstul=newStudent;stul.setNamezhangsan;stul.setGrade99;Studentstu2=newStudentlisi100;}
3、设id—个学生类Student和它的一个子类Undergraduate要求如下1Student类有name与age属性,一个包含两个参数的构造方法,用于给name与age属性赋值,一个show方法打印Student的属性信息2本科生类Undergraduate增加一个degree属性有一个包含三个参数的构造方法,前两个参数用于给继承的name与age属性赋值,第三个参数给degree赋值,一个show方法用于打印Undergraduate的属性信息3在测试类中,分别创建Student对象与Undergraduate对象,调用他们的show方法10classStudent{publicStringname;publicintage;publicStudentStringnameintage{this.name=name;this.age=age;publicvoidshow{System.out.printinname:+name+age:+age;classUnderGraduateextendsStudent{publicStringdegree;publicUnderGraduateStringnameintageStringdegree{supernameage;this.degree=degree;}publicvoidshowSystem.out.printinnname:+name+age:+age+degree:+degree;}publicclassTestOl{publicstaticvoidmainString[]argsStudentstudent=newStudentzhangsan16;student.show;UnderGraduateunderGraduate=newUnderGraduatelisi20bechalor;underGraduate.show;}
4、请按照题目的要求编写程序10分1通过继承Thread类方式创建两个线程,在Thread构造方法中指定线程的名字,并将这两个线程的名字打印出来publicclassMyThreadextendsThreadpublicMyThreadStringname{supername;publicvoidrun{System.out.printinthis.getName;}publicstaticvoidmainString]args{newMyThreadThreadl.start;newMyThreadThread
2.start;}2通过实现Runnable接口的方式创建一个新线程,要求main线程打印100次“main”,新线程打印50次“new”publicclassMyRunnableimplementsRunnable{publicvoidrun{forinti=0;i50;i++{System.out.printInnew;publicstaticvoidmainString[]args{newThreadnewMyRunnable.start;forinti=0;i100;i++System.out.printInmain;}}
5、请按照题目要求编写程序10编写一个程序,实现字符串大小写的转换并倒序输出,要求如下:使用for循环将字符串“HelloWorld”从最后一个字符开始遍历遍历的当前字符如果是大写字符就使用toLowerCase方法将其转换成小写字符,反之,则使用toUpperCaseO方法将其转换成大写字符定义一个StringBuffer对象,调用append方法以此添加遍历的字符,最后调用StringBuffer对象的toString并结束输出publicclassTestOl{publicstaticvoidmainString[]args{Stringstr=HelloWorld1;//字符串转成char数组char[]ch=str.toCharArray;StringBufferbuffer=newStringBuffer;forinti=str.length-1;i=0;i--{ifch[i]=Ach[i]=*Z{buffer.appendString.valueOfch[i].toLowerCase;}elseifch[i]=ach[i]=z*{buffer.appendString.valueOfch[i].toUpperCase;|System.out.printInbuffer.toString;
6、按照题目要求编写程序10使用FilelnputStreamFileOutputStream进行文件的拷贝
四、简答题共20分
1、Java中创建线程的有几种方式?
1、一种是继承java.lang包下的Thread类,覆写Thread类的run方法,在run方法中实现运行在线程上的代码newThread{publicvoidrun{}.start;另一种就是实现java.Iang.Runnable接口,同样是在run方法中实现运行在线程上的代码newThreadnewRunnable{publicvoidrun{}}.start
2、sleep方法与wait方法有什么区别?调用sleep方法,正在执行的线程主动让出CPU去执行其他线程,在sleep方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep方法并不会释放锁,即使当前线程使用sleep方法让出了CPU但其它被同步锁挡住了的线程也无法得到执行wait在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行当其它线程调用了notify方法后,调用wait方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。