中兴软件测试笔试题

一、公共部分(50 分)

中兴软件测试笔试题

1:作业调度程序从处于( )状态的队列中选择适当的作业的作业投入运行。(3 分)

A 运行 B 提交 C 完成 D 后备

2:SQL 语言中,删除一个表的命令是( )(3 分)

A CLEAR TABLE B DROP TABLE

C DELETE TABLE D REMOVE TABLE

3:ATM 采用的线路复用方式为( )(3 分)

A 频分多路复用

B 同步时分多路复用

C 异步时分多路复用

D 独占信道

4:数据库中只存放视图的( )(3 分)

A 操作

B 对应的数据

C 定义

D 限制

5:什么是虚拟设备?为什么在操作系统中引入虚拟设备?(10 分)

6:TCP 为何采用三次握手来建立连接,若采用二次握手可以吗,请说明原因?(16 分)

7:什么是分布式数据库?(12 分)

C++部分(50 分)

1:设有“int w[3][4];”,pw 是与数组名w 等价的数组指针,则pw 的初始化语句

________________(3 分)

2:要使引用pr 代表变量“char *p”,则pr 的初始化语句为__________________(3 分)

3:“零值”可以是0,0.0,FALSE 或者“空指针”。例如int 变量n 与“零值”比较的if 语句为:

if(n==0),则BOLL flag 与“零值”比较的if 语句为______________;float x 与“零值”比较的if

语句为:______________。(6 分)

4:设有如下语句:(3 分)

int x;

()

*px=0;

则选择以下哪条语句可将x 值置为0。

A int *px; B int const *px=&x;

C int const px=&x; D const int *px=&x;

5:设viod f1(int *m,long&n);int a;long b;则以下调用合法的是( )(3 分)

A f1(a,b) B f1(&a,b)

C f1(a,&b) D f1(&a,&b)

6:请写出如下代码的运行结果(6 分)

int main()

{

int a,b,c,d;

a=0;

b=1;

c=2;

d=3;

printf(“%d”,a+++b+c+++d++);

}

7:写出下面函数的功能(12 分)

Template

Void WE(Type a[],Type b[],int n)

{

for(int i=0;i

b[n-i-1]=a;

}

8 写一段代码判断一个单向链表中是否有环。(14 分)

给出如下结构

Struct node

{steuct *next;

};

Typedef stuct node Node;

JAVA 部分(50 分)

1:判断下列对的是哪个( )(3 分)

A short s1=1;s1=s1+1

B short s1=1;s1+=1

C short s1=1;s1=s1-1

D short s1=1;s1=s1*1

2:main 方法是Java Application 程序执行的入口点,关于main 方法的方法头以下哪项是合法的

( )(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 args)

3:设float x=1,y=2,z=3,则表达式y+=z--/++x 的值是( )(3 分)

A 3.5 B 3

C 4 D 5

4:d(11.5)=_______

d(-11.5)=_______(4 分)

5:假设x=10,y=20,z=30;计算下列表达式的值(6 分)

A x<10||x>10__________

B !(x

C z-y==x&&(y-z)!=x_____________

6:方法重建Overload 和方法的重写Overriding 的区别。Overload 的方法是否可以改变返回值

的类型?(10 分)

7:谈谈HashMap 和Hashtable 的区别(6 分)

8:构造一个类来描述屏幕上的一个点,该类的构成包括点x 和y 两个坐标,以及一些对点进行

的操作,包括:取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并对其进行

操作。(15 分)

数据结构

(其实这些大公司的笔试不难,也不就是如此,只要学一下数据结构就可以搞定!)

排序及查找方法

#include

#include

#define N 11

int search(int array[],int n,int k)

{

int i;

i=n-1;

array[0]=k;

while(array!=k) i--;

return(i);

}

int halfsearch(int array[],int n,int k)

{int i,j,mid;

i=1;j=n;

while(i<=j)

{mid=(i+j)/2;

if(k==array[mid]) return(mid);

else if(k

else i=mid+1;

}

return(0);

}

void mpsort(int array[])

{int i,j,a;

a=0;

for(i=1;i

for(j=i+1;j

if(array>array[j])

{a=array;

array=array[j];

array[j]=a;}

}

void sort(int array[])

{int i,j;

for(i=2;i

{array[0]=array;

j=i-1;

while(array[0]

{array[j+1]=array[j--];

array[j+1]=array[0];

}

}

}

void creat(int array[])

{int i;

printf("enter the array:n");

for(i=1;i

scanf("%d",&array);

}

void print(int array[])

{int i;

printf("The numbers after sort is:n");

for(i=1;i

printf("%d ",array);

printf("n");

}

main()

{int a[11],i,x,chang;

aga:

printf("nchang:1: use watching method findingn 2:use half method findingn 3: use

directness intsert method sortn 4:use bubble up method sortn 5:exitn");

scanf("%d",&chang);

switch (chang)

{case 1:

{creat(a);

printf("Please int the search number:n");

scanf("%d",&x);

printf("The number station is:%dn",search(a,N,x));

goto aga;

}

case 2:

{ creat(a);

sort(a);

print(a);

printf("Please int the search number:n");

scanf("%d",&x);

printf("The number station is:%dn",halfsearch(a,N,x));

goto aga;

}

case 3:

{creat(a);

sort(a);

print(a);

goto aga;

}

case 4:

{creat(a);

mpsort(a);

print(a);

goto aga;

}

case 5:{ printf("exit!n");break;}

default:{printf("Error!n"); goto aga;}

}

}

二、线性链表的.存储实现

struct LNODE{

ElemType data;

struct LNODE *next;

};

typedef struct LNODE LNode;

typedef struct LNODE * LinkList;

1 初始化操作

Status Init_L(LinkList L){

if (L=(LinkList *)malloc(sizeof(LNode)))

{L->next=NULL;return 1;}

else return 0;

}

2 插入操作

Status ListInsert_L(LinkList &L,int i,ElemType e){

p=L,j=0;

while(p&&jnext;++j;}

if(!p||j>i-1) return ERROR;

s=(LinkList)malloc(sizeof(LNode));

s->data=e;s->next=p->next;

p->next=s;

return OK;

}//ListInsert_L

3 删除操作

Status ListDelete_L(LinkList &L,int i,ElemType &e){

p=L,j=0;

while(p&&jnext;++j;}

if(!p->next||j>i-1) return ERROR;

q=p->next;p->next=q->next;

e=q->data;free(q);

return OK;

}//ListDelete_L

4 取某序号元素的操作

Status GetElem_L(LinkList &L,int i,ElemType &e){

p=L->next,j=1;

while(p&&jnext;++j;}

if(!p||j>i) return ERROR;

e=p->data;

return OK;

}//GetElem_L

5 归并两个单链表的算法

void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){

//已知单链线性表La 和Lb 的元素按值非递减排列

//归并后得到新的单链线性表Lc,元素也按值非递减排列

pa=La->next;pb=Lb->next;

Lc=pc=La;

while(pa&&pb){

if(pa->data<=pb->data){

pc->next=pa;pc=pa;pa=pa->next;

}else{pc->next=pb;pc=pb;pb=pb->next;}

}

pc->next=pa?pa:pb;

free(Lb);

}//MergeList_L

头指针与头结点的区别:

头指针只相当于结点的指针域,头结点即整个线性链表的第一个结点,它的数据域可以放数据元素,

也可以放线性表的长度等附加信息,也可以不存储任何信息。