《c練習(xí)題(帶答案)》由會(huì)員分享,可在線閱讀,更多相關(guān)《c練習(xí)題(帶答案)(12頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、一、選擇題1. C+語(yǔ)言屬于( C )。A) 自然語(yǔ)言 B) 機(jī)器語(yǔ)言 C)面向?qū)ο笳Z(yǔ)言 D) 匯編語(yǔ)言2. 下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是(C) 。A)繼承性 B)多態(tài)性 C)相似性 D)封裝性3. 可用作C+語(yǔ)言用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是( B )。A) void define +WORD B) a3_b3 _123 YNC) for -abc CaseD) 2a DO sizeof4. 假定一個(gè)二維數(shù)組的定義語(yǔ)句為“int a34=3,4,2,8,6;”,則元素a21的值為(A)。A) 0 B) 4 C) 8 D) 65. 下列情況中,哪一種情況不會(huì)調(diào)用拷貝構(gòu)造函數(shù) ( B )A
2、)用派生類的對(duì)象去初始化基類對(duì)象時(shí)B)將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí)C)函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D)函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用者時(shí)6. 以下哪一關(guān)鍵字可用于重載函數(shù)的區(qū)分( C )A)externB)staticC)constD)virtual7. 下列有關(guān)數(shù)組的敘述中,正確的是( B )A)C+中數(shù)組的存儲(chǔ)方式為列優(yōu)先存儲(chǔ)B)數(shù)組名可以作為實(shí)參賦值給指針類型的形參C)數(shù)組下標(biāo)索引從1開(kāi)始,至數(shù)組長(zhǎng)度n結(jié)束D)數(shù)組指針的語(yǔ)法形式為:類型名 *數(shù)組名下標(biāo)表達(dá)式;8. 下列有關(guān)繼承和派生的敘述中,正確的是( C )A)派生類不能訪問(wèn)通過(guò)私有繼承的基類
3、的保護(hù)成員B)多繼承的虛基類不能夠?qū)嵗疌)如果基類沒(méi)有默認(rèn)構(gòu)造函數(shù),派生類就應(yīng)當(dāng)聲明帶形參的構(gòu)造函數(shù)D)基類的析構(gòu)函數(shù)和虛函數(shù)都不能夠被繼承,需要在派生類中重新實(shí)現(xiàn)9. 實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)的機(jī)制是( A )A)虛函數(shù)B)重載函數(shù)C)靜態(tài)函數(shù)D)模版函數(shù)10. 若有下面的函數(shù)調(diào)用:fun(a+b, 3, max(n-1, b);其中實(shí)參的個(gè)數(shù)是( A )A)3B)4C)5D)611. 下列關(guān)于this指針的說(shuō)法正確的是( B )A)this指針存在于每個(gè)函數(shù)之中B)在類的非靜態(tài)函數(shù)中this指針指向調(diào)用該函數(shù)的對(duì)象C)this指針是指向虛函數(shù)表的指針D)this指針是指向類的函數(shù)成員的指針12.
4、在下列關(guān)于C+函數(shù)的敘述中,正確的是( C )A)每個(gè)函數(shù)至少要有一個(gè)參數(shù)B)每個(gè)函數(shù)都必須返回一個(gè)值C)函數(shù)在被調(diào)用之前必須先聲明D)函數(shù)不能自己調(diào)用自己13. 下列運(yùn)算符中,不能重載的是 ( 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;/定義一個(gè)函數(shù) FUNvoid main()int k = 5;int i = 2;k += fun(i);k += fun(i);cout k;A)13B)14C
5、)15D)1615. 下面的程序段的運(yùn)行結(jié)果為( D )char str = job, *p = str;cout *(p+2) endl;A)98 B)無(wú)輸出結(jié)果 C)字符b的地址 D)字符b16. 下面程序的輸出結(jié)果是( C )#include using namespace std;class A public: A (int i) x = i; void dispa () cout x “,”; private : int x ;class B : public A public: B(int i) : A(i+10) x = i; void dispb() dispa(); cout
6、 x endl; private : int x ;void main()B b(2);b.dispb();A)10,2B)12,10C)12,2D)2,217. 下面程序的輸出結(jié)果是( C )#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 pub
7、lic: Base2(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; Base1 mem1;void main() Derived objD (1, 2, 3, 4); A)134122B)123412C)14302012D)1432
8、1218. 下面程序的輸出結(jié)果是( C )#include using namespace std;class Base public: virtual void f() cout “f0+”; void g() cout “g0+”; ;class Derived : public Base public: void f() cout “f+”; void g() cout f(); p-g(); A)f+g+B)f0+g+C)f+g0+D)f0+g0+19. 下面程序的輸出結(jié)果是( C )#include using namespace std;class Samplefriend lon
9、g fun (Sample s) 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; i4; i+) sum += fun(Sample(i); cout sum; A)12B)16C)10D)3420. 以下程序的輸出結(jié)果是:(D )#include using namespace std;int fun(char *s) char *p=s;while (*p!=0)
10、 p+;return (p-s);void main()coutfun(abc)endl;A0 B. 1 C. 2 D. 321. 有如下程序段:int i=1;while(1)i+;if (i=10) break;if(i%2=0) coutGetValue() D) x.GetValue( )25. 假定AA為一個(gè)類,int a()為該類的一個(gè)成員函數(shù),若該成員函數(shù)在類定義體外定義,則函數(shù)頭為( A )。A) int AA:a( ) B) int AA:a() C) AA:a() D) AA:int a()26. 有如下程序:#include using namespace std;cla
11、ss Testpublic:Test() Test()cout#;int main()Test temp2, *pTemp2; return 0;執(zhí)行這個(gè)程序輸出星號(hào)(#)的個(gè)數(shù)為(B )。A)1 B)2 C)3 D)427. 有如下程序:#include using namespace std;class MyClass public: MyClass(int i=0)cout1;MyClass(const MyClass&x)cout2;MyClass& operator=(const MyClass&x)cout3; return *this; MyClass()cout4;int ma
12、in()MyClass obj1(1),obj2(2),obj3(obj1);obj1=obj2;return 0;運(yùn)行時(shí)的輸出結(jié)果是( A)。A)1123444 B)11114444 C)121444 D)1131444428. 有如下程序: #include using namespace std;class point public: static int number; public:point() number+;point() number-; int point:number=0; void main() point *ptr; point A,B;point *ptr_poin
13、t=new point3; ptr=ptr_point; point C; delete ptr;cout1)#include using namespace std;int f(int);int main()int n,s; coutn; s= f(n) ; coutThe result is sendl; return 0; int f(int n) /遞歸法求立方和函數(shù) if ( n=1 ) return 1; else return ( f(n-1)+n*n*n );3. 請(qǐng)將下列程序補(bǔ)充完整,使得輸出結(jié)果為“Destructor Derived Destructor Base”。#i
14、nclude using namespace std;class Base public: virtual Base () cout “Destructor Base” endl; ;class Derived : public Base public: Derived() cout “Destructor Derived” endl; ;void main () Base *pBase = new Derived; delete pBase ; 三、閱讀程序,寫(xiě)出運(yùn)行結(jié)果1.#include#includeusing namespace std;class CD char name20; i
15、nt number;public: void Init(char* aa, int bb) strcpy(name,aa); number=bb; char* Getname () return name; int Getnumber () return number; void Output() cout name number endl; CD dx;void main()CD dy;dx.Init(歌唱祖國(guó),30);dy.Init(義勇軍進(jìn)行曲,3*dx.Getnumber ()+5);dx.Output();dy.Output();歌唱祖國(guó) 30義勇軍進(jìn)行曲 952#include u
16、sing namespace std; int f(int a) return +a; int g(int& a) return +a; void main() int m=0,n=0; m+=f(g(m); n+=f(f(n); coutm=mendl; coutn=nendl; 3. #include using namespace std;class Demopublic: Demo()coutdefault constructorn; Demo(const Demo &x)coutcopy constructorn;Demo userCode(Demo b)Demo c(b);return c;void main() Demo a,d; coutcalling userCode()n; d = userCode(a);執(zhí)行上面的程序的過(guò)程中,構(gòu)造函數(shù)Demo()和Demo(const Demo &x)被調(diào)用的次數(shù)分別是多少次?五、編寫(xiě)程序1、編寫(xiě)函數(shù)計(jì)算y=1!+2!+3!.n! ,n作為參數(shù)傳遞,在主函數(shù)調(diào)用該函數(shù)并輸出結(jié)果。2、編寫(xiě)函數(shù)找出二維數(shù)組(5*4)中元素的最大值與最小值,并返回其最大值與最小值。測(cè)試結(jié)果。3、編寫(xiě)一個(gè)三角形類,有計(jì)算面積,顯示面積的功能等,并測(cè)試。要求有參數(shù)的構(gòu)造函數(shù)及復(fù)制構(gòu)造函數(shù)1212