本试卷分三部分,公共部分、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