C++給學(xué)生習(xí)題練習(xí)題_第1頁(yè)
C++給學(xué)生習(xí)題練習(xí)題_第2頁(yè)
C++給學(xué)生習(xí)題練習(xí)題_第3頁(yè)
C++給學(xué)生習(xí)題練習(xí)題_第4頁(yè)
C++給學(xué)生習(xí)題練習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第7章練習(xí)題同步練習(xí)7、1一、選擇題1 .在下列運(yùn)算符中,不能重載的就是()(A)!(B)sizeof (C)new(D)delete2 .在下列關(guān)于運(yùn)算符重載的描述中,()就是正確的。(A)可以改變參與運(yùn)算的操作數(shù)個(gè)數(shù)(B)可以改變運(yùn)算符原來(lái)的優(yōu)先級(jí)(C)可以改變運(yùn)算符原來(lái)的結(jié)合性(D)不能改變?cè)\(yùn)算符的語(yǔ)義3 .運(yùn)算符函數(shù)就是一種特殊的()或友元函數(shù)。(A)構(gòu)造函數(shù)(B)析構(gòu)函數(shù)(C)成員函數(shù)(D)重載函數(shù)4 .設(shè)op表示要重載的運(yùn)算符,那么重載運(yùn)算符的函數(shù)名就是()。(A)operator op(B)op(C)函數(shù)標(biāo)識(shí)符(D)函數(shù)標(biāo)識(shí)符op5 .用于類運(yùn)算的運(yùn)算符通常都要重載。但有兩個(gè)運(yùn)

2、算符系統(tǒng)提供默認(rèn)重載版本,它們就是()(A)->與、(B)+與一(=與&(D)new 與 deleteB D C A C同步練習(xí)7、2一、選擇題1 .在下列函數(shù)中,不能重載運(yùn)算符的函數(shù)就是()。(A)成員函數(shù) (B)構(gòu)造函數(shù)(C)普通函數(shù)(D)友元函數(shù)2 .在下列運(yùn)算符中,要求用成員函數(shù)重載的運(yùn)算符就是()。(A)=(B)=(C)<=(D)+3 .在下列運(yùn)算符中,要求用友元函數(shù)重載的運(yùn)算符就是()。(A)=(B)(C)<<(D)( )4 .如果希望運(yùn)算符的操作數(shù)(尤其就是第一個(gè)操作數(shù))有隱式轉(zhuǎn)換,則重載運(yùn)算符時(shí)必須用()(A)構(gòu)造函數(shù) (B)析構(gòu)函數(shù)(C)成員函

3、數(shù)(D)友元函數(shù)5 .當(dāng)一元運(yùn)算符的操作數(shù),或者二元運(yùn)算符的左操作數(shù)就是該類的一個(gè)對(duì)象時(shí),重載運(yùn)算符函數(shù)一般定義為()。(A)構(gòu)造函數(shù)(B)析構(gòu)函數(shù)B A C D(C)成員函數(shù)C(D)友元函數(shù)二、程序練習(xí)1 .閱讀程序,寫出運(yùn)行結(jié)果。#include <iostream>using namespace std;class T public :T() a = 0; b = 0; c = 0; T( int i, int j, int k ) a = i; b =j; c = k;void get( int &i, int &j, int &k ) i = a;

4、 j = b; k = c; T operator* ( T obj );private:int a, b, c;);T T:operator* ( T obj ) T tempobj;tempobj > a = a * obj、a;tempobj > b = b * obj、b;tempobj、c = c * obj、c; return tempobj;)int main() T obj1( 1,2,3 ), obj2( 5,5,5 ), obj3; int a, b, c;obj3 = objl * obj2;obj3、get( a, b, c );cout<<&q

5、uot;( obj1*obj2 ): " <<"a = "<<a<<'t'<<"b = "<<b<<'t'<<"c = "<<c<<'n'(obj2*obj3)、get( a, b, c );cout<<"( obj2*obj3 ): " <<"a = "<<a<<'t'

6、;<<"b = "<<b<<'t'<<"c = "<<c<<'n'2 .閱讀程序,寫出運(yùn)行結(jié)果。#include <iostream>using namespace std;class Vector public:Vector() Vector(int i,int j) x = i; y = j; friend Vector operator+ ( Vector v1, Vector v2 ) Vector tempVector;tempV

7、ector、x = v1、x + v2、x;tempVector、y = v1、y + v2、y;return tempVector;void display() cout << "( " << x << ", " << y << ") "<< endl; private:int x, y;int main() Vector v1( 1,2 ), v2( 3, 4 ), v3;cout << "v1 ="v1、display();c

