《面向?qū)ο蟪绦蛟O(shè)計》課程作業(yè)_第1頁
《面向?qū)ο蟪绦蛟O(shè)計》課程作業(yè)_第2頁
《面向?qū)ο蟪绦蛟O(shè)計》課程作業(yè)_第3頁
《面向?qū)ο蟪绦蛟O(shè)計》課程作業(yè)_第4頁
《面向?qū)ο蟪绦蛟O(shè)計》課程作業(yè)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1 面向?qū)ο蟪绦蛟O(shè)計課程作業(yè)作業(yè) 1:是非題 1. 頭文件中一般存放著變量和常量的定義、函數(shù)的原型以及類的定義。( ) 2. 程序的編譯是以文件為單位的,因此將程序分到多個文件中可以減少每次對程序修改所帶來的編譯工作量。( ) 填空題下面是一個求數(shù)組元素之和的程序。主程序中定義并初始化了一個數(shù)組,然后計算該數(shù)組各元素的和,并輸出結(jié)果。函數(shù)sum計算數(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; 閱讀理解題寫出下列程序的運行結(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; 回答以下問題: 1. 程序的運行結(jié)果是

3、什么樣的? 2. 為什么文件file2.cpp中要包含頭文件? 3. 在函數(shù) main() 中是否可以直接調(diào)用函數(shù)g() ?為什么? 4. 如果把文件file1.cpp中的兩個函數(shù)定義的位置換一下,程序是否正確?為什么? 5. 文件 file1.cpp和 file2.cpp中的變量i 的作用域分別是怎樣的?在程序中直接標出兩個變量各自的作用域。編程題寫一個函數(shù),完成在鏈表末尾增加一個節(jié)點的操作。函數(shù)的原型為:node * addnode(node * & head, int newdata); 其中,鏈表節(jié)點的定義如下:struct node int data; / 存放數(shù)據(jù)node

4、* next; / 指向鏈表中的下一個節(jié)點; 函數(shù)參數(shù): 函數(shù)的第一個參數(shù)head 指向鏈表的第一個節(jié)點,如果鏈表為空,則 head的值為 null 。第二個參數(shù) newdata為要插入的新節(jié)點中存放的數(shù)據(jù)。函數(shù)返回值: 當成功地插入新的節(jié)點時,函數(shù)返回指向新節(jié)點的指針,否則,如果不能申請到內(nèi)存空間,則返回null 。node * addnode(node *& head, int newdata) / 在這里寫出函數(shù)的實現(xiàn) 作業(yè) 2:是非題 1. 在不同作用域中的變量可以同名。 2. 派生類的成員函數(shù)可以直接訪問基類的所有成員。填空題 #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; 改錯題 1. 下面的函數(shù)將浮點型指針參數(shù)para 所指向的值賦給一個局部指針變量pfloat所指向的空間,然后輸出*pfloat的值。#include void func(float * para) float * pfloat; pfloat = para; cout pfloat;

6、 錯誤為: _改正方法為 :_ _ 2. 下列程序片段對二維數(shù)組的每個元素賦值unsigned short somearray54; for (int i = 1; i=5; i+) for (int j = 1; j=4; j+) somearrayij = i+j; 錯誤為: _ 改正方法為:_ _ 編程題寫一個函數(shù),找出給定字符串中小寫字母字符的個數(shù)。函數(shù)的原型為: int calcalpha(char *str); 函數(shù)參數(shù) : str為所要處理的字符串;函數(shù)返回值 :所給字符串中小寫字母字符的個數(shù)int calcalpha(char *str) /在這里寫上程序的實現(xiàn)4 作業(yè) 3:是

7、非題 1. 函數(shù)的參數(shù)和返回值類型可以是簡單數(shù)據(jù)類型,也可以是指針、引用、數(shù)組和類。 2. 如果派生類的成員函數(shù)的原型與基類中被定義為虛函數(shù)的成員函數(shù)原型相同,那么,這個函數(shù)自動繼承基類中虛函數(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+的標準模板庫中的一個類模板,類模板的每個實例類實現(xiàn)了某個具體的數(shù)據(jù)類型的數(shù)組,如valarray是一個整型的數(shù)組類。該類的使用和一般的數(shù)組非常類似,可以通過 運算符來訪問數(shù)組中的每個元素。c+的標準模板庫中還有一個模板函數(shù)abs() ,其函數(shù)原型為: template valarray abs(const valarray & x); 該函數(shù)的作用是將作為參數(shù)的數(shù)組x 的每個元素的值取絕對值,并返回得到的新的數(shù)組。如原來的數(shù)組為:4 -1 -3 0 -34 將這個數(shù)組作為參數(shù)傳遞給函數(shù)abs 后,函數(shù)返回的數(shù)組就變成:4 1

9、 3 0 34 要求:閱讀下列程序,回答后面的問題。5 /*/ #include #include /該頭文件中定義了模板類valarray和模板函數(shù)abs() #define array_size 10 typedef valarray intvalarray; void main() intvalarray val_array(array_size); /定義一長度為array_size 的數(shù)組對象/ 賦初始值 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; /*/ 問題 1:寫出程序的輸出結(jié)果問題 2:關(guān)于程序中的語句:intva

11、larray val_array(array_size); 下列說法哪些是正確的,哪些是錯誤的?在下表相應(yīng)的位置寫上“對”或“錯”題號a b c d e 對/ 錯(a)該語句定義了一個對象val_array,這個對象是類valarray的實例(b)該語句說明了一個函數(shù)原型,函數(shù)的名字為val_array,參數(shù)為array_size ,函數(shù)的返回值類型為intvalarray (c)板類 valarray一定有一個只帶一個參數(shù)的構(gòu)造函數(shù)(d)模板類valarray一定有一個只帶兩個參數(shù)的構(gòu)造函數(shù)(e)array_size 將作為參數(shù)傳遞給val_array的構(gòu)造函數(shù),初始化val_array對象

12、6 問題 3:(本小題共12 分)下面是模板函數(shù)abs() 的實現(xiàn)。這個實現(xiàn)中有錯誤,指出錯誤并寫出正確的實現(xiàn)。注意:函數(shù)頭是正確的,不要改變,所有的錯誤出現(xiàn)在函數(shù)體中。template valarray abs(const valarray& x) for(int i=0; ix.size(); i+) if(xi0) xi*=-1; return x; 這個函數(shù)實現(xiàn)中有以下錯誤:(1)_ (2)_ (3)_ 正確的函數(shù)實現(xiàn)應(yīng)為:template valarray abs(const valarray& x) 問題 4:(本小題3 分)從上面的程序中,你可以推斷出,valar

13、ray模板類中至少重載了哪個或哪些c+ 的運算符?答:重載了 _ 運算符編程題寫一個函數(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ù)對應(yīng)的類型不同又要求參數(shù)個數(shù)不同。 2. 在基類中被說明為虛函數(shù)的類的成員

14、函數(shù)必須在每個派生類中說明為虛函數(shù),才能具有多態(tài)的特征。編程題一、 定義一個日期類date,該類對象存放一個日期,可以提供的操作有:int getyear ();/ 取年份int getmonth ();/ 取月份int getday ( );/ 取日子值void setdate (int year, int month, int day) ; / 設(shè)置日期值下面是測試你所定義的日期類的程序: #include #include “ date.h ” void main() date d1(1999, 1, 14); / 用所給日期定義一個日期變量date d2; / 定義一個具有缺省值的日期

15、, 缺省值為 1980 年 1 月 1 日date d3(d1); / 用已有日期x 構(gòu)造一個新對象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)寫出日期類的完整定義,其中,三個get 函數(shù)寫成內(nèi)聯(lián)函數(shù)形式,setdate 寫成非內(nèi)聯(lián)函數(shù)形式。所有數(shù)據(jù)成員都定義為私有成員。注意構(gòu)造函數(shù)的三種形式。(2)寫出程序的運行結(jié)果8 (3)

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論