版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2007下半年程序員考試真題及答案試題一(共15分)閱讀以下說明和流程圖,填補流程圖中的空缺(1)(5),將解答填入答題紙的對應(yīng)欄內(nèi)。說明某單位動態(tài)收集的數(shù)據(jù)中常包含重復(fù)的數(shù)據(jù),所以需要進行處理,使得重復(fù)的數(shù)據(jù)僅 出現(xiàn)一次。下面流程圖的功能是:在n ( n> 1)個數(shù)據(jù)D、D2、D中,選出其中所有不重復(fù)的k個數(shù)據(jù),置于原來前 k個數(shù)據(jù)的位置上。該流程圖的算法如下:第 1個數(shù)據(jù)必然被選出,然后從第2個數(shù)據(jù)開始,逐個考察其余的數(shù)據(jù)。假設(shè)D、C2、D/mA 1)是已經(jīng)選出的、不重復(fù)的數(shù)據(jù),則對于數(shù)據(jù)D(m<iw n), 將其依次與Dm 6-1、D進行比較,若沒有發(fā)現(xiàn)與之相同者,則D被選出
2、并置于Dn+1的位置上;否則對D不做處理。例如,如下10個數(shù)據(jù):(n=10)5, 2, 2,乙 4, 4, 7, 1, 9, 1經(jīng)過上述算法處理后的結(jié)果為:I(k=6)2. M .DM+1 M J M+15, 2, 7, 4, 1, 9 流程圖1 .:處理數(shù)據(jù)Di主控/循環(huán)開始_、 j:,1, -1循環(huán)結(jié)束/返回注:循環(huán)開始的說明按照“循環(huán)變量名:循環(huán)初值,循環(huán)終值,增量”格式描述。試題二(共15分)閱讀以下說明和 C語言函數(shù),將應(yīng)填入n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。說明count_5_13(intyear)用于計算給定的年指既是 13日又是星期五的日期。year的1月13日是星期幾,然后依
3、次計算已知1900年1月1日是星期一,下面的函數(shù) 份year中有幾個“黑色星期五”?!昂谏瞧谖濉焙瘮?shù)count_5_13(int year)首先算出年份每個月的13日是星期幾,若是星期五,則計數(shù)。,其功能是判斷給定年份是否為閏年,返回程序中使用了函數(shù)isLea pY ear(i nt year)值為1(或0)分別表示year是(或不是)閏年。C語言函數(shù)int cou nt_5_13(i nt year)為0表示星期日,為16分別表示星期一至星期六*/記錄天數(shù)*/用于表示黑色星期五的個數(shù)*/int date; /* datelong days = 0; /* daysint m, y, c =
4、 0; /* cif (year < 1900) return -1;/*計算從1900年1月1 days = 12;for (y = 1900; y < year; y+) days += 365;if (isLea pY ear(y)_date = (days % 7) + 1) % 7; /* c = (2) date=5) ? 1 : 0;for(m = 1;( 3)m < 12; m+) switch (m) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break;case
5、 4: case 6: case 9: case 11:days = 30; break; case 2: days = 28;if ( year%400=0丄 days = 29;break;/* end of switch*/date =(days % 7) +if (date = 5) c+; /* end of for*/return c;日起,至給定年份 year的1月13日間隔的天數(shù)*/(1) days+,days+=1,days=days+1 ;算出給定年份year的1月13日是星期幾*/(4) isLeapYear(year)或 year%4=0 && year
6、%100!=0 |(5) date 丄 7;試題三(共15分)閱讀以下說明和 C語言程序,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。說明,現(xiàn)將某用戶某電信公司記錄了每個用戶的詳細通話情況(每次通話數(shù)據(jù)記錄在一行)某月的通話數(shù)據(jù)存入一個文本文件“dial.txt ”,其數(shù)據(jù)格式如下:撥入或撥出標(biāo)記通話開始時間通話結(jié)束時間對方號碼注1 :數(shù)據(jù)字段以一個空格作為分隔符。注2:撥入和撥出標(biāo)記均為小寫字母。撥入標(biāo)記為“i ”,表示其他用戶呼叫本機,本機用戶不需付費;撥出標(biāo)記為“0”,表示本機呼叫其他用戶,此時本機用戶需要付費。注3:通話開始和結(jié)束時間的格式均為:HH:MM:SS其中HH表示小時,取值
7、0023 ;MM表示分鐘,取值0059; SS表示秒,取值0059。從通話開始到結(jié)束這段時間稱為通話 時間,假定每次通話時間以秒為單位,最短為1秒,最長不超過 24小時。注4 :跨月的通話記錄計入下個月的通話數(shù)據(jù)文件。23 時 01例如“ 0 23:01:12 00:12:15”表示本次通話是本機呼叫其他用戶,時間從分12秒至次日的0時12分15秒,通話時間為 71分03秒。下面程序的功能是計算并輸出該用戶本月電話費(單位:元)。通話計費規(guī)則為:1. 月通話費按每次通話費累加;2. 每次的通話費按通話時間每分鐘0.08元計算,不足1分鐘時按1分鐘計費。對于每次的撥出通話,程序中先分別計算出通話
8、開始和結(jié)束時間相對于當(dāng)日0點0分0秒的時間長度(以秒為單位),然后算出本次通話時間和通話費。例如,若輸入文件 dial.txt的數(shù)據(jù)如下所示,則輸出 fee = 7.44 。o 14:05:23 14:11:25 82346789i 15:10:00 16:01:15o 10:53:12 11:07:05 63000123o 23:01:12 00:12:15C程序代碼#in clude <stdio.h>FILE *fin;int mai n()char str80;int h1,h2,m1,m2,s1,s2;long t_st
9、art,t_e nd, in terval; in t c;double fee = 0;fin = fopen( "dial.txt",T'); if (!fin)return -1;if (!fgets(str,80,fi n) break;if (1) str0 = 'i',或 *str = 'i' ) con ti nue;h1 = (str2 - 48) * 10 + str3 - 48; m1 = (str5 - 48) * 10 + str6 - 48;s1 = (str8 - 48) * 10 + str9 - 48;
10、h2 = (str11 - 48) * 10 + str12 - 48;m2 = (str14 - 48) * 10 + str15 - 48;s2 = (str17 - 48) * 10 + str18 - 48;t_start = h1*60*60 + m1*60 + s1; /*t_end = h2*60*60 + m2*60 + s2; /*通話開始時間*/通話結(jié)束時間*/(2) t_end < t_start ) /*(3) 24*60*60 _-_t_start + t_end;if (in terval =elsein terval = t_end - t_start;若通
11、話開始和結(jié)束時間跨日*/c =(4) interval / 60 ;/if (in terval % 60)(5) c+, c+=1, c=c+1計算完整分鐘數(shù)表示的通話時間*/fee += c * 0.08;fclose(fi n);prin tf("fee = %.2lfn",fee); return 0;試題四(共15分)閱讀以下說明和 C語言函數(shù),將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。說明已知包含頭結(jié)點(不存儲元素)的單鏈表的元素已經(jīng)按照非遞減方式排序,函數(shù) compress(NODE *head)的功能是去掉其中重復(fù)的元素,使得鏈表中的元素互不相同。處理過程
12、中,當(dāng)元素重復(fù)出現(xiàn)時,保留元素第一次出現(xiàn)所在的結(jié)點。圖4-1(a)、(b)是經(jīng)函數(shù)compress()處理前后的鏈表結(jié)構(gòu)示例圖。head1323->1 23T 35AheaI p->j 13十I 231 ”35(b)圖4-1鏈表的結(jié)點類型定義如下:typ edef struct Node int data;struct Node *n ext;NODE;C語言函數(shù)void comp ress(NODE *head) NODE *p tr,*q;ptr =( 1) head -> next ;上取得第一個元素結(jié)點的指針*/while ( 2) ptr && pt
13、r -> next) q = ptr -> n ext;while(q &&( 3)q->data = ptr->data或 ptr->next->data = ptr->data ) /*處理重復(fù)元素*/(4) ptr -> next = q -> next;free(q);q = ptr -> n ext;(5) ptr = ptr -> next;/* end of while */* end of comp ress */從下列3道試題(試題五至試題七)中任選1道解答。如果解答的試題數(shù)超過 1道,則題號小
14、的1道解答有效。試題五(共15分)閱讀下列說明、圖和 C+弋碼,回答問題1至問題3,將解答寫在答題紙的對應(yīng)欄內(nèi)。 說明已知四個類之間的關(guān)系如圖5-1所示,分別對每個類的方法進行編號,例如Shape 的Rectangle 類的 perimeter() 為 2 號,p erimeter方法都為虛函數(shù)且方法簽Shape1:p erimeterO2:p erimeterOfA3:height()5:p erimeter()4:p erimeterOSquare圖5-1類圖P erimeter() 方法為 1 號,表示為“ 1:p erimeter() ”, 表示為“2:perimeter() ”,依此
15、類推,其中,每個類的 名相同。tr tr tr tr tr sh sh sh sh sh問題2 寫“無”)。tr->height()sh->p erimeter()sq->height()sq->p erimeter()sh->height()tr->p erimeter()和和和和和(1)3(2)5(3)無(4)4(5)無(6)5C+代碼Trian gle *tr = new Tria ngle();Square *sq = new Square();Shape *sh = tr;問題1關(guān)于上述C+代碼中sh和tr的以下敘述中,哪兩個是正確的()。分別引用
16、同一個對象;分別引用同一類型的不同的對象; 分別引用不同類型的不同對象; 分別引用同一個對象的不同拷貝; 所引用的內(nèi)存空間是相同的。寫出下面消息對應(yīng)的方法編號(如果該消息錯誤或者沒有對應(yīng)的方法調(diào)用,請?zhí)顔栴}3不考慮內(nèi)存釋放問題,下列賦值語句中哪兩個是合法的(寫出合法賦值語句的 )。 sq = sh; sh = tr; tr = sq; sq = tr; sh = sq;試題六(共15分)閱讀以下應(yīng)用說明以及 Visual Basic程序代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。應(yīng)用說明某電視臺擬開發(fā)應(yīng)用程序來顯示戲曲大賽中14號四位選手決賽的現(xiàn)場投票情況。該程序從現(xiàn)場觀眾中(不超過 2
17、000人)每0.5秒收集一次對這四位選手的支持票數(shù),并在屏 幕上動態(tài)顯示這四位選手的票柱(以高度反映票數(shù))與累計得票數(shù),如圖6-1所示。投票過PK (如有多人獲得相同程限時30秒,每名觀眾最多為 1名選手投票。投票結(jié)束后系統(tǒng)通過比較各位選手的累計得 票數(shù),顯示決賽結(jié)果:“ *號勝出”(如有單個冠軍)或“繼續(xù)進行 的最高票數(shù))。亀戲曲大霎決賽現(xiàn)場«票情況初始票柱高度為0控件名類型用途初始屬性設(shè)置ShpM( 1 to 4 )形狀數(shù)組顯示各選手得票情況矩形,實心,高度 0txtM(1 to 4)文本框數(shù)組顯示各選手得票數(shù)0cmdStart命令按鈕啟動計票標(biāo)題:開始投票txtResult文本
18、框顯示決賽結(jié)果空Tim1計時器每半秒收集處理一次間隔時間0.5秒,關(guān)閉狀態(tài)在開發(fā)該程序的過程中創(chuàng)建的主要控件及其初始屬性值說明如下:該程序中設(shè)置公共變量T動態(tài)記錄投票時間。四個形狀ShpM( 1 to 4 )動態(tài)增長的底線固定。Visual Basic程序代碼Dim T As In teger'聲明全局變量Private Sub Form_Load()Fori = 1 To 4Shp M(i).Top = 2000 : Sh pM (i).Height = 0 'TxtM(i).Text = 0Next iTim1.E nabled = False : Tim1.I nterv
19、al = 500 : T = 0End SubPrivate Sub CmdStart_Click()Tim1.E nabled = TrueCmdStart.E nabled = False開始投票End SubPrivate Sub Tim1_Timer()Dim n(1 To 4) As In teger' n (1 to 4)Dim i As In teger, j As In tegerDim G As In tegerDim ng As In tegerFor i = 1 To 4n(i)=TxtM(i).Text = TxtM(i).Text + n(i)'Shp
20、 M(i).Top = Shp M(i).Top - n(i)Shp M(i).Height = Shp M(i).Height +Next i為每次收集的票數(shù)'G'ng用于計算最咼票數(shù)用于計算冠軍個數(shù)收集i號選手的票數(shù),此處省略 累計票(VB能進行自動轉(zhuǎn)換)(1) n(i)算出票柱高度T = T + 1'If T = 60 The n'(2) Tim1.Enabled = False計時投票時間到停止數(shù)據(jù)收集處理ng = 1G = TxtM(1).TextFori = 2 To 4If G < TxtM(i).Text The nG = TxtM(i).
21、Text ng =(3) 1_j = iElseIf G = TxtM(i).Text The n ng =End IfNext iIf ng = 1 The ntxtResult.Text =(4) ng + 1計算冠軍個數(shù)(5) Str$(j) + " 號勝出”,或 Str(j) + "單個冠軍結(jié)果號勝出"Else txtResult.Text ="End IfEnd IfEnd Sub繼續(xù)進行PK"試題七(共15分)閱讀下列說明、圖和Java代碼,回答問題1至問題3,將解答寫在答題紙的對應(yīng)欄內(nèi)。說明已知四個類之間的關(guān)系如圖7-1所示,分別
22、對每個類的方法進行編號,例如Shape的Perimeter() 為 1 號,表示為"1:perimeter()”,Rectangle 類的 perimeter() 為 2 號,表示為"2:perimeter()”,依此類推,其中,每個類的perimeter方法簽名相同。Sha pe1:p erimeterO2:p erimeterO4:p erimeterO圖7-13:height()5:p erimeter()類圖Java代碼Trian gle tr = new Trian gle();Square sq = new Square();Shape sh = tr;問題1關(guān)于上述Java代碼中sh和tr的以下敘述中,哪兩個是正確的()。分別引用同一個對象;分別引用同一類型的不同的對象; 分別引用不同類型的不同對象; 分別引用同一個對象的不同拷貝; 所引用的內(nèi)存空間是相同的。 sh sh sh sh sh問題2 寫“無”)。tr.height()sh. perimeter。sq.height()sq.p erimeter()sh.height()tr.p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度二手車買賣合同范本含車輛維修保養(yǎng)協(xié)議3篇
- 轉(zhuǎn)向拉桿課程設(shè)計
- 二零二五年度信息安全咨詢服務(wù)保密協(xié)議范本2篇
- 二零二五年度無人機采購安裝與培訓(xùn)合同3篇
- 二零二五年度工程車租賃及運輸服務(wù)合同3篇
- 二零二五年度合伙人聯(lián)合市場推廣協(xié)議
- 電力二次系統(tǒng)安全防護處置方案例文(2篇)
- 2025年小學(xué)二年級數(shù)學(xué)上冊教學(xué)工作總結(jié)(3篇)
- 2025年六年級上學(xué)期語文教師工作總結(jié)范文(2篇)
- 2025年畢業(yè)典禮教師演講稿范文(2篇)
- GB/T 24474.1-2020乘運質(zhì)量測量第1部分:電梯
- GB/T 1040.3-2006塑料拉伸性能的測定第3部分:薄膜和薄片的試驗條件
- 定崗定編定員實施方案(一)
- 河北省房屋建筑和市政基礎(chǔ)設(shè)施施工圖設(shè)計文件審查要點(版)
- 醫(yī)院院長年終工作總結(jié)報告精編ppt
- 綠化養(yǎng)護重點難點分析及解決措施
- “三排查三清零”回頭看問題整改臺賬
- 造價咨詢結(jié)算審核服務(wù)方案
- 中國人民財產(chǎn)保險股份有限公司機動車綜合商業(yè)保險條款
- 八年級物理上冊計算題精選(50道)
- 2022年脛骨平臺三柱理論
評論
0/150
提交評論