本试卷分三部分,公共部分、C++部分和JA V A 部分,其中公共部分为必考部分,C++与JA V 部分,两者选一完成。试卷满分100分。
公共部分(50分)
1:分时操作系统通常采用___ B ____策略为用户服务。(4分)
A. 可靠性和灵活性
B. 时间片轮转
C. 短作业优先
D. 时间片加权分配
2:进程从运行状态进入就绪状态的原因可能是___ D ____。(4分)
A. 被选中占有处理机
B. 等待某一事件
C. 等待的事件已发生
D. 时间片用完
3:不能激活触发器执行的操作是:( D )(4分)
A .DELETE B.UPDA TE C.INSERT D.SELECT
4:简述中断装置的主要职能。(6分)
中断装置的职能主要有三点:
1) 检查是否有中断事件发生。(2分)
2) 若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复运行。(2分)
3) 启动操作系统的中断处理程序。(2分)
5:面向连接和非连接的服务的特点是什么(8分)
面向连接的服务,通信双方在进行通信之前,要事先在双方之间建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。(4分)
而非连接的服务,不需要预先建立起一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往“网络”上送出信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。(4分)
6:请给出预防死锁的若干方法(6分)
预防死锁通常有以下两种方法:
(1)一次封锁法,就是要求每个事务必须一次将所有要使用的数据全部加锁,否则该事务不能继续执行;(3分)
(2)顺序封锁法,是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。 (3分)
7:主键和唯一索引的区别(8分, 每点2分)
A 主键顺序为数据的物理顺序
B 主键不能空,唯一索引可以为空
C 主键每个表只能有一个,唯一索引可以多个
D 主键:默认将是聚簇索引 唯一索引: 默认将是非聚簇索引
C++部分(50分)
1. 表达式8&3的结果是__________。0(2分)
2. 设一维整型数组data 已进行了初始化,则其元素个数可由操作符sizeof 通过表达式__________________________计算出来。sizeof(data/data[0]) (2分)
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分)
JA V A 部分(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()); }
}
本试卷分三部分,公共部分、C++部分和JA V A 部分,其中公共部分为必考部分,C++与JA V 部分,两者选一完成。试卷满分100分。
公共部分(50分)
1:分时操作系统通常采用___ B ____策略为用户服务。(4分)
A. 可靠性和灵活性
B. 时间片轮转
C. 短作业优先
D. 时间片加权分配
2:进程从运行状态进入就绪状态的原因可能是___ D ____。(4分)
A. 被选中占有处理机
B. 等待某一事件
C. 等待的事件已发生
D. 时间片用完
3:不能激活触发器执行的操作是:( D )(4分)
A .DELETE B.UPDA TE C.INSERT D.SELECT
4:简述中断装置的主要职能。(6分)
中断装置的职能主要有三点:
1) 检查是否有中断事件发生。(2分)
2) 若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复运行。(2分)
3) 启动操作系统的中断处理程序。(2分)
5:面向连接和非连接的服务的特点是什么(8分)
面向连接的服务,通信双方在进行通信之前,要事先在双方之间建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。(4分)
而非连接的服务,不需要预先建立起一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往“网络”上送出信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。(4分)
6:请给出预防死锁的若干方法(6分)
预防死锁通常有以下两种方法:
(1)一次封锁法,就是要求每个事务必须一次将所有要使用的数据全部加锁,否则该事务不能继续执行;(3分)
(2)顺序封锁法,是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。 (3分)
7:主键和唯一索引的区别(8分, 每点2分)
A 主键顺序为数据的物理顺序
B 主键不能空,唯一索引可以为空
C 主键每个表只能有一个,唯一索引可以多个
D 主键:默认将是聚簇索引 唯一索引: 默认将是非聚簇索引
C++部分(50分)
1. 表达式8&3的结果是__________。0(2分)
2. 设一维整型数组data 已进行了初始化,则其元素个数可由操作符sizeof 通过表达式__________________________计算出来。sizeof(data/data[0]) (2分)
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分)
JA V A 部分(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()); }
}