2009-2011自考C++試題及答案合集.doc_第1頁
2009-2011自考C++試題及答案合集.doc_第2頁
2009-2011自考C++試題及答案合集.doc_第3頁
2009-2011自考C++試題及答案合集.doc_第4頁
2009-2011自考C++試題及答案合集.doc_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

全國(guó)2011年自學(xué)考試C+程序設(shè)計(jì)試題課程代碼:04737一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)1對(duì)C+語言和C語言的兼容性,描述正確的是( A )AC+兼容C BC+部分兼容C DC兼容C+2在C+中使用流進(jìn)行輸入輸出,其中用于屏幕輸出的對(duì)象是( C )AcerrBcin CcoutDcfile (cerr:標(biāo)準(zhǔn)錯(cuò)誤輸出(非緩沖方式);cin:標(biāo)準(zhǔn)輸入;clog 標(biāo)準(zhǔn)錯(cuò)誤輸出(緩沖方式))3對(duì)使用關(guān)鍵字new所開辟的動(dòng)態(tài)存儲(chǔ)空間,釋放時(shí)必須使用( C )Afree Bcreate Cdelete Drealse4如沒有使用private關(guān)鍵字定義類的數(shù)據(jù)成員,則默認(rèn)為( A )Aprivate Bpublic Cprotected Dfriend5使用值傳遞方式將實(shí)參傳給形參,下列說法正確的是( A )A形參是實(shí)參的備份B實(shí)參是形參的備份C形參和實(shí)參是同一對(duì)象D形參和實(shí)參無聯(lián)系6在函數(shù)調(diào)用時(shí),如某一默認(rèn)參數(shù)要指明一個(gè)特定值,則有( A )A其之前所有參數(shù)都必須賦值B其之后所有參數(shù)都必須賦值C其前、后所有參數(shù)都必須賦值D其前、后所有參數(shù)都不必賦值7設(shè)存在函數(shù)int max(int,int)返回兩參數(shù)中較大值,若求22,59,70三者中最大值,下列表達(dá)式不正確的是( C )Aint m = max(22,max(59,70); Bint m = max(max(22,59),70);Cint m = max(22,59,70);Dint m = max(59,max(22,70);8下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)( A )A函數(shù)體語句較多B函數(shù)體語句較少C函數(shù)執(zhí)行時(shí)間較短D函數(shù)執(zhí)行時(shí)間過長(zhǎng)9int Func(int,int);不可與下列哪個(gè)函數(shù)構(gòu)成重載( B )Aint Func(int,int,int); Bdouble Func(int,int);Cdouble Func(double,double); Ddouble Func(int,double);說明:不能以形參名來區(qū)分函數(shù);不能以函數(shù)返回值來區(qū)分函數(shù)。必須是形參的個(gè)數(shù)或者類型不同才能構(gòu)成函數(shù)重載。10對(duì)類中聲明的變量,下列描述中正確的是( C )A屬于全局變量B只屬于該類C屬于該類,某些情況下也可被該類不同實(shí)例所共享D任何情況下都可被該類所有實(shí)例共享11類的私有成員可在何處訪問( D )A通過子類的對(duì)象訪問B本類及子類的成員函數(shù)中C通過該類對(duì)象訪問D本類的成員函數(shù)中12如果沒有為一個(gè)類定義任何構(gòu)造函數(shù)的情況下,下列描述正確的是( A )A編譯器總是自動(dòng)創(chuàng)建一個(gè)不帶參數(shù)的構(gòu)造函數(shù)B這個(gè)類沒有構(gòu)造函數(shù)C這個(gè)類不需要構(gòu)造函數(shù)D該類不能通過編譯13一個(gè)類可包含析構(gòu)函數(shù)的個(gè)數(shù)是( B )A0個(gè) B1個(gè)C至少一個(gè)D0個(gè)或多個(gè)14this指針存在的目的是( B )A保證基類公有成員在子類中可以被訪問B保證每個(gè)對(duì)象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的代碼C保證基類保護(hù)成員在子類中可以被訪問D保證基類私有成員在子類中可以被訪問15下列關(guān)于類的權(quán)限的描述錯(cuò)誤的是( A )A類本身的成員函數(shù)只能訪問自身的私有成員B類的對(duì)象只能訪問該類的公有成員C普通函數(shù)不能直接訪問類的公有成員,必須通過對(duì)象訪問D一個(gè)類可以將另一個(gè)類的對(duì)象作為成員16在編譯指令中,宏定義使用哪個(gè)指令( B )A#includeB#define C#if D#else17設(shè)類A將其它類對(duì)象作為成員,則建立A類對(duì)象時(shí),下列描述正確的是( B )AA類構(gòu)造函數(shù)先執(zhí)行B成員構(gòu)造函數(shù)先執(zhí)行C兩者并行執(zhí)行D不能確定類的組合,描述的是一個(gè)類內(nèi)嵌其他類的對(duì)象作為成員的情況,它們之間的關(guān)系是一種包含與被包含的關(guān)系。在聲明一個(gè)組合類的對(duì)象時(shí),不僅它自身的構(gòu)造函數(shù)將被調(diào)用,而且還將調(diào)用其內(nèi)嵌對(duì)象的構(gòu)造函數(shù)。這時(shí)構(gòu)造函數(shù)的調(diào)用順序是:(1)按照內(nèi)嵌對(duì)象在組合類的聲明中出現(xiàn)的次序,依次調(diào)用內(nèi)嵌對(duì)象的構(gòu)造函數(shù);(2)執(zhí)行本類構(gòu)造函數(shù)的函數(shù)體析構(gòu)函數(shù)的調(diào)用執(zhí)行順序與構(gòu)造函數(shù)剛好相反。18下列描述錯(cuò)誤的是( A )A在創(chuàng)建對(duì)象前,靜態(tài)成員不存在B靜態(tài)成員是類的成員C靜態(tài)成員不能是虛函數(shù)D靜態(tài)成員函數(shù)不能直接訪問非靜態(tài)成員說明:靜態(tài)成員函數(shù)可以直接訪問該類的靜態(tài)數(shù)據(jù)和函數(shù)成員,而訪問非靜態(tài)成員,必須通過參數(shù)傳遞方式得到對(duì)象名,然后通過對(duì)象名來訪問。19對(duì)于友元描述正確的是( B )A友元是本類的成員函數(shù)B友元不是本類的成員函數(shù)C友元不是函數(shù)D友元不能訪問本類私有成員20在哪種派生方式中,派生類可以訪問基類中的protected成員( B )Apublic和privateBpublic和protectedCprotected和privateD僅protected二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。21設(shè)要把一個(gè)文件輸出流對(duì)象myFile與文件“f:myText.txt相關(guān)聯(lián),所用的C+語句是:myFile.open(“f:myText.txt”);。22C+中ostream類的直接基類是ios 類。23運(yùn)算符 只能用 成 員 運(yùn)算符來重載,不能用友元運(yùn)算符來重載。24定義虛函數(shù)所用的關(guān)鍵字是virtual。25vector類中用于返回向量中第1個(gè)對(duì)象的方法是front( )。26在C+中,利用向量類模板定義一個(gè)具有20個(gè)char的向量E,其元素均被置為字符t,實(shí)現(xiàn)此操作的語句是vectorE(20,t)。27類的繼承是指子類繼承基類的數(shù)據(jù)成員和成員函數(shù)。28不同對(duì)象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱為多態(tài)性或(類的多態(tài)性)。29#include指令指示編譯器將一個(gè)源文件嵌入到帶該指令的源文件之中。30設(shè)類A有成員函數(shù)void Fun(void);若要定義一個(gè)指向類成員函數(shù)的指針變量pafn來指向Fun,該指針變量的聲明語句是:void(A:*pafn)(void);。31設(shè)在程序中使用如下語句申請(qǐng)了一個(gè)對(duì)象數(shù)組:Point * ptr = new Point2;則在需要釋放ptr指向的動(dòng)態(tài)數(shù)組對(duì)象時(shí),所使用的語句是delete ptr;。32在保護(hù)派生中,基類權(quán)限為Private的成員在派生類中 不可訪問。33類A有如下成員函數(shù)int A:fun(double x)return (int) x2;int A:fun(int x)return x*2;設(shè)a為類A的對(duì)象,在主函數(shù)中有int s=afun(6.0)+a.fun(2),則執(zhí)行該語句后,s的值為 7 。34對(duì)象傳送的消息一般由3部分組成:接收對(duì)象名、調(diào)用操作名和必要的參數(shù)。35將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對(duì)象指針,實(shí)參是對(duì)象的地址值。36在使用string類的find成員函數(shù)來檢索主串中是否含有指定的子串時(shí),若在主串中不含指定的子串,find函數(shù)的返回值是 -1 。37在C+中,聲明布爾類型變量所用的關(guān)鍵字是 bool 。38執(zhí)行下列代碼int a=29,b=100;cout setw (3) a b endl;程序的輸出結(jié)果是:_29100 。39執(zhí)行下列代碼cout Hex: hex 255;程序的輸出結(jié)果為 Hex:ff 。40.C+語言中可以實(shí)現(xiàn)輸出一個(gè)換行符并刷新流功能的操控符是_ endl _三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。41#includevoid main( ) int x=5,y=6;const int * p=x;*p=y;cout*pendl; *p=y; 指針p所指向的為一常量,不能進(jìn)行左值操作42#includeclass fprivate:int x,y;public:f1( )x=0;y=0;print( )coutxyendl;;void main( )f a;a.f1(1,1);a.print( ); a.f1(1,1); f1( )調(diào)用時(shí)實(shí)參與形參數(shù)量不一致43#includeclass fprivate:int x=0,y=0;public:void f1(int a,int b)x=a;y=b;void get( )coutxyendl;void main( )f a;a.f1(1,3);a.get ( ); private:int x=0,y=0; 數(shù)據(jù)成員聲明時(shí)不允許直接賦值44#includeclass pointprivate:float x;public:void f(float a)x=a;void f( )x=0;friend float max(point& a,point& b);float max(point& a,point& b)return(a.xb.x)? a.x:b.x;void main( )point a,b;a.f(2.2);b.f(3.3);couta.max(a,b); couta.max(a,b); max()不是類的成員函數(shù),不能用a.max( )方式調(diào)用45#includetemplateclass fprivate:T x,y;public:void f1(T a,T b)x=a;y=b;T max( )retum(xy)?x:y;;void main( )f a;a.f1(1.5,3.8); couta.xa.ya.max( )endl; couta.xa.ya.max()endl; x,y是私有類型,不能在主函數(shù)中直接使用四、完成程序題(本大題共5小題,每小題4分,共20分)46完成下面類中的成員函數(shù)的定義。class pointprivate:int m,n;public:point(int,int);point(point&);point:point(int a,int b)m=a;n =b;point:point(point&t )m=t.m;n=t.n;47下面是一個(gè)輸入半徑,輸出其面積和周長(zhǎng)的C+程序,在下劃線處填上正確的語句。#includeusing namespace std;const double pi=3.14159;void main( )double r;coutr ;double l=2.0*pi*r;double s=pi*r*r;coutn The long is:lendl;coutThe area is:sendl;48在下劃線處填上缺少的部分。#include#includeusing namespace std;class complexpublic:int real;int imag;complex(int r=0,int i=0)real=r;imag=i;complex operator+( complex&a,complex& b)int r=a.real+b.real;int i=a.imag+b.imag;return complex(r,i);void main( )complex x(1,2),y(3,4),z;z=x+y;coutz.real+z.imagiendl;49程序的輸出結(jié)果如下:1,950,30請(qǐng)根據(jù)輸出數(shù)據(jù)在下面程序中的下劃線處填寫正確的語句。源程序如下:#includeusing namespace std;class baseprivate:int m;public:base( ) ;base(int a):m(a)int get( )return m;void set(int a)m=a;;void main()base*ptr=new base2;ptr- set(30);ptr= ptr+1;ptr- set(50);base a2=1,9;couta0.get( ),a1.get( )endl;coutget( ),;ptr=ptr-1;coutget( )endl;delete ptr;50在下面橫線處填上求兩個(gè)浮點(diǎn)數(shù)之差的cha函數(shù)的原型聲明、調(diào)用方法。#include using namespace std;void main( )float a,b;float cha(float,float);函數(shù)cha的原型聲明a=12.5;b=6.5;float c= cha(a,b); 調(diào)用函數(shù)chacoutcendl;float cha(float x,float y)float w;w=x-y;return w;五、程序分析題(本大題共4小題,每小題5分,共20分)51給出下面程序的輸出結(jié)果。#include template class SampleT n;public:Sample(T i)n=i;int operator=(Sample &);template int Sample:operator=(Samples)if(n=s.n)return 1;elsereturn 0;void main( )Samplesl(2),s2(3); couts1與s2的數(shù)據(jù)成員(sl=s2 ?相等:不相等)endl;Samples3(2.5),s4(2.5);couts3與s4的數(shù)據(jù)成員(s3=s4 ? 相等:不相等)endl; S1與S2的數(shù)據(jù)成員不相等S3與S4數(shù)據(jù)成員相等52給出下面程序的輸出結(jié)果。#includeusing namespace std;templateT max(T ml,T m2)return(m1m2)?ml:m2:void main( ) coutmax(1,7) tmax(2.0,5.0)endl;coutmax(y,btmax(A,a)endl; 7 5y a53給出下面程序的輸出結(jié)果#include using namespace std;class A public:int x;A( ) A(int a)x=a;int get(int a)return x+a; ;void main( ) A a(8);int(A:*p)(int);p=A:get;cout(a.*p)(5)endl;A*pi=a;cout*P)(7)endl; 13 151054給出下面程序的輸出結(jié)果。include#includeusing namespace std;class Book char*title; char*author; int numsold;public:Book( ) Book(const char*strl,const char*str2,const int num) int len=strlen(strl);title=new charlen+1;strcpy(title,str1);len=strlen(str2);author=new charlen+1;strcpy(author,str2);numsold=num; void setbook(const char*str1,const char*str2,const int num) int len=strlen(str1);title=new charlen+1;strcpy(title,str1);len=strlen(str2); author=new charlen+1;strcpy(author,str2); numsold=num;Book( ) delete title; delete author;void print(ostream&output) output書名:titleendl;output作者:authorendl;output月銷售量:numsoldendl; ;書名:數(shù)據(jù)結(jié)構(gòu)作者:嚴(yán)蔚敏月銷售量:200書名:C+程序設(shè)計(jì)作業(yè):李春葆月銷售量:210void main( ) Book obj1(數(shù)據(jù)結(jié)構(gòu),嚴(yán)蔚敏,200),obj2;obj1.print(cout);obj2.setbook(C+語言程序設(shè)計(jì),李春葆,210);obj2.print(cout);六、程序設(shè)計(jì)題(本大題共1小題,共10分)55在三角形類TRI實(shí)現(xiàn)兩個(gè)函數(shù),功能是輸入三個(gè)頂點(diǎn)坐標(biāo)判斷是否構(gòu)成三角形#include#includeclass pointprivate:float x,y;public:point(float a,float b)x=a;y=b;point( )x=0;y=0; ,void set(float a,float b)x=a;y=b;float getx( )return x;float gety( )return y;;class tripoint x,y,z; float s1,s2,s3;public;settri();用于輸入三個(gè)頂點(diǎn)坐標(biāo)test();用于判斷是否構(gòu)成三角形; 請(qǐng)寫出兩個(gè)函數(shù)的過程(如果需要形式參數(shù),請(qǐng)給出形參類型和數(shù)量,以及返回值類型)判斷三條邊能構(gòu)成三角形的條件:任意兩邊之和大于第三邊或任意兩邊之差小于第3邊。void tri:settri(float x1,float y1,float x2,float y2,float x3,float y3)x.set(x1,y1); y.set(x2,y2); z.set(x3,y3); void tri:test()s1=sqrt(x.getx()-y.getx()*(x.getx()-y.getx()+(x.gety()-y.gety()*(x.gety()-y.gety();s2=sqrt(x.getx()-z.getx()*(x.getx()-z.getx()+(x.gety()-z.gety()*(x.gety()-z.gety();s3=sqrt(y.getx()-z.getx()*(y.getx()-z.getx()+(y.gety()-z.gety()*(y.gety()-z.gety();全國(guó)2009年1月自學(xué)考試C+程序設(shè)計(jì)試題課程代碼:04737一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無分。1.C+源程序文件擴(kuò)展名為( A )A.cpp B.h C.1ib D.obj2.在C+中使用流進(jìn)行輸入輸出,其中專用于從鍵盤進(jìn)行輸入的流是( B )A.cerr B.cin C.coutD.cfile3.包含自定義頭文件file.h的預(yù)處理指令是( D )A.#define B.#include file.h C.#define file.h D.#includefile.h4.用于標(biāo)識(shí)十六進(jìn)制前綴或后綴是( D )A.無 B.后綴L或e C.前綴零 D.前綴0x5.設(shè)存在整型變量int x,則下列句與其它三項(xiàng)含義不同的是( A )A.int* p=&x; B.int& p=x; C.int & p=x;D.int &p=x;6.在定義類成員時(shí),為產(chǎn)生封裝性,則需使用哪個(gè)關(guān)鍵字( D )A.public B.publish C.protected D.private7.設(shè)函數(shù)void swap(int&,int&)將交換兩形參的值,如兩整型變量int a=10;int b=15;則執(zhí)行swap(a,b)后,a、b值分別為( C )A.10,10 B.10,15 C.15,10 D.15,158.函數(shù)默認(rèn)參數(shù)在函數(shù)原型中說明,默認(rèn)參數(shù)必須放在參數(shù)序列的( C )A.前部 B.中部 C.后部 D.兩端9.設(shè)存在函數(shù)int min(int,int)返回兩參數(shù)中較小值,若求15,26,47三者中最小值,下列表達(dá)式中錯(cuò)誤的是( B )A.int m=min(min(15,26),min(15,47);B.int m=min(15,26,47);C.int m=min(15,min(47,26); D.int m =min(min(47,26),16);10.下列函數(shù)不能和函數(shù)void print(char)構(gòu)成重載的是( C )A.int print(int); B.void print(char,char);C.int print(char); D.void print(int,int);11.在下列成對(duì)的表達(dá)式中,運(yùn)算結(jié)果類型相同的一對(duì)是( D )A.72和7.02.0 B.72.0和72C.7.02和72 D.7.02.0和7.02 l2.內(nèi)聯(lián)函數(shù)的特點(diǎn)是( A )A.減少代碼量,加快訪問速度 B.減少代碼量,減緩訪問速度C.增加代碼量,減緩訪問速度 D.增加代碼量,加快訪問速度13.類的私有成員可在何處被訪問( A )A.本類的成員函數(shù)中 B.本類及子類的成員函數(shù)中C.通過對(duì)象名在任何位置 D.不可訪問14.類的構(gòu)造函數(shù)在以下什么情況下會(huì)被自動(dòng)調(diào)用( B )A.定義成員函數(shù)時(shí) B.定義對(duì)象時(shí)C.定義數(shù)據(jù)成員時(shí) D.定義友元函數(shù)時(shí)15.下列關(guān)于析構(gòu)函數(shù)描述正確的是( D )A.可以重載 B.函數(shù)體中必須有delete語句C.返回類型必須是void類型 D.不能指定返回類型 16.設(shè)有函數(shù)T Sum(T x,T y)return x+y;,其中T為模板類型,則下列語句中對(duì)該函數(shù)錯(cuò)誤的使用是( D )A.Sum(1,2); B.Sum(3.0,2.2); C.Sum(A,C); D.Sum(A,C);17.下列哪個(gè)編譯指令屬于條件編譯指令( C )A.#include B.#define C.#else D.#pragma18.關(guān)于類的靜態(tài)成員函數(shù)描述錯(cuò)誤的是( A ) A.在創(chuàng)建對(duì)象前不存在 B.不能說明為虛函數(shù)C.不能直接訪問非靜態(tài)函數(shù) D.不是對(duì)象的成員l9.如果類A被聲明成類B的友元,則( D ) A.類A的成員即類B的成員B.類B的成員即類A的成員C.類A的成員函數(shù)不得訪問類B的成員D.類B不一定是類A的友元20.派生類的對(duì)象可以訪問以下那種情況繼承的基類成員( D ) A.私有繼承的私有成員 B.公有繼承的私有成員C.私有繼承的保護(hù)成員 D.公有繼承的公有成員二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。21.若使用標(biāo)準(zhǔn)輸出流把整型變量a的值輸出到屏幕上,實(shí)現(xiàn)此操作的C+語句是_couta;_。22.C+將數(shù)據(jù)從一個(gè)對(duì)象流向另一個(gè)對(duì)象的流動(dòng)抽象為“流”,從流中獲取數(shù)據(jù)的操作稱為_提取_。23.執(zhí)行下列代碼 int b=100; coutHex:hexb; 程序的輸出結(jié)果是_Hex:64_。24.靜態(tài)聯(lián)編所支持的多態(tài)性稱為_編譯時(shí)_的多態(tài)性。25.C+程序必須有且只有一個(gè)主函數(shù),其函數(shù)名為_main_。26.寫出聲明一個(gè)復(fù)數(shù)對(duì)象的語句,并使該對(duì)象被初始化為2.2+1.3i,此聲明語句是_complex c(2.2,1.3);_。27.若有函數(shù)定義為: int add(int ml=0,int m2=2,int m3=4) return ml+m2+m3; 在主函數(shù)中有int s=add(1)+add(0,1)+add(0,1,2); 則執(zhí)行此語句后s的值為_15_。28.C+中使用_inline_關(guān)鍵字說明函數(shù)為內(nèi)聯(lián)函數(shù)。29.在源程序中有宏定義:#define PI 3.14,則若不想使該宏定義影響到程序的其它地方,可以使用_#undef PI_刪除該宏定義。(注:配套教材上沒有)30.類和其它數(shù)據(jù)類型不同的是,組成這種類型的不僅可以有數(shù)據(jù),還可以有對(duì)數(shù)據(jù)進(jìn)行操作的_函數(shù)_。31.有下列代碼int a=0;double b=0;cinab;當(dāng)用鍵盤輸入1.25時(shí),b=_0.25_。32.對(duì)于類Point而言,其析構(gòu)函數(shù)的定義原型為_Point();_。33.對(duì)象成員構(gòu)造函數(shù)的調(diào)用順序取決于這些對(duì)象在類中說明的順序,與它們?cè)诔蓡T初始化列表中給出的順序_無關(guān)_。34.類的簡(jiǎn)單成員函數(shù)是指聲明中不含_const_、volatile、static關(guān)鍵字的函數(shù)。35.與操作對(duì)象的數(shù)據(jù)類型相互獨(dú)立的算法稱為_范型算法_。36.從一個(gè)或多個(gè)以前定義的類產(chǎn)生新類的過程稱為_派生_。37.在vector類中向向量尾部插入一個(gè)對(duì)象的方法是_push_back()_。38.C+中用于動(dòng)態(tài)創(chuàng)建對(duì)象,并返回該對(duì)象的指針的關(guān)鍵字是_new_。39.C+的流類庫預(yù)定義的與標(biāo)準(zhǔn)輸出設(shè)備相聯(lián)接的流是_cout _。40.執(zhí)行下列代碼 coutnoshowpoint123.0; 程序輸出結(jié)果是_123_。三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。41.#include class f private:float x,y; public:f(float a,float b)x=a;y=b; float max()return(xy)?x:y; ; main( ) f a(1.5,3.8); couta.max( )endl; 42.#include class test private:int x; public:test(int a)x=a; void set(int a)x=a; void get()coutxendl; /error缺少分號(hào); main() const test a(3);a.set(5);a.get(); 43.#include class point private:float x,y; public:f1(float a,float b)x=a;y=b; point()x=0;y=0; void getx()coutxendl; void gety()coutyendl; ; void print(point a)couta.xendl;/error:應(yīng)將print函數(shù)說明為point類的友元函數(shù) main() point a;a.f1(3.0,5.0); print(a); 44.#include class f private:int x,y; public:fl(int a,int b)x=a;y=b; void print()coutxyendl; ; main() f a; a.f1(1.5,1.8);/error:實(shí)際參數(shù)類型與f1函數(shù)的形參類型不一致,應(yīng)修改為一致。a.print();45.#include main() int x=6; const int*p=x;/error:應(yīng)改為const int*p=&x; cout*pendl; 四、完成程序題(本大題共5小題,每小題4分,共20分)46.完成下面程序,使其輸出l0,并在退出運(yùn)行時(shí)正確釋放分配給指針的存儲(chǔ)空間。#include using namespace std;void main()int *a,*p;a=new int(10);p= _a_;cout*pendl;_delete p;(或delete a;)_47. #include using namespace std;class baseprivate:int x;public:base(int a)x=a; int get()return x; void showbase() coutx=xendl;class Derived:public baseprivate:int y;public:Derived(int a,int b):base(a)y=b; void showderived() coutx=get(),y=yshowbase();d.showderived();b.showbase();輸出結(jié)果如下:x=3x=6,y=7x=6x=6x=6x=6,y=7x=648.下面程序的運(yùn)行結(jié)果如下: B:display() C:display() 在下劃線處填上缺少的部分。源程序如下: #includeusing namespace std;class Bpublic: virtual void display( ) cout B:display( ) endl;class C:public Bpublic:virtual void (或void)display()coutC:display()display();void main() B b,*pb; C c; pb=&b; fun(pb); pb=&c; fun(pb);49.下面程序的運(yùn)行結(jié)果如下: This is line1 This is line2 This is line3 在下劃線處填上缺少的部分。源程序如下:#include #include using namespace std;void main() fstream fin, fout; fout.open(my.txt,ios:out); if(!fout.is_open()return; for(int i=0;i3;i=i+1)foutThis is linei+1endl; fout.close(); fin.open(my.txt,ios:in); if(! fin.is_open()return; char str100; while(!fin.eof()(或等價(jià)答案)) fin.getline(str,100);coutstrendl; fin.close();50.在下劃線處填上缺少的部分。源程序如下:#include using namespace std;template_ T fun(T x) _T_y; y=x*x-T(5); return y; void main() float a=2; coutfun(a); 五、程序分析題(本大題共4小題,每小題5分,共20分)51.請(qǐng)寫出myTextl.txt文本文件中的內(nèi)容#include#include using namespace std;#includevoid main() ofstream myFile1;myFile1.open(myTextl.txt);coutEnter the data in Chinese format(e.g. ,2008,May 25):endl;string Date(2008,January 1);string Year=Date.substr(0,4);int k=Date.find(,);int i=Date.find( );string Month=Date.substr(k+1,i-k-1);string Day=Date.substr(i+1,2);string NewDate=Day+ +Month+ +Year;myFile1original date:Dateendl;myFile1Converted date:NewDateendl;myFile1.close();original date:2008,January 1Converted date:1 January 200852.給出下面程序的輸出結(jié)果#include using namespace std;class Simpleint x,y;public:Simple()x=y=0;Simple(int i,int j)x=i;y=j;void copy(Simple&s);void setxy(int i,int j)x=i;y=j;void print()coutx=x,y=y=10) if(-i%4=3)continue; else couti=i-endl; i=16i=14i=12i=1054.給出下面程序的輸出結(jié)果#include using namespace std; void main() int num=300; int &ref=num; coutref; ref=ref-100; cout num; num=num-50; cout refendl; 300 200 150六、程序設(shè)計(jì)題(本大題共1小題,共10分)55.定義堆棧類模板Stack(先進(jìn)后出),棧的大小由使用者確定。要求該類模板對(duì)外提供 如下二種基本操作: (1)push入棧(2)pop出棧,用數(shù)組來實(shí)現(xiàn) #include using namespace std; template class Stack T xsize; int current; public: Stack()current=0; .push(.); .pop(.); ; 請(qǐng)寫出兩個(gè)函數(shù)的過程(如果需要形式參數(shù),請(qǐng)給出形參類型和數(shù)量,以及返回值類型)參考答案#includeusing namespace std;templateclass StackT xsize;int current; public: Stack()current=0; bool Push(T e); bool Pop(T &e);templatebool Stack:Push(T e)/插入新元素e為新的棧頂元素

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論