- 相關推薦
中興筆試+面試題目(1)
1>某人在某個市場某個商家買了某臺電腦,請用你熟悉的計算機語言表達出里面的關系.
其中有商家類,買家類,商品類。還要有買方法,賣方法。
2>一個完整的單例模式
3>曹操南下攻打劉備,劉備派關羽守錦州,關羽派張飛去守城門。劉備又派諸葛亮去向孫權求援。孫權派兵攻打曹操!
請畫出UML圖
2006年12月中興在我們學校的筆試,最后的大題
(其實這些大公司的筆試不難,也不就是如此,只要學一下數據結構就可以搞定!)
排序及查找方法
#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;ifor(j=i+1;jif(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;iscanf("%d",&array);
}
void print(int array[])
{int i;
printf("The numbers after sort is:\n");
for(i=1;iprintf("%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);
sort(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);
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
頭指針與頭結點的區別:
頭指針只相當于結點的指針域,頭結點即整個線性鏈表的第一個結點,它的數據域可以放數據元素,也可以放線性表的長度等附加信息,也可以不存儲任何信息。
第一部分 數據結構和算法
1. 假設執行語句S的時間為O(1),則執行下列程序短的時間為()
for(i=1;i<=n;i++)
for(j=I;j<=n;j++)
S;
A. O(n) B. O(n2) C. O(n*i) D. O(n+1)
2. 二位數組A[10…20,5…10]采用行序為主序方式存儲,每個數據元素占4個存儲單元,且A[10][5]的存儲地址是1000,則A[18][9]的地址是()
A. 1208 B. 1212 C. 1368 D. 1364
3. 設棧最大長度為3,入棧序列為1,2,3,4,5,6,則不可能得出棧序列是() A. 1,2,3,4,5,6 B. 2,1,3,4,5,6 C. 3,4,2,1,5,6 D. 4,3,2,1,5,6 4. 設有98個已排序列元素,采用二分法查
似乎不難,可我還沒找到。
頭幾天參加了中興的筆試,做的不好,勉強是個合格,就這么黃了。
依稀記得幾道題,公共題50分,C++和JAVA二選一50分。 其實一直就在用C,一看沒有C心里還霍霍的,我當然選的C++。
我做的C卷:
公共題:
1、數據庫中 XXX 和XXX操作可恢復數據庫。undo redo 吧?
2、數據庫的核心是XX。
3、頭文件中<> 和“”的區別?
4、定義一個宏,輸入兩個參數,輸出積。
3、簡述電路交換和分組交換的區別及優缺點。
4、
C++
都記不太清了,過去快2個星期了!
大約4個選擇題,一個6分。數組的操作,在內存中的分配(注意下標從0開始),大題:
1、18分的題:
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
請問運行Test 函數會有什么樣的結果?
答:可能是亂碼。
因為GetMemory 返回的是指向“棧內存”
的指針,該指針的地址不是 NULL,但其原
現的內容已經被清除,新內容不可知。
還有一個比較簡單,不寫了。
2、析構函數什么時候運行,實現什么功能?
7、全局變量和局部變量的區別。
仔細看看林銳的《高質量程序指南》基本不會有大問題。可惜啊,大意了...鄙視中
1.對數據庫的一張表進行操作,同時要對另一張表進行操作,如何實現??
答案:將操作多個表的操作放入到事務中進行處理
2.TCp/Ip 建立連接的過程?(3-way shake)
答案: 在TCp/Ip協議中,TCp協議提供可靠的連接服務,采用三次握手建立一個連接。
第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。
3.ICMp是什么協議,處于哪一層?
答案:Internet控制報文協議,處于網絡層(Ip層)
4.觸發器怎么工作的?
答案:觸發器主要是通過事件進行觸發而被執行的,當對某一表進行諸如UpDATE、 INSERT、 DELETE 這些操作時,數據庫就會自動執行觸發器所定義的SQL 語句,從而確保對數據的處理必須符合由這些SQL 語句所定義的規則。
5.winsock建立連接的主要實現步驟?
答案:服務器端:socker()建立套接字,綁定(bind)并監聽(listen),用accept()等待客戶端連接。客戶端:socker()建立套接字,連接(connect)服務器,連接上后使用send()和recv(),在套接字上寫讀數據,直至數據交換完畢,closesocket()關閉套接字。
服務器端:accept()發現有客戶端連接,建立一個新的套接字,自身重新開始等待連接。該新產生的套接字使用send()和recv()寫讀數據,直至數據交換完畢,closesocket()關閉套接字。
6.動態連接庫的兩種方式?
答案:調用一個DLL中的函數有兩種方法:
1.載入時動態鏈接(load-time dynamic linking),模塊非常明確調用某個導出函數,使得他們就像本地函數一樣。這需要鏈接時鏈接那些函數所在DLL的導入庫,導入庫向系統提供了載入DLL時所需的信息及DLL函數定位。
2.運行時動態鏈接(run-time dynamic linking),運行時可以通過LoadLibrary或LoadLibraryEx函數載入DLL。DLL載入后,模塊可以通過調用GetprocAddress獲
【中興筆試+面試題目(1)】相關文章:
面試時的筆試題目07-11
中興校園招聘筆試的問題?07-12
諾基亞 筆試的 題目07-12
華為筆試題目07-11
華為C筆試題目07-11
華為硬件筆試題目08-11
運營類筆試題目07-10
某公司(華為)的筆試題目,關于Flex和Java高工的筆試題目07-11
學生會的筆試題目08-04
怎樣筆試、面試07-11