本试卷分三部分,公共部分、C++部分和JAVA部分,其中公共部分为必考部分,C++与JAV
部分,两者选一完成。试卷满分100分。
公共部分(50分)
1:分时操作系统通常采用___ B ____策略为用户服务。(4分)
A.可靠性和灵活性
B.时间片轮转
C.短作业优先
D.时间片加权分配
2:进程从运行状态进入就绪状态的原因可能是___ D ____。(4分)
A.被选中占有处理机
B.等待某一事件
C.等待的事件已发生
D.时间片用完
3:不能激活触发器执行的操作是:( D )(4分)
A.DELETE B.UPDATE C.INSERT D.SELECT
4:简述中断装置的主要职能。(6分)
中断装置的职能主要有三点:
1)检查是否有中断事件发生。(2分)
2)若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复运行。(2分)
3)启动操作系统的中断处理程序。(2分)
5:面向连接和非连接的服务的特点是什么(8分)
面向连接的服务,通信双方在进行通信之前,要事先在双方之间建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。(4分)
而非连接的服务,不需要预先建立起一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往“网络”上送出信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。(4分)
6:请给出预防死锁的若干方法(6分)
预防死锁通常有以下两种方法:
(1)一次封锁法,就是要求每个事务必须一次将所有要使用的数据全部加锁,否则该事务不能继续执行;(3分)
(2)顺序封锁法,是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。
(3分)
4:写出以太网数据帧格式。(10分,每点2分)
7:主键和唯一索引的区别(8分,每点2分)
A 主键顺序为数据的物理顺序
B 主键不能空,唯一索引可以为空
C 主键每个表只能有一个,唯一索引可以多个
D 主键:默认将是聚簇索引 唯一索引: 默认将是非聚簇索引
C++部分(50分)
3. 在继承机制下,当对象消亡时,编译系统先执行________的析构函数,然后再执行_______的析构函数。子类 父类(4分)
4. 设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是( )。B(3分)
A g(f(3)) B f(g(3)) C g(f(3)+2) D p= f(g(3)+1)
5.设int * p2=&x,* p1=a;p2= *b;则a和b的类型分别是( )。B(3分)
A int * 和int B int * 和int **
C int 和int * D int * 和int *
6. 程序员规范中要求不要写出类似(++i)+(i++) 或 f(++i,i++)这样的代码,请说明原因。(8分)
计算子表达式的顺序由编译器决定的,虽然参数的压栈顺序在给定的调用方式下式固定的, 但参数表达式的计算顺序也由编译器决定的。不同的编译器或不同的表达式计算的顺序可能不一致。
7. 说明类中的public、 protected和 private成员函数分别在public、protected和private继承方式下在派生类中的可访问性。(10分)
重点是基类中的任何Private在派生类中都是不可访问的。
8. 请指出这个程序里的不正确的地方(18分)
char *getString()
{
return (char*)malloc(800);
}
int main()
{
char *str;
str = getString();
pintf(“%s”,str);
return 0;
}
错误在于:
在前面的函数中。malloc分出来的空间被放在了一个栈上面
主函数使用了这个函数后操作系统后弹出栈顶
也就是这块空间被shi放了(9分)
后面那个printf打印的本来是指向栈顶的那个地址的。。
但现在弹出了
所以不知道指到哪里去了
也不会得到自己想要的打印结果(9分)
JAVA部分(50分)
1. int x=4; (3分)
System.out.println(“value is ” +((x>4) 99.9:9));
A、9
B、9.0
C、99.9
D、99
B
2. 下面哪个类可以被继承 C(3分)
A、java.lang.Double
B、java.lang.Math
C、java.lang.Thread
D、java.lang.Class
3. 接口的继承(3分)
interface A{
int meth1();
}
interface B{
int meth2();
}
interface C extends A,B{
int meth3();
}
class JC implements C{
public int meth1(){
return 1;
}
public int meth2(){
return 2;
}
public int meth3(){
return 3;
}
public int meth4(){
return 4;
}
}
class Jkou{
public static void main(String args[]){
JC j = new JC();
System.out.println(j.meth1());
System.out.println(j.meth2());
System.out.println(j.meth3());
System.out.println(j.meth4());
}
}
A、4 3 2 1
B、1 2 3 4
C、1 3 2 4
D、1 4 2 3
B
4、class Check4{(3分)
public static void main(String args[])
{
int x=0;
x=x++;
System.out.println(x);
int y=x;
System.out.println(y);
}
}输出结果为:
0 0
5. Collection的 四种主要接口是 、 、 、
Collection,List,Map,Set(8分)
6. Error与Exception有什么区别?(6分)
Error表示系统级的错误和程序不必处理的异常,
Exception表示需要捕捉或者需要程序进行处理的异常。
7. 多线程有几种实现方法,都是什么 同步有几种实现方法,都是什么 (12分)
多线程有两种实现方法,(2分)分别是继承Thread类(2分)与实现Runnable接口 (2分)同步的实现方面有两种,(2分)分别是synchronized,wait(2分)与notify(2分)
8. Java编程,打印昨天的当前时刻。(12分)
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}