描述風(fēng)的作文
中興筆試題目及答案(一)

1、 恢復和并發(fā)控制的基本單位
事務(wù)串行執行:即每個(gè)時(shí)刻只有一個(gè)事務(wù)運行,其他事物必須等到這個(gè)事務(wù)結束以后方能運行。
同時(shí)并發(fā)方式:在多處理系統中,每個(gè)處理機可以運行一個(gè)事務(wù),多個(gè)處理機可以同時(shí)運行多個(gè)事務(wù),實(shí)現多個(gè)事務(wù)真正的并行運行,這種并行方式稱(chēng)為同時(shí)并發(fā)方式。
并發(fā)控制是指在多用戶(hù)的環(huán)境下,對數據庫進(jìn)行并發(fā)操作進(jìn)行規范的機制。其目的是為了避免對數據的丟失修改、讀臟數據與不可重復讀等,從而保證數據的正確性與一致性
大型關(guān)系系統都有比較好的并發(fā)控制功能。例如可以采用更新游標、顯式加鎖、更改事務(wù)隔離級別等等
事務(wù)是數據庫中一個(gè)重要概念,它是一系列要么都做,要么都不做的程序集合,是數據庫并發(fā)控制的單位。
(1):事務(wù)(Transaction)是并發(fā)控制的單位,是用戶(hù)定義的一個(gè)操作序列。這些操作要么都做,要么都不做,是一個(gè)不可分割的工作單位。
(3):事務(wù)運行的三種模式:
A:自動(dòng)提交事務(wù)
每條單獨的語(yǔ)句都是一個(gè)事務(wù)。每個(gè)語(yǔ)句后都隱含一個(gè)COMMIT。
B:顯式事務(wù)
以BEGIN TRANSACTION顯式開(kāi)始,以COMMIT或ROLLBACK顯式結束。
C:隱性事務(wù)
在前一個(gè)事務(wù)完成時(shí),新事務(wù)隱式啟動(dòng),但每個(gè)事務(wù)仍以COMMIT或ROLLBACK顯式結束。
(4):事務(wù)的特性(ACID特性)
A:原子性(Atomicity)
事務(wù)是數據庫的邏輯工作單位,事務(wù)中包括的諸操作要么全做,要么全不做。
B:一致性(Consistency)
事務(wù)執行的結果必須是使數據庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。一致性與原子性是密切相關(guān)的。
C:隔離性(Isolation)
一個(gè)事務(wù)的執行不能被其他事務(wù)干擾。
D:持續性/永久性(Durability)
一個(gè)事務(wù)一旦提交,它對數據庫中數據的改變就應該是永久性的。
注:事務(wù)是恢復和并發(fā)控制的基本單位。
2、 中斷的功能
3、 ISO七層結構
4、 給出個(gè)Ip地址,要劃分9個(gè)子網(wǎng),子頁(yè)掩碼——
5、 數據庫查詢(xún)優(yōu)化問(wèn)題
6、 編寫(xiě)程序:鍵盤(pán)輸入一系列數字(-1結束),輸出到aabb.bat文件中
7、 利用1、2、2、3、4這4個(gè)數字,組合
package list;
import java.util.ArrayList;
public class Test {
public java.util.ArrayList r; /pic/p>
public Test(ArrayList in) { /pic/p>
r = new ArrayList();
if (in.size()==1) /pic/p>
r.add(in.get(0));
String temp="";
for (int i=0;i
ArrayList sub = (ArrayList)in.clone(); /pic/p>
String s = (String)sub.remove(i); /pic/p>
if(s.equalsIgnoreCase(temp))
continue;
temp=s;
Test other = new Test(sub); /pic/p>
for (int j=0;j
r.add(s+(String)other.r.get(j)); /pic/p>
}
}
public static void main(String[] args) {
ArrayList a = new ArrayList();
a.add("1");
a.add("2");
a.add("3");
a.add("4");
Test test = new Test(a);
System.out.println("test.size()==="+test.r.size());
System.out.println("test==="+test.r.toString());
/* for (int i=0;i
if ((i+1)%(a.size()-1)==0)
System.out.println(test.r.get(i).toString());
else
System.out.print(test.r.get(i).toString()+","); */
}
8、 進(jìn)制轉換器
要求:(1)可輸入二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制數;
(2)將已輸入的數轉換成其余進(jìn)制的數;
(3)具有輸入輸出界面
9、 標識符 java
編寫(xiě)一個(gè)程序,檢查字符串是否為合法的Java標識符
使用Character.isJavaIdentifierStart()方法和Character.isJavaIdentifierpart()方法,
class JavaIdentifierTest {
public static boolean isValidJavaIdentifier( String candidate ) {
if ( candidate.length( ) == 0 ||
! Character.isJavaIdentifierStart( candidate.charAt( 0 ) ) )
return false;
String tail = candidate.substring( 1 );
for ( int i = 0; i < tail.length( ); i++ )
if ( ! Character.isJavaIdentifierpart( tail.charAt( i ) ) )
return false;
return true;
}
public static void main( String[ ] args ) {
String[ ] candidates = { "", "9", "36C", "a1", "_pos", "index" };
for ( int i = 0; i < candidates.length; i++ )
System.out.println(
"isValidJavaIdentifier( "" + candidates[ i ] + "" ) --> " +
isValidJavaIdentifier( candidates[ i ] ) );
}
}
10、 C#中的訪(fǎng)問(wèn)修飾符
類(lèi)的每個(gè)成員都有特定類(lèi)型的可訪(fǎng)問(wèn)性。C#中的訪(fǎng)問(wèn)修飾符與Java中的基本對應,但多出了一個(gè)internal。簡(jiǎn)而言之,C#有5種類(lèi)型的可訪(fǎng)問(wèn)性,如下所示:
public:成員可以從任何代碼訪(fǎng)問(wèn)。
protected:成員只能從派生類(lèi)訪(fǎng)問(wèn)。
internal:成員只能從同一程序集的內部訪(fǎng)問(wèn)。
protected internal:成員只能從同一程序集內的派生類(lèi)訪(fǎng)問(wèn)。
private:成員只能在當前類(lèi)的內部訪(fǎng)問(wèn)。
11從一個(gè)或幾個(gè)基本表(或視圖)導出的表,它與基本表不同,是一個(gè)虛表。
數據庫中只存放視圖的定義,而不存放視圖對應的數據,這些數據仍存放在原來(lái)的基本表中。所有基本表中的數據發(fā)生變化,從視圖中查詢(xún)出的數據也隨之改變。
視圖一經(jīng)定義,就可以和基本表一樣被查詢(xún)、刪除,也可以在一個(gè)視圖上再定義新的視圖,但對視圖的更新(增加、修改、刪除)操作則有一定的限制。
中興筆試題目及答案(二)
公共部分(50分)
1:作業(yè)調度程序從處于(B)狀態(tài)的隊列中選擇適當的作業(yè)投入運行。(3分)
A 運行 B 提交 C 完成 D后備
2:SQL語(yǔ)言中,刪除一個(gè)表的命令是(B) (3分)
A CLEAR TABLE B DROP TABLE
C DELETE TABLE D REMOVE TABLE
3:ATM采用的線(xiàn)路復用方式為(C) (3分)
A 頻分多路復用
B 同步時(shí)分多路復用
C 異步時(shí)分多路復用
D 獨占信道
4:數據庫中只存放視圖的(C) (3分)
A操作
B 對應的數據
C 定義
D 限制
5:什么是虛擬設備?為什么在操作系統中引入虛擬設備?(10分)
通過(guò)虛擬技術(shù)將一臺可以獨占設備虛擬成多臺邏輯設備,供多個(gè)用戶(hù)進(jìn)程同時(shí)使用, 通常把這種經(jīng)過(guò)虛擬的設備稱(chēng)為虛擬設備.
在操作系統設備管理中,引入虛擬設備是為了克服獨占設備速度較慢,降低設備資源利用率的缺占,從而提高設備的利用率.
6:TCP為何采用三次握手來(lái)建立連接,若采用二次握手可以嗎,請說(shuō)明原因?(16分)
三次握手是為了防止已失效的連接請求再次傳送到服務(wù)器端。
二次握手不可行,因為:如果由于網(wǎng)絡(luò )不穩定,雖然客戶(hù)端以前發(fā)送的連接請求以到達服務(wù)方,但服務(wù)方的同意連接的應答未能到達客戶(hù)端。則客戶(hù)方要重新發(fā)送連接請求,若采用二次握手,服務(wù)方收到重傳的請求連接后,會(huì )以為是新的請求,就會(huì )發(fā)送同意連接報文,并新開(kāi)進(jìn)程提供服務(wù),這樣會(huì )造成服務(wù)方資源的無(wú)謂浪費。
7:什么是分布式數據庫?(12分)
分布式數據庫系統是在集中式數據庫系統成熟技術(shù)的基礎上發(fā)展起來(lái)的,但不是簡(jiǎn)單地把集中式數據庫分散地實(shí)現,它具有自己的性質(zhì)和特征。集中式數據庫系統的許多概念和技術(shù),如數據獨立性、數據共享和減少冗余度、并發(fā)控制、完整性、安全性和恢復等在分布式數據庫系統中都有了不同的、更加豐富的內容。
(1)數據獨立性。數據獨立性是數據庫方法追求的主要目標之一。在集中式數據庫中,數據獨立性包括兩方面:數據的邏輯獨立性和物理獨立性。其意義在于程序和數據的邏輯結構和數據的存儲結構無(wú)關(guān)。在分布式系統中,數據庫獨立性除了上面所說(shuō)之外,還有數據分布獨立性亦稱(chēng)分布透明性,即用戶(hù)不必關(guān)心數據的邏輯分片,不必關(guān)心數據的物理位置分布的細節,也不必關(guān)心重復副本(冗余數據)的一致性問(wèn)題。有了分布透明性,用戶(hù)的應用程序書(shū)寫(xiě)起來(lái)就如同數據沒(méi)有分布一樣。在集中式數據庫中,數據的獨立性是通過(guò)系統的三級模式和它們之間的二級映象得到的。分布式數據庫,分布透明性是由于引入新的模式和模式之間的映象得到的。
(2)集中與自治相結合的控制結構。數據庫是供用戶(hù)共享的,在集中式數據庫中,為保證數據的安全性和完整性,對數據庫的控制是集中的。由數據庫管理員(DBA)負責監督和維護系統的正常運行。
在分布式數據庫中,數據的共享有兩個(gè)層次:一是局部共享,即在局部場(chǎng)地上存儲局部用戶(hù)的共享數據。二是全局共享,即在分布式數據庫的各個(gè)場(chǎng)地也存儲可供網(wǎng)絡(luò )中其他場(chǎng)地的用戶(hù)共享的數據,支持全局引用。因此,相應的控制結構也具有兩個(gè)層次:集中和自治。各局部的DBMS可以獨立地管理局部數據庫,具有自治的功能。同時(shí),系統又設有集中控制機制,協(xié)調各局部DBMS的工作,執行全局應用。
(3)適當增加數據冗余度。在集中式數據庫中,盡量減少冗余度是系統目標之一。其原因是,冗余數據浪費存儲空間,而且容易造成個(gè)副本之間的不一致性。減少冗余度的目標是用數據共享來(lái)達到的。而在分布式系統中卻希望增加冗余數據,在不同的場(chǎng)地存儲同一數據的多個(gè)副本。其原因是提高系統的可靠性和性能,當某一場(chǎng)地出現故障,系統可以對另一場(chǎng)地上的相同副本進(jìn)行操作,不會(huì )造成系統的癱瘓。系統可以根據距離選擇離用戶(hù)最近的數據副本進(jìn)行操作,減少通信代價(jià)。但是增加冗余會(huì )碰到集中式數據庫同樣的問(wèn)題,即不利于更新,增加了系統維護代價(jià),需要在這些方面作出權衡。
(4)全局的一致性、可串行性和可恢復性。分布式數據庫中各局部數據庫應滿(mǎn)足集中式數據庫的一致性、可串行性和可恢復性。除此以外,還要保證數據庫的全局一致性、可串行性和可恢復性。例如,在前面提到的銀行轉帳事務(wù)中,包括兩個(gè)節點(diǎn)上的更新操作,當其中一個(gè)節點(diǎn)出現故障,應使全局事務(wù)回滾,在一個(gè)節點(diǎn)撤銷(xiāo)已經(jīng)執行的操作等。
C++部分(50分)
1:設有“int w[3][4];”,pw是與數組名w等價(jià)的數組指針,則pw的初始化語(yǔ)句為int (*pw)[4] = w;(3分)
2:要使引用pr代表變量“char *p”,則pr的初始化語(yǔ)句為char * &pr = p;(3分)
3:“零值”可以是0,0.0,FALSE或者“空指針”。例如int變量n與“零值”比較的if語(yǔ)句為:if(n==0),則BOOL flag與“零值”比較的if語(yǔ)句為 if(!a) ;float x與“零值”比較的if語(yǔ)句為:const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON)。(6分)
4:設有如下語(yǔ)句:(C)(3分)
Int x;
*px=0;
則選擇以下哪條語(yǔ)句可將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:請寫(xiě)出如下代碼的運行結果(6分)
int main()
{
int a,b,c,d;
a=0;
b=1;
c=2;
d=3;
printf(“%d”,a+++b+c+++d++);
}
7:寫(xiě)出下面函數的功能(12分)將數組a中的元素(如果為類(lèi)類(lèi)型,調用拷貝賦值算符)逆序放置到數組b中
Template
void WE(Type a[],Type b[],int n)
{
for(int i=0;i<n;i++)< p="">
b[n-i-1]=a[i];
}
8:寫(xiě)一段代碼判斷一個(gè)單向鏈表中是否有環(huán)。(14分)
給出如下結構
struct node
{
struct *next;
};
typedef stuct node Node;
答:
#include
struct listtype
{
int data;
struct listtype * next;
};
typedef struct listtype * list;
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:判斷下列對的是哪個(gè)(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程序執行的入口點(diǎn),關(guān)于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和方法的重寫(xiě)Overriding的區別。Overload的方法是否可以改變返回值的類(lèi)型?(10分)
方法的重寫(xiě)Overriding和重載Overloading是Java多態(tài)性的不同表現。重寫(xiě)Overriding是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現,重載Overloading是一個(gè)類(lèi)中多態(tài)性的一種表現。如果在子類(lèi)中定義某方法與其父類(lèi)有相同的名稱(chēng)和參數,我們說(shuō)該方法被重寫(xiě)(Overriding)。子類(lèi)的對象使用這個(gè)方法時(shí),將調用子類(lèi)中的定義,對它而言,父類(lèi)中的定義如同被“屏蔽”了。如果在一個(gè)類(lèi)中定義了多個(gè)同名的方法,它們或有不同的參數個(gè)數或有不同的參數類(lèi)型,則稱(chēng)為方法的重載(Overloading)。 Overloaded的方法是可以改變返回值的類(lèi)型。
7:談?wù)凥ashMap和Hashtable的區別(6分)
答:
1.Hashtable是Dictionary的子類(lèi),HashMap是Map接口的一個(gè)實(shí)現類(lèi);
2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的。即是說(shuō),在多線(xiàn)程應用程序中,不用專(zhuān)門(mén)的操作就安全地可以使用Hashtable了;而對于HashMap,則需要額外的同步機制。但HashMap的同步問(wèn)題可通過(guò)Collections的一個(gè)靜態(tài)方法得到解決:
Map Collections.synchronizedMap(Map m)
這個(gè)方法返回一個(gè)同步的Map,這個(gè)Map封裝了底層的HashMap的所有方法,使得底層的HashMap即使是在多線(xiàn)程的環(huán)境中也是安全的。
3. 在HashMap中,null可以作為鍵,這樣的鍵只有一個(gè);可以有一個(gè)或多個(gè)鍵所對應的值為null。當get()方法返回null值時(shí),即可以表示 HashMap中沒(méi)有該鍵,也可以表示該鍵所對應的值為null。因此,在HashMap中不能由get()方法來(lái)判斷HashMap中是否存在某個(gè)鍵,而應該用containsKey()方法來(lái)判斷。
4.其底層的實(shí)現機制不同,hashmap的訪(fǎng)問(wèn)速度要快于hashtable,因為它不需要進(jìn)行同步檢驗,建議在非多線(xiàn)程環(huán)境中使用hashmap代替hashtable .
8:構造一個(gè)類(lèi)來(lái)描述屏幕上的一個(gè)點(diǎn),該類(lèi)的構成包括點(diǎn)x和y兩個(gè)坐標,以及一些對點(diǎn)進(jìn)行的操作,包括:取得點(diǎn)的坐標值,對點(diǎn)的坐標進(jìn)行賦值,編寫(xiě)應用程序生成該類(lèi)的對象并對其進(jìn)行操作。(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. 假設執行語(yǔ)句S的時(shí)間為O(1),則執行下列程序短的時(shí)間為(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]采用行序為主序方式存儲,每個(gè)數據元素占4個(gè)存儲單元,且A[10][5]的存儲地址是1000,則A[18][9]的地址是(A)
A. 1208
B. 1212
C. 1368
D. 1364
3. 設棧最大長(cháng)度為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個(gè)已排序列元素,采用二分法查找時(shí),最大比較次數是(D)
A. 49
B. 15
C. 20
D. 7
5. Hash表示用于數據存儲的一種有效的數據結構,Hash表等查找復雜度依賴(lài)于Hash值算法的有效性,在最好的情況下,Hash表的查找復雜度為(A)
A. O(1)
B. O(logn)
C. O(n)
D. O(nlogn)
【描述風(fēng)的作文】相關(guān)文章:
描述冬天的作文12-03
描述春雨的作文09-14
描述未來(lái)的作文08-08
描述橋的作文12-07
西瓜作文描述11-10
描述秋季作文11-11
描述父親的作文01-15
描述夏天的作文01-04
描述秋天的作文12-09
(經(jīng)典)描述春雨的作文11-16
- 相關(guān)推薦