本试卷分三部分,公共部分、C++部分和JAVA部分,其中公共部分为必考部分,C++与JAV
部分,两者选一完成。试卷满分100分。
公共部分(50分)
1:IP地址的编码分为 和 两部分。
网络号(2分) 主机号(2分)
2:假设执行语句S的时间为O(1),则执行下列程序段的时间为( B )(4分)
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
S;
3:二维数组A[10..20,5..10]采用行序为主序方式存储,每个数据元素占4个存储单元,且A[10][5]的存储地址是1000,则A[18][9]的地址是( A )(4分)
4:设栈最大长度为3,入栈序列为1,2,3,4,5,6,则不可能的出栈序列是( D )(4分)
D. 4,3,2,1,5,6
5:结构体和联合体的主要区别?(4分)
主要区别是结构体的各成员占有各自的内存空间,联合体是共享内存空间
6:操作系统的主要组成部分?(8分)
进程和线程的管理,存储管理,设备管理,文件管理
7:解释文件系统为什么会存在数据冗余?这种数据冗余会导致哪两类典型的问题?(8分)
由于文件系统难于实现数据共享,因此,相同的数据可能会在多个文件中重复出现,即产生数据冗余。(4分)
数据冗余会导致数据(或更新)异常(2分)和数据不一致性(2分)
2.设有关系EMP(ENO,ENAME,SALARY,DNO),其中各属性的含义依次为职工号、姓名、工资和所在部门号,以及关系DEPT(DNO,DNAME,MANAGER),其中各属性含义依次为部门号、部门名称、部门经理的职工号。(回答下列题目)(14分)
1. 列出各部门中工资不低于600元的职工的平均工资。
2. 请用SQL语句将“销售部”的那些工资数额低于600的职工的工资上调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分)
1.设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是( )。B(3分)
A g(f(3)) B f(g(3)) C g(f(3)+2) D p= f(g(3)+1)
2.循环while(int i=0) i–;执行次数是( )。A(3分)
A 0 B 1 C 5 D 无限
3.以下结构类型可用来构造链表的是( )。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;};
4. 有如下程序(3分)
main0
{ int x=1,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
该程序的输出结果是 A
A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2
5.设int * p2=&x,* p1=a;p2= *b;则a和b的类型分别是( )。B(3分)
A int * 和int B int * 和int **
C int 和int * D int * 和int *
6. 请写出如下代码运行的结果(9分)
# include
# include
struct Worker{
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 <
}
liouting 38 493
7. 什么函数不能声明为虚函数?(4分)
全局函数和静态函数
8. 编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:xxk1.dat”中。(18分)
# include
# include
# include
void main() {
ofstream fout(“a:xxk1.dat”); // 定义输出文件流并打开文件
if (!fout){
cerr <<”文件没有打开!”<
exit(1);
} // 可有可无
int x;
cin >>x;
while (x!=-1) {
fout <
cin >>x;
} // 能够从键盘向文件正确输出数据
fout.close(); // 关闭输出文件流
9. 头文件中的 ifndef/define/endif 有什么用(4分)
防止该头文件被重复引用。
JAVA部分(共50分)
1. 哪个关键字可以对对象加互斥锁?()B(3分)
A、transient
B、synchronized;
C、serialize
D、static
2. 下面哪个类可以被继承 C(3分)
A、java.lang.Double
B、java.lang.Math
C、java.lang.Thread
D、java.lang.Class
3. main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )B(3分)
A、public static void main( )
B、public static void main( String args[] )
C、public static int main(String [] arg )
D、public void main(String arg[] )
4. 判断以下Teacher类的main方法的运行结果( )B(3分)
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, “); }
}
5. 接口的继承(3分)
interface A{
int meth1();
}
interface B{
int meth2();
}
interface C extends A,B{
int meth3();
}
class JC implements C{
public int meth1(){
return 1;
}
public