本试卷分三部分,公共部分、C++部分和JAVA部分,其中公共部分为必考部分,C++与JAV 部分,两者选一完成。试卷满分100分。
公共部分(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 ….. 姓名 张三 李四 王五 …. 年龄 25 26 23 ….. 月工资 2000 1500 900 …… 部门号 1 1 2 ……. 电话 12345 54321 23456 …… 办公室 101 102 201 …….. 问题:
查询每个部门中月工资最高的“职工号”的SQL查询语句如下: SELECT 职工号 FROM 职工 AS A
WHERE 月工资 = (SELECT MAX(月工资) FROM 职工 AS B WHERE A.部门号 = B.部门号);
1:请简要的说明该查询语句对查询效率的影响(6分)
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;};
2. 使用操作符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\的执行结果是:_______
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; cout < 5. 写出此函数的功能(10分) 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; 52 while (--n) { p=p->next=new StrNode; cin >>p->name; } p->next=NULL; } 建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。 6. #define swap(a,b) /*交换ab*/(6分) (未完,请完成这个宏定义。) #define swap(a,b) {a=a+b;b=a-b;a=a-b;} 7. 编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:xxk1.dat”中。(14分) # include void main() { ofstream fout(\"a:xxk1.dat\"); // 定义输出文件流并打开文件 if (!fout){ cerr <<\"文件没有打开!\"< while (x!=-1) { fout < } // 能够从键盘向文件正确输出数据 fout.close(); // 关闭输出文件流 } JAVA部分(50分) 1. 在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。D(3分) A. start( ) B. stop( ) C. init( ) D. paint( ) 2. 不允许作为类及类成员的访问控制符的是( )。 C(3分) A. public B. private C. static D. protected 3. 开发与运行Java程序需要经过的三个主要步骤为 、 和 。 编辑源程序、编译生成字节码、解释运行字节码(6分) 4、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 类的子类并且存储该源程序文件的文件名为 。(4分) Applet、MyApplet 5. 若x = 5,y = 10,则x < y和x >= y的逻辑值分别为 和 。 true 、 false(4分) 6谈谈作用域public,private,protected,以及不写时的区别?(12分) 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时默认为friendly 7. 写个程序,要求创建一个文件,写入从键盘输入的一串字符,然后再读该文件并将文件内容显示在屏幕上。(18分) import java.io.*; class MyFileIo{ public static void main(String args[]){ FileInputStream fin; FileOutputStream fout; char ch; int data; try{ fin = new FileInputStream(FileDescriptor.in); fout = new FileOutputStream(“myfile1”); System.out.println(“请输入一串字符以#结束:”); while((ch = (char)fin.read()) != „#‟) Fout.write(ch); fin.close(); fou.close(); System.out.print(“”); fin = new FileInputStream(“myfile1”); fout = new FileOutpurStream(FileDescriptor.out); while(fin.available() > 0){ data = fin.read(); fou.write(data); } fin.close(); fout.close(); }catch(FileNotFoundException e){ System.out.println(“File not found!”); }carch(IOException e){} } } 因篇幅问题不能全部显示,请点此查看更多更全内容