公共部分(50分)
1:从资源管理(分配)的角度出发,I/O设备可分为______ _、 _______和_ _ _____三种类型。独享,共享,虚拟 (顺序可交换) (6分)
2:文件的物理组织有顺序、 _______和索引。链接(2分)
3:进程从运行状态进入就绪状态的原因可能是___ D ____。(4分)
A.被选中占有处理机
B.等待某一事件
C.等待的事件已发生
D.时间片用完
4:作业调度程序从处于___ D ____状态的队列中选择适当的作业投入运行。(4分)
A.运行 B.提交 C.完成 D.后备
5:按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试。请问以下哪项测试不属于系统测试的内容( B )(4分)
1. 压力测试
2. 接口测试
3. 功能测试
4. 安全测试
5. 性能测试
6:测试用例的设计是测试的重要阶段。系统测试用例设计应该从什么时候开始(A)(4分)
1. 需求完成
2. 详细设计完成
3. 编码完成
4. 系统集成完毕,提交系统测试
7:在UML方法中,使用多种类型的图形来帮助进行设计,请问以下哪些图形不是UML的图形类型( B )(4分)
1. 类图
2. 实体关系图
3. 序列图
4. 活动图
8:解释文件系统为什么会存在数据冗余?这种数据冗余会导致哪两类典型的问题?
(10分)
由于文件系统难于实现数据共享,因此,相同的数据可能会在多个文件中重复出现,即产生数据冗余。(6分)
数据冗余会导致数据(或更新)异常(2分)和数据不一致性(2分)
9:简述中断装置的主要职能。(12分)
中断装置的职能主要有三点:
1)检查是否有中断事件发生。(4分)
2)若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复驼行。(4分)
3)启动操作系统的中断处理程序。(4分)
C++部分(50分)
1. 使用操作符setw对数据进行格式输出时,需要包含( )文件。C(4分)
A iostream.h B fstream.h C iomanip.h D stdlib.h
1. 数组定义为”int a[4][5];”, 引用”*(a+1)+2″表示( )。B(4分)
A、a[1][0]+2 B、 a数组第1行第2列元素的地址
C、a[0][1]+2 D、 a数组第1行第2列元素的值
1. 以下结构类型可用来构造链表的是( )。B(4分)
A struct aa{ int a;int * b;}; B struct bb{ int a;bb * b;};
C struct cc{ int * a;cc b;}; D struct dd{ int * a;aa b;};
1. 设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是( )。B(4分)
A g(f(3)) B f(g(3)) C g(f(3)+2) D p= f(g(3)+1)
5. 若类A和类B没有继承关系,对于函数void func(A&) ,请至少用两种不同方法说明如何才能传递一个非常量的B类对象给func函数。(8分)
可在A类中定义一个构造函数:A(const B&); (4分)
或在B类中定义一个自动转换函数: operator A( ) const; (4分)
6. 请问以下程序将输出什么结果?(14分)
char *RetMemory(void)
{
char p[] = “hello world”;
return p;
}
void Test(void)
{
char *str = NULL;
str = RetMemory ();
printf(str);
}
可能是乱码。
因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。
7. static 有什么用途?(请说明三种)(12分)
(1)使得变量或对象的存储形式变成静态存储;(4分)
(2)它会把变量的可见范围限制在编译单元中,使它成为一个内部连接;(4分)
(3)类中的static成员。(4分)
公共部分(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分)
1. 定义一个类模板与定义一个类函数模板的格式相同,必须以关键字_________开始。template(3分)
1. 16位计算机中整型占__________个字节存储空间。2(3分)
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带回。
公共部分(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分)