C++試卷及答案_第1頁
C++試卷及答案_第2頁
C++試卷及答案_第3頁
C++試卷及答案_第4頁
C++試卷及答案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 C+程序設(shè)計 (A)一、選擇題(每小題2分,共20分)1、關(guān)于對象概念的描述中,( )是錯誤的。 A. 對象就是C語言中的結(jié)構(gòu)變量B. 對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體C. 對象是一個狀態(tài)和操作(或方法)的封裝體D. 對象之間的信息傳遞是通過消息進行的 2、對于int *pa5;的描述,()是正確的。 A. pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素B. pa是一個指向某個數(shù)組中第5個元素的指針,該元素是int型變量C. pa5表示某個數(shù)組的第5個元素的值D. pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針3、下列for循環(huán)的循環(huán)體執(zhí)行次數(shù)為( )。 for(

2、int i=0,j=10;i=j=4;i+,j- -) A. 0 B. 無限 C. 4 D. 14、下述靜態(tài)數(shù)據(jù)成員的特征中,( )是錯誤的。 A. 說明靜態(tài)數(shù)據(jù)成員時前邊要加修飾符staticB. 靜態(tài)數(shù)據(jù)成員要在類體外進行初始化C. 引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加和作用域運算符D. 靜態(tài)數(shù)據(jù)成員不是所有對象所共用的5、( )是析構(gòu)函數(shù)的特征。 A. 一個類中只能定義一個析構(gòu)函數(shù) B. 析構(gòu)函數(shù)與類名不同C. 析構(gòu)函數(shù)的定義只能在類體內(nèi) D. 析構(gòu)函數(shù)可以有各個或多個參數(shù)。6、已知:p是一個指向類A數(shù)據(jù)成員m的指針,A1是類A的一個對象,如果要給m賦值為5,下列表達式( )是正確

3、的。 A. A1.p=5 B. A1-p=5C. A1.*p=5 D. *A1.p=57、關(guān)于new運算符的下列描述中,( )是錯誤的。 A. 它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組B. 使用它創(chuàng)建的對象或?qū)ο髷?shù)組可以使用運算符delete刪除C. 使用它創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù)D. 使用它創(chuàng)建對象數(shù)組時必須指定初始值 8、派生類的對象對它的基類成員中( )是可以訪問的。 A. 公有繼承的公有成員B. 公有繼承的私有成員C. 公有繼承的保護成員D. 私有繼承的公有成員9、下列( )是引用調(diào)用。 A形參是指針,實參是地址值 B形參和實參都是變量C形參是引用,實參是變量 D形參是變量,實參是引用10、下

4、述關(guān)于開關(guān)語句的描述中,( )是正確的。A開關(guān)語句中default子句可以沒有,也可以有一個;B開關(guān)語句中每個語句序列中必須有break語句;C開關(guān)語句中default子句只能放在最后;D開關(guān)語句中case子句后面的表達式可以是整形表達式。二、填空題(共60分)(一)、基本概念題(每題2分,共10分)1、_(1)_類型轉(zhuǎn)換專門針對有虛函數(shù)的繼承結(jié)構(gòu),它將基類指針轉(zhuǎn)換成其派生類指針,以做好派生類操作的準備。2、函數(shù)重載是指函數(shù)的_(2)_不同。3、設(shè)有說明語句:int a 4=1,2, 2,3,4,5, *p=(int *)a; 則*(p+5)的值為_(3)_。4、設(shè)有宏定義和變量說明:#def

5、ine T(x,y) x+y int a= T(3,4) * T(3,5);則變量a的初值為_(4)_。5、編程質(zhì)量的衡量標準包括可讀性、易編程性、安全性、可擴充性、效率和_(5)_。(二)、完善程序題(每空2分,共20分)1、單鏈表中結(jié)點按元素值遞增鏈接,DeleteAb實現(xiàn)刪除結(jié)點值在a至b之間的結(jié)點(ab)的功能。 #includestruct node int x; node *link; node *DeleteAb(int a,int b,node *first) node *p=first; node *q=_(6)_; while( p & p-xlink; else if(q

6、=first) q=_(8)_; p=first=q; else q-link=_(9)_; p=q-link; return _(10)_; void main( ) node a10= 1,2,3,4,5,6,7,8,9,10 ,*hd=a,*p; int x,y; for( int i=0;i9;i+ ) ai.link=&ai+1; a9.link=NULL; p=DeleteAb(x,y,hd); while(p) coutx; p=p-link; 2、程序構(gòu)造了一個集合類,其中以整形數(shù)組存放集合中的元素。通過重載運算符“*”,實現(xiàn)求兩個集合交集的運算,即兩個集合的共有元素。例如,設(shè)

