中興筆試題-2

http://blog.sina.com.cn/s/blog_684bb6fb0100jtua.html

 

中興軟件筆試題


公共部分(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<class Type>
Void WE(Type a[],Type b[],int n)
{
for(int i=0;i<n;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:Math.round(11.5)=_______
Math.round(-11.5)=_______(4 分)

5:假設x=10,y=20,z=30;計算下列表達式的值(6 分)
A x<10||x>10__________
B !(x<y+z)||(x+10<=20)___________
C z-y==x&&Math.abs(y-z)!=x_____________

6:方法重建Overload 和方法的重寫Overriding 的區別。Overload 的方法是否可以改變返回值
的類型?(10 分)

7:談談HashMap 和Hashtable 的區別(6 分)

8:構造一個類來描述屏幕上的一個點,該類的構成包括點x 和y 兩個座標,以及一些對點進行
的操作,包括:取得點的座標值,對點的座標進行賦值,編寫應用程序生成該類的對象並對其進行
操作。(15 分)

數據結構
(其實這些大公司的筆試不難,也不就是如此,只要學一下數據結構就可以搞定!)
排序及查找方法
#include <malloc.h>
#include<stdio.h>
#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<array[mid]) j=mid-1;
else i=mid+1;
}
return(0);
}

void mpsort(int array[])
{int i,j,a;
a=0;
for(i=1;i<N;i++)
for(j=i+1;j<N;j++)
if(array>array[j])
{a=array;
array=array[j];
array[j]=a;}
}

void insertsort(int array[])
{int i,j;
for(i=2;i<N;i++)
{array[0]=array;
j=i-1;
while(array[0]<array[j])
{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<N;i++)
scanf("%d",&array);
}

void print(int array[])
{int i;
printf("The numbers after sort is:/n");
for(i=1;i<N;i++)
printf("%d ",array);
printf("/n");
}
main()
{int a[11],i,x,chang;

aga:
printf("/nchang:1: use watching method finding/n 2:use half method finding/n 3: use
directness intsert method sort/n 4:use bubble up method sort/n 5:exit/n");
scanf("%d",&chang);
switch (chang)
{case 1:
{creat(a);
printf("Please int the search number:/n");
scanf("%d",&x);
printf("The number station is:%d/n",search(a,N,x));
goto aga;
}
case 2:
{ creat(a);
insertsort(a);
print(a);
printf("Please int the search number:/n");
scanf("%d",&x);
printf("The number station is:%d/n",halfsearch(a,N,x));
goto aga;
}
case 3:
{creat(a);
insertsort(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&&j<i-1){p=p->next;++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&&j<i-1){p=p->next;++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&&j<i){p=p->next;++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
頭指針與頭結點的區別:
頭指針只相當於結點的指針域,頭結點即整個線性鏈表的第一個結點,它的數據域可以放數據元素,
也可以放線性表的長度等附加信息,也可以不存儲任何信息。

發佈了62 篇原創文章 · 獲贊 10 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章