




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、面向對象程序設計課程作業作業1:是非題1. 頭文件中一般存放著變量和常量的定義、函數的原型以及類的定義。()2. 程序的編譯是以文件為單位的,因此將程序分到多個文件中可以減少每次對程序修改所帶來的編譯工作量。0填空題下面是一個求數組元素之和的程序。主程序中定義并初始化了一個數組,然后計算該數組各元素 的和,并輸出結果。函數sum計算數組元素之和。填充程序中不完整的部分。int sum(int Jnt);void main()int ia5 = 2,3,6,8,10);sumOfArray = sum(ia,5); cout « HSum of array:'1« s
2、umOfArray « endl; )int sum(int array,int len)int iSum = 0;for(int i = 0;) return iSum;)閱讀理解題寫出下列程序的運行結果:/static int i = 20;int x;static int g(i nt 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);cout« X;回答以下問題:1. 程序的運行結果是
3、什么樣的?2. 為什么文件中要包含頭文件viostream.h> ?3. 在函數main()中是否可以直接調用函數g() ?為什么?4. 如果把文件中的兩個函數定義的位置換一下,程序是否正確?為什么? 5.文件和中的變量i的作用域分別是怎樣的?在程序中直接標出兩個變量各自的作用域。編程題寫一個函數,完成在鏈表末尾增加一個節點的操作。函數的原型為:Node* AddNode(Node * & head, int newData);其中,鏈表節點的定義如下:struct Node int data;/存放數據Node * next;/指向鏈表中的下一個節點;函數參數:函數的第一個參數
4、head指向鏈表的第一個節點,如果鏈表為空, 則head的值為NULL第二個參數newData為要插入的新節點中存放的數據。 函數返回值:當成功地插入新的節點時,函數返回指向新節點的指針,否則, 如果不能申請到內存空間,則返回NULL。Node * AddNode(Node *& head, int newData)(在這里寫出函數的實現)作業2 :是非題1. 在不同作用域中的變量可以同名。2. 派生類的成員函數可以直接訪問基類的所有成員。填空題#include<iostream.h> A ;void main()(int a6=2,4,8,6,9,14);int x1=
5、B;/調用f1函數求出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 .下面的函數將浮點型指針參數para所指向的值賦給一個局部指針變量pFloat所指向的空間,然 后輸出*pFloat的值。#include <iostream.h> void func(float * para)float * pFloat; pFloat = para;
6、cout« pFloat;)錯誤為:改正方法為:2 .下列程序片段對二維數組的每個元素賦值unsigned short SomeArray54; for (int i = 1; i<=5; i+)for (int j = 1; jv=4; j+) SomeArrayij = i+j;錯誤為:改正方法為:編程題寫一個函數,找出給定字符串中小寫字母字符的個數。函數的原型為:int CalcAlpha(char *str);函數參數:str為所要處理的字符串;函數返回值:所給字符串中小寫字母字 符的個數int CalcAlpha(char *str) /在這里寫上程序的實現5/8作業
7、3 :是非題1 .函數的參數和返回值類型可以是簡單數據類型,也可以是指針、引用、數組和類。2 .如果派生類的成員函數的原型與基類中被定義為虛函數的成員函數原型相同,那么,這個函數自 動繼承基類中虛函數的特性。填空題#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()(int bMM=3,12,6,20,9,7,34,50,25,66);C; /求出b4至b8之間的最大值并賦給x1 D ;/求出b0 至b5之間的最大值
8、并賦給x2coutvvx1vv''vvx2vvendl;)閱讀理解題二、valarray是C+的標準模板庫中的一個類模板,類模板的每個實例類實現了某個具體的數據 類型的數組,如valarray<int>是一個整型的數組類。該類的使用和一般的數組非常類似,可以通過 0 運算符來訪問數組中的每個元素。C+的標準模板庫中還有一個模板函數abs(),其函數原型為:template<class T>valarray<T> abs(const valarray<T> & x);該函數的作用是將作為參數的數組x的每個元素的值取絕對值,并
9、返回得到的新的數組。如原來的數組 為:4-1 -3 0 -34將這個數組作為參數傳遞給函數abs后,函數返回的數組就變成:4 1 3 0 34要求:閱讀下歹(J程序,回答后面的問題。*I#in elude <iostream.h>include <valarray.h> / 該頭文件中定義了模板類valarray和模板函數abs()#defi ne ARRAY_SIZE 10typedef valarray<i nt> INTVALARRAY;void mai n()(INTV ALAR RAY val_array(ARRAY_SIZE);/定義一長度為AR
10、RAY_SIZE的數組對象賦初始值for (int i = 0;i< ARRAY_SIZE; i+) val_arrayi = -i;cout « "Size of val_array = " « val_array.size() « "nn;cout « "The values of val_array before call ing abs():n"for (i = 0; i < ARRAY_SIZE; i+)cout « val_arrayi « H"cou
11、t« An"INTVALARRAY abs_array = abs(val_array);cout « "The result of val_array after calli ng abs():nH;for (i = 0; i < ARRAY_SIZE; i+) cout « abs_arrayi « "cout«”n";)*問題1:寫出程序的輸出結果問題2:關于程序中的語句:INTVALARRAY val_array(ARRAY_SIZE);下列說法哪些是正確的,哪些是錯誤的?在下表相應的位置寫
12、上“對”或“錯”題號ABCDE對/錯(A)該語句定義了一個對象val_array,這個對象是類valarrayvi nt> 的實例(B)該語句說明了一個函數原型,函數的名字為val_array,參數為ARRAY_SIZE函數的返回值類型為INTVALARRAY(C)板類valarray 一定有一個只帶一個參數的構造函數(D)模板類valarray 一定有一個只帶兩個參數的構造函數(E) ARRAY_SIZE將作為參數傳遞給val_array的構造函數,初始化val_array對象問題3 :(出錯本小題共12分)下面是模板函數abs()的實現。這個實現中有錯誤,指 確的實 誤并寫出正現。注
13、意:函數頭是正確的,不要改變,所有的錯誤出現在函數體中。template<class T>valarray<T> abs(const valarray<T>& x) (for(int i=0; i<x.size(); i+) if(xi<0) xi*=-1; return x;,這個函數實現中有以下錯誤:(1)2)3)正確的函數實現應為:template<class T>valarray<T> abs(const valarray<T>& x)問題4 :(本小題3分)從上面的程序中,你可以推斷出
14、,valarray模板類中至少重載了哪個或 哪些C+勺運算符?答:重載了 運算符編程題寫一個函數,找出給定字符串中具有最大ASCII碼勺字符。如字符串“world"中字符'w具有最大的ASCII碼。函數的原型為:charMaxCharacter(char *str);函數參數:str指向所要處理的字符串;函數返回值:如果str不空,則返回具有最大ASCII碼的字符,否則返回空字 符 0x0 或,0 一char MaxCharacter(char *str)作業4 :是非題1. 函數重載既要求兩函數參數對應的類型不同又要求參數個數不同。2. 在基類中被說明為虛函數的類的成員函數
15、必須在每個派生類中說明為虛函數,才能具有多態的特征。編程題一、定義一個日期類Date,該類對象存放一個日期,可以提供的操作有:int GetYear () ;/ 取年份int GetMonth () ;/ 取月份7/8取日子值設置日期值int GetDay ();void SetDate (int year, int month, int day);下面是測試你所定義的日期類的程序:include <iostream.h>include "date.h "void main()(Date d1(1999, 1,14);用所給日期定義一個日期變量Date d2;定
16、義一個具有缺省值的日期,缺省值為1980年1月1日Date d3(d1);用已有日期x構造一個新對象d2.SetDate(1999,3,13);cout« "Date:'1;cout « d1 .GetYear() « « d1.GetMonth() « d1 .GetDay。« endl;cout« "Date:"cout « d2.GetYear() « 7 « d2.GetMonth() « d2.GetDay() « endl;cout« "Date:"cout « d3.GetYear() « « d3.GetMonth() « d3.GetDay() « endl;要求:(1) 寫出日期類的完整定義,其中,三個Get函數寫成內聯函數形式,SetDate寫成非內聯函數形式。所有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫院培訓課件:評估SOAP和目標制定SMART
- 青年航校培養協議書
- 倒閉廠設備轉讓協議書
- 食堂水果采購協議書
- 酒店股東住房協議書
- 高考師生努力協議書
- 道路花磚維修協議書
- 高速公路清掃協議書
- 連云港市投資協議書
- WPS便簽用戶協議書
- 安全管理人員紅頭任命文件
- 人教版八年級上冊 歷史全冊課件【部編教材】
- 初中 初一 心理健康 生活中的小確幸 課件
- 輸液泵/微量注射泵使用技術操作考核評分標準
- 《微生物與免疫學》期末考試復習題及參考答案
- 梁若瑜著-十二宮六七二象書增注版
- 安全文明環保施工現場綜合規劃和詳細措施
- 《第二單元 遼宋夏金元時期:民族關系發展和社會變化》單元梳理
- 外研版三年級英語下冊全冊教材分析解讀
- 巴蜀文化(課堂PPT)課件
- 質量部組織架構
評論
0/150
提交評論