7、集合a,b分別為:集合a=1,2,3,4,15,6,7,8,9,10;集合b=1,2,3,4,5,16,17,18,19,20;求交集a*b的結(jié)果為1,2,3,4。通過重載運算符“=”,實現(xiàn)兩個集合的賦值運算。#include #include“string.h” class set int x10; int len; public: set( ) for(int i=0;i10;i+) xi=0; len=0; set(int *p, int n) for (int i=0;in;i+) xi=*p+; len=n; friend set operator*(set a,set b); se

8、t & operator=(set b); int getLen( ) return len; void show(int n) for(int i=0;in;i+) coutxit; ; set operator* (set a,set b) set t; int k=0; for (int i=0;ia.len;i+) for (int j=0;jb.len;j+) if (a.xi=b.xj) _(11)_=a.xi; break; _(12)_=k; return t; set & _(13)_(set b) for (int i=0;ib.len;i+) xi=b.xi; len=b

9、.len; _(14)_; void main( ) int a10= 1,2,3,4,5,6,7,8; int b10=1,12,3,5,8,6,7,14,29; set set1(a,8),set2(b,9),c; c=set1*set2; c.show(_(15)_); (三)、閱讀程序題(每題5分,共30分)1、以下程序的執(zhí)行結(jié)果是_(16)_ 。#include void main() int x=3,y=3; switch(x%2) case 1: switch (y) case 0: coutfirstt; case 1: coutsecondt; break; default:

10、 couthellowt; case 2: coutthirdn; 2、 以下程序的執(zhí)行結(jié)果是_(17)_ 。 #includeint add(int x, int y=8); void main() int a=5; coutadd(a),; coutadd(a,add(a),; coutadd(a,add(a,add(a)endl; int add(int a,int b) int s=a+b; return s; 3、以下程序的執(zhí)行結(jié)果是_(18)_ 。#includevoid f(int &a,int b=3) static int i=2; a=a*b+i; i+=a; void m

11、ain(void) int x=3,y=2; f(x,y); coutxendl; f(x); coutxendl; 4、以下程序的執(zhí)行結(jié)果是_(19)_ 。#include using namespace std;class AA int A,B; public: AA(int i,int j) A=i; B=j; coutConstructorn; AA(AA &obj) A=obj.A+10; B=obj.B+20; coutCopy_Constructorn; AA() coutDestructorn; void print() coutA=A,B=Bprint(); delete p

12、a; 5、以下程序的執(zhí)行結(jié)果是_(20)_ 。#include using namespace std; class Base protected: int x;public: Base(int a)x=a;class A:public Base public: A(int a):Base(a) int GetX() return x;class B:public Base public:B(int a):Base(a) int GetX() return x;class C:public B,public A public:C(int a):A(a+10),B(a+20) ;void mai

13、n() C c(10); coutc.A:GetX(),c.B:GetX()endl;6、以下程序的執(zhí)行結(jié)果是_(21)_ 。#includeusing namespace std; class A int x,n;int mul;public: A(int a,int b) x=a;n=b;mul=1; virtual int power( ) mul=1; for(int i=1;i=n;i+) mul*=x; return mul; void show(void) coutmult; ; class B:public A int y,m; int p; public: B(int i,i

14、nt j,int k,int h):A(i,j) y=k;m=h;p=10; int power( ) p=1; for(int i=1;i=m;i+) p*=y; return p; void show(void) A:show(); coutpn; ; void fun(A *f) coutpower()Next!=NULLl)/14 s=p;/15 while (q)/17 if(q-Data=p-Data)/19 s-Next=q-Next;六、程序設(shè)計題(20分)1、(10分)#includestruct scorechar name20;long num;double cpp;do

15、uble english;double math;double ave;void compute(score x,int n)for(int i=0;in;i+)xi.ave=(xi.cpp+xi.english+xi.math)/3;void input(score x,int n)for(int i=0;in;i+)cout輸入第i+1個學生的姓名: ;cin.ignore(1);cin.getline(,20);cout輸入第i+1xi.num;cout輸入第i+1xi.cpp;cout輸入第i+1xi.english;cout輸入第i+1xi.math;void output(score x,int n)for(int i=0;in;i+)cout第i+1個學生的姓名: endl;cout第i+1個學生的學號: xi.numendl;cout第i+1個學生的C成績: xi.cppendl;cout第i+1個學生的英語成績: xi.englishendl;cout第i+1個學生的數(shù)學成績: xi.mathendl;cout第i+1個學生的平均成績: xi.aveendl;void main()int n;coutn;score *p=new scoren;input(p,n);compute(p,n);output(p,n);deletep;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論