《面向?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、面向?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

2、:" << sumOfArray << endl;int sum(int array,int len)int iSum = 0;for(int i = 0; ; ) ;return iSum; 閱讀理解題 寫出下列程序的運行結(jié)果: / static int i = 20; int x; static int g(int p) return i + p; void f(int v) x=g(v); / #include <iostream.h> extern int x; void f(int); void main() int i=5; f(i);

3、 cout << x; 回答以下問題: 1. 程序的運行結(jié)果是什么樣的? 2. 為什么文件中要包含頭文件<iostream.h>? 3. 在函數(shù)main()中是否可以直接調(diào)用函數(shù)g()?為什么? 4. 如果把文件中的兩個函數(shù)定義的位置換一下,程序是否正確?為什么? 5. 文件和中的變量i的作用域分別是怎樣的?在程序中直接標出兩個變量各自的作用域。編程題 寫一個函數(shù),完成在鏈表末尾增加一個節(jié)點的操作。函數(shù)的原型為:Node * AddNode(Node * & head, int newData);其中,鏈表節(jié)點的定義如下:struct Node int data

4、;/存放數(shù)據(jù)Node * 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<iostream.h> _

5、A_; void main() int a6=2,4,8,6,9,14; int x1=_B_; /調(diào)用f1函數(shù)求出a中前4各元素之和。 int x2=f1(a,6); cout<<x1<<' '<<x2<<endl; int f1(int a, int n) int i,s=0; for(i=0;i<n;i+) s+=ai; return s; 改錯題 1. 下面的函數(shù)將浮點型指針參數(shù)para所指向的值賦給一個局部指針變量pFloat所指向的空間,然后輸出*pFloat的值。#include <iostream.h&

6、gt;void func(float * para) float * pFloat; pFloat = para; cout << pFloat;錯誤為:_改正方法為:_ 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為

7、所要處理的字符串;函數(shù)返回值:所給字符串中小寫字母字符的個數(shù)int CalcAlpha(char *str)/在這里寫上程序的實現(xiàn) 作業(yè)3:是非題 1. 函數(shù)的參數(shù)和返回值類型可以是簡單數(shù)據(jù)類型,也可以是指針、引用、數(shù)組和類。 2. 如果派生類的成員函數(shù)的原型與基類中被定義為虛函數(shù)的成員函數(shù)原型相同,那么,這個函數(shù)自動繼承基類中虛函數(shù)的特性。填空題 #include<iostream.h> _A_; int f2(int* a, int n) _ B_; for(i=1;i<n;i+) if(max<ai) max=ai; return max; void main()

8、 int bMM=3,12,6,20,9,7,34,50,25,66; _C_; /求出b4至b8 之間的最大值并賦給x1 _D_; /求出b0至b5 之間的最大值并賦給x2 cout<<x1<<' '<<x2<<endl; 閱讀理解題 二、 valarray是C+的標準模板庫中的一個類模板,類模板的每個實例類實現(xiàn)了某個具體的數(shù)據(jù)類型的數(shù)組,如valarray<int>是一個整型的數(shù)組類。該類的使用和一般的數(shù)組非常類似,可以通過 運算符來訪問數(shù)組中的每個元素。C+的標準模板庫中還有一個模板函數(shù)abs(),其函數(shù)原型為:

9、 template<class T> valarray<T> abs(const valarray<T> & x);該函數(shù)的作用是將作為參數(shù)的數(shù)組x的每個元素的值取絕對值,并返回得到的新的數(shù)組。如原來的數(shù)組為:4 -1 -3 0 -34將這個數(shù)組作為參數(shù)傳遞給函數(shù)abs后,函數(shù)返回的數(shù)組就變成:4 1 3 0 34要求:閱讀下列程序,回答后面的問題。/*/#include <iostream.h> #include <valarray.h> /該頭文件中定義了模板類valarray和模板函數(shù)abs() #define ARRA

10、Y_SIZE 10 typedef valarray<int> 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() << "n" cout << "The

11、 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_SI

12、ZE; i+) cout << abs_arrayi << " " cout << "n"/*/ 問題1:寫出程序的輸出結(jié)果 問題2:關(guān)于程序中的語句:INTVALARRAY val_array(ARRAY_SIZE);下列說法哪些是正確的,哪些是錯誤的?在下表相應的位置寫上“對”或“錯”題號ABCDE對/錯(A)該語句定義了一個對象val_array,這個對象是類valarray<int>的實例(B)該語句說明了一個函數(shù)原型,函數(shù)的名字為val_array,參數(shù)為ARRAY_SIZE,函數(shù)的返回值類型為I

13、NTVALARRAY(C)板類valarray一定有一個只帶一個參數(shù)的構(gòu)造函數(shù)(D)模板類valarray一定有一個只帶兩個參數(shù)的構(gòu)造函數(shù)(E)ARRAY_SIZE將作為參數(shù)傳遞給val_array的構(gòu)造函數(shù),初始化val_array對象 問題3:(本小題共12分)下面是模板函數(shù)abs()的實現(xiàn)。這個實現(xiàn)中有錯誤,指出錯誤并寫出正確的實現(xiàn)。注意:函數(shù)頭是正確的,不要改變,所有的錯誤出現(xiàn)在函數(shù)體中。template<class T>valarray<T> abs(const valarray<T>& x)for(int i=0; i<x.size

14、(); i+) if(xi<0)xi*=-1;return x;這個函數(shù)實現(xiàn)中有以下錯誤:(1)_(2)_(3)_正確的函數(shù)實現(xiàn)應為:template<class T>valarray<T> abs(const valarray<T>& x) 問題4:(本小題3分)從上面的程序中,你可以推斷出,valarray模板類中至少重載了哪個或哪些C+的運算符?答:重載了_運算符編程題寫一個函數(shù),找出給定字符串中具有最大ASCII碼的字符。如字符串“world”中字符w具有最大的ASCII碼。函數(shù)的原型為: char MaxCharacter(char

15、*str);函數(shù)參數(shù):str指向所要處理的字符串;函數(shù)返回值:如果str不空,則返回具有最大ASCII碼的字符,否則返回空字符0x0或0。char MaxCharacter(char *str)作業(yè)4:是非題 1. 函數(shù)重載既要求兩函數(shù)參數(shù)對應的類型不同又要求參數(shù)個數(shù)不同。 2. 在基類中被說明為虛函數(shù)的類的成員函數(shù)必須在每個派生類中說明為虛函數(shù),才能具有多態(tài)的特征。編程題 一、定義一個日期類Date,該類對象存放一個日期,可以提供的操作有:int GetYear ();/取年份int GetMonth ();/取月份int GetDay ( );/取日子值void SetDate (int

16、year, int month, int day);/設(shè)置日期值下面是測試你所定義的日期類的程序: #include <iostream.h> #include “date.h” voidmain() Date d1(1999, 1, 14);/用所給日期定義一個日期變量Date d2;/定義一個具有缺省值的日期,缺省值為1980年1月1日Date d3(d1);/用已有日期x構(gòu)造一個新對象d2.SetDate(1999,3,13);cout << "Date:"cout << d1.GetYear() << '.&#

17、39; << 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ù)形式,SetDa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論