中兴笔试题目
公共部分(50分)
1:作業調度程序從處于(B)狀態的隊列中選擇適當的作業的作業投入運行。(3分)
A 運行 B 提交 C 完成 D后備
2:SQL語言中,刪除一個表的命令是(B)(3分)
A CLEAR TABLE B DROP TABLE
C DELETE TABLE D REMOVE TABLE
3:ATM采用的線路復用方式為(C)(3分)
A 頻分多路復用
B 同步時分多路復用
C 異步時分多路復用
D 獨占信道
4:數據庫中只存放視圖的(C)(3分)
A操作
B 對應的數據
C 定義
D 限制
5:什么是虛擬設備?為什么在操作系統中引入虛擬設備?(10分)
??? SPOOLing是Simultaneous Peripheral Operation On-Line (即外部設備聯機并行操作)的縮寫,它是關于慢速字符設備如何與計算機主機交換信息的一種技術,通常稱為“假脫機技術”。
6:TCP為何采用三次握手來建立連接,若采用二次握手可以嗎,請說明原因?(16分)
??? 三次握手是為了防止已失效的連接請求再次傳送到服務器端。
??? 二次握手不可行,因為:如果由于網絡不穩定,雖然客戶端以前發送的連接請求以到達服務方,但服務方的同意連接的應答未能到達客戶端。則客戶方要重新發送連接請求,若采用二次握手,服務方收到重傳的請求連接后,會以為是新的請求,就會發送同意連接報文,并新開進程提供服務,這樣會造成服務方資源的無謂浪費。
7:什么是分布式數據庫?(12分)
??? 分布式數據庫系統是在集中式數據庫系統成熟技術的基礎上發展起來的,但不是簡單地把集中式數據庫分散地實現,它具有自己的性質和特征。集中式數據庫系統的許多概念和技術,如數據獨立性、數據共享和減少冗余度、并發控制、完整性、安全性和恢復等在分布式數據庫系統中都有了不同的、更加豐富的內容。
(1)數據獨立性。數據獨立性是數據庫方法追求的主要目標之一。在集中式數據庫中,數據獨立性包括兩方面:數據的邏輯獨立性和物理獨立性。其意義在于程序和數據的邏輯結構和數據的存儲結構無關。在分布式系統中,數據庫獨立性除了上面所說之外,還有數據分布獨立性亦稱分布透明性,即用戶不必關心數據的邏輯分片,不必關心數據的物理位置分布的細節,也不必關心重復副本(冗余數據)的一致性問題。有了分布透明性,用戶的應用程序書寫起來就如同數據沒有分布一樣。在集中式數據庫中,數據的獨立性是通過系統的三級模式和它們之間的二級映象得到的。分布式數據庫,分布透明性是由于引入新的模式和模式之間的映象得到的。
(2)集中與自治相結合的控制結構。數據庫是供用戶共享的,在集中式數據庫中,為保證數據的安全性和完整性,對數據庫的控制是集中的。由數據庫管理員(DBA)負責監督和維護系統的正常運行。
在分布式數據庫中,數據的共享有兩個層次:一是局部共享,即在局部場地上存儲局部用戶的共享數據。二是全局共享,即在分布式數據庫的各個場地也存儲可供網絡中其他場地的用戶共享的數據,支持全局引用。因此,相應的控制結構也具有兩個層次:集中和自治。各局部的DBMS可以獨立地管理局部數據庫,具有自治的功能。同時,系統又設有集中控制機制,協調各局部DBMS的工作,執行全局應用。
(3)適當增加數據冗余度。在集中式數據庫中,盡量減少冗余度是系統目標之一。其原因是,冗余數據浪費存儲空間,而且容易造成個副本之間的不一致性。減少冗余度的目標是用數據共享來達到的。而在分布式系統中卻希望增加冗余數據,在不同的場地存儲同一數據的多個副本。其原因是提高系統的可靠性和性能,當某一場地出現故障,系統可以對另一場地上的相同副本進行操作,不會造成系統的癱瘓。系統可以根據距離選擇離用戶最近的數據副本進行操作,減少通信代價。但是增加冗余會碰到集中式數據庫同樣的問題,即不利于更新,增加了系統維護代價,需要在這些方面作出權衡。
(4)全局的一致性、可串行性和可恢復性。分布式數據庫中各局部數據庫應滿足集中式數據庫的一致性、可串行性和可恢復性。除此以外,還要保證數據庫的全局一致性、可串行性和可恢復性。例如,在前面提到的銀行轉帳事務中,包括兩個節點上的更新操作,當其中一個節點出現故障,應使全局事務回滾,在一個節點撤銷已經執行的操作等。
C++部分(50分)
1:設有“int w[3][4];”,pw是與數組名w等價的數組指針,則pw的初始化語句為int (*pw)[4] = w;(3分)
2:要使引用pr代表變量“char *p”,則pr的初始化語句為char * &pr = p;(3分)
3:“零值”可以是0,0.0,FALSE或者“空指針”。例如int變量n與“零值”比較的if語句為:if(n==0),則BOOL flag與“零值”比較的if語句為 if(!a) ;float x與“零值”比較的if語句為:const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON)。(6分)
4:設有如下語句:(3分)
Int x;
(C)
*px=0;
則選擇以下哪條語句可將x值置為0。
A int *px; B int const *px=&x;
C int *const px=&x; D const int *px=&x;
5:設void f1(int *m,long &n);int a;long b;則以下調用合法的是(B)(3分)
A f1(a,b) B f1(&a,b)
C f1(a,&b) D f1(&a,&b)
6:請寫出如下代碼的運行結果(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分)將數組a中的元素(如果為類類型,調用拷貝賦值算符)逆序放置到數組b中
Template<class Type>
void WE(Type a[],Type b[],int n){
for(int i=0;i<n;i++) b[n-i-1]=a[i];}
??? 8寫一段代碼判斷一個單向鏈表中是否有環。(14分)
給出如下結構
Struct node
{steuct *next;
};
Typedef stuct node Node;
答:
#include <stddef.h>
struct listtype
{
??? int data;
??? struct listtype * next;
};
typedef struct listtype * list;
/* Check that whether there is loop in the singly linked list sll or not. */
int find_circle(list sll)
{
??? list fast = sll;
??? list slow = sll;
??? if (NULL == fast)
??? {
??????? return -1;
??? }
??? while (fast && fast->next)
??? {
??????? fast = fast->next->next;
??????? slow = slow->next;
??????? if (fast == slow)
??????? {
??????????? return 1;
??????? }
??? }
??? return 0;
}
JAVA部分(50分)
1:判斷下列對的是哪個(B)(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方法的方法頭以下哪項是合法的(C)(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的值是(A)(3分)
A 3.5 B 3
C 4 D 5
4:Math.round(11.5)=12
Math.round(-11.5)=-11(4分)
5:假設x=10,y=20,z=30;計算下列表達式的值(6分)
A x<10||x>10_________false
B !(x<=20)___________false
C z-y==x&&Math.abs(y-z)!=x_____________false
6:方法重建Overload和方法的重寫Overriding的區別。Overload的方法是否可以改變返回值的類型?(10分)
??? 方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。 Overloaded的方法是可以改變返回值的類型。
7:談談HashMap和Hashtable的區別(6分)
答:1.Hashtable是Dictionary的子類,HashMap是Map接口的一個實現類;
2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的。即是說,在多線程應用程序中,不用專門的操作就安全地可以使用Hashtable了;而對于HashMap,則需要額外的同步機制。但HashMap的同步問題可通過Collections的一個靜態方法得到解決:
Map Collections.synchronizedMap(Map m)
這個方法返回一個同步的Map,這個Map封裝了底層的HashMap的所有方法,使得底層的HashMap即使是在多線程的環境中也是安全的。
3. 在HashMap中,null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null。當get()方法返回null值時,即可以表示 HashMap中沒有該鍵,也可以表示該鍵所對應的值為null。因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵,而應該用containsKey()方法來判斷。
4.其底層的實現機制不同,hashmap的訪問速度要快于hashtable,因為它不需要進行同步檢驗,建議在非多線程環境中使用hashmap代替hashtable .
8:構造一個類來描述屏幕上的一個點,該類的構成包括點x和y兩個坐標,以及一些對點進行的操作,包括:取得點的坐標值,對點的坐標進行賦值,編寫應用程序生成該類的對象并對其進行操作。(15分)
class Point{???
??? private int x;
??? private int y;
??? public int getX() {
??????? return x;
??? }
??? public int getY() {
??????? return y;
??? }
??? public void setX(int x) {
??????? this.x = x;
??? }
??? public void setY(int y) {
??????? this.y = y;
??? }
}
數據結構和算法
?
1.?????? 假設執行語句S的時間為O(1),則執行下列程序短的時間為(B)
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)
A.??????? 1208
B.??????? 1212
C.??????? 1368
D.?????? 1364
3.?????? 設棧最大長度為3,入棧序列為1,2,3,4,5,6,則不可能得出棧序列是(D)
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個已排序列元素,采用二分法查找時,最大比較次數是(D)
A.??????? 49
B.??????? 15
C.??????? 20
D.?????? 7
5.?????? Hash表示用于數據存儲的一種有效的數據結構,Hash表等查找復雜度依賴于Hash值算法的有效性,在最好的情況下,Hash表的查找復雜度為(A)
A.??????? O(1)
B.??????? O(logn)
C.??????? O(n)
D.?????? O(nlogn)
第二部分??? 軟件工程
1.??? 軟件能力成熟度模型CMM共分為(C)成熟度等級
A.??? 3
B.??? 4
C.??? 5
D.??? 6
2.??? 按照是否了解軟件的內部構造,可以將測試分為黑盒測試和白盒測試。考慮以下算法的PDL語句,如果要對其進行完全路徑覆蓋的白盒測試,則需要()條路徑。
do ehile records remain
?????? read record;
?????? if record field 1 = 0
????????????? then process record;
???????????????????? store in buffer;
???????????????????? increment counter;
????????????? elseif record field 2 = 0
???????????????????? then reset counter;
???????????????????? else process record;
???????????????????? store in file;
????????????? endif
?????? endif
enddo
A.??? 4
B.??? 5
C.??? 6
D.??? 7
3.??? 按照瀑布模型的階段劃分,軟件測試可以分為單元測試,集成測試,系統測試。請問以下那項測試不屬于系統測試的內容()
A.??? 壓力測試
B.??? 接口測試
C.??? 功能測試
D.??? 安全測試
E.??? 性能測試
4.??? 測試用例的設計是測試的重要階段。系統測試用例設計應該從什么時候開始()
A.??? 需求完成
B.??? 詳細設計完成
C.??? 編碼完成
D.??? 系統集成完畢,提交系統測試
5.??? 在UML方法中,使用多種類型的圖形來幫助進行設計,請問一下那些圖形不是UML的圖形類型(B)
A.??? 類圖
B.??? 實體關系圖
C.??? 序列圖
D.??? 活動圖
第三部分??? Java語言及其他
1.??? 下面哪個是short型的取值范圍:(C)
A.??? -27--- 27-1
B.??? 0 --- 216-1
C.??? -215--- 215-1
D.??? -231---231-1
2.??? 下面哪項是不合法的標識符:(C)
A.??? $persons
B.??? TwoUsers
C.??? *point
D.??? _endline
3.??? 設 float x = 1,y = 2,z = 3,則表達式 y+=z--/++x 的值是(A)
A.??? 3.5
B.??? 3
C.??? 4
D.??? 5
4.??? 下列哪些關鍵字即能夠被用于局部變量的修飾,也可以用做類變量的修飾()
A.??? public
B.??? transient
C.??? static
D.??? finally
5.??? 以下的語句構造了幾個JAVA對象?(B)
?????? String S = new String(“aaa”);
A.??? 1
B.??? 2
C.??? 3
6.??? 下面的哪些敘述為真(C)
A.??? equals()方法判定引用值是否指向同一對象
B.??? = = 操作符判定兩個不同的對象的內容和類型是否一致
C.??? equal() 方法只有在兩個對象的內容一致時返回ture
D.??? 類File重寫方法equals()在兩個不同的對象的內容和類型一致時返回ture
7.??? 如果一個對象僅僅聲明實現了cloneable接口,但是不聲明clone方法,外部能夠調用其clone方法嗎?(A)
A.??? 能
B.??? 不能
C.??? 不確定
8.??? 考慮在C/S結構下,服務器接受并處理請求,那么關于服務器處理請求的模式,哪些描述是錯誤的()
A.??? 單線程模式下,服務器使用一個線程順序的處理所有的請求,可能導致阻塞
B.??? 服務器可以為每一個請求創建一個線程來處理該請求,這樣做比單線程模式更加穩定
C.??? 線程池模式下,當線程使用達到最大數量限制之后,線程池中沒用可用線程的時候,服務器將阻塞或者拒絕某個請求的處理
9.??? 使用Swing做界面的時候,如果把一個JButton放在一個JFrame中,在JFrame改變時只影響JButton的高度而寬度不受影響,應該使用哪個布局管理器?(D)
A.??? FlowLayout
B.??? CardLayout
C.??? North and South of BorderLayout
D.??? East and West of BorderLayout
E.??? GridLayout
10.?? 以下的那個狀態是SessionBean所具有,而StatelessBean不具有的(D)
A.??? 池態
B.??? 就緒態
C.??? 不存在態
D.??? 鈍化態
11.?? 以下關于數據庫范式的描述,哪些是錯誤的(B)
A.??? 如果把多個數據項用一個大的String表示為一個字段,則不滿足第一范式
B.??? 滿足數據庫范式使得數據庫的效率更高
C.??? 如果滿足更高的范式,則必須首先滿足低級別的范式
D.??? 數據庫第二范式要求把表中與所有鍵沒有直接關系的數據全部拆分到其他表中
12.?? 考慮一下需求:包括學生、課程和教師的信息。其中學生的信息包括學生姓名、年齡地址等;課程信息包括課程號、課程名、課程學分等;教師信息包括教師的姓名、教師的地址等。一個學生可以選修多門課,而每門課也能有多個學生選修;一位教師可以教多門課,每門課也可以由多個教師講授。請問如果使用關系數據庫,并且達到第二范式的要求,需要設計(C)張表
A.??? 3
B.??? 4
C.??? 5
D.??? 6
13.?? 為了加快數據庫查找的速度,需要對數據表添加索引,請問以下關于索引的描述,哪些是錯誤的(D)
A.??? 聚類索引中,表中行的物理次序與索引鍵值的邏輯順序相同
B.??? 使用索引會使得數據更新的效率降低
C.??? 在大多數數據庫系統中,每張表只能夠有一個聚類索引
D.??? 考慮這個SQL語句:Select S.name,S.age from Student S where S.address=”成都”,如果我們對表Student建一個復合索引(age,address),可以改善上述查詢的效率。
第四部分??? 問答題
1.??? 簡述一個Linux驅動程序的主要流程與功能。
2.??? 請列舉一個軟件中時間換空間或者空間換時間的例子。
????? 數組成倍增長(空間換時間)。
?
3.??? 簡述進程與線程的區別。
多線程共存于應用程序中是現代操作系統中的基本特征和重要標志。用過UNIX操作系統的讀者知道進程,在UNIX操作系統中,每個應用程序的執行都在操作系統內核中登記一個進程標志,操作系統根據分配的標志對應用程序的執行進行調度和系統資源分配,但進程和線程有什么區別呢?
進程和線程都是由操作系統所體會的程序運行的基本單元,系統利用該基本單元實現系統對應用的并發性。進程和線程的區別在于:
線程的劃分尺度小于進程,使得多線程程序的并發性搞。
另外,進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大地提高了程序的運行效率。
線程在執行過程中與進程還是有區別的。每個獨立的線程有一個程序運行的入口、順序執行序列和程序的出口。但是線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。
從邏輯角度來看,多線程的意義在于一個應用程序中,有多個執行部分可以同時執行。但操作系統并沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和線程的重要區別。
進程(Process)是最初定義在Unix等多用戶、多任務操作系統環境下用于表示應用程序在內存環境中基本執行單元的概念。以Unix操作系統為例,進程是Unix操作系統環境中的基本成分、是系統資源分配的基本單位。Unix操作系統中完成的幾乎所有用戶管理和資源分配等工作都是通過操作系統對應用程序進程的控制來實現的。
C、C++、Java等語言編寫的源程序經相應的編譯器編譯成可執行文件后,提交給計算機處理器運行。這時,處在可執行狀態中的應用程序稱為進程。從用戶角度來看,進程是應用程序的一個執行過程。從操作系統核心角度來看,進程代表的是操作系統分配的內存、CPU 時間片等資源的基本單位,是為正在運行的程序提供的運行環境。進程與應用程序的區別在于應用程序作為一個靜態文件存儲在計算機系統的硬盤等存儲空間中,而進程則是處于動態條件下由操作系統維護的系統資源管理實體。多任務環境下應用程序進程的主要特點包括:
●進程在執行過程中有內存單元的初始入口點,并且進程存活過程中始終擁有獨立的內存地址空間;
●進程的生存期狀態包括創建、就緒、運行、阻塞和死亡等類型;
●從應用程序進程在執行過程中向CPU發出的運行指令形式不同,可以將進程的狀態分為用戶態和核心態。處于用戶態下的進程執行的是應用程序指令、處于核心態下的應用程序進程執行的是操作系統指令。
在Unix操作系統啟動過程中,系統自動創建swapper、init等系統進程,用于管理內存資源以及對用戶進程進行調度等。在Unix環境下無論是由操作系統創建的進程還要由應用程序執行創建的進程,均擁有唯一的進程標識(PID)。
?
4.??? static有什么用途?(請至少說明兩種)
??? static關鍵字是C,?? C++中都存在的關鍵字,?? 它主要有三種使用方式,?? 其中前兩種只指在C語言中使用,?? 第三種在C++中使用(C,C++中具體細微操作不盡相同,?? 本文以C++為準).? from http://topic.csdn.net/t/20060414/11/4686455.html
? (1)局部靜態變量?
? (2)外部靜態變量/函數?
? (3)靜態數據成員/成員函數??
?
5.??? 頭文件中的ifndef/define/endif做什么用?條件編譯
6.??? 請問一下程序將輸出什么結果?亂碼
char *RetMenory(void)
{
?????? char p[] = “hellow world”;
?????? return p;
}
void Test(void)
{
?????? char *str = NULL;
?????? str = RetMemory();
?????? printf(str);
}
7.??? 引用與指針有什么區別?
8.??? 描述實時系統的基本特性
9.??? 全局變量和局部變量在內存中是否有區別?如果有,是什么區別?
10.?? 什么是平衡二叉樹?
11.?? 堆棧溢出一般是由什么原因導致的?
? 遞歸調用深度過深(棧)
?
12.?? 什么函數不能聲明為虛函數?
? 一個類中將所有的成員函數都盡可能地設置為虛函數總是有益的。?
? 設置虛函數須注意:?
? 1:只有類的成員函數才能說明為虛函數;?
? 2:靜態成員函數不能是虛函數;?
? 3:內聯函數不能為虛函數;?
? 4:構造函數不能是虛函數;?
? 5:析構函數可以是虛函數,而且通常聲明為虛函數。
?
13.?? 冒泡排序算法的時間復雜度是什么?
? n*n
?
14.?? #include <filename.h> 和 #include “filename.h” 有什么區別?
??? 用 #include <filename.h> 格式來引用標準庫的頭文件(編譯器將從標準庫目錄開始搜索)。
??? 用 #include “filename.h” 格式來引用非標準庫的頭文件(編譯器將從用戶的工作目錄開始搜索)。
?
15.?? 寫出float x 與“零值”比較的if語句。
??? const float EPSINON = 0.00001;
??? if ((x >= - EPSINON) && (x <= EPSINON)
16.?? 操作系統中進程調度策略有哪幾種?
??? 先來先服務 短作業優先 高優先權優先 時間片輪轉
?
17.?? Internet采用哪種網絡協議?該協議的主要層次結構?
??? TCP/IP
?
18.?? Internet物理地址和IP地址轉換采用什么協議?
??? ARP RARP
?
19.?? IP地址的編碼分為哪倆部分?
??? 網絡號 主機號?
轉載于:https://www.cnblogs.com/encounter/archive/2007/11/13/2189222.html
總結
- 上一篇: qq网名2017最新版女生
- 下一篇: 开个普通花店需要投资多少,有哪些要注意的