c練習題(帶答案)

上傳人:仙*** 文檔編號:135961730 上傳時間:2022-08-16 格式:DOC 頁數(shù):12 大小:73.50KB
收藏 版權(quán)申訴 舉報 下載
c練習題(帶答案)_第1頁
第1頁 / 共12頁
c練習題(帶答案)_第2頁
第2頁 / 共12頁
c練習題(帶答案)_第3頁
第3頁 / 共12頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《c練習題(帶答案)》由會員分享,可在線閱讀,更多相關(guān)《c練習題(帶答案)(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、一、選擇題 1. C++語言屬于( C )。 A) 自然語言 B) 機器語言 C)面向?qū)ο笳Z言 D) 匯編語言 2. 下面選項中不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是(C) 。 A)繼承性 B)多態(tài)性 C)相似性 D)封裝性 3. 可用作C++語言用戶標識符的一組標識符是( B )。 A) void define +WORD B) a3_b3 _123 YN C) for -abc Case D) 2a DO sizeof 4. 假定一個二維數(shù)組的定義語句為“int

2、a[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為(A)。 A) 0 B) 4 C) 8 D) 6 5. 下列情況中,哪一種情況不會調(diào)用拷貝構(gòu)造函數(shù) ( B ) A)用派生類的對象去初始化基類對象時 B)將類的一個對象賦值給該類的另一個對象時 C)函數(shù)的形參是類的對象,調(diào)用函數(shù)進行形參和實參結(jié)合時 D)函數(shù)的返回值是類的對象,函數(shù)執(zhí)行返回調(diào)用者時 6. 以下哪一關(guān)鍵字可用于重載函數(shù)的區(qū)分( C ) A)extern B)static C)const D)virtual 7. 下列有關(guān)數(shù)組的敘述

3、中,正確的是( B ) A)C++中數(shù)組的存儲方式為列優(yōu)先存儲 B)數(shù)組名可以作為實參賦值給指針類型的形參 C)數(shù)組下標索引從1開始,至數(shù)組長度n結(jié)束 D)數(shù)組指針的語法形式為:類型名 *數(shù)組名[下標表達式]; 8. 下列有關(guān)繼承和派生的敘述中,正確的是( C ) A)派生類不能訪問通過私有繼承的基類的保護成員 B)多繼承的虛基類不能夠?qū)嵗? C)如果基類沒有默認構(gòu)造函數(shù),派生類就應當聲明帶形參的構(gòu)造函數(shù) D)基類的析構(gòu)函數(shù)和虛函數(shù)都不能夠被繼承,需要在派生類中重新實現(xiàn) 9. 實現(xiàn)運行時多態(tài)的機制是( A ) A)虛函數(shù) B)重載函數(shù) C)靜態(tài)函

4、數(shù) D)模版函數(shù) 10. 若有下面的函數(shù)調(diào)用: fun(a+b, 3, max(n-1, b)); 其中實參的個數(shù)是( A ) A)3 B)4 C)5 D)6 11. 下列關(guān)于this指針的說法正確的是( B ) A)this指針存在于每個函數(shù)之中 B)在類的非靜態(tài)函數(shù)中this指針指向調(diào)用該函數(shù)的對象 C)this指針是指向虛函數(shù)表的指針 D)this指針是指向類的函數(shù)成員的指針 12. 在下列關(guān)于C++函數(shù)的敘述中,正確的是( C ) A)每個函數(shù)至少要有一個參數(shù) B)每個函數(shù)都必須返回一個值 C)函數(shù)在被調(diào)用之前必須先聲明 D)

5、函數(shù)不能自己調(diào)用自己 13. 下列運算符中,不能重載的是 ( C ) A)&& B)!= C). D)-> 14. 下面程序的輸出結(jié)果是( B ) #include using namespace std; int i = 0; int fun(int n) { static int a = 2; a++; return a+n;//定義一個函數(shù) FUN } void main() { int k = 5; { int i = 2; k += fun(i); } k += fun(i)

6、; cout << k; } A)13 B)14 C)15 D)16 15. 下面的程序段的運行結(jié)果為( D ) char str[] = "job", *p = str; cout << *(p+2) << endl; A)98 B)無輸出結(jié)果 C)字符’b’的地址 D)字符’b’ 16. 下面程序的輸出結(jié)果是( C ) #include using namespace std; class A { public: A (int i) { x = i; } void dispa

7、() { cout << x << “,”; } private : int x ; }; class B : public A { public: B(int i) : A(i+10) { x = i; } void dispb() { dispa(); cout << x << endl; } private : int x ; }; void main() { B b(2); b.dispb(); } A)10,2 B)12,10 C)12,2 D)2,2 17. 下面程序的輸出結(jié)果是( C )

8、 #include using namespace std; class Base { public: Base(int i) { cout << i; } ~Base () { } }; class Base1: virtual public Base { public: Base1(int i, int j=0) : Base(j) { cout << i; } ~Base1() {} }; class Base2: virtual public Base { public: Base2

9、(int i, int j=0) : Base(j) { cout << i; } ~Base2() {} }; class Derived : public Base2, public Base1 { public: Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c), Base2(d), Base(a) { cout << b; } private: Base2 mem2;

10、 Base1 mem1; }; void main() { Derived objD (1, 2, 3, 4); } A)134122 B)123412 C)14302012 D)143212 18. 下面程序的輸出結(jié)果是( C ) #include using namespace std; class Base { public: virtual void f() { cout << “f0+”; } void g() { cout << “g0+”; } }; class Derived : publi

