本试卷分三部分,公共部分、C++部分和JAVA部分,其中公共部分为必考部分,C++与JAV
部分,两者选一完成。试卷满分100分。
公共部分(40分)
1:操作系统的主要组成部分?(8分,每点2分)
进程和线程的管理,存储管理,设备管理,文件管理
2:Internet采用哪种网络协议?该协议的主要层次结构?(10分)
Internet采用TCP/IP协议(2分)
物理层,(2分)数据链路层,(2分)网络层(IP) (2分),应用层(2分)
3:解释文件系统为什么会存在数据冗余?这种数据冗余会导致哪两类典型的问题?(8分)
由于文件系统难于实现数据共享,因此,相同的数据可能会在多个文件中重复出现,即产生数据冗余。(4分)
数据冗余会导致数据(或更新)异常(2分)和数据不一致性(2分)
4:简述中断装置的主要职能。(6分)
中断装置的职能主要有三点:
1)检查是否有中断事件发生。(2分)
2)若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复运行。(2分)
3)启动操作系统的中断处理程序。(2分)
5:什么是虚拟设备?为什么在操作系统中引入虚拟设备?(8分)
虚拟设备是通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备。(4分)
在操作系统设备管理中,引入虚拟设备是为了克服独占设备速度较慢、降低设备资源利用率的缺点,从而提高设备的利用率。(4分)
C++部分(60分)
3. 下列各种函数中,( )不是类的成员函数。C(4分)
A 构造函数 B 析构函数 C 友元函数 D 拷贝构造函数
4.假定DD为一个类,则执行“DD a[10],*P”语句时,系统自动调用该类构造函数的次数为( )B(4分)
A、11 B、10 C、1 D、0
5.循环while(int i=0) i–;执行次数是( )。A(4分)
A 0 B 1 C 5 D 无限
6.若类A和类B没有继承关系,对于函数void func(A&) ,请至少用两种不同方法说明如何才能传递一个非常量的B类对象给func函数。(10分)
可在A类中定义一个构造函数:A(const B&); (5分)
或在B类中定义一个自动转换函数: operator A( ) const; (5分)
!7.static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?(20分)
static全局变量与普通全局变量的区别:前者在主函数之前就要被初始化,(2分)后者无要求。(2分)
static局部变量和普通局部变量的区别:static全句变量是所有函数共享的变量,在一个函数使用完它后它的值会保持到下一个函数来改变它(2分)。后者,本函数所声明的局部变量在本函数运行完之后会被销毁。(2分)
static函数与普通函数的区别:static的可以用类来访问(就是不用初始化一个类就直接使用这个类的这个static方法);(2分)非static的只能通过对象来访问(2分)。static的定义里不能用到类内部非static变量值。(3分)static在循环中定义并赋值时,定义过程只进行一次,而不是每个循环1次。(3分)
8.写出此函数的功能(12分)
struct StrNode {
char name[15]; // 字符串域
StrNode * next; // 指针域
};
void QB(StrNode * & f ,int n) {
if (n==0) { f=NULL; return; }
f=new StrNode;
cin >>f->name;
StrNode * p=f;
while (–n) {
p=p->next=new StrNode;
cin >>p->name;
}
p->next=NULL;
}
建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。
JAVA部分(60分)
1.给出下面代码: (4分)
public class test{
static int a[] = new a[10];
public static void main(String args[]) {
System.out.println(arr[10]);
}
}
那个选项是正确的?()A
A、编译时将产生错误;
B、编译时正确,运行时将产生错误;
C、输出零;
D、输出空。
2. 哪个关键字可以对对象加互斥锁?()B(4分)
A、transient
B、synchronized;
C、serialize
D、static
3. MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量()D(4分)
A、public int MAX_LENGTH=100;
B、final int MAX_LENGTH=100;
C、final public int MAX_LENGTH=100;
D、public final int MAX_LENGTH=100.
4、关于垃圾收集的哪些叙述是对的()B(4分)
A、程序开发者必须自己创建一个线程进行内存释放的工作。
B、垃圾收集将检查并释放不再使用的内存。
C、垃圾收集允许程序开发者明确指定并立即释放该内存。
D、垃圾收集能够在期望的时间释放被java对象使用的内存
5. 内部类的实现方式 C(4分)
public class OuterClass {
private double d1 = 1.0;
//insert code here
}
A、class InnerOne{
public static double methoda() {return d1;}
}
B、public class InnerOne{
static double methoda() {return d1;}
}
C、private class InnerOne{
double methoda() {return d1;}
}
D、static class InnerOne{
protected double methoda() {return d1;}
}
6. abstract class和interface有什么区别 (20分)
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instan