版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、初級(jí)程序員下午試題模擬61試題一 1、【算法說(shuō)明】 某英漢詞典文件包含N個(gè)記錄(N1),每個(gè)記錄有兩個(gè)字段:一個(gè)是英文單詞,另一個(gè)是相應(yīng)的漢語(yǔ)解釋。各個(gè)記錄按英文單詞的詞典順序排列,各英文單詞并不重復(fù)。 本算法用于維護(hù)、更新該英漢詞典文件。維護(hù)、更新的方法是:首先輸入一個(gè)英文單詞及其漢語(yǔ)解釋?zhuān)缓笤谠撛~典中查找輸入的英文單詞,若找到,則用輸入的漢語(yǔ)解釋更新原有的解釋?zhuān)蝗粽也坏?,則需要將輸入的英文單詞及其漢語(yǔ)解釋插入到該詞典的適當(dāng)位置,使各記錄仍按英文單詞的詞典順序排列。 【算法】 第一步 讀入英漢詞典文件,并將讀入的N個(gè)英文單詞依次存放在字符串?dāng)?shù)組ENG中,將相應(yīng)的漢語(yǔ)解釋依次存放在字符串?dāng)?shù)組
2、CN中。數(shù)組元素CN(i)給出了數(shù)組元素ENG(i)的解釋。 第二步 輸入英文單詞及其漢語(yǔ)解釋?zhuān)瑢⑺鼈兎謩e存放在字符串變量E和C中。若E為空串或都是空格,則轉(zhuǎn)向第四步。 第三步 根據(jù)變量E的值,用二分法在數(shù)組ENG中查找。具體步驟如下: 11L,NH2INT(L+H)/2)K3. 若E=ENG(K),則CCN(K),轉(zhuǎn)向第二步 若EENG(K),則K-1 (1) ;若EENG(K),則K+1 (2)4. 若HL則 對(duì)I=N,L,-1(始值,終值,增量)循環(huán)執(zhí)行: ENG(I)ENG(I+1) CN(I)CN(I+1)然后,將E和C分別存入 (3) 和 (4) ,N+1N最后轉(zhuǎn)向第二步否則,轉(zhuǎn)向
3、 (5)第四步 將數(shù)組ENG和CN輸出,形成新的英漢詞典文件,算法結(jié)束。 試題二 說(shuō)明函數(shù)void convert(char *a,int n)是用遞歸方法將一個(gè)正整數(shù)n按逆序存放到一個(gè)字符數(shù)組a中,例如n=123,在a中的存放為3、2、1。 函數(shù)2.1void convert(char *a,int n)int i;if(i=n/10)! =0)convert( 2 ,i);*a= 3 ;函數(shù)2.2說(shuō)明函數(shù)int index(char *s,char *t)檢查字符串s中是否包含字符串t,若包含,則返回t在s中的開(kāi)始位置(下標(biāo)值),否則返回-1。 函數(shù)2.2int index(char *s
4、, char *t)inti,j=0;k=0; for(i=0; si!=0;i+) for( 4 ;(tk!=0)(sj!=0) ( 5 );j+,k+); if( 6 )return(i);return(-1);試題三 7、【說(shuō)明】 函數(shù)diff的功能是:根據(jù)兩個(gè)由整數(shù)(都大于-32768)按升序構(gòu)成的單鏈表L1和L2(分別由A, B指向)構(gòu)造一個(gè)單鏈表L3(由*r指向),要求13中的所有整數(shù)都是L1,并且不是 L2中的整數(shù),還要求L3中的所有整數(shù)都兩兩不等。 【函數(shù)】 #include malloc. h typedef struct node int d;struct node * n
5、ext Node;void diff(Node *A,Node * B,Node * * r)int lastnum;Node * p;*r = NULL;if( !A. return;while( (1) )if(A-d B -d)lastnum =A - d;p= ( Node * ) malloc( sizeof(Node) ); p-d = lastnum;p-next= *r; (2) ; doA = A - next; while( (3) );else if(A-d B-d) B=B- next;else (4) ;lastnum=A - d;while ( A & A-d =
6、= lastnum) A=A- next;whileA.lastnum=A-d;p=( Node * ) malloc( sizeof(Node) ); p- d = lastnum; (5) ;*r=p;while (A & A-d = = lastnum) A=A-next;試題四 8、【說(shuō)明】 從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請(qǐng)編寫(xiě)程序,其功能是:以行為單位把字符串中所有小寫(xiě)字母。左邊的字符串內(nèi)容移到該串的右邊存放,然后把小寫(xiě)字母。刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放。最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組XX 中, 最后調(diào)用函數(shù)WRITED
7、AT(),把結(jié)果XX輸出到文件 OUT5.DAT中。 例如:原文:You can create an index on any field. you have the correct record.結(jié)果:n any field. Yu can create an index rd. yu have the crreet res原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。 【函數(shù)】 #include stdio.h #include string.h #include conio.h #include ctype.h #includemem.h unsigned ch
8、ar xx50 80 int maxline=0;int readdat(void); void writedat(void)*將題目要求的字符串中所有小寫(xiě)字母o左邊的字符串內(nèi)容移到誼串的右邊存放,即將串中 “最后”一個(gè)字母o左右兩側(cè)的內(nèi)容互換* void StrOR(void)inti;char*p1,* p2,t80; for(i=0;imaxline;i+)t0=/0;p2=xxi;while(*p2)/*找到最后一個(gè)別o*/if( (1) )p1=p2; p2+;strcat(t,p1+1);*p1=0; strcat(t,xxi); p1=xxi;p2=t;while(*p2)/*刪
9、去字符o*/if( (2) ) (3) =*p2; p2+; (4) ;void main()clrscr();if(readdat()printf(Cant open the file IN. DAT!n); return; StrOR();writedat();int readdat(void)FILE * fp; int i=0; char * p;if(fp=fopen(in.dat,r )=NULL) return 1;while(fgets(xxi,80, fp)!=NULL)p=strchr(xxi,n); if(p)*p=0; i+;maxline: (5) ; fclose(
10、fp); return 0;void writedat (void)FILE * fp; int i;fp=fopen(in.dat,w); for(i=0;imaxline;i+)printf(%sn,xxi);fprintf(fp, %sn,xxi);fclose(fp);試題五 9、Vsual Basic 程序代碼Private Sub CmdSelect_Cliek() For i = O To List2.ListCount - 1If Listl.Text = List2.List(i) Then Exit Sub不要重復(fù)選擇Next iList2.Addltem (1) 在Lis
11、t2中增添List1中所選的項(xiàng) End SubPrivate Sub CrndSelAll_Click()List2.Clear先刪除List2中的 已有項(xiàng) For i = 0 To(2)對(duì)List1中所有各項(xiàng)做循環(huán)處理 List2.Addltem(3)將該項(xiàng)增添到 List2中 Next i End SubPrivate Sub CmdDelete_Cliek()If List2.Listlndex = O Then如果List2中有選 中的項(xiàng),List2.Removeltem(4)則刪除所選的項(xiàng) End If End SubPrivate Sub CmdDelAll_Cliek() (5)
12、End Sub答案:試題一 1、(1)H(2)L(3)ENG(L)或等價(jià)表達(dá)式 (4)CN(L)或等價(jià)表達(dá)式 (5)(2)解析 H,L分別是二分法查找的上界和下界,所以(1)和(2)應(yīng)分別填入H,L。(3)和(4)處是將L 之后的元素依次后移以后,將E和C分別存入L處,所以(3)和(4)處應(yīng)分別填入ENG(L)和CN(L)或其他等價(jià)表達(dá)式,比如ENG(H+1)。(5)處是HL,這說(shuō)明查找表未空,需要轉(zhuǎn)向(2)繼續(xù)查找。 試題二 2、a+13、n%10+04、j=i,k=05、tk=sj6、tk=0或!tk解析 函數(shù)1采用遞歸方法將一個(gè)正整數(shù)n按逆序存放到一個(gè)字符數(shù)組a中,遞歸調(diào)用為conver
13、t(a+1,i),所以空(1)填a+1。按逆序輸出字符保存在數(shù)組a中為*a_n%10+0,即空(2) 填n%10+0。 函數(shù)2檢查字符串s中是否含有字符串t是在for循環(huán)中實(shí)現(xiàn)的???3)應(yīng)填j=i,k=0。如果兩個(gè)字符串中含有相同的字符,則字符串s和字符串t都指向下一個(gè)字符,循環(huán)繼續(xù),直到字符串t結(jié)束。所以空(4)應(yīng)填tk=sj,空(5)應(yīng)填tk=0或!tk。 試題三 7、(1)A&B(2)*r=p(3)A&A-d=lastnum (4)B=B-next(5)p-next=*r解析 函數(shù)的功能在函數(shù)說(shuō)明中已經(jīng)講得很清楚了,這里就不再重復(fù)。程序的思路是:從鏈表A取一個(gè)元素和鏈表B中第一個(gè)元素進(jìn)
14、行比較,如果鏈表A元素小于鏈表B的元素,則將鏈表A中元素插入到鏈表C中,指針后移,在后移時(shí)要 所有相同元素;如果鏈表A元素大于鏈表B的元素,將鏈表B 指針后移;如果鏈表A元素等于鏈表B的元素,鏈表A和鏈表B的指針都向后移,而且要 鏈表A中所有相同元素。當(dāng)鏈表A和鏈表B都沒(méi)有結(jié)束時(shí),循環(huán)執(zhí)行上述操作。如果鏈表B已經(jīng)到鏈尾,但鏈表A 沒(méi)有結(jié)束,則將鏈表A中的剩余元素加入到鏈表C中,同時(shí)也要所有相同元素。 根據(jù)上面的分析,(1)空處需要填寫(xiě)循環(huán)條件,顯然是鏈表A沒(méi)有結(jié)束,而且鏈表B也沒(méi)有結(jié)束, 即“A!=NULL&B!=NULL”或其等價(jià)形式。 (2) 空所在的語(yǔ)句塊是處理鏈表A元素小于鏈表B的元素
15、的情況,需要將鏈表A中元素插入到鏈表C中,在它的前一條語(yǔ)句已經(jīng)把這個(gè)結(jié)點(diǎn)后繼指針指向鏈表C的第一個(gè)結(jié)點(diǎn),這里需要將鏈表C的第一個(gè)結(jié)點(diǎn)設(shè)置成該結(jié)點(diǎn),即“*r=p”。 (3) 空處所在dowhile循環(huán)的目的是所有相同元素,需要寫(xiě)出這個(gè)循環(huán)的條件,顯然是當(dāng)一個(gè)結(jié)點(diǎn)的值不等于剛剛插入的結(jié)點(diǎn)的值或鏈表A已經(jīng)到了鏈尾時(shí)就要退出循環(huán)。因此(3)空處應(yīng)填寫(xiě)“A! =NULL&A-d=lastnum”及其等價(jià)形式。 (4) 空所在語(yǔ)句塊是處理鏈表A元素等于鏈表B元素的情況,鏈表A和鏈表B的指針都向后移,而 且要鏈表A中所有相同元素。鏈表A的指針向后移已經(jīng)寫(xiě)出,因此,(4)空應(yīng)填寫(xiě)“B=B-next”。 (5)
16、 空所在while循環(huán)是處理鏈表B已經(jīng)到鏈尾,但鏈表A沒(méi)有結(jié)束的情況。這時(shí)需要將鏈表A中的剩余元素加入到鏈表C中,插入的方法和(2)空處所在語(yǔ)句塊插入方法一致。(5)空需將要插入結(jié) 點(diǎn)的指針域指向鏈表C的頭指針*r,因此(5)空處應(yīng)填寫(xiě)“p-next=*r”。 試題四 8、(1) *p2=o(2) *p2!=o(3) *p1+(4) *p1=02 (5) i解析 在主函數(shù)中,首先調(diào)用函數(shù)READDAT(),從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中,用變量maxline表示文章的行數(shù),所以(5)空應(yīng)填入“i”。 函數(shù)STROR()的功能是將字符串中所有小寫(xiě)字母。左邊的字符串內(nèi)容
17、移到該串的右邊存放,即先將串中“最后”一個(gè)字母。左右兩側(cè)的內(nèi)容互換,再刪去所有的小寫(xiě)字母o。第一個(gè)while()循環(huán)的作用是讓p1指向最后一個(gè)字母o,所以(1)空應(yīng)填入“*p2=o”。第一個(gè)stmat()函數(shù)的作用是將p1以后的字符都放到新串t中。第二個(gè) strcat()函數(shù)的作用是將p1以前的字符連接到新串t 的后面(注意:在此之前要讓p1所指的單元成為p1前面字符串的結(jié)束位置*p1=/0)。這時(shí)完成左右互換。最后個(gè)while()循環(huán)的作用是刪除新串中的所有小寫(xiě)字母o,采用的刪除方法是不是o 的字母一律留下,否則不留(即相當(dāng)于刪除),所以(2)空應(yīng)填入“*p2!=o,而p1指向這一行的開(kāi)始,
18、且每次賦值后值必須加1,所以(3)空應(yīng)填入“* P1 +”。復(fù)制完所有不是o的字母后還要加一個(gè)字符串結(jié)束標(biāo)記,所以(4)空應(yīng)填入“* p1=0”。 最后通過(guò)調(diào)用函數(shù)WRITEDAT()把結(jié)果xx輸出到文件中。 試題五 9、(1)Listl.Text(2) Listl.ListCount-(3) Listl.List(i)(4) List2.Lisfindex(5) List2.Clear解析 本題涉及常用的列表框技術(shù)。列表框常用的屬性如下: ListCount列表框內(nèi)的數(shù)據(jù)項(xiàng)個(gè)數(shù)List(o),List(1),. 列表框中從上到下各個(gè)數(shù)據(jù)項(xiàng)內(nèi)容Text 列表框中當(dāng)前選中的數(shù)據(jù)項(xiàng)內(nèi)容 Listl
19、ndex列表框中當(dāng)前選中的數(shù)據(jù)項(xiàng)的序號(hào)列表框常用的方法如下: AddItem列表框尾部增加一個(gè)數(shù)據(jù)項(xiàng)(參數(shù)給出數(shù)據(jù)項(xiàng)內(nèi)容) RemoveItem列表框中刪除指定的數(shù)據(jù)項(xiàng)(參數(shù)給出待刪的數(shù)據(jù)項(xiàng)序號(hào))Clear刪除列表框中的全部數(shù)據(jù)項(xiàng) 本題中有兩個(gè)列表框List1和List2,以及四個(gè)按鈕。 按鈕“”的功能是將列表框List1中選中的一個(gè)數(shù)據(jù)項(xiàng)復(fù)制到列表框List2的尾部。 List1中當(dāng)前所選的數(shù)據(jù)項(xiàng)內(nèi)容是List1.Text。為避免重復(fù),在復(fù)制前,應(yīng)先判斷它是否已經(jīng)位于List2 中。List2中,已有的數(shù)據(jù)項(xiàng)個(gè)數(shù)為L(zhǎng)ist2.ListCount。各個(gè)數(shù)據(jù)項(xiàng)內(nèi)容為: List2List(O), List2List(1),因此可以用循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)這種比較。如果發(fā)現(xiàn)重復(fù),則退出該過(guò)程(不再?gòu)?fù)制)。將Listl.Text復(fù)制到List2的尾部,可以用如下語(yǔ)句實(shí)現(xiàn): List2Addltem Listl,Text因此,(1)處應(yīng)填寫(xiě)Listl.Text。 如果List1中沒(méi)有選中任何數(shù)據(jù)項(xiàng),則上述復(fù)制語(yǔ)句自動(dòng)作為空語(yǔ)句執(zhí)行。 注意,如果不修改列表框?qū)傩浴癕ultiSelect”的默認(rèn)值(O)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨國(guó)采購(gòu)合同文本
- 經(jīng)典招標(biāo)文件樣本
- 聯(lián)盟經(jīng)營(yíng)協(xié)議書(shū)的簽訂
- 肉豬飼料交易合同
- 食品供貨合同格式模板
- 居間服務(wù)合同買(mǎi)方權(quán)益保護(hù)建議
- 鋼筋工勞務(wù)分包協(xié)議書(shū)樣本
- 網(wǎng)絡(luò)技術(shù)外包合同模板
- 招標(biāo)采購(gòu)文件模板分享
- 石材配件采購(gòu)合同
- 公司領(lǐng)導(dǎo)班子績(jī)效考核表格
- 衛(wèi)浴產(chǎn)品銷(xiāo)售訂貨單Excel模板
- 保安隊(duì)排班表
- (完整版)第二章-鑄鐵的結(jié)晶及組織形成課件
- SparkCCD6000操作規(guī)程操作版分解
- 工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)(2002年修訂本)
- EN779-2012一般通風(fēng)過(guò)濾器——過(guò)濾性能測(cè)定(中文版)
- 計(jì)量經(jīng)濟(jì)學(xué)論文
- 勞務(wù)分包的施工方案
- 實(shí)習(xí)律師申請(qǐng)表(模板)
- 電氣裝置安裝工程接地裝置施工及驗(yàn)收規(guī)范
評(píng)論
0/150
提交評(píng)論