本试卷分三部分,公共部分、C++部分和JAVA部分,其中公共部分为必考部分,C++与JAV
部分,两者选一完成。试卷满分100分。
公共部分(50分)
1:SQL语言中,下列涉及空值的操作,不正确的是 ( C )(3分)
A.AGE IS NULL B.AGE IS NOT NULL C.AGE=NULL D.NOT(AGE IS NULL)
2:下面关于函数依赖的叙述中,不正确的是 ( B )(3分)
A.若X→Y,X→Z,则X→YZ B.若XY→Z,则X→Z, Y→Z
C.若X→Y,WY→Z,则XW→Z D.若X→Y,则XZ→YZ
3:ATM采用的线路复用方式为 。 C(3分)
A. 频分多路复用
B. 同步时分多路复用
C. 异步时分多路复用
D. 独占信道
4:IP地址为 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
5:写出float x 与“零值”比较的 if 语句(4分)
const float EPSINON = 0.00001;
if ((x >= – EPSINON) && (x <= EPSINON)
6:写出 char *p 与“零值”比较的 if 语句(4分)
if (p == NULL)
7:操作系统中进程调度策略有哪几种?(10分,每点2分)
先来先服务(FIFO),时间轮转法调度(时间片调度),优先权调度,多级反馈队列(反馈循环队列),保证调度
8:设有关系EMP(ENO,ENAME,SALARY,DNO),其中各属性的含义依次为职工号、姓名、工资和所在部门号,以及关系DEPT(DNO,DNAME,MANAGER),其中各属性含义依次为部门号、部门名称、部门经理的职工号。(回答下列题目)(20分)
1. 列出各部门中工资不低于600元的职工的平均工资。(10分)
2. 请用SQL语句将“销售部”的那些工资数额低于600的职工的工资上调10%。(10分)
1.SELECT DNO, AVG (SALARY)
FROM EMP
WHERE SALARY>=600
GROUP BY DNO
2.UPDATE EMP
SET SALARY=SALARY*1.1
WHERE ENO IN
(SELECT ENO
FROM EMP, DEPT
WHERE EMP.DNO=DEPT.DNO
AND DNAME=’销售部’
AND SALARY<600;
或者
UPDATE EMP
SET SALERY = SALERY * 1.1
FROM EMP A,ENO B
WHERE A.DNO = B.DNO
AND B.DNAME=’销售部’
AND B.SALARY<600;
C++部分(50分)
A) 3 B)6 C) 9 D) 随机数
2. 设有以下说明语句(4分)
struct ex
{ int x ; float y; char z ;} example;
则下面的叙述中不正确的是 B
A) struct是结构体类型的关键字 B) example是结构体类型名
C) x,y,z都是结构体成员名 D) struct ex是结构体类型
3. 以下程序运行后,输出结果是 C(4分)
main()
{ char *s=”abcde”;
s+=2;
printf(“%ld\n”,s);
}
A) cde B) 字符c的ASCII码值 C) 字符c的地址 D) 出错
4. 什么函数不能声明为虚函数?(6分,每点3分)
全局函数和静态函数
5. 引用与指针有什么区别?(12分,每点4分)
1) 当引用被创建时,它必须被初始化。(指针则可以在任何时候被初始化。)
2) 一旦一个引用被初始化为指向一个对象,它就不能被改变为对另一个对象的引用。(指针则可以在任何时候指向另一个对象。)
3) 不可能有N U L L引用。必须确保引用是和一块合法的存储单元关连。
6. 设计一个学生类Stud,除了包括no(学号)、name(姓名)和deg(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有两个普通成员函数setdata()和disp(),分别用于给数据成员赋值和输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。在main()函数中定义了一个对象数组用于存储输入的学生数据。(20分)
#include
#include
#define N 3
class Stud
{
int no;
char name[10];
int deg;
static int num;
static int sum;
public:
void setdata(int n,char na[],int d)
{
no=n; deg=d;
strcpy(name,na);
sum+=d;
num++;
}
static double avg()
{
return sum/num;
}
void disp()
{
printf(” %-5d%-8s%3d\n”,no,name,deg);
}
};
int Stud::sum=0;
int Stud::num=0;
void main()
{
Stud st[N];
int i,n,d;
char na[10];
for(i=0;i {
printf(“输入学号 姓名 成绩:”);
scanf(“%d%s%d”,&n,na,&d);
st[i].setdata(n,na,d);
}
printf(“输出数据\n”);
printf(” 学号 姓名 成绩\n”);
for(i=0;i st[i].disp();
printf(” 平均分=%g\n\n”,Stud::avg());
}
JAVA部分(50分)
1. 判断以下Teacher类的main方法的运行结果( )B(4分)
public class Teacher extends Person {
public Teacher () { super(); }
public Teacher(int a) { System.out.println (a); }
public void func() { System.out.print (“2, “); }
public static void main(String[] args) {
Teacher t 1 = new Teacher ();
Teacher t2 = new Teacher(3);
}
}
class Person {
public Person () { func(); }
public void func() { System.out.println(“1, “); }
}
D. 2, 3
2. 以下那个方法声明能够被加入到Child类中,编译正确?( )B(4分)
public class Parent {
public int addValue( int a, int b) { return a+b; }
}
class Child extends Parent {
}
D. public int addValue( int a, int b )throws MyException {//do something…}
3. 请阅读以下的代码片断,判断以下那些陈述是正确的:( )D(4分)
try {
…… // 打开文件
…… // 读写文件
return;
}
catch(IOException e) {
e.printStackTrace();
throw e;
}
finally {
throw new IllegalArgumentException(“……”);
}
4、对于以下的方法体,如果TimedOutException直接继承Ex