8、out << "v2 ="v2、display();v3 = v1 + v2;cout << "v3 = v1 + v2 ="v3、display();)【解答】同步練習(xí)7、3一、選擇題1 .設(shè)有類A的對(duì)象Aobject,若用成員函數(shù)重載前置自增表達(dá)式,那么+Aobject被編譯器解釋為()(A)Aobject、operator+()(B)operator+(Aobject)(C)+(Aobject)(D)Aobject : operator+()2 .運(yùn)算符+,=,+與口中,只能用成員函數(shù)重載的運(yùn)算符就是()。(A)+與=(B)

9、與后置+(C)=與口(D)前置+與口3 .在C+中,如果在類中重載了函數(shù)調(diào)用運(yùn)算符(),那么重載函數(shù)調(diào)用的一般形式為()。(A)(表達(dá)式)對(duì)象(B)(表達(dá)式表)對(duì)象(C)對(duì)象(表達(dá)式)(D)對(duì)象(表達(dá)式表)4 .設(shè)有類A的對(duì)象Aobject,若用友元函數(shù)重載后置自減表達(dá)式,那么Aobject -被編譯器解釋為()。(A)Aobject、operator- ()(B)operator- (Aobject,0)(C)- (Aobject,0)(D) - (Aobject,0)5 .如果表達(dá)式+j*k中的+與*都就是重載的友元運(yùn)算符,則采用運(yùn)算符函數(shù)調(diào)用格式,該表達(dá)式還可以 表不為()。(A)ope

10、rator*(j、operator+(),k) (B)operator*(operator+(j),k)(C)operator+(j)、operator*(k) (D)operator*(operator+(j),)6 .如果類A要重載插入運(yùn)算符 <<,那么重載函數(shù)參數(shù)表的形式一般定義為()。(A)(constA&)(B)(ostream&)(C)(constA&, ostream&) (D)(ostream&, constA&)【解答】A C D B B D同步練習(xí)7、4一、選擇題1 .類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的()。(A)構(gòu)造

11、函數(shù)(B)析構(gòu)函數(shù)(C)成員函數(shù)(D)友元函數(shù)2 .具有一個(gè)非默認(rèn)參數(shù)的構(gòu)造函數(shù)一般用于實(shí)現(xiàn)從()的轉(zhuǎn)換。(A)該類類型到參數(shù)類型(B)參數(shù)類型到該類類型(C)參數(shù)類型到基本類型(D)類類型到基本類型3 .假設(shè)ClassX就是類類型標(biāo)識(shí)符,Type為類型標(biāo)識(shí)符,可以就是基本類型或類類型,Type_Value為Type 類型的表達(dá)式,那么,類型轉(zhuǎn)換函數(shù)的形式為()。(A)ClassX : operator Type(Type t) return Type_Value; (B)friendClassX : operator Type() return Type_Value; (C)Type Cla

12、ssX : operator Type() return Type_Value; (D)ClassX : operator Type() return Type_Value; 4 .在下列關(guān)于類型車t換的描述中,錯(cuò)誤的就是()。(A)任何形式的構(gòu)造函數(shù)都可以實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換。(B)帶非默認(rèn)參數(shù)的構(gòu)造函數(shù)可以把基本類型數(shù)據(jù)轉(zhuǎn)換成類類型對(duì)象。(C)類型轉(zhuǎn)換函數(shù)可以把類類型對(duì)象轉(zhuǎn)換為其她指定類型對(duì)象。(D)類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的成員函數(shù),不能定義為類的友元函數(shù)。5 .C+中利用構(gòu)造函數(shù)進(jìn)行類類型轉(zhuǎn)換時(shí)的構(gòu)造函數(shù)形式為()。(A)類名::類名(arg);(B)類名::類名(arg,arg1=E

13、1,agrn=En);(C)類名(arg);(D) 類名(arg,arg1=E1,agrn=En);【解答】C B D A B二、程序練習(xí)6 .閱讀下面程序,按注釋位置指出語(yǔ)句的性質(zhì)。#include<string、h>#include<iostream>using namespace std;/定義String類class String friend ostream &operator<<(ostream & output,String &s);/(1)什么語(yǔ)句friend istream &operator>>

