




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1.
電梯調度算法模擬說明:電梯調度算法的基本原則就是如果在電梯運行方向上有人要使用電梯則繼續往那個方向運動,如果電梯中的人還沒有到達目的地則繼續向原方向運動。具體而言,如果電梯現在朝上運動,如果當前樓層的上方和下方都有請求,則先響應所有上方的請求,然后才向下響應下方的請求;如果電梯向下運動,則剛好相反。題目難度:較難設計要求:模擬多人在不同樓層同時要求到各自目的地時電梯的響應順序,要求使用C語言編程,定義合適的數據結構。最后,需要說明設計思想,同時給出能夠運行的源程序,并給出對應的程序流程圖。設計提示:可以用一個結構體表示乘電梯的人,其中內容包括人的姓名、起始樓層、目的樓層;建立一個結構體的數組模擬當前所有需要乘電梯的人。把這個結構體數組作為程序的輸入,通過對數組中每個人的起始樓層和目的樓層進行分析,確定每個人進出電梯的順序,并打印輸出。比如:當前樓層是4,結構體數組中共有3個人,A:7→3
B:6→10C:7→8;
則輸出應該是:當前樓層為6,B進入
當前樓層為7,C進入
當前樓層為8,C出去
當前樓層為10,B出去
當前樓層為7,A進入
當前樓層為3,A出去
2.
迷宮求解說明:求迷宮從入口到出口的路徑,即從迷宮的入口出發,順某一方向向前探索,若能走通,則繼續往前走;否則沿原路退回,換一個方向繼續探索,直到所有可能的通路都探索為止。題目難度:一般設計要求:給出迷宮的入口和出口及相關的通路,求出從入口到出口的路徑。要求使用C語言編程,定義合適的數據結構。最后,需要說明設計思想,同時給出能夠運行的源程序,并給出對應的程序流程圖。設計提示:可以使用一個二維數組來表示迷宮,其中分別用1、0表示通與不通;算法的基本思想是:若當前位置“可通”,則納入“當前路徑”,并繼續朝“下一位置”探索,即切換“下一位置”為“當前位置”,如此重復,到達出口;若當前位置“不可通”,則應順著“來向”退回到“前一通道塊”,然后朝“來向”之外的其它方向探索。若該通道塊四周4個方塊均“不可通”,則應從“當前路徑”中刪除該通道塊。使用棧結構記錄當前路徑,當前位置入棧表示向前行,出棧則表示從當前位置退回。
3.學生運動會成績數據庫功能:學生運動會成績數據庫系統記錄某校運動會上全部運動項目,各系獲得的分數及排名的情況,包括50、100、200,400,1500米,跳高,跳遠,標槍,鉛球鐵餅等。進入系統后可以輸入和修改某個項目的結果情況,可以按各系院編號輸出總分;按總分排序;按男團體總分排序;按系院編號查詢;按項目編號查詢;按女團體總分排序。分步實施:1)
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2)
完成最低要求:建立一個文件,包括某個系,5個項目的得分情況,能對文件中的信息進行擴充(追加),修改和刪除;3)
進一步要求:完成對多個系,多個項目的得分排序,以及完成系統查詢功能。有興趣的同學可以自己擴充系統功能。鍵盤輸入:系院數目,男子項目數女子項目數,(每項目取前三名,分別為10,5,2分)
要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)
要提供程序測試方案5)
程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
4.哈夫曼樹應用功能:1.從終端讀入字符集大小n,以及n個字符和n個權值,建立哈夫曼樹并將它存于文件hfmTree中.將已在內存中的哈夫曼樹以直觀的方式(比如樹)顯示在終端上;2.利用已經建好的哈夫曼樹(如不在內存,則從文件htmTree中讀入),對文件ToBeTran中的正文進行編碼,然后將結果存入文件CodeFile中,并輸出結果,將文件CodeFile以緊湊格式先是在終端上,每行50個代碼。同時將此字符形式的編碼文件寫入文件CodePrint中。3.利用已建好的哈夫曼樹將文件CodeFile中的代碼進行譯碼,結果存入文件TextFile中,并輸出結果。
分步實施:1)
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2)
完成最低要求:完成功能1;3)
進一步要求:完成功能2和3。有興趣的同學可以自己擴充系統功能。要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)
要提供程序測試方案5)
程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
5.圖的遍歷功能:實現圖的深度優先,廣度優先遍歷算法,并輸出原圖結構及遍歷結果。分步實施:1)
初步完成總體設計,搭好框架;2)
完成最低要求:兩種必須都要實現,寫出畫圖的思路;3)
進一步要求:畫出圖的結構,有興趣的同學可以進一步改進圖的效果。要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)
要提供程序測試方案5)
程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
6.n維矩陣乘法:AB-1功能:設計一個矩陣相乘的程序,首先從鍵盤輸入兩個矩陣a,b的內容,并輸出兩個矩陣,輸出ab-1結果。分步實施:1)
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2)
完成最低要求:建立一個文件,可完成2維矩陣的情況;3)
一步要求:通過鍵盤輸入維數n。有興趣的同學可以自己擴充系統功能。要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
7.數組應用功能:按照行優先順序將輸入的數據建成4維數組,再按照列優先順序輸出結果,給出任意處的元素值,并給出對應的一維數組中的序號。
分步實施:1.初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2.
完成最低要求:完成第一個功能;3.
進一步要求:進一步完成后續功能。有興趣的同學可以自己擴充系統功能。要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
8.數組應用2功能:讀入數組下標,求出數組A靠邊元素之和;求從A[0][0]開始的互不相鄰的各元素之和;當m=n時,分別求兩條對角線上的元素之和,否則打印出m!=n的信息。分步實施:1.
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2.
完成最低要求:求出2維數組的功能;3.
進一步要求:完成3維以上數組的功能。有興趣的同學可以自己擴充系統功能。要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
9.n元多項式乘法功能:完成兩個n元多項式作乘法,給出明確的等式形式。分步實施:1.
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2.
完成最低要求:建立一個文件,實現兩個一元二次多項式作乘法。3.
進一步要求:實現三元二次多項式的乘法。有興趣的同學可以自己擴充系統功能。要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
10.集合運算功能:使用鏈表來表示集合,完成集合的合并,求交集等操作。分步實施:1.
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2.
完成最低要求:3.
進一步要求:要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案6)
程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
11.公園的導游圖功能:給出一張某公園的導游圖,游客通過終端詢問可知:從某一景點到另一景點的最短路徑。游客從公園大門進入,選一條最佳路線,使游客可以不重復地游覽各景點,最后回到出口(出口就在入口旁邊)。
分步實施:1.
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2.
完成最低要求:建立一個文件,包括5個景點情況,能完成遍歷功能;3.
進一步要求:進一步擴充景點數目,畫出景點圖,有興趣的同學可以自己擴充系統功能。
要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
12.商店存貨管理系統功能:建立一商店存貨管理系統,要求每次出貨時取進貨時間最早且最接近保質期中止時間的貨物。
分步實施:1.
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2.
完成最低要求:建立一個文件,包括5個種類的貨物情況,能對商品信息進行擴充(追加),修改和刪除以及簡單的排序;3.
進一步要求:擴充商品數量,以及完成系統查詢功能。有興趣的同學可以自己擴充系統功能。
要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
13.漢諾威塔功能:編程序顯示n(n<=9)層漢諾威塔的調整過程。
分步實施:1.
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2.
完成最低要求:實現5層漢諾威塔的調整過程;3.
進一步要求:直至實現n=9時的情況。有興趣的同學可以自己擴充系統功能。
要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
14.個人帳簿管理系統設計功能:個人帳簿管理系統記錄某人每月的全部收入及各項開支情況,包括食品消費,房租,子女教育費用,水電費,醫療費,儲蓄等。進入系統后可以輸入和修改某月的收支情況,可以對每月的開支從小到大進行排序,可以根據輸入的月份查詢每月的收支情況。
分步實施:1.
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2.
完成最低要求:建立一個文件,包括某人5個月的收支情況,能對文件中的信息進行擴充(追加),修改和刪除;3.
進一步要求:完成對每月的開支排序,以及完成系統查詢功能。有興趣的同學可以自己擴充系統功能。
要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
15.排序系統設計功能:設編號為1,2,3,……,n的n(n>0)個人按順時針方向圍坐一圈,每個人持有一個正整數密碼。開始時任選一個正整數做為報數上限m,從第一個人開始順時針方向自1起順序報數,報到m是停止報數,報m的人出列,將他的密碼作為新的m值,從他的下一個人開始重新從1報數。如此下去,直到所有人全部出列為止。令n最大值取30。要求設計一個程序模擬此過程,求出出列編號序列。分步實施:4.
初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;5.
完成最低要求:建立一個文件,包括某人5個人的情況。6.
進一步要求:有興趣的同學可以自己擴充系統功能。
要求:1)界面友好,函數功能要劃分好2)總體設計應畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。
16.
用下表給出的字符集和頻度的實際統計數據建立哈夫曼樹,并實現以下報文的編碼和譯碼:“THISPROGRAMISMYFAVORITE”
字符
ABCDEFGHIJKLM
頻度
6413223210321154757153220
字符
NOPQRSTUVWXYZ
頻度
5763151485180238181161
17.分詞算法----正向最大匹配分詞算法說明:
何為分詞?中文分詞與其他的分詞又有什么不同呢?分詞就是將連續的字序列按照一定的規范重新組合成詞序列的過程。在英文的行文中,單詞之間是以空格作為自然分界符的,而中文只是字、句和段可以通過明顯的分界符來簡單劃界,唯獨詞沒有一個形式上的分界符,雖然英文也同樣存在短語的劃分問題,但是在詞這一層上,中文比之英文要復雜的多、困難的多。正向最大匹配分詞算法就是從左到右進行切詞,以最大詞組進行匹配。例如:“中華人民共和國成立了。”這個詞可以切分為“中華/人民/共和國/成立/了。”也可以切分成“中華人民共和國/成立/了。”而后一種就是最大正向匹配算法了。題目難度:一般設計要求:利用VC++、JAVA之類有界面的編程工具進行編寫。要求輸入一篇文章,在一定的時間之內進行分詞,并顯示分詞時間。并根據分詞效果,提出改進方案。設計提示:詞組數據庫由教師給出,學生也可以自己添加詞匯,學生建立數據的連接,并進行分詞匹配。
18.野人過河問題說明:野人過河問題屬于人工智能學科中的一個經典問題,問題描述如下:有三個僧人和野人準備渡過一條河,但是只有一條船,而且船每次最多可以載兩個人。現在他同在河的一邊,想渡過河去,條件是:在河的任何一邊必須保證僧人的數目大于等于野人的數目,否則野人就會把僧人吃掉,請給出渡河方案。題目難度:較難設計要求:模擬僧人和野人的渡河順序,要求使用C語言編程,定義合適的數據結構。最后,需要說明設計思想,同時給出能夠運行的源程序,并給出對應的程序流程圖。設計提示:先分析問題的初始狀態和目標狀態,假設河分為甲岸和乙岸:
初始狀態:甲岸,3野人,3牧師;
乙岸,0野人,0牧師;
船停在甲岸,船上有0個人;
目標狀態:甲岸,0野人,0牧師;
乙岸,3野人,3牧師;
船停在乙岸,船上有0個人;
整個問題就抽象成了怎樣從初始狀態經中間的一系列狀態達到目標狀態。問題狀態的改變是通過劃船渡河來引發的。考慮用什么樣的數據結構和搜索算法
19.運動會統計問題說明:參加運動會的n個學校編號為1~n。比賽分成m個男子項目和w個女子項目,項目編號分別為1~m和m+1~m+w。由于各項目參加人數差別較大,有些項目取前五名,得分順序為7,5,3,2,1;還有些項目只取前三名,得分順序為5,3,2(假設編號為奇數的項目取前五名,編號為偶數的項目取前三名)。寫一個統計程序產生各種成績單和得分報表。題目難度:一般設計要求:要求使用用C語言編程實現,定義合適的數據結構。最后,需要說明設計思想,同時給出能夠運行的源程序,并給出對應的程序流程圖。完成的具體功能有:1.可以輸入各個項目的前三名或前五名的成績。2.產生各學校的成績單,內容包括學校編號、項目編號、選手姓名、名次、得分。3.產生團體總分報表,內容包括校號、男子團體總分、女子團體總分和團體總分。設計提示:假設n≤20,m≤30,w≤20,姓名長度不超過20個字符。每個項目結束時,將其編號、類型符(區分取前五名還是前三名)輸入,并按名次順序輸入運動員姓名、校名和成績等。選擇一種合適的數據結構實現。
20.人鬼過河問題河的一邊有三個人和三個鬼,河中有一小船,每次最多能乘坐2個人或鬼,而且至少要有一個人或鬼船才能行駛。請設計一種算法,把人和鬼都送到對岸。注:不論是在河邊、船上,如果人鬼數量相同,則鬼和人能和諧相處,鬼不吃人,否則,鬼吃掉人。要求算法能給出整個運送過程,包括每次船行駛的方向(是駛向對岸還是返回),船上的人和鬼數量。
21.循環節(repeatingcycle)問題描述:求一個分數對應的十進制小數的循環節。我們定義一個小數的循環節是它的第一個最短的向右無限循環的數字串。下面是一些分數的循環節,循環節部分用括號括住,例如:分數
十進制小數
循環節
循環節長度(位數)1/6
0.1(6)
6
15/7
0.(714285)
714285
61/250
0.004(0)
0
1
輸入:輸入文件的每行包含兩個正整數,第一個為分子,第二個為分母,它們之間用一個空格隔開,這兩個正整數值均不超過3000,輸入以00結束。
輸出:輸出到屏幕。對應輸入的每一行,有兩行輸出,其中第一行輸出一個分數和它的小數表示,其中小數由非循環節部分加上第一個出現的循環節或者不大于50位的小數,第二行輸出整個循環節的長度,如小數超過50位仍未出現循環節則認為循環節長度為0。
輸入樣例:
輸出樣例:16
1/6=0.1(6)57
11250
5/7=0.(714285)00
6
1/250=0.004(0)
1
22.拼字游戲
(wordcrosses)
拼字游戲歷史悠久,能鍛煉人的思維和提高單詞記憶量。在歐美報紙的版面中經常會見到。本題只是簡單地演示單組交叉詞。所謂單組交叉詞,是指兩個單詞交叉放置,一個水平放置,另一個垂直放置,交叉點是兩個單詞都共用一個字母,而且交叉點遵循交叉靠前原則,即這公用的字母盡量在水平單詞的前方,然后也盡量在垂直單詞的上方。例如:DEFER,PREFECT(前一個為水平單詞)的交叉點是E,而PREFECT,EDFER的交叉點是R。雙交叉詞是指有兩組單組交叉詞,它們的水平單詞放在同一行。試編程將輸入的每四個一組的單詞盡可能組成雙交叉詞。輸入:輸入文件由若干行組成,每行有四個單詞,按順序每兩個為一組,每組第一個單詞為水平單詞,每個單詞由1到10個大寫字母組成,單詞之間用一個空格隔開。最后一行由一個"#"結束。輸出:輸出文件由一系列雙交叉詞組成,每個水平單詞之間隔三個空格。若不能構成雙交叉詞,則顯示"Unabletomaketwocrosses"。每組雙交叉詞間空一行。輸入樣例:AT
PART
RIGHT
BUTPEANUT
BANANA
VACUUM
GREEDY#
輸出樣例:
BP
UAT
RIGHTRT
Unabletomaketwocrosses
23.校園導游咨詢(為來訪的客人提供各種信息服務)1、基本要求:1)設計大學城平面圖,在校園景點選10個左右景點。以圖中頂點表示大學城內各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等有關信息。2)為來訪客人提供圖中任意景點相關信息的查詢。3)為來訪客人提供任意景點的問路查詢,即查詢任意兩個景點之間的一條最短路徑。實現提示:一般情況下,校園的道路是雙向通行的,可設計校園平面圖是一個無向網。頂點和邊均含有相關信息。
24.十進制數與八進制數互換的實現要求:采用相應的數據結構,實現十進制數到八進制數的轉換.
25.大整數乘法的實現要求:以數組這種數據結構來實現,整數最大允許的長度為80位.
26.較難
模擬一種擲骰子游戲有這樣一種游戲:4個人(A-D),每個人有4個骰子,各自在一個筒中搖勻后停止。每個人可以看到自己此時4個骰子的點數。由A開始,根據自己骰子點數估計某個點數的總個數,報兩個數字:骰子個數和點數,如“4個3”,然后等待下家B報數;B報出的數字中,骰子個數只能大于上家;如此重復;最后當某個人不再報數而叫“停”時,4人均打開搖筒。如果個數和點數恰與叫停者的上家所報相符,則上家勝;如果不相符,則叫停者勝。如果無人叫停,則繼續報數直至報出的數字為“16個6”時結束。用C語言編程模擬這個過程。報數的步驟可由用戶輸入數據進行模擬。注:骰子,亦稱色子,即一個質地均勻的正六面體,每面分別標有數字1-6,在游戲中用于產生區間[1,6]內的隨機整數。
27.較易
行人過街紅綠燈的手動控制城市非繁華街道上有一種由行人手動控制的過街紅綠燈。無行人穿過馬路時行人指示為紅燈,汽車指示為綠燈,汽車能夠連續地正常通過(A狀態)。當有人按下手動開關時,一段時間后(注*)行人指示為綠燈,汽車指示為紅燈,汽車不能通過而行人能夠穿過馬路(B狀態),且B狀態只能持續一個指定的時間段。注*:當汽車連續通過(A狀態)的時間已超過某個給定的值,則按下開關后立即切換到B狀態;如果按下開關時A狀態時間未達到給定值,則必須等待一定時間后才能切換到B狀態,這個時間的長度可事先設定。編程模擬這種紅綠燈的控制。
28.循環賽日程表說明:設計一個滿足以下要求的比賽日程表:(1)每個選手必須與其他n-1個選手各賽一次;(2)每個選手一天只能賽一次;(3)循環賽一共進行n-1天。題目難度:一般設計要求:請使用C語言編程,設計一個有效的算法解決循環賽日程表問題。設計提示:按分治策略,將所有的選手分為兩半,n個選手的比賽日程表就可以通過為n/2個選手設計的比賽日程表來決定。遞歸地用對選手進行分割,直到只剩下2個選手時,比賽日程表的制定就變得很簡單。這時只要讓這2個選手進行比賽就可以了。
29.多邊形游戲說明:多邊形游戲是一個單人玩的游戲,開始時有一個由n個頂點構成的多邊形。每個頂點被賦予一個整數值,每條邊被賦予一個運算符“+”或“*”。所有邊依次用整數從1到n編號。游戲第1步,將一條邊刪除。隨后n-1步按以下方式操作:(1)選擇一條邊E以及由E連接著的2個頂點V1和V2;(2)用一個新的頂點取代邊E以及由E連接著的2個頂點V1和V2。將由頂點V1和V2的整數值通過邊E上的運算得到的結果賦予新頂點。最后,所有邊都被刪除,游戲結束。游戲的得分就是所剩頂點上的整數值。題目難度:較難設計要求:請使用C語言編程,設計一個有效的算法解決下述問題:對于給定的多邊形,計算最高得分。設計提示:在所給多邊形中,從頂點i(1≤i≤n)開始,長度為j(鏈中有j個頂點)的順時針鏈p(i,j)可表示為v[i],op[i+1],…,v[i+j-1]。如果這條鏈的最后一次合并運算在op[i+s]處發生(1≤s≤j-1),則可在op[i+s]處將鏈分割為2個子鏈p(i,s)和p(i+s,j-s)。設m1是對子鏈p(i,s)的任意一種合并方式得到的值,而a和b分別是在所有可能的合并中得到的最小值和最大值。m2是p(i+s,j-s)的任意一種合并方式得到的值,而c和d分別是在所有可能的合并中得到的最小值和最大值。依此定義有a≤m1≤b,c≤m2≤d(1)當op[i+s]='+'時,顯然有a+c≤m≤b+d(2)當op[i+s]='*'時,有min{ac,ad,bc,bd}≤m≤max{ac,ad,bc,bd}換句話說,主鏈的最大值和最小值可由子鏈的最大值和最小值得到。
30.棋盤覆蓋問題說明:在一個2k×2k個方格組成的棋盤中,恰有一個方格與其他方格不同,稱該方格為一特殊方格,且稱該棋盤為一特殊棋盤。在棋盤覆蓋問題中,要用圖示的4種不同形態的L型骨牌覆蓋給定的特殊棋盤上除特殊方格以外的所有方格,且任何2個L型骨牌不得重疊覆蓋。
題目難度:難設計要求:請使用C語言編程,設計一個有效的算法解決棋盤覆蓋問題。設計提示:當k>0時,將2k×2k棋盤分割為4個2k-1×2k-1子棋盤(a)所示。特殊方格必位于4個較小子棋盤之一中,其余3個子棋盤中無特殊方格。為了將這3個無特殊方格的子棋盤轉化為特殊棋盤,可以用一個L型骨牌覆蓋這3個較小棋盤的會合處,如(b)所示,從而將原問題轉化為4個較小規模的棋盤覆蓋問題。遞歸地使用這種分割,直至棋盤簡化為棋盤1×1。
31.
魔方陣說明:把整數1到n2排成一個n×n方陣,使方陣中的每一行,每一列以及對角線上的數之和都相同。題目難度:一般設計要求:要求使用C語言編程,定義合適的數據結構。最后,需要說明設計思想,同時給出能夠運行的源程序,并給出對應的程序流程圖。設計提示:如n為奇數,魔方陣可按下述方法構成:
(1)把1填在第一行的正中間,然后填入后續的數;
(2)若數k填在第i行第j列的格子中,那么k+1應填在它的左上方,即第i-1行第j-1列的那個格子中,如果左上方無格子,即:若i-1為0,那么填在第n行第j-1列的格子中;若j-1為0,那么填在第i-1行第n列的格子中;若i-1和j-1都為0,那么填在第n行第n列的格子中。
(3)若按(2)的方法找到的格子中已填過數了,那么數k+1改填在第k個數的正下方。即填在第i+1行和第j列的那個格子中。編程序實現上述算法,并模擬顯示其過程。
32.地圖著色說明:地圖上有不同國家(不同區域),每個國家都與其他一些國家鄰接。現要求對地圖著色,使所有的國家與它的鄰接的國家有不同的顏色。通常由四種顏色就已足夠。題目難度:較難設計要求:要求使用C語言編程,定義合適的數據結構。最后,需要說明設計思想,同時給出能夠運行的源程序,并給出對應的程序流程圖。設計提示:可采取試探的方法逐步逼近最后解,即按某種模式生成一個部分解,檢查它是否合格。如為合格,在擴展這個部分解向最后解逼近,否則為不合格,不管如何擴展這個部分解都不會得到最后解。這時必須放棄已生成的部分解中的某些結果,“回朔”到先前的部分解,在生成一個部分解,直到獲得最后解。這種算法稱為回朔算法。以著色一個六個區域的地圖為例。
區域鄰接關系
區域鄰接區域123456021340
3124560412360
51360
613450
表中數據正是所需輸入的數據,可以用一個n×n的矩陣來存放(n為區域數目)。0表示鄰接區域的結束。設著色的顏色次序為紅、藍、綠、黃。對于區域起首先著成紅色。對于區域2,因與區域1鄰接,所以不能再著紅色,而只能著第二種顏色,即藍色。同理區域3著綠色,區域4著黃色,區域5著藍色,區域6由于與區域1、3、4和5鄰接,所以四種顏色都不合適。這時,必須回溯到區域5,它不能是已著好的藍色,也不能著藍色的下一種顏色綠色,因為這會使它與區域3同色,再選下一種顏色,即黃色,它與區域1和3不同色。所以區域5退去藍色,改著黃色。此后,區域6可著藍色。最后,得到的解為各區域的顏色依次為紅、藍、綠、黃、黃、藍。采用遞歸算法:區域編號以自然數編號1…n(n為區域數)顏色可用枚舉值enumcolor{red=1,blue,green,yellow};算法描述為:
Voidcolorarea(intj)
//參數j為當前要著色的區域編號
for(c=red;c<=yellow;c++)
{
if(區域j可著c色)
//即區域j的鄰接區域都沒有著過c色
if(j==n)prtmap;
//輸出結果
elsecolorarea(j+1);
//進一步著色下一個區域
區域j退去c色
}
33.模擬人工發牌說明:用計算機模擬發牌程序。假設一副撲克牌有52張,共4個玩家,編寫程序統計出各玩家手里拿的牌的牌面(牌面包括紙牌的大小和花色)。題目難度:一般設計要求:要求使用C語言編程,定義合適的數據結構。最后,需要說明設計思想,同時給出能夠運行的源程序,并給出對應的程序流程圖。設計提示:定義一個4行13列的整數類型的二維數組,每一行分別表示一種花色:黑桃、紅桃、草花、方塊。每一列分別表示A到K共十三個牌點。數組各元素的初始值為0,表示還沒有發牌。然后給每個數組元素賦予1到4之間的隨機數,表示這張牌隨機地發給某個玩家。例如第一行第七列的元素,表示黑桃7,其值為2,表示這張牌發給了第2個玩家。依此類推。
34.搬山游戲說明:設有n座山,計算機與人作為比賽的雙方,雙方輪流搬山。規定每次搬山的數目不能超過k座,誰搬最后一座誰輸。游戲開始時,計算機請人輸入山的總數(n)和每次允許搬山的最大數目(k)。然后請人先開始,人輸入了需要搬走的山的數目后,計算機馬上輸出它搬多少座山,并提示尚余多少座山。雙方輪流搬山直到最后一座山搬完為止。計算機顯示誰是贏家,并問人是否要繼續比賽。若人不想玩了,可以輸入山的總數為0,計算機便會告訴人共完了幾局,雙方勝負如何。題目難度:較難設計要求:計算機請人輸入山的總數(n)和每次允許搬山的最大數目(k)。然后請人先開始,人輸入了需要搬走的山的數目后,計算機馬上輸出它搬多少座山,并提示尚余多少座山。要求使用C語言編程,定義合適的數據結構。最后,需要說明設計思想,同時給出能夠運行的源程序,并給出對應的程序流程圖。設計提示:首先設計計算機參加游戲的算法,計算機每次搬山時應遵循如下原則:(1)
當:剩余山的數目-1<=可移動的最大數k時,計算機要移(剩余山的數目-1)座,以便將最后一座山留給人。(2)
對于任意正整數x,y,一定有:0<=x%(y+1)<=y因此,對于我們的問題來說,在有n座山的情況下,計算機為了將最后一座山留給人,而且又要控制每次搬山的數目不超過最大數k,它應搬山的數目要滿足下列關系:
搬山數量=(當前所剩的山數-1)%(k+1)如果算出結果為0,即整除無余數,則規定只搬一座山,以防止冒進后發生問題。
35.關鍵路徑的求解問題一.問題的基本闡述:通常把計劃、施工過程、生產流程、程序流程的都當成一個工程。除了很小的工程外、一般都把工程分為若干個叫做“活動”的子工程。完成了這些“活動”的子工程,這個工程就可以完成了。通常我們用有向圖表示一個工程。在這種有向圖中,用頂點表示活動,用有向邊<Vi,Vj>表示活動Vi必須先于活動Vj進行。如果在無有向環的帶權有向圖中用有向邊表示一個工程中的各項活動(ACTIVITY),用有向邊上的權值表示活動的持續時間(DURATION),用頂點表示事件(EVENT),則這種的有向圖叫做用邊表示活動的網絡,簡稱AOE(activeonedges)網絡。
AOE網絡在某些工程估算方面非常有用。他可以使人們了解:(1):研究某個工程至少需要多少時間?
(2):那些活動是影響工程進度的關鍵?在AOE網絡中,有些活動可以并行的進行。從源點到各個頂點,以至從源點到匯點的有向路徑可能不止一條。這些路徑的長度也可能不同。完成不同路徑的活動所需的時間雖然不同,但只有各條路徑上所有活動都完成了,這個工程才算完成。因此,完成整個工程所需的時間取決于從源點到匯點的最長路徑長度,即在這條路徑上所有活動的持續時間之和。這條路徑長度就叫做關鍵路徑(criticalpath)。二.:設計步驟:1:以某一工程為藍本,采用圖的結構表示實際的工程計劃的時間。2:調查以分析和預測這個工程計劃個階段的時間。
3:用調查的結果建立AOE網(ActivityOnEdgeNetwork),即邊表示活動的網絡,并用圖的形式表示。4:用圖來存儲這些信息。
5:用CreateGraphic();函數建立AOE圖。
6:用SearchMapPath();函數求出最大路徑,并打印出關鍵路徑。
7:編寫代碼
8:測試三.設計代碼:(要求用C語言或JAVA語言實現)
36.囚徒困境的實際問題:一.基本問題闡述:有兩個參與者和一個莊家。參與者每人有一式兩張卡片,各印有“合作”和“背叛”。參與者各把一張卡片文字面朝下,放在莊家面前。文字面朝下排除了參與者知道對方選擇的可能性。然后,莊家翻開兩個參與者卡片,根據以下規則支付利益:一人背叛、一人合作:背叛者得5分(背叛誘惑),合作者0分(受騙支付)。二人都合作:各得3分(合作報酬)。二人都背叛:各得1分(背叛懲罰)。二.求解(要求用C語言或JAVA語言)
1.每個人所能得分的所有情況及可得的最高分和最低分;
3.比較互相背叛的及單獨背叛,合作獲分比背叛高還是低
37.用C語言或JAVA語言,設計一個學生的學籍管理系統;要求:1.要有對學生的各信息進行各種操作的功能,比如添加刪除學生等等
2.設計過程中會用到排序的算法,請你總結各種經典的排序算法,
3.設計過程中會用到查找得法,請你總結各種經典的查找算法
37.
查找算法集錦說明:查找,根據給定的某個值,在查找表(已經排好序)中確定一個其關鍵字等于給定的記錄或數據元素。若表中存在這樣的一個記錄,則稱查找是成功的,此時查找的結果為給出整個記錄的信息,或指示該記錄在查找表中的位置;若表中不存在關鍵字等于給定值的記錄,則稱查找不成功。查找算法有多種,各有優缺點。題目難度:難設計要求:要求使用C語言編程,至少完成下述查找算法1)
順序查找
從表中最后一個記錄開始,逐個進行記錄的關鍵字和給定值的比較,若某個記錄的關鍵字和給定值比較相等,則查找成功,找到所查記錄;反之,查找不成功。
2)
折半查找
先確定待查記錄所在的范圍(區間),然后逐步縮小范圍直到找到或找不到該記錄為止。3)
二叉排序樹查找
二叉排序樹或者是一棵空樹;或者是具有下列性質的二叉樹:I.
若它的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值;II.
若它的右子樹不空,則右子樹上所有結點的值均大于它的根結點的值;III.
它的左、右子樹了分別為二叉排序樹。二叉排序樹的插入和刪除二叉排序樹是一種動態樹表,其特點是,樹的結構通常不是一資生成的,面是在查找過程中,當樹中不存在關鍵字等于給定值的結點時再進行插入。新插入的結點一定是一個新添加的葉子結點,并且是查找不成功時查找路徑上訪問的最后一個結點的左孩子或右孩子結點。設計提示:
參考相關資料、書籍,理解各種查找方法;
定義恰當的數據結構。
38.排序算法集錦說明:排序,將一個數據元素的無序序列重新排列成一個按關鍵字有序的序列,排序的順序有升序和降序。數據可以是任意類型,如果是字符串則按字符的ASCII碼值進行排序。排序的方法有20多種,各有優缺點。題目難度:難設計要求:要求使用C語言編程,至少完成下述排序算法(1)選擇法
每一趟在n-i+1(i=1,2,...n-1)個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。包括:簡單選擇排序、樹形選擇排序和堆排序(2)插入排序包括:直接插入排序
是將一個記錄插入到已排好序的有序表中,從而得到一個新的、記錄數增1的有序表折半插入排序
為了提高查找速度,可以采用折半查找,這種排序稱折半插入排序。2-路插入排序
為減少排序過程中移動記錄的次數,在折半插入排序的基礎上加以改進:(3)冒泡排序法(4)歸并排序法
將兩個或兩個以上的有序表組合成一個新的有序表的方法叫歸并。(5)合并排序法
將待排序元素分成大小大致相同的2個子集合,分別對2個子集合進行排序,最終將排好序的子集合合并成為所要求的排好序的集合。(6)快速排序法
在快速排序中,記錄的比較和交換是從兩端向中間進行的,關鍵字較大的記錄一次就能交換到后面單元,關鍵字較小的記錄一次就能交換到前面單元,記錄每次移動的距離較大,因而總的比較和移動次數較少。
設計提示:
參考相關資料、書籍,理解各種排序方法;
定義恰當的數據結構。
39.巨大整數的乘法(分治法)說明:此2數很大,以至于其已經超過了計算機能表示的整數的范圍,或其乘積已經超過了計算機能表示的整數的范圍。題目難度:難設計要求:請使用C語言編程,設計一個有效的算法,可以進行兩個n位(二進制數)大整數的乘法運算。設計提示:將此2數轉換為2進制字符串,并進行分段。X=a2n/2+b
Y=c2n/2+dXY=ac2n+(ad+bc)2n/2+bd為了降低時間復雜度,必須減少乘法的次數。1.XY=ac2n+((a-c)(b-d)+ac+bd)2n/2+bd2.XY=ac2n+((a+c)(b+d)-ac-bd)2n/2+bd考慮到a+c,b+d可能得到m+1位的結果,使問題的規模變大,故不選擇第2種方案。如果將大整數分成更多段,用更復雜的方式把它們組合起來,將有可能得到更優的算法。
40.螞蟻覓食過程模擬說明:1)
各個螞蟻在沒有事先告訴他們食物在什么地方的前提下開始尋找食物。2)
當一只找到食物以后,它會向環境釋放一種信息素,吸引其他的螞蟻過來,這樣越來越多的螞蟻會找到食物。3)
有些螞蟻并沒有象其它螞蟻一樣總重復同樣的路,他們會另辟蹊徑,如果令開辟的道路比原來的其他道路更短,那么,漸漸,更多的螞蟻被吸引到這條較短的路上來。4)
最后,經過一段時間運行,可能會出現一條最短的路徑被大多數螞蟻重復著。題目難度:難設計要求:請使用C語言編程,設計一個有效的算法,模擬螞蟻覓食的過程。設計提示:1)
要讓螞蟻能夠避開障礙物,就必須根據適當的地形給它編進指令讓他們能夠巧妙的避開障礙物,2)
要讓螞蟻找到食物,就需要讓他們遍歷空間上的所有點;3)
如果要讓螞蟻找到最短的路徑,那么需要計算所有可能的路徑并且比較它們的大小。4)
更重要的是,你要小心翼翼的編程,因為程序的錯誤也許會讓你前功盡棄。
41.棋盤覆蓋問題(遞歸法)說明:在一個2k×2k個方格組成的棋盤中,恰有一個方格與其他方格不同,稱該方格為一特殊方格,且稱該棋盤為一特殊棋盤。在棋盤覆蓋問題中,要用圖示的4種不同形態的L型骨牌覆蓋給定的特殊棋盤上除特殊方格以外的所有方格,且任何2個L型骨牌不得重疊覆蓋。
題目難度:難設計要求:請使用C語言編程,設計一個有效的算法解決棋盤覆蓋問題。設計提示:當k>0時,將2k×2k棋盤分割為4個2k-1×2k-1子棋盤(a)所示。特殊方格必位于4個較小子棋盤之一中,其余3個子棋盤中無特殊方格。為了將這3個無特殊方格的子棋盤轉化為特殊棋盤,可以用一個L型骨牌覆蓋這3個較小棋盤的會合處,如(b)所示,從而將原問題轉化為4個較小規模的棋盤覆蓋問題。遞歸地使用這種分割,直至棋盤簡化為棋盤1×1。
42.循環賽日程表(動態規劃法)說明:設計一個滿足以下要求的比賽日程表:(1)每個選手必須與其他n-1個選手各賽一次;(2)每個選手一天只能賽一次;(3)循環賽一共進行n-1天。題目難度:較難設計要求:請使用C語言編程,設計一個有效的算法解決循環賽日程表問題。設計提示:按分治策略,將所有的選手分為兩半,n個選手的比賽日程表就可以通過為n/2個選手設計的比賽日程表來決定。遞歸地用對選手進行分割,直到只剩下2個選手時,比賽日程表的制定就變得很簡單。這時只要讓這2個選手進行比賽就可以了。
43.完全加括號的矩陣連乘積(動態規劃法)說明:完全加括號的矩陣連乘積可遞歸地定義為:(1)單個矩陣是完全加括號的;(2)矩陣連乘積A是完全加括號的,則A可表示為2個完全加括號的矩陣連乘積B和C的乘積并加括號,即A=(BC)。如下例:題目難度:較難設計要求:請使用C語言編程,設計一個有效的算法解決下述問題:給定n個矩陣{A1,A2,…,An},其中Ai與Ai+1是可乘的,i=1,2,…,n-1。如何確定計算矩陣連乘積的計算次序,使得依此次序計算矩陣連乘積需要的數乘次數最少。
設計提示:由于矩陣乘法滿足結合律,計算矩陣的連乘可以有許多不同的計算次序。這種計算次序可以用加括號的方式來確定。若一個矩陣連乘積的計算次序完全確定,也就是說該連乘積已完全加括號,則可以依此次序反復調用2個矩陣相乘的標準算法計算出矩陣連乘積。將矩陣連乘積簡記為A[i:j],這里i≤j考察計算A[i:j]的最優計算次序。設這個計算次序在矩陣Ak和Ak+1之間將矩陣鏈斷開,i≤k<j,則其相應完全加括號方式為計算量:A[i:k]的計算量加上A[k+1:j]的計算量,再加上A[i:k]和A[k+1:j]相乘的計算量。
44.最長公共子序列(動態規劃法)說明:若給定序列X={x1,x2,…,xm},則另一序列Z={z1,z2,…,zk},是X的子序列是指存在一個嚴格遞增下標序列{i1,i2,…,ik}使得對于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相應的遞增下標序列為{2,3,5,7}。給定2個序列X和Y,當另一序列Z既是X的子序列又是Y的子序列時,稱Z是序列X和Y的公共子序列。題目難度:難設計要求:請使用C語言編程,設計一個有效的算法解決下述問題:給定2個序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最長公共子序列。設計提示:設序列X={x1,x2,…,xm}和Y={y1,y2,…,yn}的最長公共子序列為Z={z1,z2,…,zk},則(1)若xm=yn,則zk=xm=yn,且zk-1是xm-1和yn-1的最長公共子序列。(2)若xm≠yn且zk≠xm,則Z是xm-1和Y的最長公共子序列。(3)若xm≠yn且zk≠yn,則Z是X和yn-1的最長公共子序列。由此可見,2個序列的最長公共子序列包含了這2個序列的前綴的最長公共子序列。
由最長公共子序列問題的最優子結構性質建立子問題最優值的遞歸關系。用c[i][j]記錄序列和的最長公共子序列的長度。其中,Xi={x1,x2,…,xi};Yj={y1,y2,…,yj}。當i=0或j=0時,空序列是Xi和Yj的最長公共子序列。故此時C[i][j]=0。其他情況下,由最優子結構性質可建立遞歸關系如下:
45.多邊形游戲(動態規劃法)說明:多邊形游戲是一個單人玩的游戲,開始時有一個由n個頂點構成的多邊形。每個頂點被賦予一個整數值,每條邊被賦予一個運算符“+”或“*”。所有邊依次用整數從1到n編號。游戲第1步,將一條邊刪除。隨后n-1步按以下方式操作:(1)選擇一條邊E以及由E連接著的2個頂點V1和V2;(2)用一個新的頂點取代邊E以及由E連接著的2個頂點V1和V2。將由頂點V1和V2的整數值通過邊E上的運算得到的結果賦予新頂點。最后,所有邊都被刪除,游戲結束。游戲的得分就是所剩頂點上的整數值。題目難度:較難設計要求:請使用C語言編程,設計一個有效的算法解決下述問題:對于給定的多邊形,計算最高得分。設計提示:在所給多邊形中,從頂點i(1≤i≤n)開始,長度為j(鏈中有j個頂點)的順時針鏈p(i,j)可表示為v[i],op[i+1],…,v[i+j-1]。如果這條鏈的最后一次合并運算在op[i+s]處發生(1≤s≤j-1),則可在op[i+s]處將鏈分割為2個子鏈p(i,s)和p(i+s,j-s)。設m1是對子鏈p(i,s)的任意一種合并方式得到的值,而a和b分別是在所有可能的合并中得到的最小值和最大值。m2是p(i+s,j-s)的任意一種合并方式得到的值,而c和d分別是在所有可能的合并中得到的最小值和最大值。依此定義有a≤m1≤b,c≤m2≤d(1)當op[i+s]='+'時,顯然有a+c≤m≤b+d(2)當op[i+s]='*'時,有min{ac,ad,bc,bd}≤m≤max{ac,ad,bc,bd}換句話說,主鏈的最大值和最小值可由子鏈的最大值和最小值得到。
46.圖像壓縮問題(動態規劃法)說明:圖像的變位壓縮存儲格式將所給的象素點序列{p1,p2,…,pn},0≤pi≤255分割成m個連續段S1,S2,…,Sm。第i個象素段Si中(1≤i≤m),有l[i]個象素,且該段中每個象素都只用b[i]位表示。設
則第i個象素段Si為
設
,則h≤b[i]≤8。因此需要用3位表示b[i],如果限制1≤l[i]≤255,則需要用8位表示l[i]。因此,第i個象素段所需的存儲空間為l[i]*b[i]+11位。按此格式存儲象素序列{p1,p2,…,pn},需要
位的存儲空間。題目難度:難設計要求:請使用C語言編程,設計一個有效的算法解決下述問題:確定象素序列{p1,p2,…,pn}的最優分段,使得依此分段所需的存儲空間最少。(每個分段的長度不超過256位。)設計提示:設l[i],b[i],是{p1,p2,…,pn}的最優分段。顯而易見,l[1],b[1]是{p1,…,pl[1]}的最優分段,且l[i],b[i],是{pl[1]+1,…,pn}的最優分段。即圖像壓縮問題滿足最優子結構性質。設s[i],1≤i≤n,是象素序列{p1,…,pn}的最優分段所需的存儲位數。由最優子結構性質易知:《計算機科學導論》習題一、選擇題1.電子計算機從誕生之日起,經歷了4個發展階段,目前所使用的第四代計算機的主要特點是(D)。A.主要特征是邏輯器件使用電子管,用穿孔卡片機作為數據和指令的輸入設備,用磁鼓或磁帶作為外存儲器,使用機器語言編程B.主要特征是使用晶體管代替了電子管,內存儲器采用了磁芯體,引入了變址寄存器和浮點運算硬件,利用I/O處理機提高了輸入/輸出能力C.主要特征是用半導體中、小規模集成電路作為元器件代替晶體管等分立元件,用半導體存儲器代替磁芯存儲器,使用微程序設計技術簡化處理機的結構,在軟件方面則廣泛地引入多道程序、并行處理、虛擬存儲系統和功能完備的操作系統,同時還提供了大量的面向用戶的應用程序D.主要特征是使用了大規模和超大規模集成電路2.計算學科的根本問題是(A)。A.什么能被有效地自動進行B.NP問題C.工程設計D.理論研究實驗方法3.計算機科學與技術研究的內容可以分為(ABC)。A.基礎理論B.專業基礎C.應用D.實驗4.計算機科學技術的研究范疇包括(ABCD)。A.計算機理論B.硬件 C.軟件 D.網絡及應用5.計算機科學與技術學科的核心知識點個數是(C)個。A.3 B.12 C.14 D.216.如果[X]補=11110011,則[-X]補是(D)。A.11l1001lB.01110011C.00001100D.0000110l7.若十進制數據為137.625,則其二進制數為(B)。A.10001001.11B.10001001.101C.1000l011.101D.1011111.1018.存儲器存儲容量單位中,1KB表示(A)。A.1024個字節B.1024位C.1024個字D.1000個字節9.數據總線、地址總線、控制總線3類劃分根據是(A)。A.總線傳送的內容B.總線所處的位置C.總線傳送的方向D.總線傳送的方式10.每次可傳送一個字或一個字節的全部代碼,并且是對一個字或字節各位同時進行處理的信息傳遞方式是(B)。A.串行方式B.并行方式C.查詢D.中斷11.目標程序是(D)。A.使用匯編語言編寫的程序B.使用高級語言編寫的程序C.使用自然語言編寫的程序D.機器語言程序12.程序設計語言中用來組織語句生成一個程序的規則稱為(A)。A.語法B.匯編C.編譯D.解釋13.匯編語言使用的助記符指令與機器指令通常是一一對應的,是使用(C)。A.自然語言B.邏輯語言 C.英語單詞或縮寫D.形式語言14.在高級語言中,源程序的基本單位是(D)。A.字母B.數字C.標號D.語句15.好的程序設計風格,能夠提高程序的(ABCD)。A.正確性B.可讀性C.可用性D.可維護性16.程序如果需要進行順序查找,則線性表(C)。A.必須以順序方式存儲B.必須以鏈表方式存儲C.采用順序、鏈表方式存儲均可D.以上都不對17.假設一個順序表中第一個數據元素在主存中的存儲單元地址是100,每個元素占用2個存儲單元,則第5個元素所在存儲單元的地址是(A)。A.108B.110C.112D.12018.用于處理重復動作的結構是(C)。A.順序B.判斷C.循環D.邏輯19.數據結構可以是(D)。A.數組B.記錄C.鏈表D.以上全部都是20.一步一步解決問題或完成任務的方法是(D)。A.結構體B.遞歸C.迭代D.算法21.(C)是算法自我調用的過程。A.插入B.查找C.遞歸D.迭代22.用來計算一組數據乘積的基本算法是(B)。A.求和B.乘積C.最小D.最大23.根據數值大小進行排列的基本算法是(B)。A.查詢B.排序C.查找D.遞歸24.根據數據加密標準,速度較快、適用于加密大量數據場合加密算法是(A)A.DESB.RC2 C.DSAD.MD525.下列屬于概念模型的是(D)。A.關系數據模型 C.網狀數據模型 B.層次數據模型 D.實體-聯系模型26.SQL語言的最大的特點是(D)。A.交互性B.直觀性C.過程化D.非過程化27.設計E-R圖是數據庫設計過程中(B)階段的任務。A.需求分析B.概念設計C.邏輯設計D.物理設計28.數據模型的三要素是(C)。A.外模式、模式、內模式B.關系模型、層次模型、網狀模型C.數據結構、數據操縱、數據約束D.實體、聯系、屬性29.一個圖書管理數據庫有這樣的描連:一個圖書館有多本圖書,一個學生可以借閱多本圖書;而一本圖書只能借給一個學生看,那么學生與圖書之間的聯系屬于(B)。A.1:1B.1:mC.m:nD.無關聯30.軟件是指(D)。A.按事先設計的功能和性能要求執行的指令系列B.使程序能夠正確操縱信息的數據結構C.與程序開發維護和使用有關的圖文資料D.計算機系統中的程序、數據結構及其說明文檔31.瀑布模型的主要特點是(A)。A.將開發過程嚴格地劃分為一系列有序的活動B.將過程分解為階段C.提供了有效的管理模式D.缺乏靈活性32.軟件開發方法是指(A)。A.指導軟件開發的一系列規則B.軟件開發的步驟C.軟件開發的技術 D.軟件開發的思想33.基于構件的軟件開發總是(D)。A.使用現存的構件 B.自己開發構件C.修改現存的構件 D.使用現存的和開發新的構件34.簡單地說,軟件的質量是指(C)。A.軟件滿足需求說明的程度B.軟件性能指標的好壞C.用戶對軟件的滿意程度D.軟件可用性的程度=1\*GB3①運算器=2\*GB3②控制器=3\*GB3③存儲器=4\*GB3④輸入和輸出設備評價計算機的性能指標有很多,通常人們從計算機的字長、時鐘周期和主頻、運算速度、內存容量、數據輸入輸出最高速率等技術指標來評價計算機系統。1.字長2.時鐘周期和主頻3.運算速度4.內存容量5.數據輸入輸出最高速率5.什么是接口?它的主要功能是什么?答:在主機與外設進行數據交換時必領引入相應的邏輯部件解決兩者之間的同步與協調、數據格式轉換等問題,這些邏輯部件就稱為輸入輸出接口,簡稱為接口。輸入輸出接口的基本功能有:(1)實現數據緩沖,提供主機和設備交換信息過程中的數據緩沖機構,使主機與外設在工作速度上達到匹配。(2)實現數據格式的轉換,例如,當主機和設備的信號通路不同時的信號電平轉換功能、數據傳送中的格式(串行、并行)轉換功能、直接內存訪問中的額外需求等。(3)提供外設和接口的狀態,為CPU更好地控制各種外設提供有效的幫助,交換主機和外圍設備的狀態信息。(4)實現主機與外設之間的通訊聯絡控制,實現主機與設備之間的數據交換。6.簡述程序設計過程的一般步驟。程序設計的過程一般有四個步驟。1.分析問題在著手解決問題之前,應該通過分析,充分理解問題,明確原始數據、解題要求、需要輸出的數據及形式等。2.設計算法算法是解題的過程。首先集中精力于算法的總體規劃,然后逐層降低問題的抽象性,逐步充實細節,直到最終把抽象的問題具體化成可用程序語句表達的算法。這是一個自上而下、逐步細化的過程。3.編碼利用程序設計語言表示算法的過程稱為編碼。4.調試程序調試程序包括編譯和連接等操
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- miR-128-3p靶向調控PGC-1α介導的線粒體生物發生在PBDE-47神經毒性中的作用研究
- 汽車傳感器與檢測技術電子教案:油溫傳感器
- M20型汽車內飾材料廠綜合倉庫設計方案范本
- 周莊景區安全管理制度
- 華為核心人才管理制度
- 阜陽北路立交橋監理規劃
- 園林公司規章管理制度
- 中考地理復習教案第1課時 地圖
- 從我做起征集活動方案
- 旋挖鉆機地基承載力驗算2017.7
- 主動脈夾層版本課件
- GB∕T 36562-2018 煤直接液化制混合芳烴
- 工業磷酸一銨結晶過程影響結晶因素有那些
- 口服葡萄糖耐量試驗ppt課件 (2)
- 員工上下班交通安全培訓
- 小學語文教學研究(有答案)-國家開放大學2022年1月(2020秋)期末考試復習資料、試題及答案
- 參考食品加工操作流程圖
- 山東省普通高中學生發展報告
- 高新區孵化器亮化工程投標文件商務標格式
- 國家開放大學《水力學(B)》形考任務1-10參考答案
- 我國各類型扣件技術說明
評論
0/150
提交評論