【正文】
果是什么?include void main()int i int j。int j。解: 源程序:include int main(){ int i。解: 源程序:include int main(){ cout The size of an int is: 4 size of a short int is: 2 size of a long int is: 4 size of a char is: 1 size of a float is: 4 size of a double is: 8 打印ASCII碼為32~127的字符。?ABCDEFGHIJKLMNOP_QRSTUVWXYZ[]^39。x= yy。// initialize two integers int yourAge = 39。225 寫出下列表達(dá)式的值: 3 amp。解:源程序見“實(shí)驗(yàn)指導(dǎo)”部分實(shí)驗(yàn)三39 編寫函數(shù)判斷一個(gè)數(shù)是否是質(zhì)數(shù),在主程序中實(shí)現(xiàn)輸入、輸出。if(prime(i))cout cout int prime(int i){ int j,k,flag。j 解: 源程序:include include int fn1(int i,int j)。x = fn1(i,j)。i = j。j = temp。312 在主程序中提示輸入整數(shù)n,編寫函數(shù)用遞歸的方法求1 + 2 + ? + n的值。cout 313 編寫遞歸函數(shù)GetPower(int x,int y)計(jì)算x的y次冪,在主程序中實(shí)現(xiàn)輸入輸出。cout number。else return(x * GetPower(x,y1))。解:源程序見“實(shí)驗(yàn)指導(dǎo)”部分實(shí)驗(yàn)三315 用遞歸的方法編寫函數(shù)求n階勒讓德多項(xiàng)式的值,在主程序中實(shí)現(xiàn)輸入、輸出;解:include float p(int n, int x)。cout cout float p(int n, int x){if(n == 0)return 1。}int main(){ Rectangle MyRectangle(100, 20, 50, 80)。其中“出生日期”定義為一個(gè)“日期”類內(nèi)嵌子對(duì)象。411 定義一個(gè)矩形類,有長、寬兩個(gè)屬性,有成員函數(shù)計(jì)算矩形的面積解:include class Rectangle { public:Rectangle(float len, float width){Length = len。} float GetLength(){ return Length。}。Rectangle r(length, width)。int i。c = ch。f = ff。c39。()。} private: float Radius。Circle p(radius)。~Tree()。Tree::Tree(int n){ ages = n。()。對(duì)于在不同的作用域聲明的標(biāo)識(shí)符,遵循的原則是:若有兩個(gè)或多個(gè)具有包含關(guān)系的作用域,外層聲明的標(biāo)識(shí)符如果在內(nèi)層沒有聲明同名標(biāo)識(shí)符時(shí)仍可見,如果內(nèi)層聲明了同名標(biāo)識(shí)符則外層標(biāo)識(shí)符不可見。int main(){cout cout void myFunction(){int y = 10。int powerlevel。f)。int fuelLevel。}。靜態(tài)函數(shù)成員具有以下兩個(gè)方面的好處,一是由于靜態(tài)成員函數(shù)只能直接訪問同一個(gè)類的靜態(tài)數(shù)據(jù)成員,可以保證不會(huì)對(duì)該類的其余數(shù)據(jù)成員造成負(fù)面影響;二是同一個(gè)類只維護(hù)一個(gè)靜態(tài)函數(shù)成員的拷貝,節(jié)約了系統(tǒng)的開銷,提高程序的運(yùn)行效率。} virtual ~Cat(){ HowManyCats。} private: int itsAge。void TelepathicFunction()。for(i = 0。59 如果類A是類B的友元,類B是類C的友元,類D是類A的派生類,那么類B是類A的友元嗎?類C是類A的友元嗎?類D是類B的友元嗎?解:類B不是類A的友元,友元關(guān)系不具有交換性; 類C不是類A的友元,友元關(guān)系不具有傳遞性; 類D不是類B的友元,友元關(guān)系不能被繼承。解:include include “” int n。void fn1(){ n=30。cout void main(){ for(int i = 0。在一個(gè)文件中定義和實(shí)現(xiàn)類,在另一個(gè)文件中實(shí)現(xiàn)main()函數(shù)。x)。class X { private: int i。friend class Z。}class Z { public:void f(X* x){ xi += 5。class Car { private: int weight。aBoat)。} friend int totalWeight(Car amp。int totalWeight(Car amp。Boat b1(5)。解: 源程序:int IntegerArray[5] = { 1,2,3,4,5 }。65 用一條語句定義一個(gè)有53個(gè)元素的二維整型數(shù)組,并依次賦予1~15的初值。的作用是什么?解:*稱為指針運(yùn)算符,是一個(gè)一元操作符,表示指針?biāo)赶虻膶?duì)象的值;amp。68 定義一個(gè)整型指針,用new語句為其分配包含10個(gè)整型元素的地址空間。解: 源程序:include int main(){ int myArray[5]。} for(i = 0。解:float *pfloat。解:cout 614 程序中定義一個(gè)double類型變量的指針。nSizeofaddressedvalue==“615 const int * p1 和 int * const p2的區(qū)別是什么?解:const int * p1 聲明了一個(gè)指向整型常量的指針p1,因此不能通過指針p1來改變它所指向的整型值;int * const p2聲明了一個(gè)指針型常量,用于存放整型變量的地址,這個(gè)指針一旦初始化后,就不能被重新賦值了。int amp。}617 下列程序有何問題,請(qǐng)仔細(xì)體會(huì)使用指針時(shí)應(yīng)避免出現(xiàn)這個(gè)的問題。618 下列程序有何問題,請(qǐng)改正;仔細(xì)體會(huì)使用指針時(shí)應(yīng)避免出現(xiàn)的這個(gè)問題。return *p。cout int* Fn1(){int * p = new int(5)。long(A::*p_fn2)(int)。SimpleCircle(const SimpleCircle amp。private: int *itsRadius。}SimpleCircle::SimpleCircle(const SimpleCircle amp。} int main(){ SimpleCircle CircleOne, CircleTwo(9)。str[i]。amp。amp。622 編寫函數(shù)int index(char *s,char *t),返回字符串t 在字符串s中出現(xiàn)的最左邊的位置,如果在s中沒有與t匹配的子串,就返回1。39。 amp。if(t[k] ==39。}void main(){ int n。n = index(str1,str2)。if(s t){ c = *s。} }void reverse(char *s){reverse(s, s + strlen(s)1)。解: 源程序:include include define N 8float grades[N]。i N。i N。(運(yùn)算符重載功能為選做,參見第8章)解:include include class MyString { public: MyString()。~MyString()。MyString operator+(const MyStringamp。MyString amp。} const char * GetMyString()const { return itsMyString。}。itsLen=0。itsMyString = new char[itsLen+1]。itsMyString = new char[itsLen+1]。}MyStringamp。delete [] itsMyString。ireturn *this。}char MyString::operator[](unsigned short offset)const { if(offset itsLen)return itsMyString[itsLen1]。MyString temp(totalLen)。unsigned short totalLen = itsLen + rhsLen。cout char * temp = ”Hello World“。nice to be here!“)。s3 = s1+s2。nice to be here!S1: Hello World。解:include void move(int matrix[3][3]){ int i, j, k。cout data[i][j]。ik = *(matrix + i*n + j)。int *p。} cout 628 定義一個(gè)Employee類,其中包括表示姓名、街道地址、城市和郵編等屬性,包括chage_name()和display()等函數(shù);display()使用cout語句顯示姓名、街道地址、城市和郵編等屬性,函數(shù)change_name()改變對(duì)象的姓名屬性,實(shí)現(xiàn)并測(cè)試這個(gè)類。char zip[6]。}。strcpy(zip, z)。cout (”李四“)。私有繼承,使得基類public(公有)和protected(保護(hù))成員都以private(私有)成員身份出現(xiàn)在派生類中,而基類private(私有)成員不可訪問。fn2()。聲明了虛基類之后,虛基類的成員在進(jìn)一步派生過程中,和派生類一起維護(hù)一個(gè)內(nèi)存數(shù)據(jù)拷貝。} }。class Rectangle : public Shape { public:Rectangle(float len,float width): itsLength(len),itsWidth(width){}。} virtual float GetWidth(){ return itsWidth。class Square : public Rectangle { public: Square(float len)。cout GetArea()GetArea()GetArea()程序運(yùn)行輸出:The area of the Circle is The area of the Rectangle is 24 The area of the Square is 2576 定義一個(gè)哺乳動(dòng)物Mammal類,再由此派生出狗Dog類,定義一個(gè)Dog類的對(duì)象,觀察基類與派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用順序。//accessorsint GetAge()const { return itsAge。}//Other methodsvoid Speak()const { cout protected: int itsAge。~Dog()。}。}。}程序運(yùn)行輸出: 構(gòu)造基類對(duì)象!構(gòu)造派生類對(duì)象!78 定義一個(gè)Document類,有name成員變量,從Document派生出Book類,增加PageCount變量。// Document PrintNameOf()。}。}。()。class Derived : private Base { public:int fn1(){ return Base::fn1()。}。解:include class object { private: int Weight。public: box(){cout int GetHeight(){ return Height。}~box(){ cout void main(){ box a。}。void DerivedClass::fn1(){cout void DerivedClass::fn2(){cout void main(){DerivedClass aDerivedClass。aDerivedClass。pBaseClassfn2()。然后修改例91的程序,加入以下內(nèi)容:程 序:1.在程序首部加上文件包含命令 include “”2.在框架窗口類之前加入從CDialog類派生的對(duì)話框類:// 對(duì)話框類class CAboutDlg: public CDialog { public: CAboutDlg()。鼠標(biāo)右鍵消息響應(yīng)函數(shù)為:void CMyWnd::OnRButtonDown(UINT nFlags, CPoint point){ CAboutDlg dlg。簽名的顏色、字體大小和方向隨機(jī)確定。CString m_strNameEdit。virtual BOOL OnInitDialog()。DDX_Text(pDX, IDC_EDITNAME, m_strNameEdit)。GetWindowRect(amp。return TRUE。// 字體高 int m_nColor。}。m_nColor = color。pOldFont = pDCSelectObject(amp。case 1: pDCSetTextColor(RGB(255, 0, 0))。case 3: pDCSetTextColor(RGB(0, 0, 255))。} // 框架窗口類 define MAX_NAME 250 class CMyWnd: public CFrameWnd { CSignal m_signalList[MAX_NAME]。DECLARE_MESSAGE_MAP()}。int color = rand()%4。m_nCount++。i// 應(yīng)用程序類class C