公共部分(50分)
1:从资源管理(分配)的角度出发,I/O设备可分为______ _、 _______和_ _ _____三种类型。独占,共享,虚拟 (顺序可交换) (6分)
2:文件的物理组织有顺序、 _______和索引。链接(2分)
3:进程从运行状态进入就绪状态的原因可能是___ D ____。(4分)
A.被选中占有处理机 就绪——运行
B.等待某一事件// 运行——阻塞
C.等待的事件已发生 阻塞——就绪
D.时间片用完
4:作业调度程序从处于___ D ____状态的队列中选择适当的作业投入运行。(4分)
A.运行 B.提交 C.完成 D.后备
5:按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试。请问以下哪项测试不属于系统测试的内容( B)(4分)
- 压力测试
- 接口测试
- 功能测试
- 安全测试
- 性能测试
6:测试用例的设计是测试的重要阶段。系统测试用例设计应该从什么时候开始(A)(4分)
- 需求完成
- 详细设计完成
- 编码完成
- 系统集成完毕,提交系统测试
7:在UML方法中,使用多种类型的图形来帮助进行设计,请问以下哪些图形不是UML的图形类型( B )(4分)
- 类图
- 实体关系图
- 序列图
- 活动图
8:解释文件系统为什么会存在数据冗余?这种数据冗余会导致哪两类典型的问题?
(10分)
由于文件系统难于实现数据共享,因此,相同的数据可能会在多个文件中重复出现,即产生数据冗余。(6分)
数据冗余会导致数据(或更新)异常(2分)和数据不一致性(2分)
9:简述中断装置的主要职能。(12分)
中断装置的职能主要有三点:
1)检查是否有中断事件发生。(4分)
2)若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复驼行。(4分)
3)启动操作系统的中断处理程序。(4分)
C++部分(50分)
- 使用操作符setw对数据进行格式输出时,需要包含( )文件。C(4分)
A iostream.h B fstream.h C iomanip.h D stdlib.h
- 数组定义为”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列元素的值
int a[3][4];
如以上定义的a数组,则可视a数组由a[0]、a[1]、a[2]等三个元素组成,而a[0]、a[1]、a[2]等每个元素又分别是由4个整型元素组成的一维数组。我们已知a[i]也可以写成:*(a+i),所以*(a+1)代表a[1],再加2表示a数组第1行第2列元素的地址。
- 以下结构类型可用来构造链表的是( )。B(4分)
A structaa{ int a;int * b;}; B struct bb{ inta;bb *b;};
C structcc{ int * a;cc b;}; D struct dd{ int * a;aa b;};
- 设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分)
- 定义一个类模板与定义一个类函数模板的格式相同,必须以关键字_________开始。template(3分)
- 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 无限
i=0 ,i被视为判断变量,0转成bool是false,所以while没进去,C里面int 和 bool 可以相互转换, 整数0视为false,其他整数视为true
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分)
(1)static全局变量与普通的全局变量有什么区别?
答:全局变量的说明之前再加以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。
(2)static局部变量和普通局部变量有什么区别?
答:static局部变量只被初始化一次,下一次依据上一次结果值;
(3)static函数与普通函数作用域有什么不同点?
答:仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件。
(4)static函数与普通函数有什么区别?
答:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。
8.写出此函数的功能(12分)
struct StrNode {
charname[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=newStrNode;
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分)
预防死锁通常有以下两种方法:
(1)一次封锁法,就是要求每个事务必须一次将所有要使用的数据全部加锁,否则该事务不能继续执行;(3分)
(2)顺序封锁法,是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。
(3分)
4:写出以太网数据帧格式。(10分,每点2分)
目的地址 |
源地址 |
类型 |
数据 |
CRC |
7:主键和唯一索引的区别(8分,每点2分)
A 主键顺序为数据的物理顺序
B 主键不能空,唯一索引可以为空
C 主键每个表只能有一个,唯一索引可以多个
D