


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2012上半年程序員真題下午題試題一(共15分)閱讀以下說明和流程圖,填補流程圖中的空缺(1)(5).將解答填入答題紙的對應 欄內。【說明】己知數組Al:n中各個元素的值都是非零整數.其中有些元素的值是相同的(重復)。 為刪除其中重復的值,可先通過以F流程圖找出所有的重復值,并對所有重復值賦0標記. 該涼程圖采用了雙重循環.處理恿路:如果數組A某個元素的值在前面曾出現過.則該元素賦標記值0例如.假 設數組A的各元素之值依次為2, 5, 5, 1, 2, 5, 3.則經過該流程圖處理后,各元素之值 依次為 2 5, 0. 1, 0, 0. 3.【涼程圖】試題二(共15分)閱讀以卜說明、C程序代碼
2、和問題1至問題乳將解答寫在答題紙的對應欄內.【說明1】設在某C系統中為毎個字待型數據分配1個字節,為毎個整型(int)數據分配4個字 節.為每個指針分配4個字節,sizeof(x)用于計算為x分配的字節數.【C代碼】include <stdio.h>"include <string.h>int main() int arr(5H10# 20, 30;char mystr(=MJustAtestn"char eptr=mystr;printfC%d %d %dnMf sizeof(int)# sizeof(unsigned int), strlen(a
3、rr);printff*%d %dn", sizeof(char), sizeof(mystr);printff*%d %d %dn* sizeof(ptr), sizeof(*ptr)# strlen(ptr); return 0;)【說明2】const是C語言的一個關鍵字,可以用來定義“只讀”壁變雖。【問題1】(8分)詩寫出以上C代碼的運行結果。【問題2】(4分)(1) 請定義一個“只讀”型的整型常S size,并將其值初始化為10:(2) 請定義一個指向整型變雖a的指針ptr.使得ptr的值不陡修改.而ptr所指向的 目標變雖的值可以修改(即可以通過ptr間接修改整型變呈a的值
4、人注:無需給出整型變雖a的定義.【問題3】(3分)某C程序文件中定義的換數£如下所示,請簡要說明其中static的作用,以及形參表“const int arr( * 中 const 的作用.static int f(const int arr()/函數體內的語句省略7試題三(共15分)閱讀以下說明和C函數.填補C函數中的空缺(1)(6).將解答寫在答題紙的對應 欄內.【說明】tfinumberOfwords(char message)的功能是計算存儲在message字符數組中的一段英 文語句中的單詞數目,輸出每個單詞(單詞長度超過20時僅輸出其前20個字母).并計算 每個英文字母出現
5、的次數(即頻數),字母計數時不區分大小寫.假設英文語句中的單詞合乎規范(此處不考慮單詞的正確性),單詞不縮寫或省略,即 不會出現類似don-t形式的詞.單詞之后都為空格或標點符號.的數中判定單詞的規則是:(1)一個英文字母串是單詞:(2)一個數字串是單詞:(3)表示名詞所有格的撤號0與對應的單詞看作是一個單詞.除上述規則外.其他情況概不考電.例如.句子 MThe 1990's witnessed many changes in people's concepts of conservation. ” 中 有10個單詞,輸出如下:The1990'switnessedman
6、ychangesinpeople'sconceptsofconservation聞數numberOfwords中用到的部分標準庫換數如下表所述.兩數原型說明int islower(int ch);若ch表示一個小寫英文字母.則返回一個非0整數,否則返回0int isupper(int ch);若ch表示一個大寫英文字母.則返回一個非0蔡數,否則返回0int isalnum(int ch);若ch表示一個英文字母或數字字符,則返回一個非0整數,否則返回0int isalpha(int ch);若ch表示一個英文字母.則返回一個非0整數,否則返回0int isdigit(int ch);若
7、ch表示一個數字字符.則返回一個非0整數.否則返回0【C函數】int numberOfwords (char messaged)char wordbuffer21, i=0:/* i 用作 wordbuffer 的下標/(1) pstr;int ps26)=0;/ ps(0用于表示字母'A或0的頻數/ps用于表示字母®或b的頻數,依此類推/int wordcounter=0:pstr=message;while (*pstr) f( (2) (*ostrD /調用旳數判定是否為一個單詞的開頭字符/i=0;do/將一個單詞的字符逐個存入wordbufferd并進行字母計數*/
8、wordbufferi+=*pstr;if (isalpha (*pstr) if( ( 3) ( pstr) ps(*pstr-'a'+;else pslpstr-'A'*;(4) ;/* pstr指向下一字符/while (i<20 && (isalnum(*pstr)| | pstr=,");if(i>=20) /處理超長單詞(含名詞所有格形式/while (isalnum (*pstr)| | *pstr='") pstr+;)(5) ='0:/設迓暫存在wordbuffer中的單詞結尾/w
9、ordcounter"; /單詞計數/puts (wordbuffer); /* 輸岀單詞/ :/* pstr指向下一字符/return wordcounter;試題四(共15分)閱讀以下說明和C函數.填補C兩數中的空缺(1)(5),將解答寫在答題紙的對應 欄內.【說明】曲數SetDiff(LA,LB)的功陡是將LA與LB中的共有元素從LA中刪除,使得LA中僅保留與 LB不同的元素,而LB不變,LA和LB為含頭結點的單鏈表的頭指針.例如,單鏈表LA、LB的示例如下圖中的(a)、(b)所示,刪除與LB共有的元素后的 LA如F圖中的(C)所示.試題四<15分閱讀以下說明和C的數.埔
10、補C函數中的空缺<1) <5>>梅解答寫在答題紙的對應 欄內.【說明】由數SetDiff(LAAB)的功能是梅LA與LB中的共有元素從LA中刪除.使得LA中僅保留與 LB不同的元素.而LB不變.LA和LB為含頭結點的怕鏈表的頭捋針例如.單鏈表LA. LB的示例如F圖中的<a>.(b>所示.SH除與LB兀有的元素后的 LA如2陽中的<C>所示。儀友 的結點類型主文如下typedef struct Node int data;struct Node *next;Node# LinkList;函數 SetDiff(UnkUst LA, LinkL
11、ist LB)的處理也路如下z("從LA的第一個元素結點開始.令LA的第一個元素為當前元素.(2) 在LB中進行順序査找.査找與3的當前元素相同者.方法是令3的當前元素先 與LB的第一個元索進行比較.若相等.則結束在LB中的査找過程.否則繼續與LB的卜一 個元彖比較朿貝以上過程克到LB中的某一個元彖與LA的當前元未相等(表明戲找成功人 或者到達LB的表尾(表明査找失敗)為止.(3) 結束在LB表的一次査找后.若在LB中發現了與LA的當前元素相同者.則刪除LA的當前元素.否則保留LA的當前元素。(4) 取LA的下一個元素為當前元素瑜復(2). (3).血到LA的農加【C函數】void
12、SetDiff (UnkList LA, LinkList LB)LinkList pre, pa, pb;廠pa用于指向職鏈表LA的當前元索結點.pre指向"所指元索的前殛 V/ pb 0J于折問簞鏈衣LB的元索餡點/(1;廠開始時令"指向LA的第一個元素/pre=LA;while (pa) pb=LB->next;/莊LB中戲找與LA的當帕元素相同祈克到找到喊不到達表尾 Vwhile( (2)if (pa >data=pb->data)break; :If(lpb) P若任LB中沒有找到與LA中當前尤素相同者.則繼續考察LA的后續尤素/prepa;pa
13、»pa->next;elser 若住LB中找到與LA的當前元索相同打.則IM除LA的當前尤素 V pre->next= (4);free (pa);p=(5);試題五(共15分)閱讀以下說明和C*代碼填補O+代碼中的空缺(1)(6).將解答寫在答題紙的 對應欄內【說明】已知某公可按周給員工發放工資.其工資系統需記錄每名員工的員工號.姓名、工資等 信息.其中一些員工是止式的按年嶄分周發放(每年按52周計算):另一蘭員工是計時工. 以小時工資為基準.按毎周工作小時數核鼻發放。下面是實現該工資系統的C*代碼.其中定義了四個類:工資系統類PayRoll.員工類 Employee.
14、正式工類 Salaried 和計時工類 Hourlyt Salaried 和 Hourly 是 Employee 的 Jp類 【C卄代碼】頭文件和域名空間略 const int EMPLOYEE_NUM=5; class Employee 員工號員工姓名周發放工資protected:int empCode;string name; double salary; public:Employee(const int empCode, const string &name ) this->empCode=empCode; this->name=name;virtual Emplo
15、yee()virtual void pay()=0;double getSalary() return this>salary; ;class Salaried(1)private:double payRate; 年嶄public:Salaried(const int empCode, const string &namet double payRate):Employee (empCode, name) this->payRate=payRate;計算正式員工的周發放工資數void pay()this->salary= (2): cout«this->
16、;name « M:M «this->salary«endl;;class Hourly private:double payRate; int hours;小時工資數 周工作小時數public:Hourly (const int empCode const string &name, int hours, double payRate) :EmployeeCempCode, name) this->payRate=payRate; this->hours=hours;void pay() th is->sa I a ry= (4): 計算計時工的周發放工資數cout« this->name «« this->salary « endl;class Pay Roll public:void pay (Employeeee()(for (int i=0; ivEMPLOYEE.NUM; i*+) ei->pay();int main() Pay Roll payRolhnew PayRoll;(5) employees EMPLOYEE_NUM= new sa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB3707T 139-2025“社區微業”服務指南
- 動物飼料行業發展趨勢與市場機會分析
- 抽水蓄能電站建設可行性研究報告
- 每月工作成就的總結與分享計劃
- 學校社團工作計劃資源分配
- 影像科技術提升與工作計劃
- 前臺工作中的專業知識學習計劃
- 品牌創新中的消費者反饋機制計劃
- 促進師生互動的交流活動策劃計劃
- 幼兒園親子互動活動的效果分析計劃
- (三模)廣西2025屆高中畢業班4月份適應性測試 英語試卷(含答案解析)
- (四調)武漢市2025屆高中畢業生四月調研考試 物理試卷(含答案)
- 福建省部分地市校(福州廈門泉州三明南平莆田漳州)高三下學期3月質量檢測化學試題(原卷版)
- 2025年福建省能源石化集團有限責任公司招聘筆試參考題庫含答案解析
- (新湘科版)六年級下冊科學知識點
- TSG11-2020 鍋爐安全技術規程
- 《永遇樂(李清照)》(課堂PPT)
- 四川省2007年普通高校職教師資班和高職班對口招生統一考試
- 長輸管線焊材用量計算表
- 廣西藝術學院普通本科專業評估方案.
- 初中學生學籍表(2020年整理).doc
評論
0/150
提交評論