资源描述
(完整版)2014年杭州电子科技大学Java期末试卷
杭州电子科技大学学生考试卷( A )卷
考试课程
Java语言程序设计
考试日期
2014年 6月 16日
成 绩
课程号
教师号
任课教师姓名
考生姓名
学号(8位)
年级
专业
注意:所有答案均写在答卷上,写在试卷上无效;
(一)单选题(每题2分,共30分)
(1) 下列哪个类型不属于Java的基本数据类型 .
A、float B、boolean C、char D、String
(2) 以下哪个不属于Java的合法标识符.
A、Class B、_name; C、abc; D、1_name;
(3) 若整型变量i的值为奇数,那么值为true的逻辑表达式是( )。
A、i%2=0; B、i%2==1;
C、i/2==0; D、i%2 equals 0;
(4) 数学表达式|x|〈10 对应的java表达式为 .
A、|x|<10 B、x<10&&x〉-10 C、x<10||x>—10 D、10〉x>-10
(5) 比较两个字符串s1和s2的长度是否相等,如下表达式中正确的是 ( )。
A、s1。equals(s2) B、s1。length( ).equals(s2)
C、s1.length( )。equals(s2。length( ) D、s1。length( ) == s2。length( )
(5) 设有定义:int [] a = {4, 2, -7, 5, 1, 6, 3};则a[a[1]]的值为 。
A、 4 B、2 C、 -7 D、 5
(6) 关于方法的返回值,以下说法正确的是
A、方法必须有返回值 B、方法可以没有返回值,也可以有多个返回值
C、方法有且仅有一个返回值 D、方法必须有至少一个返回值
(7) 设Student为已定义的类名,下列语句能正确创建Student对象的是 。
A、Student s=new Student; B、Student s=new Student ();
C、Student s= Student (); D、Student s[ ]=new Student [10];
(8) 对于一个三位正整数 n,表达式( )可以取出n的百位数字.
A、n%10/10 B、n%10 C、n/10%10 D、n/100
(9) 指出下列哪个方法与方法public void overload(int x, int y){}为不合理的重载方法 。
A、public long overload (long x, long y){} B、public float overload (float x, float y){}
C、public void overload (int x){} D、public int overload (int a, int b){}
(10) 以下关于构造方法的描述错误的是 。
A、构造方法的返回类型只能是void型。
B、构造方法是类的一种特殊方法,它的方法名必须与类名相同。
C、构造方法的主要作用是完成对类的对象的初始化工作。
D、一个类可以定义多个构造方法。
(11) 下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是( )
A、 if(u〉s) t=u; t=s;
B、 t=s; if(u〉s) t=u;
C、 if(u〉s) t=s; else t=u;
D、 t=u; if(u〉s) t=s;
(12) 定义了一个合法的抽象类。
A、abstract Shape {abstract void area();}
B、class abstract Shape {abstract void area();}
C、abstract class Shape {abstract void area();}
D、abstract class Shape {abstract void area() {System。out。println(”area");}}
(13) 为了以字符方式将数据写到文件中,可以使用 类。
A、FileReader B、FileInputStream
C、FileOutputSteam D、FileWriter
(15)如下图中数字和符号按钮所在的面板(JPanel)采用的是下列哪种 布局方式
A、FlowLayout B、GridLayout C、BorderLayout D、CardLayout
(二)阅读程序,回答每个程序后面的问题(每个问题2分,共20分)
程序1
class test{
public static void main(String args[]){
int a=33;
do{
if(a%2==1) a=a*3+1;
else a/=2;
System。out。printf("%d ",a);
}while(a!=1);
}
}
问题1:写出程序1运行时输出的第1个数据。
问题2:写出程序1运行时输出的最后1个数据.
程序2
public class Test{
static boolean check (int x) {
if (x==1)
return false;
for (int i=2;i〈=x/2;i++)
if (x%i==0)
return false;
return true;
}
public static void main(String args[]){
for(int i=5;i〈10;i++){
if(check(i)==false) System。out.println(i);
}
}
}
问题3:描述static boolean check (int x)方法的功能
问题4:写出程序2运行的输出结果
程序3
public class testComplex{
public static void main(String[] args) {
Complex a = new Complex (2, 3);
Complex b = new Complex (4, 5);
Complex c = a。add(b);
System。out。println(c.toString());
}
}
class Complex {
private double realPart;
private double imaginaryPart;
public Complex(double a, double b) {
this.realPart=a;
this。imaginaryPart=b;
}
public Complex(){ this。realPart=0; this.imaginaryPart=0; }
public Complex add(Complex a) {
double x= this。realPart + a.realPart;
double y= this。imaginaryPart + a。imaginaryPart;
return new Complex(x,y);
}
public String toString() {
String show = this.realPart + ” + ” + this.imaginaryPart + "i”;
return show;
}
}
问题5:为使程序可以被正常编译、运行,写出保存程序3的文件名
问题6:写出程序3运行的输出结果
问题7:程序3中,是否有方法重载,请简单说明(不得超过20字)。
程序4
public class Class1{
public static void main(String args[ ]){
int i,Max,Min;
int a[]= {12,67,8,98,23,56,124,55,99,100};
Max = Min = a[0];
for (i=1;i<a。length;i++) {
if (a[i]<Min) Min = a[i];
if (a[i]〉Max) Max = a[i];
}
System。out。println(Max+" "+Min);
}
}
问题8:写出程序4运行时的输出结果
程序5:
import javax.swing。*;
import java.awt。event。*;
import java。awt.*;
class AdderFrame extends JFrame implements ActionListener{
private JTextField tfOp1,tfOp2,tfSum;
private JButton btnEqual;
AdderFrame(){
btnEqual = new JButton("=”);
tfOp1 = new JTextField(10);
tfOp2 = new JTextField(10);
tfSum = new JTextField(10);
setBounds(200,300,500,80);
btnEqual.addActionListener(this);
setLayout(new FlowLayout());
add(tfOp1); add(tfOp2);
add(btnEqual); add(tfSum);
}
public void actionPerformed(ActionEvent event){
int a=Integer.parseInt(tfOp1.getText());
int b=Integer。parseInt(tfOp2。getText());
tfSum.setText(a+b+"”);
}
public static void main(String[] args){
AdderFrame frm = new AdderFrame();
frm.setVisible(true);
}
}
问题9:分别写出程序5中出现的一个接口名和一个容器类名
问题10:描述语句btnEqual。addActionListener(this)的作用(不得超过20字)
(三) 程序填空题(每空2分,共14分)
(1)输入一个整数,输出数字7在整数中出现的次数。例如,输入为-157时,输出1;输入77537时,输出为3,请完成程序.
【程序】
import java。util。*;
class Test
{
public static void main(String []args){
Scanner sc=new Scanner(System.in);
int k, a=sc。nextInt(),count;
if(a<0) a=—a;
while( (1) )
{
k=a%10;
(2) ;
if(k==7){
count++;
}
}
System.out。println(count);
}
}
(2)编写类Point,用以表示直角坐标系中的点。其中distance()方法返回当前点到坐标原点的距离
public class Point{
private double x,y;
Point(double a ,double b){
(3) ;
}
double distance( ) {
(4) Math.sqrt(x*x+y*y);
}
public static void main(String args[]){
Point p1=new Point(3,4); //创建坐标为的点p1(3,4)
System.out.print( (5) ); //输出p1到原点的距离
}
}
(3)以下程序的功能是:统计文件“d:\\source.txt”中“Java”出现的次数,忽略大小写,请将程序补充完整。
import java.io。*;
class Count
{
public static void main(String[] args)throws IOException{
FileReader in=new FileReader("d:\\source。txt");
StringBuffer str= (6) ;
String fix=”Java";
int ch;
int count=0;
while((ch=in.read())!=-1)
str.append((char)(ch));
for(int i=0;i〈str.length()—3;i++)
{
String sub= (7) (i,i+fix.length());
if(sub。equals (fix)) count++;
}
System。out。println(count);
in.close();
}
}
(四)程序设计题(每题各12分,总共36分)
1、输入50个学生的某门课的成绩,统计不及格学生的人数,并输出平均分。
2、输出1000以内的素数。要求:素数的判断采用public boolean isPrime(int n )方法。如果是素数返回true,否则返回false。
3、定义Quad,用于描述一个二次函数,要求如下:
(1)类中包含a,b,c三个实型成员变量,二次项、一次项和常数项系数;
(2)构造方法有三个参数,分别用于对三个成员变量初始化。
(3)成员方法getIntersectionNum()返回函数曲线与x轴交点数量;
(4)在main方法中接受键盘输入的三个实数,创建对应的二次函数对象,并调用getIntersectionNum()方法,计算并输出该二次函数与x轴的交点。
杭州电子科技大学学生考试卷( A )卷
考试课程
Java语言程序设计
考试日期
2014年 6月16日
成 绩
课程号
教师号
任课教师姓名
考生姓名
学号(8位)
年级
专业
(一)单选题(每题2分,共30分)
(1) D (2) D (3) B (4) B (5) D (6) C (7) B (8) B (9) D (10) D
(11) A (12) B (13) C (14) D (15) B
(二)程序阅读(每题2分,共20分)
问题1 100
问题2 1
问题3 判断一个整数是否为素数
问题4 6 8 9
问题5 testComplex。java
问题6 6+8i
问题7 有,其中的构造方法就是重载
问题8 124 8
问题9 ActionListener JFrame
问题10 btnEqual 注册监听器接口,可触发ActionEvent事件
(三)程序填空题(每空2分,共14分)
(1) a!=0或者a>0 (2) a=a/10或者a/=10 (3) x=a, y=b或者this。x=a; this。y=b;
(4) return (5) p1.distance() (6) new StringBuffer()
(7) str.substring
(四)程序设计题(每题12分,总计36分)
1。
import java.util.Scanner;
class Counting {
public static void main(String[] args) {
// TODO Auto-generated method stub
final int N=50;
float a[]=new float[N];
Scanner sc=new Scanner(System.in);
float sum=0;
int count=0;
for(int i=0;i〈a.length;i++)
{
a[i]=sc.nextFloat();
sum+=a[i];
}
for(int i=0;i〈a。length;i++)
{
if(a[i]<60) count++;
}
System.out。println("平均分: ”+sum/N);
System。out.println(”不及格的人数为:"+count);
}
}
2。
class Prime{
public static boolean isPrime(int n)
{
for(int i=2;i〈=Math。sqrt(n);i++)
{
if(n%i==0) return false;
}
return true;
}
public static void main(String[] args)
{
for(int i=1;i〈=1000;i++)
{
if(isPrime(i)) System。out.println(i);
}
}
}
3.
import java。util.Scanner;
class Quad{
double a,b,c;
Quad(double a,double b,double c)
{
this。a=a;
this。b=b;
this。c=c;
}
int getIntersectionNum()
{
double s=b*b—4*a*c;
if(s〈0)return 0;
else if (s==0) return 1;
else return 2;
}
public static void main(String[] args)
{
double a,b,c;
Scanner sc=new Scanner(System.in);
a=sc。nextDouble();
b=sc。nextDouble();
c=sc.nextDouble();
Quad q=new Quad(a,b,c);
if(q.getIntersectionNum()==0) System.out.println(”方程没有根”);
if(q.getIntersectionNum()==1)
{
System.out.println(”方程有一个根:");
System。out.println("该方程的根为:”+(—b/2));
}
if(q.getIntersectionNum()==2)
{
System。out.println("方程有两个根:");
double root1=-b+Math。sqrt(b*b-4*a*c);
double root2=—b-Math.sqrt(b*b—4*a*c);
System。out.println(”该方程第一个根为:”+root1);
System.out。println("该方程第二个根为:”+root2);
}
}
}
第 9 页 共 9 页
展开阅读全文