- 試題排行
- 最新熱點(diǎn)
- 最新推薦
2
3
4
5
6
7
8
9
10
2008年上半年軟考軟件設(shè)計(jì)師考試試題(上午)
2008年上半年軟考網(wǎng)絡(luò)工程師考試試題(下午)
2008年上半年軟考軟件設(shè)計(jì)師考試試題(下午)
2008年上半年軟件水平考試程序員考試試題(上
2008年下半年軟考網(wǎng)絡(luò)工程師預(yù)測(cè)試題及答案
2008年上半年軟件水平考試程序員考試試題(下
2008下半年軟件水平考試軟件設(shè)計(jì)師押題試卷
08年上半年軟考數(shù)據(jù)庫(kù)系統(tǒng)工程師考試試題(上
2008下半年軟件水平考試程序員模擬試題及答
上午試題
試題1
A.為了提高計(jì)算機(jī)的處理機(jī)和外部投備的利用率, 把多個(gè)程序同時(shí)放入主存儲(chǔ)崐器,在宏觀(guān)上并行運(yùn)行。
B.把一個(gè)程序劃分成若干個(gè)可同時(shí)執(zhí)行的程序模塊的設(shè)計(jì)方法。
C.多個(gè)用戶(hù)在中端設(shè)備上以交互方式輸入、排錯(cuò)和控制其程序的運(yùn)行。
D.由多臺(tái)計(jì)算機(jī)組成的一個(gè)系統(tǒng)。這些計(jì)算機(jī)之間可以通過(guò)通信來(lái)交換信息;互崐 相之間無(wú)主次之分; 它們共享系統(tǒng)資源; 程序由系統(tǒng)中的全部或部分計(jì)算機(jī)協(xié)同
執(zhí)行。管理上述計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)。
E.有一類(lèi)操作系統(tǒng)的系統(tǒng)響應(yīng)時(shí)間的重要性超過(guò)系統(tǒng)資源的利用率, 它被廣泛崐地應(yīng)用于衛(wèi)星控制、導(dǎo)彈發(fā)設(shè)、飛機(jī)飛行控制、飛機(jī)訂票業(yè)務(wù)等領(lǐng)域。
供選擇的答案
A~E: (1)分時(shí)操作系統(tǒng) (2)實(shí)時(shí)操作系統(tǒng) (3)批處理操作系統(tǒng)
(4)網(wǎng)絡(luò)操作系統(tǒng) (5)分不式操作系統(tǒng) (6)單用戶(hù)操作系統(tǒng)
(7)多重程序設(shè)計(jì) (8)多道程設(shè)計(jì) (9)并發(fā)程序設(shè)計(jì)
試題2
(1)順序存儲(chǔ)方式只能用于存儲(chǔ)線(xiàn)性結(jié)構(gòu)。
(2)順序存儲(chǔ)方式的優(yōu)點(diǎn)是存儲(chǔ)密度大, 且插入、刪除運(yùn)用算效率高。
(3)鏈表的每個(gè)結(jié)點(diǎn)中都恰好包含一個(gè)指針。
(4)散列法存儲(chǔ)的基本思想是由關(guān)鍵碼的值訣定數(shù)據(jù)的存儲(chǔ)地址。
(5)散列表的結(jié)點(diǎn)中只包含數(shù)據(jù)元素自身的信息, 不包含任何指針。
(6)負(fù)載因子 (裝填因子) 是散列法的一個(gè)重要參數(shù), 它反映散列表的裝滿(mǎn)程度。
(7)棧和隊(duì)列的存儲(chǔ)方式既可是順序方式, 也可是鏈接方式。
(8)用二叉鏈表法 (llink -- rlink法) 存儲(chǔ)包含n 個(gè)結(jié)點(diǎn)的二叉樹(shù), 結(jié)點(diǎn)的2n個(gè)
指針區(qū)域中有n+1 個(gè)為空指針。
(9)用相鄰矩陣法存儲(chǔ)一個(gè)圖時(shí), 在不考慮壓縮存儲(chǔ)的情況下, 所占用的存儲(chǔ)空間崐 大小只與圖中結(jié)點(diǎn)個(gè)數(shù)有關(guān), 而與圖的邊數(shù)無(wú)關(guān)。
(10) 鄰接表法只能用于有向圖的存儲(chǔ), 而相鄰矩陣法對(duì)于有向圖和無(wú)向圖的存儲(chǔ)
都適用。
試題3
使用_ A_ 能閱讀和修改文本文件; __B__能幫助別人們找到程序中的出錯(cuò)位置。
檢查計(jì)算機(jī)各部件,報(bào)告故障信息的是__C__。在支持開(kāi)放策略的操作系統(tǒng)中, 提供崐了各種可選的配置相應(yīng)的目標(biāo)程序模塊, 用戶(hù)可按需要選擇必要選擇必要的程序和
設(shè)置參數(shù), 也可以加入自行開(kāi)發(fā)的新添設(shè)備的驅(qū)動(dòng)程序的目標(biāo)模塊, 通過(guò)系統(tǒng)__D_崐形成所需要的操作系統(tǒng)。計(jì)算機(jī)接通電源后,往往先執(zhí)行一段通常存ROM中的__E__,
接著才將基本操作系統(tǒng)讀入內(nèi)存,并執(zhí)行。
供選擇的答案
A: (1)源程序 (2)編輯程序 (3)顯示程序幕 (4)打印程序
B: (1)可執(zhí)行程序 (2)連接編輯程序 (3)編譯程序 (4)排錯(cuò)程序
C: (1)排錯(cuò)程序 (2)文件系統(tǒng)檢查程序 (3)診斷程序 (4)格式化程序
D: (1)引導(dǎo)程序 (2)生成程序 (3)裝入程序 (4)加載程序
E: (1)設(shè)備程序 (2)進(jìn)程管理程序 (3)調(diào)度程序 (4)引導(dǎo)程序
試題4
某順序存儲(chǔ)的表格,其中有90, 000個(gè)元素,已按關(guān)鍵項(xiàng)的植的上升順序排列。
現(xiàn)假定對(duì)各個(gè)元素進(jìn)行查的概率是相同的, 并且各個(gè)元素的關(guān)鍵項(xiàng)的值皆不相同。
用順序查找法查找是,平均比較次數(shù)約為_a_,最大比較次數(shù)為_b_。
現(xiàn)把90,000個(gè)元素按排列順序劃分成若干組,使每組有g個(gè)元素(最后崐一組可能不足g個(gè))。查找時(shí),先從頭一組開(kāi)始,通過(guò)比例各組的最后一個(gè)元素的崐關(guān)鍵項(xiàng)的值,找到欲查找的元素所在的組,然后再用順序查找找到欲找的元素。在崐這種查找法中,使總的平均比較次數(shù)最小的_c_,此時(shí)的平均比較次數(shù)是_d_。
當(dāng)g的值大于等于90,000時(shí),此方法的查找速度接近于_e_!
供選擇的答案
。痢ⅲ拢骸 、佟。玻担埃埃啊 、凇。常,000
③。矗,000 、堋。梗,000
C、D: ①。保埃啊 、凇。玻埃
、邸。常埃啊 、堋。矗埃
E: 、佟】焖俜诸(lèi)法 ② 斐波那契查找法
、邸《址ā 、堋№樞虿檎曳
試題5
為了提高數(shù)據(jù)的可靠性,決定在7位數(shù)據(jù)的前面(左面)加一個(gè)偶校驗(yàn)位,使崐8位中的1的個(gè)數(shù)為偶。十六進(jìn)制的4F和3C加偶校驗(yàn)位后分別是_a_和_b_。
現(xiàn)假定每個(gè)數(shù)據(jù)最多只有一位出錯(cuò),則D5,F4,3A中出錯(cuò)的數(shù)據(jù)是_c_。
現(xiàn)假定以3個(gè)8位數(shù)據(jù)為單位加垂直偶校驗(yàn)位,即增加一個(gè)8位數(shù)據(jù),使4個(gè)崐8位數(shù)據(jù)的對(duì)應(yīng)位的1的個(gè)數(shù)為偶數(shù)。對(duì)于十六進(jìn)制的CF,D5和78,,所增
加的一個(gè)8位數(shù)據(jù)是_d_。對(duì)于十六進(jìn)制的25,4F和_e_,所增加的一個(gè)8
位數(shù)據(jù)是3C。
供選擇的答案
A、B、D、E:①F2 、冢担 ③3C 、埽罚 ⑤CF
⑥62 、撸常痢 、啵拢 ⑨4F 、猓模
C:①D5 ②F4 ③3A ④D5和F4、荩模岛停常
⑥F4和3A
試題6
考慮具有如下性質(zhì)的二叉樹(shù):除葉子結(jié)點(diǎn)外, ○n1 崐每個(gè)結(jié)點(diǎn)的值都大于其左子樹(shù)上的一切結(jié)點(diǎn)的值, / \ 崐并小于等于其右子樹(shù)上的一切結(jié)點(diǎn)的值。 ○n2 ○n3
現(xiàn)把9個(gè)數(shù)1,2,3,4…8,9填入右圖 / \ \
所示的二叉樹(shù)的9個(gè)結(jié)點(diǎn)中,并使之具有上述性質(zhì) ○n4 ○n5 ○n6崐此時(shí),n1的值是_a_,n2的值是_b_,n9的 / \ \ 崐值是_c_,F(xiàn)欲把√ ̄10放入此樹(shù)并使該樹(shù)保持 ○n7 ○n8 ○n9 崐前述性質(zhì),增加的一個(gè)結(jié)點(diǎn)可以放在_g_或_e_。
供選擇的答案
A~C:①1 ②2 ③3 ④4 ⑤5 ⑥6 ⑦7 ⑧8 、幔埂
D、E:①N1下面 ②N8下面 ③N9下面 ④N6下面
⑤N1與N2之間 ⑥N2與N4之間 ⑦N5與N9之間 ⑧N3與N6之間
試題7
假設(shè)一個(gè)十六位機(jī)的某存貯單元存放著數(shù)1101101101001000,崐求該數(shù)在下列表示法下所代表的含義(若為小數(shù)時(shí),4舍五入后保留小數(shù)點(diǎn)后六位):
、僮鳛樵a表示十進(jìn)制有符號(hào)整數(shù)(其中最高位為符號(hào)位)時(shí),其值為_(kāi)_a__。
、谌粞赜么髮(xiě)英文字母A到V來(lái)記錄32進(jìn)制數(shù),其表示的相應(yīng)32進(jìn)制正整崐數(shù)為_b_。
③若采用定點(diǎn)數(shù)記數(shù)法(原碼,其最高位為符號(hào)位,小數(shù)點(diǎn)在最左面),其崐對(duì)應(yīng)的十進(jìn)制小數(shù)為_c_。
④若采用以下浮點(diǎn)數(shù)記數(shù)法
15 。保础 。保病。保薄。保啊 。
┏━━━┳━━━━━━┳━━━┳━━━━━━━━━━━━━━━┓
┃階符 ┃ 階 碼 ┃ 尾符 ┃ 尾 數(shù) ┃
┗━━━┻━━━━━━┻━━━┻━━━━━━━━━━━━━━━┛
階碼用移碼表示, 底數(shù)為2;尾數(shù)用碼表示時(shí), 該數(shù)對(duì)應(yīng)的十進(jìn)制數(shù)為_(kāi)_D__。
⑤該數(shù)的低字節(jié)若視為ASCII 碼, 所代表的字符為_(kāi)_E__。
供選擇的答案
A: (1)--55510 (2)--23368 (3)--18762 (4)56136
B: (1)1KP8 (2)1MQ8 (3)DB48 (4)1IAA
C: (1)--0.286865 (2)--0.713135 (3)--0.572571 (4)0.233685
D: (1)--13.125 (2)--0.073735 (3)--13.421875 (4)--18.875
E: (1)J (2)A (3)H (4)h
試題8
從供選擇的答案中選出應(yīng)填入下述關(guān)于計(jì)數(shù)器的敘述中─────內(nèi)的正確答崐案,把編號(hào)寫(xiě)在答卷的對(duì)應(yīng)欄內(nèi)。
下圖是一個(gè)由三個(gè)D型觸發(fā)器構(gòu)成的非標(biāo)準(zhǔn)計(jì)數(shù)器。(D型觸發(fā)器有如下性質(zhì):每崐來(lái)一個(gè)時(shí)鐘脈沖CK,就將觸發(fā)器D輸入端的狀態(tài)送入該觸發(fā)器。Q端反映的就是觸發(fā)崐器的狀態(tài),而Q端則是其反映狀態(tài)。)
S3 S2 S1
│ ┌──┐┌──┤ ┌──┐ ┌──┤
┏┷━━━━━┷┓ ││ ┏┷━━━━┷━┓│ │ ┏┷━━━━━━┓
┃Q Q'┃ ││ ┃Q Q' ┃│ │ ┃Q Q' ┃
┃D ┃ ││ ┃D ┃│ │ ┃D ┃
┗┯━━━━━┯┛ ││ ┗┯━━━━┯━┛│ │ ┗┯━━━━━┯┛
CK──┼─────┴──┼┼──┼────┴──┼──┼──┼─────┘
┏━┷━┓ ││┏━┷━┓ │ │┏━敁┿敋━┓
┗┯━┯┛ 與 門(mén) ││┗┯━┯┛ 與 門(mén) │ │┗┯┷┯┛ 或 門(mén)
│ └───────┼┘ │ │ └──┼─┘ │
└─────────┼──┼─┴─────────┘ │
└──┴───────────────┘
若初始狀態(tài)為S3S2S1,則時(shí)鐘脈沖CK到來(lái)后依次得到的下五個(gè)狀態(tài)為:
__a__ __b__ __c__ __d__ __e__
供選擇的答案
A─E:①000 、冢埃埃薄 、郏埃保啊 、埽埃保
、荩保埃啊 、蓿保埃薄 、撸保保啊 、啵保保
試題9
一般情況下,指令由__a__和操作數(shù)地址碼兩部分組成。利用堆棧進(jìn)行運(yùn)算的崐指令可以不設(shè)置__b__。
浮點(diǎn)運(yùn)算指令對(duì)用于__c__的計(jì)算機(jī)是十分必要的,而十進(jìn)制運(yùn)算指令對(duì)有大崐量I/O數(shù)據(jù)的用于__d__的計(jì)算機(jī)更為合適。
移位指令屬于__e__類(lèi)指令。
供選擇的答案
A、B:① 指令碼 、凇〉刂反a 、鄄僮鞔a 、苄r(yàn)碼
C、D:① 事務(wù)處理 ② 科學(xué)計(jì)算 、酃I(yè)控制 、茌o助教學(xué)
。牛孩佟≥斎/輸出 ② 傳送 、圻\(yùn)算 、芸刂
試題10
從供選擇的答案中選出應(yīng)填入下述關(guān)于磁盤(pán)的敘述中__內(nèi)的正確答案,把編崐號(hào)寫(xiě)在答卷的對(duì)應(yīng)欄內(nèi)。
某磁盤(pán)格式化為24扇區(qū)和20磁道。該盤(pán)能按需要選擇順時(shí)針旋轉(zhuǎn)。各種操崐作執(zhí)行時(shí)間如下:
盤(pán)旋轉(zhuǎn)一圈時(shí)間=360ms
讀一塊數(shù)據(jù)時(shí)間=1ms
該盤(pán)上存有三個(gè)文件:
文件A--在磁道6、扇區(qū)1占有2塊
文件B--在磁道2、扇區(qū)5占有5塊
文件C--在磁道5、扇區(qū)3占有3塊
那么,該盤(pán)的平均等待時(shí)間最接近于_A_ms,平均搜索時(shí)間最接近于_B_m崐s。若磁頭移動(dòng)和盤(pán)轉(zhuǎn)動(dòng)不同時(shí)進(jìn)行,并且磁頭初始位置在磁道0,扇區(qū)0,以順崐序CBA讀出上述三個(gè)文件,總的時(shí)間接近于_C_ms。同樣初始位置情況下,崐讀出上述三文件的最短時(shí)間接近于_D_ms。此時(shí)文件讀出順序?yàn)椋撸牛摺?/FONT>
A-D:① 2.3 ② 5 ③ 7.5 ④ 15 ⑤ 50
⑥ 75 ⑦ 90 ⑧ 105 ⑨ 119 ⑩ 169
E:①。粒拢 ② ACB ③。拢粒 ④。拢茫痢、荩茫粒
試題11
從供選擇的答案中選出應(yīng)填入下列英語(yǔ)文句中__內(nèi)的正確答案,把編號(hào)寫(xiě)在崐答卷的對(duì)應(yīng)欄內(nèi)。
Software products may be _A_ into four basic types: application progr崐ams, programming language processors, operating systems, and system util崐ities.
Application programs atr prograns that _B_ useful tasks such as solvi崐ng statistical problems, or keeping your company's books.
Programming language processors are programs that _C_ the use if a co崐mputer language in a computer system. They are tools for the developmen崐t of application programs.
Operation systems are programs that _D_ the system resources and enab崐le you to run application programs.
System utilities are special programs that _E_ the usefulness of or 崐add capabilities to a computer.
供選擇的答案
A-E:①manage ②perform ③ support ④ reduce
、 divided ⑥ enhance ⑦ implemented ⑧ introduce
、 ranked ⑩ run
試題12
從供選擇的答案中選出應(yīng)填入下列英語(yǔ)文句中__內(nèi)的正確答案,把編號(hào)寫(xiě)在崐答卷的對(duì)應(yīng)欄內(nèi)。
Here is a useful procedure for choosing a program:
1. Study the features of all the programs you might choose _A_. Deci崐de which features you need, which you would _B_, and which you can do yo崐ur jobs wichout.
2. Eliminate the prograns that clearly do not _C_ you needs.
3. Consider how the remaining programs perform the functions you will崐 use most often. This can affect a program's usability more than all th崐e "nice" features that you will _D_ need.
4. Study the remaining programs carefully - with _E_ experince if you崐 can get it - and decide which one is best for you.
供選擇的答案
A:① for ② on ③ in ④ from
B、C:① meet ② require ③ help ④ give
⑤ choose ⑥ like
D、E:① often ② seldom ③ always ④ rich
⑤ hands-on ⑥ little
試題15
從供選擇的答案中選出應(yīng)填入下列敘述中───── 內(nèi)的正確答案,把編號(hào)寫(xiě)崐在答案的對(duì)應(yīng)欄內(nèi)。
編譯系統(tǒng)一般可分成──A──,──B──,──C──,──D── 和"崐目標(biāo)代碼生成"等五大部分,其中──A──,──B── 和"目標(biāo)代碼生成"三部崐分是每個(gè)編譯程序必不可少的,而──C──,──D── 則是可有可無(wú)的。許崐多編譯程序?qū)ⅸぉぃ俩ぉぁ【幹瞥梢粋(gè)子程序,在──B── 的分析過(guò)程中根據(jù)需崐要調(diào)用──A──,并且把──B── 和──C── 二部分結(jié)合起來(lái),邊分析邊崐產(chǎn)生有關(guān)內(nèi)容。此外,這五個(gè)部分在工作過(guò)程中都會(huì)涉及到表格處理和──E──。
供選擇的答案
A─E:① 詞法分析 、凇∽兞糠治觥 、邸(shù)據(jù)分析 、堋≌Z(yǔ)法分析
、荨∵^(guò)程分析 、蕖〕鲥e(cuò)處理 、摺(yōu)化處理 、唷”磉_(dá)式處理
、帷≈虚g代碼生成
試題16
從供選擇的答案中,選出應(yīng)填入下列有關(guān)方程組的敘述中───── 內(nèi)的正崐確答案,把編號(hào)寫(xiě)在答案的對(duì)應(yīng)欄內(nèi)。
。. 方程組 ax+by=1 有唯一的充要條件是──A──。
bx+ay=2
2 如果直線(xiàn)。幔猓悖剑埃ǎ,b,c都不為0)不通過(guò)第一象限,崐那么a,b,c應(yīng)該滿(mǎn)足條件──B──。
下午試題
[程序說(shuō)明]
已知某數(shù)的前二項(xiàng)為2和3,其后繼項(xiàng)根據(jù)當(dāng)前最后二項(xiàng)的乘積按下列規(guī)則生成
(1)若乘積為一位數(shù),則該乘積即為數(shù)列的后繼項(xiàng);
。ǎ玻┤舫朔e為二位數(shù),則該乘積的十位數(shù)和個(gè)位數(shù)依次作為數(shù)列的兩個(gè)后繼項(xiàng)。
本程序輸出該數(shù)列的前n項(xiàng)以及它們的和。其中,函數(shù)sum(n,pa)返回
數(shù)列的前n項(xiàng)之和,并將生成的前n項(xiàng)存放于首指針為pa的數(shù)組中。程序中規(guī)定
輸入的n值必須大于2并且不超過(guò)給定的常數(shù)值MAXNUM。
列如:若輸入n值為10,則程序輸出如下內(nèi)容:
sum(10)=44
2 3 6 1 8 8 6 4 2 4
[程序]
#include <stdio.h>
#define MAXNUM 100
int sum(n,pa)
int n,*pa;
{ int count,total,temp;
*pa=2;
____________________ =3;
total=5; count=2;
while (count++<n)
{ temp=*(pa-1)**pa;
if (temp<10)
{ total+=temp;
*(++pa)=temp;
}
else
{
_______________ =temp/10;
total+=*pa;
if (count<n)
{ count++;pa++;
_______________________=temp%10;
total+=*pa;
}
}
}
___________________________;
}
main ()
{ int n,*p,*q,num[MAXNUM];
do {printf("Input N=? (2<N<%d):",MAXNUM+1);
scanf("%d",&n);
} while ( ___________________ );
printf("\nsum(%d)=%d\n",n,sum(n,num));
for (p=num,q= ________________ ;p<q;p++) printf("%4d",*p);
printf("\n");
}
[程序說(shuō)明]
本程序?qū)δ畴姶a文(原文)進(jìn)行加密形成密碼文.其加密算法如下:
假定原文為C1C2C3...Cn,加密后形成的密文為S1S2S3...Sn,首先讀入
正整數(shù)Key(Key>1)作為加密鑰匙,并將密文字符位置按順時(shí)針?lè)较蜻B成一個(gè)環(huán),
如下圖所示:
┏━Sn━━S1━┓
Sn-1 S2
┃ ┃
┃ S3
┃ ┃
┗....━━S4━┛
加密時(shí)從S1位置起順時(shí)針計(jì)數(shù),當(dāng)數(shù)到第Key個(gè)字符位置時(shí),將原文中的字符放入
該密文字符位置中,同時(shí)從環(huán)中除去該字符位置;接著從環(huán)中下一個(gè)字符位置起
繼續(xù)計(jì)數(shù),當(dāng)再次數(shù)到第Key個(gè)字符位置時(shí),將原文中字符C2放入其中,并從環(huán)中
除去該字符位置;依次類(lèi)推,直至n個(gè)原文字符全部放入密文環(huán)中.由此產(chǎn)生的S1S2
...Sn即為原文的密文.
例如,當(dāng)Key=3時(shí),原文: THIS IS AN DECODING SYSTEM 的密文為:
AOTGNHEDI YS D IMIETSNC SS
當(dāng)Key=4時(shí),該原文的密文為:
SSDTYD HTEGIASISCNM E ION
本程序?qū)㈦姶a的原文存放在字符數(shù)組old中,加密鑰匙存放在整數(shù)Key中.函數(shù)decode
用于將原文old加密并返回密文字符數(shù)組的首指針.其中函數(shù)采用一個(gè)雙向循環(huán)鏈表
CODE來(lái)表示密文環(huán).函數(shù)strlen用于計(jì)算一個(gè)字符串中的字符個(gè)數(shù)(不包括字符串結(jié)
尾符'\0').為了簡(jiǎn)單起見(jiàn),程序中假設(shè)內(nèi)存容量足以滿(mǎn)足動(dòng)態(tài)存貯單元分配的要求.
[程序]
#include <stdio.h>
#include <alloc.h>
#define CR 13
typedef struct node
{ char ch;
struct node *forward; /* Link to next node. */
struct node *backward;/* Link to previous node.*/
} CODE;
main()
{ char _________ ,old[256];
int strlen(),key,num=0;
printf("\nPlease input the telegraph: \n")l
while (num<255&&(old[num++]=getch())!=CR);
old[ ______ ]='\0';
do { printf("\nPlease input Key=?(Key>1):");
scanf("%d",&key);
} while (key<=1);
printf("\nThe decode of telegraph:'%s' is:\n'%s'\n",
old,decode(old,key));
}
char *decode(old,key)
char *old; int key;
{ char *new; int length,count,i;
CODE *loop,*p;
length=strlen(old);
loop=( _______ ) malloc(length*sizeof(CODE));
for (i=1;i<length-1;i++)
{ loop[i].forward=&loop[i+1];
loop[i].backward=&loop[i-1];
}
loop[0].backward=&loop[length-1];
loop[0].forward=&loop[1];
loop[length-1].forward=loop;
loop[length-1].backward=&loop[length-2];
for (p=loop,i=0;i<length;i++)
{ for (count=1;count<key;count++)
p= _____ ;
p->ch=*old++;
p->backward->forward= _________ ;
p->forward->backward= _________ ;
p=p->forward;
}
new=(char *)malloc((length+1)*sizeof(char));
for (i=0;i<length;i++) new[i]=loop[i].ch;
new[length]='\0';
return (new);
}
int strlen(s)
char *s;
{ int len=0;
while ( ________ !='\0') len++;
return( len);
}
[程序說(shuō)明]
本程序?qū)⒁粋(gè)給定漢字的點(diǎn)陣逆時(shí)針旋轉(zhuǎn)90度,并輸出旋轉(zhuǎn)前后的點(diǎn)陣數(shù)據(jù)及字形.
附圖是漢字"轉(zhuǎn)"字的16*16點(diǎn)陣字形,用數(shù)字'0'表示空白位置,用數(shù)字'1'表示非空
白位置,"轉(zhuǎn)"字的第一行機(jī)即可表示成如下的{0,1}序列:
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0
如果把它看作一個(gè)字的16個(gè)BIT,"轉(zhuǎn)"字的第一行可以用16進(jìn)制數(shù)的1040來(lái)表示.同
理,"轉(zhuǎn)"字的第二行可以表示為1040,第三行可以表示為1048,...等等.依次類(lèi)推,用
16個(gè)雙字節(jié)整型數(shù)即可存放一個(gè)漢字點(diǎn)陣字形."轉(zhuǎn)"字的點(diǎn)陣數(shù)據(jù)及字形如附圖的
左半部分所示.將一個(gè)漢字逆時(shí)針旋轉(zhuǎn)90度,就是把該漢字點(diǎn)陣的最右列作為旋轉(zhuǎn)后
點(diǎn)陣的第一行,次右列作為旋轉(zhuǎn)后點(diǎn)陣的第二行,...,來(lái)形成一個(gè)旋轉(zhuǎn)后的點(diǎn)陣字形.
附圖的右半部分就是將"轉(zhuǎn)"字旋轉(zhuǎn)90度后的點(diǎn)陣數(shù)據(jù)和字形.
程序中,數(shù)組old中存放著"轉(zhuǎn)"字的點(diǎn)陣數(shù)據(jù).函數(shù)turnleft將該點(diǎn)陣數(shù)據(jù)逆時(shí)針旋
轉(zhuǎn)90度,旋轉(zhuǎn)后的點(diǎn)陣數(shù)據(jù)存放在數(shù)組new中.函數(shù)display將旋轉(zhuǎn)前后的點(diǎn)陣數(shù)據(jù)加
以編輯,用字符'.'表示值為0的Bit,用字符'X'表示值為1的Bit,從而將旋轉(zhuǎn)前后的點(diǎn)
陣按行輸出其16進(jìn)制數(shù)據(jù)及字形,如同附圖所表示的那樣.
[附圖]
1040 ...X.....X...... 0000 ................
1040 ...X.....X...... 0200 ......X.........
1048 ...X.....X..X... 1640 ...X.XX..X......
FDFC XXXXXX.XXXXXXX.. 32E0 ..XX..X.XXX.....
2040 ..X......X...... 1259 ...X..X..X.XX..X
2844 ..X.X....X...X.. 1246 ...X..X..X...XX.
4BFE .X..X.XXXXXXXXX. FE44 XXXXXXX..X...X..
7C80 .XXXXX..X....... 13C8 ...X..XXXX..X...
0888 ....X...X...X... 1240 ...X..X..X......
09FC ....X..XXXXXXX.. 0200 ......X.........
1C08 ...XXX......X... 1120 ...X...X..X.....
E810 XX.X.......X.... 17FF ...X.XXXXXXXXXXX
4890 .X..X...X..X.... F120 XXXX...X..X.....
0860 ....X....XX..... 1D10 ...XXX.X...X....
0820 ....X.....X..... 1318 ...X..XX...XX...
0810 ....X......X.... 1010 ...X.......X....
[程序]
#define <stdio.h>
#define EMPTY '.'
#define NONEMPTY 'X'
#define LEFT 0
#define RIGHT 1
main ()
{ static unsigned old[16]=
{0x1040,0x1040,0x1048,0xFDFC,0x2040,0x2844,
0x4BFE,0x7C80,0x0888,0x09FC,0x1C08,0xE810,
0x4890,0x0860,0x0820,0x0810
};
unsigned new[16];
trunleft(old,new);
display(old,new);
}
turnleft(old,new)
unsigned old[],new[];
{ int row,k;
for (row=0;row<16;row++)
for (k=0,______ ;k<16;k++)
new[row]|=((old[k]>> _______ ) &1) << _______ ;
}
display(old,new)
unsigned *old,*new;
{
char out[2][17],letter[2];
int row,col;
letter[0]=EMPTY;
letter[1]=NONEMPTY;
out[LEFT][16]=out[RIGHT][16]=______;
for (row=0;row<16;row++,old++,new++)
{ for (col=0;col<16;++col)
{ out[LEFT][col]=letter[ ( __________) &1];
out[RIGHT][col]=letter[ (__________) &1];
}
printf("\n %4x %s ",*old,&out[LEFT][0]);
printf(" %4x %s",*new,&out[RIGHT][0]);
}
}
new[16]=______;
for (row=0;row<16;row++,old++,new++)
{
for (col=0;col<16;++col)
{ out[LEFT][col]=letter[ ( __________) &1];
out[RIGHT][col]=letter[ (__________) &1];
}
printf("\n %4x %s ",*old,&out[LEFT][0]);
printf(" %4x %s",*new,&out[RIGHT][0]);
}
}
轉(zhuǎn)帖于:軟件水平考試_考試吧
- 推薦給朋友
- 收藏此頁(yè)
·2008年下半年軟考信息系統(tǒng)項(xiàng)目管理師試題(下午II) (2008-12-21 22:39:30)
·2008年下半年計(jì)算機(jī)軟考網(wǎng)絡(luò)工程師試題(下午) (2008-12-21 22:26:13)
·2008下半年軟考系統(tǒng)分析師考試試題(下午)II (2008-12-21 22:20:49)
·2008年下半年計(jì)算機(jī)軟考程序員試題(下午) (2008-12-21 22:18:18)
·2008年下半年計(jì)算機(jī)軟考程序員試題(上午) (2008-12-21 22:11:38)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。