7. 写出下面函数的功能(12分) template
void WE(Type a[],Type b[],int n) { for (int i=0; i 模板函数,把数组a的每个元素按逆序放入数组b中。 8. 写一段代码判断一个单向链表中是否有环。(14分) 给出如下结构: struct node { struct *next; }; typedef stuct node Node; bool getCycle(){ Node* temp1 = head;//(假设head就是这个链表的头) Node* temp2 = head; while(head->next!=NULL) { temp1 = temp1->next;//步长为1 temp2 = temp2->next->next;//步长为2 if(temp1 == temp2) return ture; head=head->next; } return false; } 公共部分(50分) 1:恢复和并发控制的基本单位是__ ______ 事务 (2分) 2:知学生关系:R(学号,姓名,系名称,系地址),每一名学生属于一个系,每一个系有一个地址,则R规范化程度属于___ ___2NF(2分) 3:P地址为 140.111.0.0 的B类网络,若要切割为9个子网,而且都要 连上Internet,请问子网掩码设为(D )。(3分) A. 255.0.0.0 B. 255.255.0.0 C. 255.255.128.0 D. 255.255.240.0 4:当关系R和S做自然联接时,能够保留R中不满足连接条件记录的操作是 ( A )(3分) A.左外联接 B.右外联接 C.内部连接 D.全外联接 5:简述中断装置的主要职能(12分,每点4分) 中断装置的职能主要有三点: 1)检查是否有中断事件发生。 2)若有中断发生,保护好被中断进程的断点及现场信息,以便进程在适当时候能恢复驼行。 3)启动操作系统的中断处理程序。 6:ISO网络协议主要层次结构?(14分,每点2分) 物理层,数据链路层,网络层、传输层、会话层、表示层、应用层。 (考察点:注意顺序,不要和tcp混淆) 7:假设有一个―职工‖表,表结构如下:(14分) 职工号 1 2 3 ….. 问题: 查询每个部门中月工资最高的―职工号‖的SQL查询语句如下: SELECT 职工号 FROM 职工 AS A WHERE 月工资 = (SELECT MAX(月工资) FROM 职工 AS B WHERE A.部门号 = B.部门号); 1:请简要的说明该查询语句对查询效率的影响(6分) 姓名 张三 李四 王五 …. 年龄 25 26 23 ….. 月工资 2000 1500 900 …… 部门号 1 1 2 ……. 电话 12345 54321 23456 …… 办公室 101 102 201 …….. 2:对该查询语句进行修改,使它既可以完成相同的功能,又可以提高查询效率。(8分) 1. 对于外层职工关系 A 中的每一个记录,都要对内层职工关系B进行检索,所有效率不高 2. (1)使用临时表 SELECT MAX(月工资) as 最高工资,部门号 INTO temp FROM 职工 GROUP BY 部门号; SELECT 职工号 FROM 职工,temp WHERE 月工资=最高工资 AND 职工.部门号 = temp.部门号; (2) SELECT 职工号 FROM 职工,(SELECT MAX(月工资) as 最高工资,部门号 FROM 职工 GROUP BY 部门号) as DEPMAX WHERE 月工资 = 最高工资 AND 职工.部门号 = DEPMAX.部门号; C++部分(50分) 1. 以下结构类型可用来构造链表的是( )。B(3分) 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. 使用操作符setw对数据进行格式输出时,需要包含( )文件。C(3分) A iostream.h B fstream.h C iomanip.h D stdlib.h 3. 设有以下说明和定义:(4分) typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; 则语句 printf(―%d‖,sizeof(struct date)+sizeof(max));的执行结果是:_______ 52 4. 请写出如下代码运行的结果(10分) # include char name[15]; // 姓名 int age; // 年龄 float pay; // 工资 }; void main() { Worker x; char *t=‖liouting‖; int d=38; float f=493; strcpy(x.name,t); x.age=d; x.pay=f;