|
北航11春学期《Java语言与面向对象程序设计》主观模拟题页码标注
本模拟题页码标注所用教材为:
Java程序设计 潘浩 李芙玲 2005年11月第1版 清华大学出版社 北京交通大学出版社 书
如学员使用其他版本教材,请参考相关知识点
模拟题一
一、读程序写结果题(本大题共1小题,每小题20分,共20分)
21、class MyClass{
private int x; private int y;
public MyClass(){
x=0; y=0;
}
public MyClass(int x, int y){
... ... ...
}
public void show(){
System.out.println("\nx="+x+" y="+y);
}
public void show(boolean flag){
if (flag) System.out.println("\nx="+ x +" y=" + y);
else System.out.println("\ny="+ y +" x=" + x);
}
}
请回答下列问题(10分)
A)请写出类MyClass 的所有域变量和构造方法;
考核知识点:域变量和构造方法,参见P60 P68
B) 为了在MyClass(int x, int y) 中给域变量x,y 的 赋值,应如何处理,请写出对应的赋值语句。
考核知识点:构造方法,参见P68
C) public static void main(String args[])
{ MyClass myclass;
myclass.show();
}
编译运行该程序将会有何结果,如果有错,请指出原因。
考核知识点:静态方法和对象方法,参见P79
D)public static void main(String args[])
{
MyClass myclass=new MyClass(5,10);
myclass.show(false);
}
编译运行该程序将会有何结果,如果有错,请指出原因。
考核知识点:对象的创建和条件分支,参见P67 P46
E) public class MyPro{
public static void main(String args[]){
MyClass myclass=new MyClass(5,10);
System.out.println("\nx=" + myclass.x + " y=" + myclass.y);
}
}
编译运行该程序将会有何结果,如果有错,请指出原因。
考核知识点:访问控制符,参见P77
二、简答题(本大题共3小题,每小题20分,共60分)
22、按下列要求编写一个完整的基于application(应用)的程序:
A)接收命令行参数传递的浮点数,x, y和整数 n。
B)用递归技术编写方法用于计算n!。
C)利用公式:计算 并输出。
考核知识点:循环语句,参见P49;方法调用,参见P43
23、编写一基于application的程序,读文件“test.txt”,统计其中英文字母的个数和大写字母的个数,并输出。
考核知识点:文件操作,参见P198;输入输出文件流,参见P201
24、编写程序判断字符串是否是回文字符串。
考核知识点:循环语句,参见P49;字符操作,参见P26;String类和StringBuilder类,参见P116
模拟题二
一、读程序写结果题(本大题共1小题,每小题10分,共10分)
21、请写出该程序的运行结果
class Point {
int x, y;
String name = "a point";
Point(){x = 0; y = 0;}
Point(int x1, int y1, String name1){
x = x1;
y = y1;
name = name1;
}
int getX(){ return x;}
int getY(){ return y;}
void move(int newX, int newY){
x = newX;
y = newY;
}
Point newPoint(String name){
Point newP = new Point(-x, -y, name);
return newP;
}
boolean equal(int x, int y){
if(this.x == x && this.y == y)
return true;
else
return false;
}
void print(){
System.out.println(name +":x=" + x + "y=" +y);
}
}
public class UsingObject{
public static void main(String args[]){
Point p = new Point();
p.print();
p.move(50,50);
System.out.println(" ***** after moving ****");
System.out.println("Get x and y directly");
System.out.println("x= " + p.x + "y="+p.y);
System.out.println("or Getx and y calling method");
System.out.println("x= "+p.getX() + "y=" + p.getY());
if(p.equal(50,50))
System.out.println("I like this point!!!");
else
System.out.println("I hate it!!!");
p.newPoint("a new point").print();
new Point(10,15,"another new point").print();
}
}
考核知识点:类的定义,参见P59;对象创建,参见P67;构造方法调用,参见P68;构造方法重载,参见P74
二、编程题(本大题共3小题,每小题20分,共60分)
22、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用while语句,条件为输入的字符不为'\n'.
考核知识点:转义符的使用,参见P26;整数类型,参见P25;循环语句,参见P49
23、
1)利用已有的列表类,将数组int a[] = {-20, 10, 35, 80, -245, 36, 25};按从小到大的顺序插入到初始为空的列表head中。
2)将列表中保存的数据,按照从大到小的顺序输出。
考核知识点:数组的创建和使用,参见P39
24、插入排序
定义整型数组:int a[] = { 15, 5, 56, 8, 2};
通过直接插入排序法对该数组升序排序。
(1)写出直接插入排序法排序的前4趟。
(2)编写应用程序,完成该数组的排序,并打印每一趟排序的结果。
考核知识点:数组的遍历和使用,参见P41
久爱奥鹏网:www.92open.com |
|