版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 面向?qū)ο蟪绦蛟O(shè)計(jì)課程作業(yè)作業(yè) 1:是非題 1. 頭文件中一般存放著變量和常量的定義、函數(shù)的原型以及類的定義。( ) 2. 程序的編譯是以文件為單位的,因此將程序分到多個(gè)文件中可以減少每次對(duì)程序修改所帶來(lái)的編譯工作量。( ) 填空題下面是一個(gè)求數(shù)組元素之和的程序。主程序中定義并初始化了一個(gè)數(shù)組,然后計(jì)算該數(shù)組各元素的和,并輸出結(jié)果。函數(shù)sum計(jì)算數(shù)組元素之和。填充程序中不完整的部分。_ int sum(int ,int); void main() int ia5 = 2,3,6,8,10; ; sumofarray = sum(ia,5); cout sum of array: sumofa
2、rray endl; int sum(int array,int len) int isum = 0; for(int i = 0; ; ) ; return isum; 閱讀理解題寫出下列程序的運(yùn)行結(jié)果: /file1.cpp static int i = 20; int x; static int g(int p) return i + p; void f(int v) x=g(v); 2 /file2.cpp #include extern int x; void f(int); void main() int i=5; f(i); cout x; 回答以下問(wèn)題: 1. 程序的運(yùn)行結(jié)果是
3、什么樣的? 2. 為什么文件file2.cpp中要包含頭文件? 3. 在函數(shù) main() 中是否可以直接調(diào)用函數(shù)g() ?為什么? 4. 如果把文件file1.cpp中的兩個(gè)函數(shù)定義的位置換一下,程序是否正確?為什么? 5. 文件 file1.cpp和 file2.cpp中的變量i 的作用域分別是怎樣的?在程序中直接標(biāo)出兩個(gè)變量各自的作用域。編程題寫一個(gè)函數(shù),完成在鏈表末尾增加一個(gè)節(jié)點(diǎn)的操作。函數(shù)的原型為:node * addnode(node * & head, int newdata); 其中,鏈表節(jié)點(diǎn)的定義如下:struct node int data; / 存放數(shù)據(jù)node
4、* next; / 指向鏈表中的下一個(gè)節(jié)點(diǎn); 函數(shù)參數(shù): 函數(shù)的第一個(gè)參數(shù)head 指向鏈表的第一個(gè)節(jié)點(diǎn),如果鏈表為空,則 head的值為 null 。第二個(gè)參數(shù) newdata為要插入的新節(jié)點(diǎn)中存放的數(shù)據(jù)。函數(shù)返回值: 當(dāng)成功地插入新的節(jié)點(diǎn)時(shí),函數(shù)返回指向新節(jié)點(diǎn)的指針,否則,如果不能申請(qǐng)到內(nèi)存空間,則返回null 。node * addnode(node *& head, int newdata) / 在這里寫出函數(shù)的實(shí)現(xiàn) 作業(yè) 2:是非題 1. 在不同作用域中的變量可以同名。 2. 派生類的成員函數(shù)可以直接訪問(wèn)基類的所有成員。填空題 #include 3 _a_; void mai
5、n() int a6=2,4,8,6,9,14; int x1=_b_; /調(diào)用 f1 函數(shù)求出a 中前 4 各元素之和。 int x2=f1(a,6); coutx1 x2endl; int f1(int a, int n) int i,s=0; for(i=0;in;i+) s+=ai; return s; 改錯(cuò)題 1. 下面的函數(shù)將浮點(diǎn)型指針參數(shù)para 所指向的值賦給一個(gè)局部指針變量pfloat所指向的空間,然后輸出*pfloat的值。#include void func(float * para) float * pfloat; pfloat = para; cout pfloat;
6、 錯(cuò)誤為: _改正方法為 :_ _ 2. 下列程序片段對(duì)二維數(shù)組的每個(gè)元素賦值unsigned short somearray54; for (int i = 1; i=5; i+) for (int j = 1; j=4; j+) somearrayij = i+j; 錯(cuò)誤為: _ 改正方法為:_ _ 編程題寫一個(gè)函數(shù),找出給定字符串中小寫字母字符的個(gè)數(shù)。函數(shù)的原型為: int calcalpha(char *str); 函數(shù)參數(shù) : str為所要處理的字符串;函數(shù)返回值 :所給字符串中小寫字母字符的個(gè)數(shù)int calcalpha(char *str) /在這里寫上程序的實(shí)現(xiàn)4 作業(yè) 3:是
7、非題 1. 函數(shù)的參數(shù)和返回值類型可以是簡(jiǎn)單數(shù)據(jù)類型,也可以是指針、引用、數(shù)組和類。 2. 如果派生類的成員函數(shù)的原型與基類中被定義為虛函數(shù)的成員函數(shù)原型相同,那么,這個(gè)函數(shù)自動(dòng)繼承基類中虛函數(shù)的特性。填空題 #include _a_; int f2(int* a, int n) _ b_; for(i=1;in;i+) if(maxai) max=ai; return max; void main() int bmm=3,12,6,20,9,7,34,50,25,66; _c_; /求出 b4 至 b8 之間的最大值并賦給x1 _d_; /求出 b0 至 b5 之間的最大值并賦給x2 cou
8、tx1 x2endl; 閱讀理解題二、valarray是 c+的標(biāo)準(zhǔn)模板庫(kù)中的一個(gè)類模板,類模板的每個(gè)實(shí)例類實(shí)現(xiàn)了某個(gè)具體的數(shù)據(jù)類型的數(shù)組,如valarray是一個(gè)整型的數(shù)組類。該類的使用和一般的數(shù)組非常類似,可以通過(guò) 運(yùn)算符來(lái)訪問(wèn)數(shù)組中的每個(gè)元素。c+的標(biāo)準(zhǔn)模板庫(kù)中還有一個(gè)模板函數(shù)abs() ,其函數(shù)原型為: template valarray abs(const valarray & x); 該函數(shù)的作用是將作為參數(shù)的數(shù)組x 的每個(gè)元素的值取絕對(duì)值,并返回得到的新的數(shù)組。如原來(lái)的數(shù)組為:4 -1 -3 0 -34 將這個(gè)數(shù)組作為參數(shù)傳遞給函數(shù)abs 后,函數(shù)返回的數(shù)組就變成:4 1
9、 3 0 34 要求:閱讀下列程序,回答后面的問(wèn)題。5 /*/ #include #include /該頭文件中定義了模板類valarray和模板函數(shù)abs() #define array_size 10 typedef valarray intvalarray; void main() intvalarray val_array(array_size); /定義一長(zhǎng)度為array_size 的數(shù)組對(duì)象/ 賦初始值 for (int i = 0; i array_size; i+) val_arrayi = -i; cout size of val_array = val_array.size
10、() n; cout the values of val_array before calling abs():n; for (i = 0; i array_size; i+) cout val_arrayi ; cout n; intvalarray abs_array = abs(val_array); cout the result of val_array after calling abs():n; for (i = 0; i array_size; i+) cout abs_arrayi ; cout n; /*/ 問(wèn)題 1:寫出程序的輸出結(jié)果問(wèn)題 2:關(guān)于程序中的語(yǔ)句:intva
11、larray val_array(array_size); 下列說(shuō)法哪些是正確的,哪些是錯(cuò)誤的?在下表相應(yīng)的位置寫上“對(duì)”或“錯(cuò)”題號(hào)a b c d e 對(duì)/ 錯(cuò)(a)該語(yǔ)句定義了一個(gè)對(duì)象val_array,這個(gè)對(duì)象是類valarray的實(shí)例(b)該語(yǔ)句說(shuō)明了一個(gè)函數(shù)原型,函數(shù)的名字為val_array,參數(shù)為array_size ,函數(shù)的返回值類型為intvalarray (c)板類 valarray一定有一個(gè)只帶一個(gè)參數(shù)的構(gòu)造函數(shù)(d)模板類valarray一定有一個(gè)只帶兩個(gè)參數(shù)的構(gòu)造函數(shù)(e)array_size 將作為參數(shù)傳遞給val_array的構(gòu)造函數(shù),初始化val_array對(duì)象
12、6 問(wèn)題 3:(本小題共12 分)下面是模板函數(shù)abs() 的實(shí)現(xiàn)。這個(gè)實(shí)現(xiàn)中有錯(cuò)誤,指出錯(cuò)誤并寫出正確的實(shí)現(xiàn)。注意:函數(shù)頭是正確的,不要改變,所有的錯(cuò)誤出現(xiàn)在函數(shù)體中。template valarray abs(const valarray& x) for(int i=0; ix.size(); i+) if(xi0) xi*=-1; return x; 這個(gè)函數(shù)實(shí)現(xiàn)中有以下錯(cuò)誤:(1)_ (2)_ (3)_ 正確的函數(shù)實(shí)現(xiàn)應(yīng)為:template valarray abs(const valarray& x) 問(wèn)題 4:(本小題3 分)從上面的程序中,你可以推斷出,valar
13、ray模板類中至少重載了哪個(gè)或哪些c+ 的運(yùn)算符?答:重載了 _ 運(yùn)算符編程題寫一個(gè)函數(shù),找出給定字符串中具有最大ascii 碼的字符。如字符串“world ”中字符 w具有最大的 ascii 碼。函數(shù)的原型為: char maxcharacter(char *str); 函數(shù)參數(shù): str 指向所要處理的字符串;7 函數(shù)返回值:如果str不空,則返回具有最大ascii 碼的字符,否則返回空字符 0 x0 或 0 。char maxcharacter(char *str) 作業(yè) 4:是非題 1. 函數(shù)重載既要求兩函數(shù)參數(shù)對(duì)應(yīng)的類型不同又要求參數(shù)個(gè)數(shù)不同。 2. 在基類中被說(shuō)明為虛函數(shù)的類的成員
14、函數(shù)必須在每個(gè)派生類中說(shuō)明為虛函數(shù),才能具有多態(tài)的特征。編程題一、 定義一個(gè)日期類date,該類對(duì)象存放一個(gè)日期,可以提供的操作有:int getyear ();/ 取年份int getmonth ();/ 取月份int getday ( );/ 取日子值void setdate (int year, int month, int day) ; / 設(shè)置日期值下面是測(cè)試你所定義的日期類的程序: #include #include “ date.h ” void main() date d1(1999, 1, 14); / 用所給日期定義一個(gè)日期變量date d2; / 定義一個(gè)具有缺省值的日期
15、, 缺省值為 1980 年 1 月 1 日date d3(d1); / 用已有日期x 構(gòu)造一個(gè)新對(duì)象d2.setdate(1999,3,13); cout date:; cout d1.getyear() . d1.getmonth() . d1.getday() endl; cout date:; cout d2.getyear() . d2.getmonth() . d2.getday() endl; cout date:; cout d3.getyear() . d3.getmonth() . d3.getday() endl; 要求:(1)寫出日期類的完整定義,其中,三個(gè)get 函數(shù)寫成內(nèi)聯(lián)函數(shù)形式,setdate 寫成非內(nèi)聯(lián)函數(shù)形式。所有數(shù)據(jù)成員都定義為私有成員。注意構(gòu)造函數(shù)的三種形式。(2)寫出程序的運(yùn)行結(jié)果8 (3)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版苗圃苗木線上線下銷售渠道合作協(xié)議4篇
- 2025年度個(gè)人房產(chǎn)抵押貸款還款協(xié)議書(shū)模板4篇
- 2025年度航空航天模具研發(fā)制造合同4篇
- 二零二五版豪華車型購(gòu)車指標(biāo)使用權(quán)租賃協(xié)議3篇
- 2025年物業(yè)廣告位租賃與環(huán)保理念推廣合作協(xié)議3篇
- 2025版企業(yè)內(nèi)部員工技能培訓(xùn)學(xué)員協(xié)議3篇
- 2025年環(huán)保打印機(jī)購(gòu)銷合同綠色環(huán)保版4篇
- 個(gè)人招標(biāo)工作心得:2024年實(shí)踐與思考3篇
- 二零二五年度航空器租賃合同租賃期限與維護(hù)保養(yǎng)責(zé)任4篇
- 2025年農(nóng)業(yè)大棚租賃與智能灌溉系統(tǒng)安裝合同4篇
- 開(kāi)展課外讀物負(fù)面清單管理的具體實(shí)施舉措方案
- 2025年云南中煙工業(yè)限責(zé)任公司招聘420人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025-2030年中國(guó)洗衣液市場(chǎng)未來(lái)發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 2023年江蘇省南京市中考化學(xué)真題
- 供電副所長(zhǎng)述職報(bào)告
- 校園欺凌問(wèn)題成因及對(duì)策分析研究論文
- 技術(shù)支持資料投標(biāo)書(shū)
- 老年人意外事件與與預(yù)防
- 預(yù)防艾滋病、梅毒和乙肝母嬰傳播轉(zhuǎn)介服務(wù)制度
- 《高速鐵路客運(yùn)安全與應(yīng)急處理》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論