版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
C自考?xì)v年真題小集
C++自考?xì)v年真題小集.txt這是一個禁忌相繼崩潰的時代,沒人攔得
著你,只有你自己攔著自己,你的禁忌越多成就就越少。自卑有多種
檔次,最高檔次的自卑表現(xiàn)為吹噓自己干什么都是天才。全國2008
年10月自學(xué)考試
C++程序設(shè)計試題
課程代碼:04737
一、單項選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代
碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。
1.對C++語言和C語言的兼容性,描述正確的是()
A.C++兼容C
B.C++部分兼容C
C.C++不兼容C
D.C兼容C++
2.在C++中使用流進行輸入輸出,其中用于屏幕輸出的對象是
()
A.cerr
B.cin
C.cout
D.cfile
3.對使用關(guān)鍵字new所開辟的動態(tài)存儲空間,釋放時必須使用
()
A.free
B.create
C.delete
D.realse
4.如沒有使用private關(guān)鍵字定義類的數(shù)據(jù)成員,則默認(rèn)為()
A.private
B.public
C.protected
D.friend
5.使用值傳遞方式將實參傳給形參,下列說法正確的是()
A.形參是實參的備份
B.實參是形參的備份
C.形參和實參是同一對象
D.形參和實參無聯(lián)系
6.在函數(shù)調(diào)用時,如某一默認(rèn)參數(shù)要指明一個特定值,則有()
A.其之前所有參數(shù)都必須賦值
B.其之后所有參數(shù)都必須賦值
C.其前、后所有參數(shù)都必須賦值
D.其前、后所有參數(shù)都不必賦值
7.設(shè)存在函數(shù)intmax(int,int)返回|兩參數(shù)中較大值,若求22,
59,70三者中最大值,下列表達式不正確的是()
A.intm=max(22,max(59,70));
B.intm=max(max(22,59),70);
C.intm=max(22,59,70);
D.intm=max(59,max(22,70));
8.下列哪個類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)()
A.函數(shù)體語句較多
B.函數(shù)體語句較少
C.函數(shù)執(zhí)行時間較短
D.函數(shù)執(zhí)行時間過長
9.intFunc(int,int);不可與下列哪個函數(shù)構(gòu)成重載()
A.intFunc(int,int,int);
B.doubleFunc(int,int);
C.doubleFunc(double,double);
D.doubleFunc(int,double);
10.對類中聲明的變量,下列描述中正確的是()
A.屬于全局變量
B.只屬于該類
C.屬于該類,某些情況下也可被該類不同實例所共享
D.任何情況下都可被該類所有實例共享
11.類的私有成員可在何處訪問()
A.通過子類的對象訪問
B.本類及子類的成員函數(shù)中
C.通過該類對象訪問
D.本類的成員函數(shù)中
12.如果沒有為一個類定義任何構(gòu)造函數(shù)的情況下,下列描述正確的
是()
A.編譯器總是自動創(chuàng)建一個不帶參數(shù)的構(gòu)造函數(shù)
B.這個類沒有構(gòu)造函數(shù)
C.這個類不需要構(gòu)造函數(shù)
D.該類不能通過編譯
13.一個類可包含析構(gòu)函數(shù)的個數(shù)是()
A.0個
B.1個
C.至少一個
D.0個或多個
14.this指針存在的目的是()
A.保證基類公有成員在子類中可以被訪問
B.保證每個對象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的
代碼
C.保證基類保護成員在子類中可以被訪問
D.保證基類私有成員在子類中可以被訪問
15.下列關(guān)于類的權(quán)限的描述錯誤的是()
A.類本身的成員函數(shù)只能訪問自身的私有成員
B.類的對象只能訪問該類的公有成員
C.普通函數(shù)不能直接訪問類的公有成員,必須通過對象訪問
D.一個類可以將另一個類的對象作為成員
16.在編譯指令中,宏定義使用哪個指令()
A.ttinclude
B.#define
C.#if
D.#else
17.設(shè)類A將其它類對象作為成員,則建立A類對象時,下列描述正
確的是()
A.A類構(gòu)造函數(shù)先執(zhí)行
B.成員構(gòu)造函數(shù)先執(zhí)行
C.兩者并行執(zhí)行
D.不能確定
18.下列描述錯誤的是()
A.在創(chuàng)建對象前,靜態(tài)成員不存在
B.靜態(tài)成員是類的成員
C.靜態(tài)成員不能是虛函數(shù)
D.靜態(tài)成員函數(shù)不能直接訪問非靜態(tài)成員
19.對于友元描述正確的是()
A.友元是本類的成員函數(shù)
B.友元不是本類的成員函數(shù)
C.友元不是函數(shù)
D.友元不能訪問本類私有成員
20.在哪種派生方式中,派生類可以訪問基類中的protected成員
()
A.public和private
B.public和protected
C.protected和private
D.{X.protected
二、填空題(本大題共20小題,每小題1分,共20分)
請在每小題的空格中填上正確答案。錯填、不填均無分。
21.設(shè)要把一個文件輸出流對象myFile與文件"f:\myText.txt
相關(guān)聯(lián),所用的C++語句是:o
22.C++中ostream類的直接基類是。
23.運算符[]只能用運算符來重載,不能用友元運算符來
重載。
24.定義虛函數(shù)所用的關(guān)鍵字是o
25.vector類中用于返回向量中第1個對象的方法是。
26.在C++中,利用向量類模板定義一個具有20個char的向量E,
其元素均被置為字符't',實現(xiàn)此操作的語句是。
27.類的繼承是指子類繼承基類的和成員函數(shù)。
28.不同對象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的
現(xiàn)象稱為o
29.指令指示編譯器將一個源文件嵌入到帶該指令的源文件
之中。
30.設(shè)類A有成員函數(shù)
voidFun(void);
若要定義一個指向類成員函數(shù)的指針變量pafn來指向Fun,該指針
變量的聲明語句是:o
31.設(shè)在程序中使用如下語句申請了一個對象數(shù)組:
Point*ptr=newPoint[2];
則在需要釋放ptr指向的動態(tài)數(shù)組對象時,所使用的語句是
32.在保護派生中,基類權(quán)限為Private的成員在派生類中。
33.類A有如下成員函數(shù)
intA::fun(doublex){return(int)x/2;}
intA::fun(intx){returnx*2;}
設(shè)a為類A的對象,在主函數(shù)中有ints=a.fun(6.0)+a.fun(2),
則執(zhí)行該語句后,s的值為o
34.對象傳送的消息一般由3部分組成:接收對象名、調(diào)用操作名和
35.將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對象指針,實參是對象
的o
36.在使用string類的find成員函數(shù)來檢索主串中是否含有指定的
子串時,若在主串中不含指定的子串,find函數(shù)的返回值是。
37.在C++中,聲明布爾類型變量所用的關(guān)鍵字是o
38.執(zhí)行下列代碼
inta=29,b=100;
cout〈程序的輸出結(jié)果是:o
39.執(zhí)行下列代碼
cout<<"Hex:"<<hex<<255;
程序的輸出結(jié)果為O
40.C++語言中可以實現(xiàn)輸出一個換行符并刷新流功能的操控符是
三、改錯題(本大題共5小題,每小題2分,共10分)
下面的類定義中有一處錯誤,請用下橫線標(biāo)出錯誤所在行并給出修改
意見。
41.^include
main(){
intx=5,y=6;
constint*p*=&x;
*P=y;
cout<<*p<}
42.#include
classf{
private:intx,y;
public:fl(){x=0;y=0;}
print(){cout<}
main(){
fa;
a.fl(l,1);
a.print();
)
43.ttinclude
classf{
private:intx=0,y=0;
public:voidfl(inta,intb){x=a;y=b;}
voidget(){cout<};
main(){
fa;
a.fl(1,3);
a.get();
)
44.ttinclude
classpoint{private:floatx;
public:voidf(floata){x=a;}
voidf(){x=0;}
friendfloatmax(point&a,point&b);
};
floatmax(point&a,point&b)
{return(a.x>b.x)?a.x:b.x;}
main(){
pointa,b;
a.f(2.2);b.f(3.3);
cout<}
45.ttinclude
template
classf{
private:Tx,y;
public:voidfl(Ta,Tb){x=a;y=b;}
Tmax(){return(x>y)?x:y;}
};
main(){
fa;
a.fl(1.5,3.8);'
cout<}
四、完成程序題(本大題共5小題,每小題4分,共20分)
46.完成下面類中的成員函數(shù)的定義。
classpoint
(
private:
intm,n;
public:
point(int,int);
point(point&);
};
point::point(inta,intb)
(
m=a;
_________=b;
)
point::point()
{
m=t.m;
n=t.n;
}
47.下面是一個輸入半徑,輸出其面積和周長的C++程序,在下劃線
處填上正確的語句。
ttinclude
usingnamespacestd;
pi=3.14159;
voidmain()
(
doubler;
cout?/zr=z,;
double1=2.0*pi*r;
doubles=pi*r*r;
cout<<"\nThelongis:"<cout<<"Theareais:"<}
48.在下劃線處填上缺少的部分。
ttinclude
ttinclude
usingnamespacestd;
classcomplex
(
public:
intreal;
intimag;
complex(intr=0,inti=0)
(
real=r;
imag=i;
)
);
complexoperator+(,complex&b)
(
intr=a.real+b.real;
inti=a.imag+b.imag;
return;
}
voidmain()
(
complexx(1,2),y(3,4),z;
z=x+y;
cout<}
49.程序的輸出結(jié)果如下:
1,9
50,30
請根據(jù)輸出數(shù)據(jù)在下面程序中的下劃線處填寫正確的語句。
源程序如下:
ttinclude
usingnamespacestd;
classbase
{
private:
intm;
public:
base(){};
base(inta):m(a){}
intget(){returnm;}
voidset(inta){m=a;}
);
voidmain()
{
base*ptr=newbase[2];
ptr->set(30);
ptr=;
ptr->set(50);
basea[2]={1,9};
cout<cout<get()?/z,";
ptr=ptr-l;
cout?<delete[]ptr;
)
50.在下面橫線處填上求兩個浮點數(shù)之差的cha函數(shù)的原型聲明、調(diào)
用方法。
ttinclude
usingnamespacestd;
voidmain()
floata,b;
//函數(shù)cha的原型聲明
a=12.5;
b=6.5;
floatc=;//調(diào)用函數(shù)cha
cout<}
floatcha(floatx,floaty)
(
floatw;
w=x-y;
returnw;
)
五、程序分析題(本大題共4小題,每小題5分,共20分)
51.給出下面程序的輸出結(jié)果。
ttinclude
template
classSample
(
Tn;
public:
Sample(Ti){n=i;}
intoperator==(Sample&);
);
template
intSample::operator==(Sample&s)
(
if(n==s.n)
return1;
else
return0;
}
voidmain()
(
Samplesl(2),s2(3);.
cout?wsi與s2的數(shù)據(jù)成員〃《(sl==s2?"相等〃:〃不相
等〃)<Samples3(2.5),s4(2.5);
cout?//s3與s4的數(shù)據(jù)成員"<<(s3==s4?〃相等":"不相
等〃)<}
52.給出下面程序的輸出結(jié)果。
ttinclude
usingnamespacestd;
template
Tmax(Tml,Tm2)
{return(ml>m2)?ml:m2:}
voidmain(){
cout<cout<}
53.給出下面程序的輸出結(jié)果
ttinclude
usingnamespacestd;
classA{
public:
intx;
A(){}
A(inta){x=a;}
intget(inta){returnx+a;}};
voidmain(){
Aa(8);
int(A::*p)(int);
P=A::get;
cout<<(a.*p)(5)<A*pi=&a;
cout?(pi->*P)(7)<54.給出下面程序的輸出結(jié)果。
include
ttinclude
usingnamespacestd;
classBook{
char*title;
char*author;
intnumsold;
public:
Book(){}
Book(constchar*strl,constchar*str2,constintnum){
intlen=strlen(strl);
title=newchar[len+1];
strcpy(title,strl);
len=strlen(str2);
author=newchar[len+1];
strcpy(author,str2);
numsold=num;}
voidsetbook(constchar*strl,constchar*str2,constint
num){
intlen=strlen(strl);
title=newchar[len+1];
strcpy(title,strl);
len=strlen(str2);
author=newchar[len+1];
strcpy(author,str2);
numsold=num;
}
?Book(){
deletetitle;
deleteauthor;
}
voidprint(ostream&output){
output<<7/書名:"<output。"作者:"<
output*"月銷售量:"<}
voidmain()
Bookobjl(〃數(shù)據(jù)結(jié)構(gòu)”,〃嚴(yán)蔚敏〃,200),obj2;
objl.print(cout);
obj2.setbook(wC++語言程序設(shè)計〃,〃李春葆〃,210);
obj2.print(cout);
六、程序設(shè)計題(本大題共1小題,共10分)
55.在三角形類TRI實現(xiàn)兩個函數(shù),功能是輸入三個頂點坐標(biāo)判斷是
否構(gòu)成三角形
#include
ttinclude
classpoint(
private:floatx,y;
public:point(floata,floatb){x=a;y=b;}
point(){x=0;y=0;},
voidset(floata,floatb){x=a;y=b;}
floatgetx(){returnx;}
floatgety(){returny;}
classtri{
pointx,y,z;
floatsi,s2,s3;
public;...settri(....);//用于輸入三個頂點坐標(biāo)
....test(....);//用于判斷是否構(gòu)成三角形
};請寫出兩個函數(shù)的過程(如果需要形式參數(shù),請給出形參類
型和數(shù)量,以及返回值類型
全國2009年1月自學(xué)考試
C++程序設(shè)計試題
課程代碼:04737
一、單項選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代
碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。
1.C++源程序文件擴展名為()
A..cpp
B..h
C..lib
D..obj
2.在C++中使用流進行輸入輸出,其中專用于從鍵盤進行輸入的流是
()
A.cerr
B.cin
C.cout
D.cfile
3.包含自定義頭文件file.h的預(yù)處理指令是()
A.#define<file.h>
B.ttincludefile.h
C.#definefile.h
D.ttinclude^file.h"
4.用于標(biāo)識十六進制前綴或后綴是()
A.元
B.后綴L或e
C.前綴零
D.前綴Ox
5.設(shè)存在整型變量intx,則下列句與其它三項含義不同的是()
A.int*p=&x;
B.int&p=x;
C.int&p=x;
D.int&p=x;
6.在定義類成員時一,為產(chǎn)生封裝性,則需使用哪個關(guān)鍵字()
A.public
B.publish
C.protected
D.private
7.設(shè)函數(shù)voidswap(int&,int&)將交換兩形參的值,如兩整型變量
inta=10;intb=15;
則執(zhí)行swap(a,b)后,a、b值分別為()
A.10,10
B.10,15
C.15,10
D.15,15
8.函數(shù)默認(rèn)參數(shù)在函數(shù)原型中說明,默認(rèn)參數(shù)必須放在參數(shù)序列的
()
A.前部
B.中部
C.后部
D.兩端
9.設(shè)存在函數(shù)intmin(int,int)返回兩參數(shù)中較小值,若求15,26,
47三者中最小值,下列表達式中錯誤的是()
A.intm=min(min(15,26),min(15,47));
B.intm=min(15,26,47);
C.intm=min(15,min(47,26));
D.intm=min(min(47,26),16);
10.下列函數(shù)不能和函數(shù)voidprint(char)構(gòu)成重載的是()
A.intprint(int);
B.voidprint(char,char);
C.intprint(char);
D.voidprint(int,int);
11.在下列成對的表達式中,運算結(jié)果類型相同的一對是()
A.7/2和7.0/2.0
B.7/2.0和7/2
C.7.0/2和7/2
D.7.0/2.0和7.0/2
12.內(nèi)聯(lián)函數(shù)的特點是()
A.減少代碼量,加快訪問速度
B.減少代碼量,減緩訪問速度
C.增加代碼量,減緩訪問速度
D.增加代碼量,加快訪問速度
13.類的私有成員可在何處被訪問()
A.本類的成員函數(shù)中
B.本類及子類的成員函數(shù)中
C.通過對象名在任何位置
D.不可訪問
14.類的構(gòu)造函數(shù)在以下什么情況下會被自動調(diào)用()
A.定義成員函數(shù)時
B.定義對象時
C.定義數(shù)據(jù)成員時
D.定義友元函數(shù)時
15.下列關(guān)于析構(gòu)函數(shù)描述正確的是()
A.可以重載
B.函數(shù)體中必須有delete語句
C.返回類型必須是void類型
D.不能指定返回類型
16.設(shè)有函數(shù)TSum(Tx,Ty){returnx+y;},其中T為模板類型,
則下列語句中對該函數(shù)錯誤的使用是()
A.Sum(L2);
B.Sum(3.0,2.2);
C.Sum(<A,,C);
D.Sum("A〃,〃C〃);
17.下列哪個編譯指令屬于條件編譯指令()
A.tfinclude
B.#define
C.#else
D.ttpragma
18.關(guān)于類的靜態(tài)成員函數(shù)描述錯誤的是()
A.在創(chuàng)建對象前不存在
B.不能說明為虛函數(shù)
C.不能直接訪問非靜態(tài)函數(shù)
D.不是對象的成員
19.如果類A被聲明成類B的友元,則()
A.類A的成員即類B的成員
B.類B的成員即類A的成員
C.類A的成員函數(shù)不得訪問類B的成員
D.類B不一定是類A的友元
20.派生類的對象可以訪問以下那種情況繼承的基類成員()
A.私有繼承的私有成員
B.公有繼承的私有成員
C.私有繼承的保護成員
D.公有繼承的公有成員
二、填空題(本大題共20小題,每小題1分,共20分)
請在每小題的空格中填上正確答案。錯填、不填均無分。
21.若使用標(biāo)準(zhǔn)輸出流把整型變量a的值輸出到屏幕上,實現(xiàn)此操作
的C++語句是O
22.C++將數(shù)據(jù)從一個對象流向另一個對象的流動抽象為“流”,從流
中獲取數(shù)據(jù)的操作稱為o
23.執(zhí)行下列代碼
intb=100;
cout<<,,Hex:,z<<hex<<b;
程序的輸出結(jié)果是O
24.靜態(tài)聯(lián)編所支持的多態(tài)性稱為的多態(tài)性。
25.C++程序必須有且只有一個主函數(shù),其函數(shù)名為o
26.寫出聲明一個復(fù)數(shù)對象的語句,并使該對象被初始化為2.2+1.3i,
此聲明語句是o
27.若有函數(shù)定義為:
intadd(intml=0,intm2=2,intm3=4)
{returnml+m2+m3;}
在主函數(shù)中有ints=add(l)+add(0,l)+add(0,1,2);
則執(zhí)行此語句后s的值為0
28.C++中使用關(guān)鍵字說明函數(shù)為內(nèi)聯(lián)函數(shù)。
29.在源程序中有宏定義:ttdefinePI3.14,則若不想使該宏定義
影響到程序的其它地方,可以使用刪除該宏定義。
30.類和其它數(shù)據(jù)類型不同的是,組成這種類型的不僅可以有數(shù)據(jù),
還可以有對數(shù)據(jù)進行操作的o
31.有下列代碼inta=0;doubleb=0;cin>>a>>b;當(dāng)用鍵盤輸入1.25
時,b=o
32.對于類Point而言,其析構(gòu)函數(shù)的定義原型為o
33.對象成員構(gòu)造函數(shù)的調(diào)用順序取決于這些對象在類中說明的順
序,與它們在成員初始化列表中給出的順序0
34.類的簡單成員函數(shù)是指聲明中不含、volatile、static關(guān)
鍵字的函數(shù)。
35.與操作對象的數(shù)據(jù)類型相互獨立的算法稱為o
36.從一個或多個以前定義的類產(chǎn)生新類的過程稱為o
37.在vector類中向向量尾部插入一個對象的方法是。
38.C++中用于動態(tài)創(chuàng)建對象,并返回該對象的指針的關(guān)鍵字是
39.C++的流類庫預(yù)定義的與標(biāo)準(zhǔn)輸出設(shè)備相聯(lián)接的流是。
40.執(zhí)行下列代碼
cout<<noshowpoint<<123.0;
程序輸出結(jié)果是。
三、改錯題(本大題共5小題,每小題2分,共10分)
下面的類定義中有一處錯誤,請用下橫線標(biāo)出錯誤所在行并給出修改
意見。
41.#include<iostream.h>
classf{
private:floatx,y;
public:f(floata,floatb){x=a;y=b;}
floatmax(){return(x<y)?x:y;}//求最大值
};
main(){
fa(1.5,3.8);
cout?a.max()<<endl;
)
42.#include<iostream.h>
classtest{
private:intx;
public:test(inta){x=a;}
voidset(inta){x=a;}
voidget(){cout?x?endl;}
)
main(){
consttesta(3);
A.set⑸;
A.get();
)
43.#include<iostream.h>
classpoint{
private:floatx,y;
public:fl(floata,floatb){x=a;y=b;}
point(){x=0;y=0;}
voidgetx(){cout<<x<<endl;}
voidgetyO{cout?y<<endl;}
};
voidprint(pointa){cout<<a.x<<endl;}
main(){
pointa;
A.fl(3.0,5.0);
print(a);
}
44.#include<iostream.h>
classf{
private:intx,y;
public:fl(inta,intb){x=a;y=b;}
voidprint(){cout<<x<<y<<endl;}
);
main(){
fa;
A.fl(l.5,1.8);
A.print();
)
45.#include<iostream.h>
main(){
intx=6;
constint*p=x;
cout<<*p<<endl;
}
四、完成程序題(本大題共5小題,每小題4分,共20分)
46.完成下面程序,使其輸出10,并在退出運行時正確釋放分配給指
針的存儲空間。
ftinclude<iostream>
usingnamespacestd;
voidmain()
(
int*a,*p;
a=newint(10);
P=;
cout?*p?endl;
47.ttinclude<iostream>
usingnamespacestd;
classbase
(
private:intx;
public:base(inta){x=a;}
intget(){returnx;}
voidshowbase(){cout<<,/x=,,<<x<<endl;}
};
classDerived:publicbase
{private:inty;
public:Derived(inta,intb):base(a){y=b;}
voidshowderived()
{cout<<,,x=,,?get()<<,z,y=,,?y?endl;}
);
voidmain()
(
baseb(3);
Derivedd(6,7);
b.showbase();
d.showderived();
b.showbase();
bl.showbase();
base*pb=&bl;
pb一>showbase();
d.showderived();
b.showbase();
輸出結(jié)果如下:
x=3
x=6,y=7
x=6
x=6
x=6
x=6,y=7
x=6
48.下面程序的運行結(jié)果如下:
B::display()
C::display()
在下劃線處填上缺少的部分。源程序如下:
#include<iostream>
usingnamespacestd;
classB
{
public:
______display(){cout?"B::display(),/?endl;}
};
classC:publicB
(
public:
display(){cout?,,C::display()z,?endl;}
};
voidfun(B*p)
(
p->display();
voidmain()
Bb,*pb;
Cc;
pb=&b;
fun(pb);
pb=&c;
fun(pb);
)
49.下面程序的運行結(jié)果如下:
Thisis1inel
Thisisline2
Thisisline3
在下劃線處填上缺少的部分。源程序如下:
ttinclude<iostream>
ttinclude
usingnamespacestd;
voidmain()
(
fstreamfin,fout;
fout.open("my.txt”,ios::out);
if(!fout.is_open())
return;
for(inti=0;i<3;i=i+l)
fout<<,,Thisisline,,?i+K<endl;
fout.closeO;
fin.open("my.txt”,ios::in);
if(!fin.is_open())
return;
charstr[100];
while()
fin.getline(str,100);
cout<<str<<endl;
)
fin.close();
)
50.在下劃線處填上缺少的部分。源程序如下:
ftinclude<iostream>
usingnamespacestd;
Tfun(Tx)
{
_____y;
y=x*x-T(5);
returny;
)
voidmain()
(
floata=2;
cout?fun(a);
)
五、程序分析題(本大題共4小題,每小題5分,共20分)
51.請寫出myTextl.txt文本文件中的內(nèi)容
#include<iostream>
ftinclude<string>
usingnamespacestd;
#include<fstream>
voidmain()
ofstreammyFilel;
myFilel.open("myTextl.txt");
cout〈〈“EnterthedatainChineseformat(e.g.,2008,May25):
,,?endl;
stringDate(“2008,January1");
stringYear=Date.substr(0,4);
intk=Date.find(〃,“);
inti=Date.find("");
stringMonth=Date.substr(k+Li-k-1);
stringDay=Date.substr(i+1,2);
stringNewDate=Day+""+Month+“"+Year;
myFilel<<,,originaldate:,/<<Date<<endl;
myFilel<<,,Converteddate:,,<<NewDate<<endl;
myFilel.close();
)
52.給出下面程序的輸出結(jié)果
#include<iostream>
usingnamespacestd;
classSimple
{
intx,y;
public:
Simple(){x=y=0;}
Simple(inti,intj){x=i;y=j;}
voidcopy(Simple&s);
voidsetxy(inti,intj){x=i;y=j;}
,/,,,,=,,
voidprint(){cout?x=?x<<>y?y<<endl;}
};
voidSimple::copy(Simple&s)
(
x=s.x;y=s.y;
)
voidfunc(Simplesi,Simple&s2)
si.setxy(30,40);
s2.setxy(70,80);
)
voidmain()
{
Simpleobjl(1,2),obj2;
obj2.copy(objl);
func(objl,obj2);
objl.print();
obj2.print();
)
53.給出下面程序的輸出結(jié)果
#include,/iostream,h”
intmain()
(
inti=17;
while(i>=10)
if(一i%4==3)continue;
else
cout?,/i=,,?i-<<endl;
)
54.給出下面程序的輸出結(jié)果
#include<iostream>
usingnamespacestd;
voidmain()
intnum=300;
int&ref=num;
cout?ref;
ref=ref-100;
cout?,/“〈〈num;
num=num-50;
cout<</,,,<<ref<<endl;
)
六、程序設(shè)計題(本大題共1小題,共10分)
55.定義堆棧類模板Stack(先進后出),棧的大小由使用者確定。要
求該類模板對外提供
如下二種基本操作:
(1)push入棧(2)pop出棧,用數(shù)組來實現(xiàn)
#include<iostream>
usingnamespacestd;
template<classT,intsize>
classStack{
Tx[size];
intcurrent;
public:
Stack(){current=0;}
....push(....);
….pop(....);
);
請寫出兩個函數(shù)的過程(如果需要形式參數(shù),請給出形參類型和數(shù)量,
以及返回值類型)
全國2009年10月自學(xué)考試
C++程序設(shè)計試題
課程代碼:04737
一、單項選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代
碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。
1.對C++中主函數(shù)描述正確的是()
A.名稱為main,可為多個
B.名稱不限,可為多個
C.名稱為main,必須有且只能有一個
D.名稱不限,必須有且只能有一個
2.調(diào)用聲明為intresult(inta,intb)的函數(shù)時,正確的方法是()
A.result(1,2)
B.result(1)
C.result(0.1,0.3)
D.result(1,2,3)
3.用于包含C++標(biāo)準(zhǔn)庫iostream的預(yù)處理指令是()
A.#define
B.^include
C.ttdefine'iostream'
D.ttinclude'iostream'
4.無類型標(biāo)識符是指()
A.void
B.bool
C.short
D.long
5.從本質(zhì)上看,引用是被引用變量的()
A.拷貝
B.別名
C.復(fù)制
D.克隆
6.下面關(guān)于數(shù)組的初始化正確的是()
A.charstr[[={'a,,,b,,,c,};
B.charstr[2]={'a','b','c'};
C.charstr[l][2]={{'a','b'},{'e','d'}};
D.charstr[][]={'a','b','c'};
7.C++類中定義的成員默認(rèn)訪問屬性為()
A.public
B.private
C.protected
D.friend
8.決定C++語言中函數(shù)的返回值類型的是()
A.return語句中的表達式類型
B.調(diào)用該函數(shù)時系統(tǒng)隨機產(chǎn)生的類型
C.調(diào)用該函數(shù)時的主調(diào)用函數(shù)類型
D.在定義該函數(shù)時所指定的數(shù)據(jù)類型
9.函數(shù)int&min(int&,int&)返回參數(shù)中較小者,設(shè)有兩整型變
量inta=10;intb=15;在執(zhí)行語句min(a,b)—;之后,a,b值
分別為()
A.9,14
B.9,15
C.10,14
D.10,15
10.聲明函數(shù)為內(nèi)聯(lián)函數(shù)時所使用的關(guān)鍵字為()
A.const
B.inline
C.short
D.signed
IL函數(shù)intsum(inta=l,intb=l,intc=3)可與下列哪個函數(shù)同
時聲明()
A.doublesum(int);
B.charsum(int,int);
C.intsum(double);
D.intsum(int,int,int);
12.函數(shù)模板templatevoidFunc(T,T)可具有下列哪種實例化形式
()
A.voidFunc(float,int)
B.voidFunc(char,char)
C.voidFunc(int,double)
D.voidFunc(bool,float)
13.下列訪問成員的方式哪個是正確的()
A.對象名.對象成員名
B.對象指針名.對象成員名
C.對象名一對象成員名
D.類名一對象成員名
14.對類A,復(fù)制構(gòu)造函數(shù)的原型是()
A.A::A(constA&);
B.A::A(constA*);
C.A::A(constA);
D.A::A();
15.對classpoint,如使用point*ptr=newpoint[2];創(chuàng)建對象
數(shù)組,則刪除此數(shù)組使用的語句是()
A.deleteptr[2];
B.delete[]ptr;
C.deleteptr[];
D.delete[2]ptr;
16.下列哪個編譯指令不屬于條件編譯指令()
A.#if
B.#else
C.ttendif
D.terror
17.類A中存在靜態(tài)數(shù)據(jù)成員x,設(shè)a和b是類A的兩個對象,在執(zhí)
行a.x=10之后,b.x
的值為()
A.未初始化
B.等于a.x
C.等于0
D.隨機
18.使用string,h庫操縱字符串時,將兩個字符串連接成一個字符串
的函數(shù)是()
A.strlen()
B.strcap()
C.strcat()
D.strcmp()
19.基類中的public成員,通過public派生,其在派生類中的訪問
權(quán)限為()
A.不可訪問
B.private
C.protected
D.public
20.不同對象調(diào)用同名函數(shù),但導(dǎo)致完全不同行為的現(xiàn)象稱為()
A.抽象
B.封裝
C.繼承
D.多態(tài)性
二、填空題(本大題共20小題,每小題1分,共20分)
請在每小題的空格中填上正確答案。錯填、不填均無分。
21.在C++語言的面向?qū)ο笤O(shè)計框架中,是程序的基本組成單
元。
22.執(zhí)行代碼doublepi=3.1415192;cout<<setprecision(3)<
<pi;程序的輸出結(jié)果是o
23.C++語言提供的的基本控制結(jié)構(gòu)可以分為3種類型:順序結(jié)構(gòu)、
和循環(huán)結(jié)構(gòu)。
24.要使用STL庫提供的對數(shù)組進行降事排序算法,在源程序中需要
包含的頭文件是o
25.在C++標(biāo)準(zhǔn)庫中,用類來表示復(fù)數(shù)。
26.將對象作為函數(shù)參數(shù),是將實參對象的傳遞給形參對象,
這種傳遞是單向的。
27.C++函數(shù)的返回類型可以是除數(shù)組與以外的任何類型。
28.能提供封裝的C++關(guān)鍵字是o
29.在C++的類聲明中,用public關(guān)鍵字聲明的類成員的訪問權(quán)限是
30.開發(fā)一個C++語言程序的步驟通常包括編輯、、連接、運
行和調(diào)試。
31.C++類中的函數(shù)在對象的生存期結(jié)束時被自動調(diào)用。
32.友元函數(shù)可以存取類的、公有成員和保護成員。
33.若類的成員函數(shù)用關(guān)鍵字static進行修飾,這樣的成員函數(shù)稱為
34.在C++中,創(chuàng)建派生類對象時,總是先從的初始化開始的。
35.類的繼承是指派生類繼承基類的數(shù)據(jù)成員和o
36.在C++中,利用向量類模板定義一個具有20個double的向量,
其元素均被置為0.5,實現(xiàn)此操作的語句是o
37.vector類中用于返回向量中的最后一個對象的方法是。
38.虛函數(shù)類似于重載函數(shù),但與重載函數(shù)的實現(xiàn)策略不同,對虛函
數(shù)聲明時應(yīng)使用關(guān)鍵字。
39.在C++中,雖然友元提供了類之間數(shù)據(jù)進行訪問的一種方式,但
它破壞了面向?qū)ο蟪绦蛟O(shè)計的特性。
40.執(zhí)行下列代碼
cout<<showpoint<<123.0;程序的輸出結(jié)果是。
三、改錯題(本大題共5小題,每小題4分,共20分)
下面的每個程序都有一處錯誤,請用下橫線標(biāo)出錯誤所在行并給出修
改意見。
41.ttinclude
usingnamespacestd;
intmain(){
intnum;max=10;num=1
while(num<max)num++;
cout<<"Num="<<num;
return0;
)
42.ttinclude
usingnamespacestd;
classA{
voidshow(){
cout?/zHello!";
)
);
intmain(){
Aa;a.show();
return0;
)
43.ttinclude
usingnamespacestd;
intmain(){
constintnum=20;
intscores[num];
for(inti=l;i<=num;i++){
scores[i]=i;
)
return0;
)
44.ttinclude
usingnamespacestd;
classCMax{
private:
intxx;intyy;
public:
CMax(intx,inty)
{xx=x;yy=y;}
voidsetValue(intx,inty)
{xx=x;yy=y;}
intmax(){
returnxx>yy?xx:yy;
)
);
voidmain(){
CMaxm();
m.setValue(20,30);
cout<<"Max="<}
45.ttinclude
usingnamespacestd;
classA(
public:
charname[255];
private:
char*getName()
{returnname;}
);
classB:publicA{
public:
B(char*n){
strcpy(name,n);
)
);
voidmain(){
Bb(〃Hello!");
cout<<"Name:"<}
四、完成程序題(本大題共5小題,每小題4分,共20分)
46.將下面程序補充完整,使程序輸出結(jié)果為:
Begin
Welcome
Show
End
程序如下:
ttinclude
usingnamespacestd;
classA(
public:
coutBegin"<}
voidshow(){
cout<<"Show"<}
cout<<"End"<}
);
Aobject;
intmain(){
cout<<"Welcome"<object.show();
return0;
}
47.請將下面程序補充完整,使程序可以正常打印9X9乘法口訣。
ftinclude
usingnamespacestd;
classA{
private:
inta;intb;
public:
{a=x;b=y;}
voidset(intx,inty)
{a=x;b=y;}
voiddisplay(){
cout<}
);
intmain(){
Aa(l,1);
for(inti=l;i<=9;i++){
for(intj=l;;j++){
a.set(j,i);
a.display();
cout?,,";
cout<}
return0;
}
48.將下面程序補充完整,使程序可以輸入學(xué)生信息并計算平均成績。
ftinclude
ftinclude
usingnamespacestd;
classStudent{
private:
charname[255];
intscore[10];
public:
Student(charn[],ints[]){
for(inti=0;i<10;i++){
score[i]=s[i];
)
)
voidShow(){
intsum=0;
for(inti=0;i<10;i++){
)
cout?"名字:〃<<name?//,平均成績:〃<}
};
voidmain(){
charname[255];
intscore[10];
cout?"姓名:";cin>>name;
for(inti=0;i<10;i++){
cout?"成績"<cin>>score[i];
Students(name,score);
s.Show();
)
49.將下面程序補充完整,使程序可以正常運行,并釋放內(nèi)存。
ftinclude
classA{
private:
T*data;
intlength;
public:
A(intlen){
length=len;
data=newT[len];
)
~A(){
T&operator[](inti){
returndata[i];
)
);
intmain(){
Aobj(2);
obj[0]=l;
obj[l]=2;
cout<cout<return0;
)
50.將下面程序補充完整,使程序運行結(jié)果為:
ClassA
ClassB
程序如下:
ttinclude
ftinclude
classA(
public:
virtualvoidGetA()=0;
);
classB:publicA{
private:
charstr[32];
public:
voidGetA(){
cout<<7/ClassA"<}
constchar*GetB(){
)
B(char*s){
strcpy(str,s);
)
);
voidmain(){
A*a;
Bb(,zClassB〃);
a=;
a->GetA();
cout<return;
)
五、程序分析題(本大題共2小題,每小題5分,共10分)
51.ttinclude
usingnamespacestd;
intmain(){
inti,j;
for(i=l;i<=4;i+=l)
for(j=2;j<=4;j+=j){
if(i+j<5)
cout?z/+";
else
cout<<z/*";
)
return0;
)
52.#include
usingnamespacestd;
classA{
inta;
public:
A(intaa=0){a=aa;}
~A(){cout<<"DestructorA!"<};
classB:publicA{
intb;
public:
B(intaa=0,intbb=0):A(aa){b=bb;}
~B(){cout<<"DestructorB!z/<<b<<endl;}
);
voidmain(){
Bx(5),y(6,7);
)
六、程序設(shè)計題(本大題10分)
53.下面Shape類是一個表示形狀的抽象類,Area()為求圖形面積
的函數(shù)。請從Shape類派生梯形類(Trapezoid)、圓形類(Circle),
三角形類(Triangle),并給出具體的求面積函數(shù)。其中,所有派生
類計算面積需要用到的參數(shù)由構(gòu)造函數(shù)給出,梯形面積計算需要上
底、下底和高,三角形面積需要底和高,圓形面積需要半徑。
形狀的抽象類聲明如下:
classShape{
public:
virtualdoubleArea()=0;
);
全國2010年1月高等教育自學(xué)考試
C++程序設(shè)計試題
課程代碼:04737
一、單項選擇題(本大題共20小題,每小題1分,共20分)
在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代
碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。
1.在C++中,頭文件擴展名為()
A..cpp
B..h
C..lib
D..obj
2.下列符號中,不屬于分隔符的是()
A.,
B./
C.;
D.{)
3.可替換#definePI3.1415926的語句是()
A.floatPI3.1415926;
B.constfloatPI=3.1415926;
C.constPI(3.1415926);
D.const3.1415926;
4.布爾類型標(biāo)識符是()
A.void
B.short
C.long
D.bool
5.下列不是C++語言的基本數(shù)據(jù)類型的是()
A.字符類型
B.整數(shù)類型
C.邏輯類型
D.枚舉類型
6.C++允許在結(jié)構(gòu)中定義函數(shù),這些函數(shù)稱為()
A.靜態(tài)函數(shù)
B.構(gòu)造函數(shù)
C.析構(gòu)函數(shù)
D.成員函數(shù)
7.設(shè)函數(shù)voidinc(int)將形參加1,如有整型變量inti=10;則執(zhí)
行inc(i);后,i的值為()
A.9
B.10
C.11
D.未知
8.下列哪種默認(rèn)參數(shù)的聲明是不正確的()
A.intmax(inta,intb,intc,intd=0);
B.intmax(inta,intb,intc=0,intd=0);
C.intmax(inta=0,intb,intc=0,intd=0);
D.intmax(inta,intb=0,intc=0,intd=0);
9.設(shè)int&max(int&,int&)返回兩參數(shù)中較大者,如有兩整型變
量inta=10;intb=15;在執(zhí)行max(a,b)++后,a,b值分別為()
A.10,15
B.11,15
C.10,16
D.11,16
10.包含哪種語句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù)()
A.循環(huán)
B.變量自增自減
C.if...else…
D.變量聲明
11.定義函數(shù)模板中使用的參數(shù)類型標(biāo)識符需使用下列哪組符號括起
來
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- CCAA - 2016年09月建筑施工領(lǐng)域?qū)I(yè)答案及解析 - 詳解版(70題)
- 民營企業(yè)文化建設(shè)的思考
- 養(yǎng)老院信息化管理與服務(wù)制度
- 養(yǎng)老院服務(wù)質(zhì)量監(jiān)督制度
- 再生塑料顆粒生產(chǎn)建設(shè)項目環(huán)評報告
- 老年終末期跌倒預(yù)防的循證護理方案
- 央國企動態(tài)系列報告之56:地方國資會議定調(diào)改革深化多元布局培育新質(zhì)生產(chǎn)力-
- 老年終末期壓瘡疼痛的評估與護理策略
- 我國上市公司現(xiàn)金持有量與企業(yè)績效關(guān)系的深度剖析:基于多維度視角與實證研究
- 我國上市公司控股股東掏空性并購的多維度影響因素剖析與治理路徑
- 2026年安徽皖信人力資源管理有限公司公開招聘宣城市涇縣某電力外委工作人員筆試備考試題及答案解析
- 2026中國煙草總公司鄭州煙草研究院高校畢業(yè)生招聘19人備考題庫(河南)及1套完整答案詳解
- 骨科患者石膏固定護理
- 陶瓷工藝品彩繪師崗前工作標(biāo)準(zhǔn)化考核試卷含答案
- 居間合同2026年工作協(xié)議
- 醫(yī)療機構(gòu)信息安全建設(shè)與風(fēng)險評估方案
- 化工設(shè)備培訓(xùn)課件教學(xué)
- 供熱運行與安全知識課件
- 2026年及未來5年市場數(shù)據(jù)中國3D打印材料行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略數(shù)據(jù)分析研究報告
- 2026年長沙衛(wèi)生職業(yè)學(xué)院單招職業(yè)技能考試題庫及答案詳解1套
- 煤礦三違行為界定標(biāo)準(zhǔn)及處罰細(xì)則
評論
0/150
提交評論