11、c Base { public: void f() { cout << “f+”; } void g() { cout << “g+”; } }; void main() { Derived d; Base *p = &d; p->f(); p->g(); } A)f+g+ B)f0+g+ C)f+g0+ D)f0+g0+ 19. 下面程序的輸出結(jié)果是( C ) #include using namespace std; class Sample { friend long fun (Sample s)

12、 { if (s.x < 2) return 1; return s.x * fun(Sample(s.x-1)); } public: Sample (long a) { x = a; } private: long x; }; void main() { int sum = 0; for (int i=0; i<4; i++) { sum += fun(Sample(i)); } cout << sum; }A)12 B)16 C)10 D)34 20. 以下程序的輸出結(jié)果是:(

13、D ) #include using namespace std; int fun(char *s) { char *p=s; while (*p!='\0') p++; return (p-s); } void main(){ cout<

14、執(zhí)行這個程序段輸出字符*的個數(shù)是(C) A. 10 B. 3 C. 4 D.5 22. 下列關(guān)于虛基類的描述中,錯誤的是(C) A. 使用虛基類可以消除由多繼承產(chǎn)生的二義性 B. 構(gòu)造派生類對象時,虛基類的構(gòu)造函數(shù)只被調(diào)用一次 C. 聲明 class B:virtual public A 說明類B為虛基類 D. 建立派生類對象時,首先調(diào)用虛基類的構(gòu)造函數(shù) 23. 有下類定義 Class A { Char *a; Public: A():a(0){} A(char *aa) {//把aa所指字符串拷貝到a所指向的存儲空間 A=______

15、_____________; Strcpy(a,aa); ~A() {delete [] a;} }; 正確的選擇是(A) A. new char[strlen(aa)+1] B. char[strlen(aa)+1] C. char[strlen(aa)] D. new char[sizeof(aa)-1] 24. 假定AA為一個類,a為該類私有的數(shù)據(jù)成員,GetValue( )為該類公有函數(shù)成員,它返回a的值,x為該類的一個對象,則訪問x對象中數(shù)據(jù)成員a的格式為( X )。 A) x.a B) x.a() C) x->Get

16、Value() D) x.GetValue( ) 25. 假定AA為一個類,int a()為該類的一個成員函數(shù),若該成員函數(shù)在類定義體外定義,則函數(shù)頭為( A )。 A) int AA::a( ) B) int AA:a() C) AA::a() D) AA::int a() 26. 有如下程序: #include using namespace std; class Test{ public: Test(){} ~Test(){cout<<'#';} }; int main(){ Test tem

17、p[2], *pTemp[2]; return 0; } 執(zhí)行這個程序輸出星號(#)的個數(shù)為(B )。 A)1 B)2 C)3 D)4 27. 有如下程序: #include using namespace std; class MyClass{ public: MyClass(int i=0){cout<<1;} MyClass(const MyClass&x){cout<<2;} MyClass& operator=(const MyClass&x){cout<<3; return *this;} ~MyClass(){c

18、out<<4;} }; int main(){ MyClass obj1(1),obj2(2),obj3(obj1); obj1=obj2; return 0; }運行時的輸出結(jié)果是( A)。 A)1123444 B)11114444 C)121444 D)11314444 28. 有如下程序: #include using namespace std; class point { public: static int number; public: point() { number++;} ~point()

19、 {number--;} }; int point::number=0; void main() { point *ptr; point A,B; { point *ptr_point=new point[3]; ptr=ptr_point; } point C; delete[] ptr; cout<

20、 B. operator++(obj,0) B. obj.operator++( ) D. obj.operator++(0) 二、程序填空 1.用遞歸法求從1到n的立方和: f(1)=1 (n=1) f(n)=f(n-1)+n3 (n>1) #include using namespace std; int f(int); int main(){ int n,s; cout<<"input the number n:"; cin>>n; s= f

21、(n) ; cout<<"The result is "< using namespace std; class Base { public:

22、 virtual ~Base () { cout << “Destructor Base”<< endl; } }; class Derived : public Base { public: ~Derived(){ cout << “Destructor Derived” << endl; } }; void main () { Base *pBase = new Derived; delete pBase ; } 三、閱讀程序,寫出運行結(jié)果 1. #include #

23、include using namespace std;? class CD { char name[20]; int number; public: void Init(char* aa, int bb) { strcpy(name,aa); number=bb; } char* Getname () {return name;} int Getnumber () {return number;} void Output() {co

24、ut<< name <<' '<< number < using namespace std; int f(int a){ return ++a; } int g(int& a){

25、 return ++a; } void main(){ int m=0,n=0; m+=f(g(m)); n+=f(f(n)); cout<<"m="<

26、x){cout<<"copy constructor\n";} }; Demo userCode(Demo b){Demo c(b);return c;} void main() { Demo a,d; cout<<"calling userCode()\n"; d = userCode(a); } 執(zhí)行上面的程序的過程中,構(gòu)造函數(shù)Demo()和Demo(const Demo &x)被調(diào)用的次數(shù)分別是多少次? 五、編寫程序 1、編寫函數(shù)計算y=1!+2!+3!...n! ,n作為參數(shù)傳遞,在主函數(shù)調(diào)用該函數(shù)并輸出結(jié)果。 2、編寫函數(shù)找出二維數(shù)組(5*4)中元素的最大值與最小值,并返回其最大值與最小值。測試結(jié)果。 3、編寫一個三角形類,有計算面積,顯示面積的功能等,并測試。要求有參數(shù)的構(gòu)造函數(shù)及復制構(gòu)造函數(shù) 12 12

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!