C-C++語言程序的設計_第1頁
C-C++語言程序的設計_第2頁
C-C++語言程序的設計_第3頁
免費預覽已結束,剩余17頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

機 密★啟用前

理工大學網絡教育學院2018年春《C/C++語言程序設計》期末考試復習題☆注意事項:本復習題滿分共:400分。一、單選題1、已知int執(zhí)行x*=y+2;后x的值是( 。A.20 B.18C.16 D.122、下列while循環(huán)的執(zhí)行次數是( 。while(inti=0)i++;A.0C.53、以下不屬于C語言關鍵字的是( 。C.case

B.1intD.DIM4、當一個類對象離開它的作用域時,系統(tǒng)將自動調用該類的( 。A.構造函數B.拷貝構造函數C.析構函數D.默認構造函數5、下列哪個函數不是類的成員函數()A.析構函數B.構造函數C.拷貝構造函數D.友元函數6、在執(zhí)行inta[][3]={1,2,3,4,5,6};語句后,a[0][0]的值是( 。A.4 B.1C.2 D.57、C++中用3個保留字實現(xiàn)異常處理,除了throw和catch外,還有( 。ifC.tryclass8、當類的繼承方式為( )時,基類中的公有成員和保護成員都以私有成員身份出現(xiàn)在派生類中,基類的私有成員在派生類中不可直接訪問。C.保護繼承

公有繼承DA.::B.A.::B.?:C.;D.\10、下列哪個函數的作用是字符串比較(。A.strlen()B.strcmp()C.strcat()D.strcpy()11、指出下面合法的標識符是( 。A.3abB.intC._stu2D.$abc12、設有數組定義chararray[]="Public";則數組array所占的空間為(A.4個字節(jié)B.5個字節(jié)C.6個字節(jié)D.7個字節(jié)13、下面表達式中錯誤的是(。A.b=a++B.a/=2C.a+b=5D.a=5,b=6,c=7。14、在定義int之后,對a的引用正確的是( 。A.a[5]C.a(5)

B.a[4.3]D.a[0]15、執(zhí)行下面的程序段輸出結果是( 。main(){chara[]="english";printf("%c",a[0]);}A.engliC.english

B.eD.sh16、當類的繼承方式為( )時,基類的公有和保護成員的訪問屬性在派生類中不變,而基類的私成員不可直接訪問。C.保護繼承

公有繼承D、類中將關鍵字( )寫在函數體之前函數頭之后,說明該函數是一個常成員函數(const成員數,可以防止函數改變數據成員的值。constD.void18、設int則賦值運算n%=i+1執(zhí)行后,n的值是( 。A.0B.3C.2D.119、下列選項中正確的語句是(。A.x++B.int(x+5)C.y+5=6;D.x=y+5;20、綁定工作在編譯連接階段完成的情況稱為( C.重載21、在下面的一維數組定義中,哪一個有語法錯誤(A.inta[]={1,2,3};C.inta[];

D.繼承B.inta[10]={0};D.inta[5];22AB為一個類,則該類的拷貝構造函數的聲明語句為(。A.AB&(ABx);C.AB(AB&);23()是給對象取一個別名,它引入了對象的同義詞。B(ABx);D.AB(AB*A.指針C.枚舉24()運算符在C++中不能重載。B.引用A.?:B.+C.-D.<=25、一個()取多種數據類型。C.類模板

D.模板類26、如果一個類至少有一個純虛函數,那么就稱該類為(。A.抽象類C.派生類27、進行文件操作時需要包含()文件。C.stdio.h

虛基類DB.fstream.hD.stdlib.h28、當使用ifstream流類定義一個流對象并打開一個磁盤文件時,文件的隱含打開方式是(。ios::inios::out29、在ios中提供控制格式的標志位中()是轉換為十六進制形式的標志位。hexC.decoct30C++3個保留字實現(xiàn)異常處理,除了trycatch外,還有(。A.if B.classC.throw D.return31intx;double10+x+v值的數據類型是(。A.intC.char32while、do…while循環(huán)結果說確的是(。A.只是表達形式不同C.do…while結構中的語句至少執(zhí)行一次33、下列符號中可以用作C++(。A._radiusC.else34、預處理命令在程序中都是以()符號開頭的。A.*C.&35(A.各成員所需存量的總和C.成員中占存量最大的成員所需的容量36()的功能是對對象進行初始化。C.構造函數doubleDB.while結構中的語句至少執(zhí)行一次D.條件成立時,他們有可能一次也不執(zhí)行B.foo~barD.3roomB.#D.B.結構中第一個成員所需存量D.結構中最后一個成員所需存量B.數據成員D37()只能訪問靜態(tài)成員變量,靜態(tài)成員函數和類以外的函數和數據不能訪問類中的非靜態(tài)成員變量。A.虛函數C.構造函數38、在下列各類函數中()。析構函數

靜態(tài)函數DB.構造函數C.拷貝構造函數 D.友元函數39、在執(zhí)行inta[][3]={1,2,3,4,5,6};語句后,a[1][1](。A.4B.1C.240、下列不可以被重載的運算符是(。D.5A.?:B.+C.-D.*41、C++語言對C語言做了很多改進,C++語言相對于C語言的最根本的變化是()。增加了一些新的運算符C.

D.引進了類和對象的概念42、設array為一個數組,則表達式sizeof(array)/sizeof(array[0])的結果為()。A.array數組首地址C.array數組中每個元素所占的字節(jié)數

B.array數組中元素個數D.array數組占的總字節(jié)數43、將兩個字符串連接起來組成一個字符串時,選用()函數。strlen()C.strcat()44、函數調用不可以()。A.出現(xiàn)在一個表達式中C.作為一個函數的實參45、C++源程序文件的擴展名是()。A..CPPC..DLL46、下列運算符中優(yōu)先級最高的為()。A.!C.-=47、有關構造函數的說法錯誤的是()。A.構造函數名字和類的名字一樣C.構造函數無任何函數類型48、通常的拷貝構造函數的參數是(A.某個對象名C.某個對象的引用名

strcap()D.strcmp()B.出現(xiàn)在執(zhí)行語句中D.作為一個函數的形參B..CD..EXEB.%D.&&B.構造函數在說明類變量時自動執(zhí)行D.構造函數有且只有一個B.某個對象的成員名49、為了判斷兩個字符串s1s2是否相等,應當使用(。if(s1=s2)C.if(strcpy(s1,s2))50、在定義inta[3][6]后,第10個元素是(。

if(s1==s2)D.if(strcmp(s1,s2)==0)A.a[2][4]單選題答案

C.a[3][1] B.a[1][3] D.a[4][2]1、A2、A3、D4、C5、D6、B7、C8、A9、A10、B11、C12、D13、C14、D15、B16、B17、A18、C19、D20、A21、C22、C23、B24、A25、C26、A27、B28、A29、A30、C31、B32、C33、A34、B35、A36、C37、B38、D39、D40、A41.D42.B43.C44.D45.A46.A二、填空題47.D48.C49.D50.B1、C++類中可以包含公有、私有和 三種具有不同訪問控制權的成員。2、在C+中有兩種類型的注釋符,一種是C語言中使用的注釋符/**/,另一種是 。3、 是給對象取一個別名,它引入了對象的同義詞。4、語句while(inti=0)i--;while循環(huán)的次數是 5、類模板的使用實際上是將類模板實例化成一個具體的 。6、執(zhí)行 操作將釋放由P所指向的動態(tài)分配的數組空間。7、假定x=1,則表達(x<=1?20:30)的值為 。8、表達式sqrt(81)和pow(6,3)的值分別為 和 。9、空串的長度為 ,存儲它需要占用 個字節(jié)10、strlen("apple")的值為 。11、當一個類對象離開它的作用域時,系統(tǒng)將自動調用該類的 。12、定義一個模板函數或模板類時要用到的第一個C++保留字是 。13、假定用戶沒有給一個名為AB的類定義構造函數,則系統(tǒng)為其隱含定義的構造函數為 。14、C++中默認main函數的返回類型是 ,所以在定義main函數時可以不寫返回值類型。15、使用cin和cout進行輸入輸出操作的程序必須包含頭文件 ,其語句格式為 16、假定x=10.5,y=-4.6,則表達式floor(fabs(x+y))的值為 。17對一個一維字符數組a進行初始化的數據則a[0]和a[3]元素對應的初值分別為 和。18對一個類中的數據成員的初始化可以通過構造函數中的 實現(xiàn)也可以通過構造函數中的 現(xiàn)。19、隨機函數rand()%20的值在 至 區(qū)間。20、類中數據和成員函數默認訪問控制權類型為 。21、假定一個類對象數組為A[10],當離開它的作用域時,系統(tǒng)自動調用該類析構函數的次數為 。2、若需要把一個函數“d)”定義為一個類B的友元函數,則應在類B定義中加入一條語句: 。23、假定一個類AB中有一個靜態(tài)整數成員bb,在類外為它進行定義并初始化為0時,所使用的語為 。24、在一個類的后綴加的運算符重載成員函數的定義中,帶有 個整型參數。填空題答案1.保護 2.// 3.引用 4.0次 5.類6.delete[]p; 7.20 8.9216 9.0110.5 11.析構函數 12.template 13.AB(){} 14.int5.h > 5 1‘’ .初始化表、函數19.019 20.私有 21.10 22.friendvoid23.intAB::bb=0;24.1三、判斷題1、循環(huán)語句的循環(huán)體可能一次都不執(zhí)行( )2、使用cin和cout進行輸入輸出操作的程序必須包含頭文件( )3、C++源程序文件的擴展名( )4、關鍵字中,用以說明類中公有成員的是( )5、一個類只能有一個對象( )6、拷貝構造函數不是類的成員函數( )7、聯(lián)函數的關鍵字為friend( )8構造派生類的對象時就要對基類數據成員新增數據成員和成員對象的數據成員進行初始化( )9、一個派生類可以同時有多個基類,這種情況稱為單繼承( )10、抽象類不能實例化( )11、在C++類中可以包含私有、公有和友元三種具有不同訪問控制權的成員( )12、定義枚舉類型的關鍵字是union( )13、設有定義intx;double則5+x+v值的數據類型是( )14、函數的作用是求字符串長度( )15、說明靜態(tài)數據成員時,前邊要加關鍵字( )16、成員函數可以重載( )、delete的功能是動態(tài)分配存( )18、關鍵字中,用以說明類中公有成員的是( )19、流是一種抽象,它負責在數據的生產者和數據的消費者之間建立聯(lián)系,并管理數據的流動( )20、類型兼容規(guī)則是指在需要基類對象的任何地方,都可以使用公有派生類的對象來替代( )21、do-while循環(huán)可以寫成while循環(huán)( )22、所謂指令,就是計算機可以識別的命令( )23、使用聯(lián)函數是以犧牲增大空間開銷為代價的( )24、對象是系統(tǒng)中用來描述客觀事物的一個實體,它是用來構成系統(tǒng)的一個基本單位( )25、聯(lián)函數的關鍵字為( )26、友元關系可以繼承( )、new的功能是動態(tài)分配存( )28、析構函數是在對象的生存期即將結束的時刻被自動調用的( )29、綁定工作在編譯連接階段完成的情況稱為靜態(tài)綁定( )30、使用I/O流的程序需要包含( )判斷題答案1、√2、×3、×4、×5、×6、×7、×8、√9、×10、√11、×12、×13、×14、×15、√16、√17、×18、×19、√20、√21、√22、√23、√24、√25、×26、× 、√ 28、√ 29、√ 30、√四、閱讀下列程序,請在答題卡上寫出輸出結果1、#include<iostream.h>voidmain(){intx=1,y=2,z=3;x+=y+=z;cout<<(x<y?y:x)<<",";cout<<(x<y?x++:y++)<<",";cout<<y<<endl;}輸出結果:6,5,62、#include<iostream.h>voidmain(){inti;for(i=4;i<=10;i++){if(i%3==0)continue;cout<<i;}}輸出結果:4578103、#include<iostream.h>classCSample{private:inti;staticintk;public:CSample();voidDisplay();};CSample::CSample(){i=0;k++;}voidCSample::Display(){cout<<"i="<<i<<",k="<<k<<endl;}intCSample::k=0;voidmain(){CSamplea.Display();b.Display();}輸出結果:i=0,k=2i=0,k=24、#include<iostream.h>voidmain(){intx=1,y=0;switch(x){case1:switch(y){case0:cout<<"first";break;case1:cout<<"second";break;}case2:cout<<"third\n";}}輸出結果:firstthird5、#include<iostream.h>voidmain(){inti,j;for(i=4;i>=1;i--){cout<<"*";for(j=1;j<=4-i;j++)cout<<"*";cout<<endl;}}輸出結果:**********6、#include<iostream.h>classCSample{inti;public:CSample();voidDisplay();~CSample();};CSample::CSample(){cout<<"Constructor"<<",";i=0;}voidCSample::Display(){cout<<"i="<<i<<",";}CSample::~CSample(){cout<<"Destructor"<<endl;}voidmain(){CSamplea;a.Display();}輸出結果:Constructor,i=0,Destructor7、#include<iostream.h>voidSwap(int&a,int&b);voidmain(){intx(5),y(10);cout<<”x=”<<x<<”,y=”<<y<<endl;Swap(x,y);cout<<”x=”<<x<<”,y=”<<y<<endl;}voidSwap(int&a,int&b){intt;t=a;a=b;b=t;}輸出結果:x=5,y=10x=10,y=58、#include<iostream.h>classSample{public:Sample(){cout<<”Constructor”<<endl;}};voidfn(inti){staticSamplec;cout<<”i=”<<i<<endl;}voidmain(){fn(10);fn(20);}Constructori=10i=209、#include<iostream.h>constintN=8;voidmain(){inta[N]={1,2,3,4,5,6,7,8};inti,x;for(i=0;i<N/2;i++){x=a[i];a[i]=a[N-1-i];a[N-1-i]=x;}for(i=0;i<N;cout<<a[i];}10、#include<iostream.h>classCSample{inti;public:CSample();CSample(intval);voidDisplay();~CSample();};CSample::CSample(){cout<<"Constructor1"<<endl;i=0;}CSample::CSample(intval){cout<<"Constructor2"<<endl;i=val;}voidCSample::Display(){cout<<"i="<<i<<endl;}CSample::~CSample(){cout<<"Destructor"<<endl;}voidmain(){CSamplea.Display();b.Display();}輸出結果:Constructor1Constructor2i=0i=10DestructorDestructor五、編程題1、編寫一個程序輸入一華氏溫度,編程輸出攝氏溫度。已知:華氏溫度(F)轉換為攝氏溫度(C)算公式為:C(F32*5/9#include<iostream.h>voidmain(){floatc,f;cout<<"華氏溫度:";cin>>f;c=(f-32)*5/9;cout<<"攝氏溫度:"<<c<<endl;}2、編寫一個程序將輸入的一個三位正整數逆轉,例如,輸入123,輸出321。#include<iostream.h>voidmain(){intn,i,j,k;cout<<"輸入一個三位正整數:";cin>>n;i=n/100;//n=n-i*100;j=n/10;//求十位數n=n-j*10;k=n;//求個位數cout<<"逆轉數:"<<k<<j<<i<<endl;}3、編寫一個程序求一元二次方程ax2bxc0的解。討論下述情況:b24ac0,有兩個相等實根;b24ac0,有兩個不等實根;b24ac0,無實根a0#include<iostream.h>#include<math.h>voidmain(){floata,b,c,d;cout<<"a=";cin>>a;cout<<"b=";cin>>b;cout<<"c=";cin>>c;d=b*b-4*a*c;if(a==0)cout<<"不是二次方程!"<<endl;elseif(d==0)cout<<"一個實根:"<<-b/(2*a)<<endl;elseif(d>0)cout<<"兩個實根:"<<(-b+sqrt(d))/(2*a)<<","<<(-b-sqrt(d))/(2*a)<<endl;else}

cout<<"無實根!"<<endl;43Student,其定義如下:classStudent{intenglish,computer,total;public:voidgetscore();//獲取一個學生成績voiddisplay();//顯示一個學生成績};#include<iostream.h>classStudent{intenglish,computer,total;public:voidgetscore();voiddisplay();intretotal(){returntotal;}};voidStudent::getscore(){cout<<"輸入英語成績:";cin>>english;cout<<"輸入計算機成績:";cin>>computer;total=english+computer;}voidStudent::display(){cout<<"="<<english<<"="<<computer<<"="<<total<<endl;}voidsort(Student**p1,Student**p2)//交換兩個對象{if((*p1)->retotal()<(*p2)->retotal()){Student*tmp=*p1;*p1=*p2;*p2=tmp;}}voidmain(){Student*A[3];for(intj=0;j<3;j++){A[j]=newStudent;cout<<"學生"<<j+1<<endl;A[j]->getscore();}inti;for(j=0;j<2;j++)for(i=0;i<2;i++)sort(A+i,A+i+1);cout<<endl<<"排序結果如下:"<<endl;for(i=0;i<3;i++)A[i]->display();}5、編寫一個程序,求下列分數序列的前15項之和。2 3 5813 21, , , , , 1 2 35 8 13#include<iostream.h>voidmain(){inti,m,n,k;doubles=0;m=1;n=2;for(i=1;i<=15;i++){s=s+1.0*n/m;k=m;m=n;n=k+n;}cout<<"s="<<s<<endl;}6、編寫一個程序,計算三角形、正方形的面積。(要求:抽象出一個基類base,在其中說明一個虛函數,用來求面積)#include<iostream.h>classbase{protected:intx,y;public:base(intx,inty){base::x=x;base::y=y;}virtualvoiddisp()//定義一個接口{cout<<"這個類沒有面積"<<endl;}};classtriangle:publicbase//定義三角形類,基類成員x為底邊長,y為高{public:triangle(intx,inty):base(x,y){};voiddisp(){cout<<"三角形面積:"<<x*y*0.5<<endl;}};classsquare:publicbase//定義正方形類,基類成員x為邊長{public:square(intx):base(x,x){};voiddisp(){cout<<"正方形面積:"<<x*x<<endl;}};voidmain(){base*p;trianglet(20,20);s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論