14、(istream & input,String &s); /(2) 什么語(yǔ)句public:String(const char *m="");/(3)什么語(yǔ)句String();/(4)什么語(yǔ)句operator int() const;/(5)什么語(yǔ)句operator char* ()const;/(6)什么語(yǔ)句private:char *str;int size;/(7)什么定義String:String(const char *m) size=strlen(m);str=new charsize+1;strcpy_s(str,size+1,m);/(8)什么

15、定義String:String() delete str;size=0;/(9)什么定義ostream &operator<<(ostream &output,String &s) output<<s、str;return output;/(10)什么定義istream &operator>>(istream &input,String &s) char temp1000;input>>temp;delete s、str;s、size=strlen(temp);s、str=new chars、siz

16、e+1;strcpy_s(s、str,s、size+1,temp); return input;/(11)什么定義String:operator int()const return size; /(12)什么定義String:operator char* () const static char temp1000; strcpy_s(temp,""");strcat_s(temp,str);strcat_s(temp,"""); return temp; int main() char s100;String s1,s2;cout&l

17、t;<"Please input two strings:"<<endl;cin>>s1>>s2;cout<<"output is:"<<endl;cout<<"s1 as String- "<<s1<<endl;cout<<"sizeof(s1) - sizeof(s2)="<<(int)s1 - (int)s2)<<endl;cout<<"s1 as c

18、har * - "<<(char*)s1<<endl;cout<<"s2 as char * - "<<(char*)s2<<endl;strcpy(s,s2);cout<<"After strcpy(s,s2); s="<<s<<endl;return 0; 【解答】#include<string h>#include<iostream>using namespace std;/定義String類class String f

19、riend ostream &operator<<(ostream & output,String &s);friend istream &operator>>(istream & input,String &s); public:String(const char *m="");/(3)構(gòu)造函數(shù)聲明String();/(4)析構(gòu)函數(shù)聲明operator int() const;/(5)類型轉(zhuǎn)換函數(shù)聲明operator char* ()const;/(6)類型轉(zhuǎn)換函數(shù)聲明private:char *st

20、r;int size;/(7)定義構(gòu)造函數(shù)String:String(const char *m) size=strlen(m);str=new charsize+1;/(13)調(diào)用什么函數(shù)/(14)調(diào)用什么函數(shù)/(15)調(diào)用什么函數(shù)/(16)調(diào)用什么函數(shù)/(17)調(diào)用什么函數(shù)/(18)調(diào)用什么函數(shù)/(19)調(diào)用什么函數(shù)/(20)調(diào)用什么函數(shù)/(21)調(diào)用什么函數(shù)/(1)運(yùn)算符 <<重載函數(shù)聲明/(2)運(yùn)算符 >>重載函數(shù)聲明strcpy_s(str,size+1,m);)/(8)定義析構(gòu)函數(shù)String:String() delete str;size=0;)/(9)

21、定義運(yùn)算符 <<重載函數(shù)ostream &operator<<(ostream &output,String &s) output<<s、str;return output;)/(10)定義運(yùn)算符 >>重載函數(shù)istream &operator>>(istream &input,String &s) char temp1000;input>>temp;delete s、str;s、 size=strlen(temp);s、str=new chars、size+1;strcpy

22、_s(s str,s size+1,temp);return input;)/(11)定義int類型轉(zhuǎn)換函數(shù)String:operator int()const return size; ) /(12)定義char*類型轉(zhuǎn)換函數(shù) String:operator char* () const static char temp1000;strcpy_s(temp,""");strcat_s(temp,str);strcat_s(temp,""");return temp;)int main()char s100;String s1,s2;

23、/(13)調(diào)用構(gòu)造函數(shù)cout<<"Please input two strings:"<<endl;cin>>s1>>s2;/(14)/調(diào)用 operator函數(shù)cout<<"output is:"<<endl;cout<<"s1 as String-"<<s1<<endl;/(15)調(diào)用 operator<< 函數(shù)cout<v"sizeof(s1)-sizeof(s2)="vv(int)

24、s1-(int)s2)v<endl; /(16)調(diào)用 operato門nt 類型轉(zhuǎn)換函數(shù) cout<<"s1 as char * -"<<(char*)s1<<endl;/(17)調(diào)用 operator char*類型轉(zhuǎn)換函數(shù)cout<<"s2 as char * -"<<(char*)s2<<endl;/(18)調(diào)用 operator char*類型轉(zhuǎn)換函數(shù)strcpy(s,s2);/(19)對(duì)參數(shù)s納用類型車t換函數(shù)operator char*,然后調(diào)用庫(kù)函數(shù)cout<<"After strcpy(s,s2); s="<<s<<e

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論