糯米文學吧

位置:首頁 > IT認證 > 計算機等級

2016年計算機筆試考試題及答案

2016年計算機等級考試就要開始了,同學們複習好了嗎?下面yjbys小編為大家準備的是關於網絡筆試的考試題及答案,希望能幫助大家順利通過考試!

2016年計算機筆試考試題及答案

  【字符串】

1、輸入一個字符串,打印出該字符串中字符的所有排列。

例如輸入字符串abc,則輸出由字符a、b、c所能排列出來的所有字符串abc、acb、bac、bca、cab和cba。

2、有一個由大小寫組成的字符串,現在需要對他進行修改,將其中的所有小寫字母排在大寫字母的前面

(大寫或小寫字母之間不要求保持原來次序),如有可能儘量選擇時間和空間效率高的算法。

c語言函數原型void proc(char *str),也可以採用你自己熟悉的語言。

3、編寫反轉字符串的程序,要求優化速度、優化空間。

4、用C語言實現函數void * memmove(void *dest, const void *src, size_t n)。

memmove函數的功能是拷貝src所指的內存內容前n個字節到dest所指的地址上。

分析:由於可以把任何類型的指針賦給void類型的指針,這個函數主要是實現各種數據類型的拷貝。

5、編程找出兩個字符串中最大公共子字符串,如"abccade", "dgcadde"的最大子串為"cad"。

6、輸入一個字符串,輸出該字符串中對稱的子字符串的最大長度。

比如輸入字符串"google",由於該字符串裏最長的對稱子字符串是"goog",因此輸出4。

7、字符串原地壓縮。題目描述:“eeeeeaaaff" 壓縮為 "e5a3f2",請編程實現。

8、請以回溯與不回溯算法實現字符串匹配。

9、輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。句子中單詞以空格符隔開。

為簡單起見,標點符號和普通字母一樣處理。

例如:輸入"I am a student.",則輸出"student. a am I"。

10、在一個字符串中找到第一個只出現一次的字符。如輸入abaccdeff,則輸出b。

11、寫一個函數,它的原形是int continumax(char *outputstr,char *intputstr)

功能:

在字符串中找出連續最長的數字串,並把這個串的長度返回,並把這個最長數字串付給其中一個函數參數outputstr所指內存。

例如:"abcd12345ed125ss123456789"的首地址傳給intputstr後,函數將返回9,outputstr所指的值為123456789。

12、定義字符串的左旋轉操作:把字符串前面的若干個字符移動到字符串的尾部。

如:把字符串abcdef左旋轉2位得到字符串cdefab。請實現字符串左旋轉的函數。

要求時間對長度為n的字符串操作的複雜度為O(n),輔助內存為O(1)。

13、有n個長為m+1的字符串,如果某個字符串的最後m個字符與某個字符串的前m個字符匹配,則兩個字符串可以聯接。

問這n個字符串最多可以連成一個多長的字符串,如果出現循環,則返回錯誤。

14、如果字符串一的所有字符按其在字符串中的順序出現在另外一個字符串二中,則字符串一稱之為字符串二的子串。

注意,並不要求子串(字符串一)的字符必須連續出現在字符串二中。

請編寫一個函數,輸入兩個字符串,求它們的最長公共子串,並打印出最長公共子串。

例如:輸入兩個字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它們的最長公共子串,

則輸出它們的長度4,並打印任意一個子串。

分析:求最長公共子串(Longest Common Subsequence, LCS)是一道非常經典的動態規劃題。

15、輸入兩個字符串,從第一字符串中刪除第二個字符串中所有的字符。

例如,輸入"They are students."和"aeiou",則刪除之後的第一個字符串變成"Thy r stdnts."。

16、一個文件,內含一千萬行字符串,每個字符串在1K以內,要求找出所有相反的串對,如abc和cba。

17、給出一個函數來複制兩個字符串A和B。字符串A的後幾個字節和字符串B的前幾個字節重疊。

18、已知一個字符串,比如asderwsde,尋找其中的一個子字符串比如sde的個數,如果沒有返回0,有的話返回子字符串的個數。

19、求最大連續遞增數字串(如"ads3sl456789DF3456ld345AA"中的"456789")。

20、實現strstr功能,即在父串中尋找子串首次出現的位置。

21、編碼完成下面的處理函數。

函數將字符串中的字符'*'移到串的前部分,前面的非'*'字符後移,但不能改變非'*'字符的先後順序,函數返回串中字符'*'的數量。

如原始串為:ab**cd**e*12,處理後為*****abcde12,函數並返回值為5。(要求使用盡量少的時間和輔助空間)

22、刪除字符串中的數字並壓縮字符串。如字符串”abc123de4fg56”處理後變為”abcdefg”。注意空間和效率。

23、求兩個串中的第一個最長子串(神州數碼以前試題)。如"abractyeyt","dgdsaeactyey"的最大子串為"actyet"。

  【棧、鏈表、樹、圖】

1、編寫一個程序,把一個有序整數數組放到二叉樹中。

2、編程實現從頂部開始逐層打印二叉樹節點數據。[參考]

3、編程實現單鏈表逆轉。

4、設計一個算法,找出二叉樹上任意兩個結點的最近共同父結點。複雜度不能為O(n2)。

5、二叉排序樹中,令f = (最大值+最小值) / 2,設計一個算法,找出距離f值最近、大於f值的結點。複雜度不能為O(n2)。

6、有雙向循環鏈表結點定義為:

struct node

{

int data;

struct node *front,*next;

};

有兩個雙向循環鏈表A,B,知道其頭指針為:pHeadA、pHeadB,請寫一函數將兩鏈表中data值相同的結點刪除。