版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023年遼寧省撫順市全國(guó)計(jì)算機(jī)等級(jí)考試
C++語言程序設(shè)計(jì)真題(含答案)
學(xué)校:班級(jí):姓名:考號(hào):
一、1.選擇題(10題)
I.以下有關(guān)成員函數(shù)特征的敘述不正確的是
A.成員函數(shù)一定是內(nèi)聯(lián)函數(shù)B.成員函數(shù)可以重載C.成員函數(shù)可以設(shè)
置缺省參數(shù)值D.成員函數(shù)可以是靜態(tài)的
2.下列描述中錯(cuò)誤的是()。
A.派生類可以作為基類派生其他的子類
B.派生類繼承基類的所有數(shù)據(jù)成員
C.派生類可以有多個(gè)基類
D.派生類不能繼承一些函數(shù)成員
3.類MyClass的定義如下:classMyClass{pubfic:MyClass(){value=0;}
SetVariable(inti){value=i;)private:intvalue;};則對(duì)下列語句序列
正確的描述是()。MyClass*p,my;p=&my;
A.語句p=&my;是把對(duì)象my賦值給指針變量p
B.語句MyClass*p,my;會(huì)調(diào)用兩次類MyClass的構(gòu)造函數(shù)
C.對(duì)語句*p.SetVariable。)的調(diào)用是正確的
D.語句p->SetVadable(5)與語句my.SetVariable⑸等價(jià)
4.下列關(guān)于this指針的敘述中,正確的是()
A.lhis指針是一個(gè)隱含指針,它隱含于類的成員函數(shù)中
B.只有在使用this時(shí),系統(tǒng)才會(huì)將對(duì)象的地址賦值給this
C.類的友元函數(shù)也有this指針
D.this指針表示了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對(duì)象
5.下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是
A.Fractionoperator+fFraction,Fraction);
B.Fractionoperator-(Fraction);
C.Fraction&operator=(Fraction&,Fraction);
D.Fraction&operator4-=(Fraction&,Fraction);
6.對(duì)于語句cin>>x;中的各個(gè)組成部分,下列敘述中錯(cuò)誤的是()。
A.“chT是一個(gè)輸出流對(duì)象B.“的作用是表示語句結(jié)束C."x”是一個(gè)變
量D.“>>”稱作提取運(yùn)算符。
7.以下程序段的執(zhí)行結(jié)果為()°^include<iostream.h>
#definePLUS(x,y)x+yvoidmain(){intx=l:y=2,Z=3,sum:sum=
PLUS(x+y,Z)*PLUS(y,Z):cout<<"SUM="<<sum;cout<<
endl:}
A.SUM=9B.SUM=12C.SUM=18D.SUM=30
8.函數(shù)定義為fun(int&i),變量定義n=100,則下面調(diào)用正確的是()。
A.fun(20);B.fun(20+n);C.fun(n);D.fun(&n);
9.若有以下程序:#include<iostream>usingnamespacestd;class
Base{public:Base(){x=0;}intx;};classDerivedl:virtualpublicBase
{public:Derivedl(){x=10;}};classDerived2:virtualpublicBase{public:
Derived2(){x=20;}};classDerived:publicDerivedl,protected
Derived?{};intmain(){Derivedobj;cout<<obj.x<<end1;return0;}
該程序運(yùn)行后的輸出結(jié)果是()。
A.20B.30C.10D.0
10.下列不屬于3種基本控制結(jié)構(gòu)是()。
A.順序B.選擇C.循環(huán)D.調(diào)用
二、單選題(13題)
(24)若要重栽+、=、<<、==和口運(yùn)算符,則必須作為類成員重載的運(yùn)算符是
A)+和=B)=和<<C)==和<<D)=和[]
11.
12.下面關(guān)于C++流的敘述中,正確的是
A.cin是一個(gè)輸入流對(duì)象
B.可以用ifstrcam定義一個(gè)輸出流對(duì)象
C.執(zhí)行語句序列char*y="PQMN”;cout<<y;將輸出字符串“PQMN”的
地址
D.執(zhí)行語句序列charx[80];cin.getline(x,80);時(shí),若鍵入Happynew
year則x中的字符串是"Flippy”
13.有如下程序段
inti=OJ=l;
int&r=i;〃①
r=j;//②
int*p=&i;〃③
*p=&r;〃④
基中會(huì)產(chǎn)生編譯錯(cuò)誤的語句是
A.?B.③C.②D.①
14.有如下程序:
#include<iostream>
usingnamespacestd;
classB{
public:
virtualvoidshow(){cout?MBu;}};
classD:publicB{
public:
voidshow(){cout?,,Dn;}
);
voidfun1(B*ptr){ptr->show();
}voidfun2(B&ref){ref.show();
}voidfun3(BB){b.show();
intmain(){
Bb,*p=newD;
Dd;
funl(p);
fun2(b);
fun3(d);
returnO;
)
程序的輸出結(jié)果是()oA.BBBB.BBDC.DBBD.DBD
15.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的
是_________O
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
16.執(zhí)行語句序列intx=l,&y=x;cout<<x<<'-1<<y<<endl;輸出
結(jié)果為()
A.x-xB.1-1C.1-0D.異常
17.下面程序的結(jié)果是#include,,iostream.h,'voidmain(){char*str;Str
="test!";cout<<str[5];}
A.程序錯(cuò)誤BJC.WD.為空字符
18.已知類MyClass聲明如下:
classMyClass{
intn;
public:
MyClass(intk):n(k){)
intgetValue()const{returnn;}
);
在下列數(shù)組定義中正確的是O
A.MyClassxl[2];
B.MyClassx2[2]={newMyClass(l),newMyClass(2)};
C.MyClass*x3[2];
D.MyClass*x4[2]={MyClass(l),MyClass(2)};
19.下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是()。
A.靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)行初始化
B.靜態(tài)數(shù)據(jù)成員不可以被類的對(duì)象調(diào)用
C.靜態(tài)數(shù)據(jù)成員不能受private控制符的作用
D.靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用
20.下面程序的輸出結(jié)果是()。
#include<iostreanl.h>
classexample
(
inta;
public:
example(intB.{a=b++;}
voidprint{a=aI1;cout?a?,M,;)
voidprintconst{cout<va<v'"';}
);
voidmain
(
examplex(3);
constexampleY(2);
Aprint;
Bprint;
)
A.22B.43C.42D.32
21.必須用一對(duì)大括號(hào)括起來的程序段是()。
A.switCh語句中的Case標(biāo)號(hào)語句B.if語句的分支C.循環(huán)語句的循環(huán)
體D.函數(shù)的函數(shù)體
22.下列運(yùn)算符中哪些是不能夠被重載的?
A
B.new,delete,=
C.sizeof,new,delete,++,-
D.sizeof,new,delete,
23.下列程序的運(yùn)行結(jié)果是()°
#include<iostream.h>
intx=5:
intfun(inta)
intC;
C=X*a:
returnC;
)
voidmain()
(
intx=3,a=4;
x=x+fun(a);
cout<<,'x="<<x<<endl:
)
A.x=15B.x=17C.x=23D.x=25
三、2.填空題(12題)
24.冒泡排序算法在最好的情況下的元素交換次數(shù)為【
25.有如下程序:
#include<iostream>
usingnamespacestd:
template<typenameT>
Ttotal(T*data){
Ts=0;
While(*data)s+=*data++;
returns;
1
intmain(){
intx[]=[2,4,6,8.10,12,14,16,18);
cout<<total(x);
return0;
)
執(zhí)行上面程序的輸出是______o
26.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組【
27.請(qǐng)將下列類定義補(bǔ)充完整。
classBase{public:voidfun(){cout<<"Base::fun"<<endl;}};
classDcrivcd:publicBase
(
public:
voidfun()
(
[]〃顯式調(diào)用基類的fun函數(shù)
cout<<''Derived::fun1'<<endl;
)
);
28.順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置【】的存儲(chǔ)單
元中。
29.下列程序的運(yùn)行結(jié)果是_____o
#inclUde(iostream.h)
ClassA
{public:
Virtualvoiduse(){cout<<"inA'n";));
classB:publicA
{public:
virtualvoiduse(){cout<<"inB\n";}};
classC:publicB
{public:
Virtualvoiduse(){cout<<“inC\n^^;}};
void
30.已知如下程序的輸出結(jié)果是23,請(qǐng)將畫線處缺失的部分補(bǔ)充完整。
#include<iostream>
usingnamespacestd:
classMyClass{
public:
voidPrint()const{eout<<23;)
);
intmain(){
MyClass*P=newMyClass();
.Print();
return0;
)
31.將以下程序?qū)懗扇窟\(yùn)算表達(dá)式是【】,
if(a>B)max=a;
elsemax=b;
32.數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、I】
和物理數(shù)據(jù)模型。
33.重載的運(yùn)算符保持其原有的【】、優(yōu)先級(jí)和結(jié)合性不變。
34.下面程序的輸出結(jié)果是____o
#include<iostream.h>
voidmain()
(
inta[6]={1,2,3,4,5.6);
for(inti=0;i<5;i++)
cout<<a[i]<<;
cout<<endl;
35.如果類B繼承了類A,則稱類A為類B的基類,類B稱為類A的
[]o
四、程序改錯(cuò)題(10題)
36.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序
運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正錯(cuò)誤,使程序正常運(yùn)行,并且要求最后一個(gè)
catch必須拋出執(zhí)行的任何異常。
程序異常,輸出信息為
error
O
ERROR
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在//******error******的下面。
試題程序:
#include<iostream.h)
intmain
try
throw("error”);
}
/****汴汴汴*error'?、布??、??????????????、
catch(chars)
(
cout?s?endl;
}
try
(
throw((int)0);
catch
(
cout?i?endl;
}
try
(
throw(O);
throw(nerrorn);
/^3>^1*>3^*1**1**1*_*1**1**1**t**i*?l^
//不不不不不不不不prrcr不不不不不不不不
catch
(
cout?nERRORn?endl;
)
returnO:
37.使用VC++6.0打開考生文件夾下的源程序文件
1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤。本程序要求實(shí)
現(xiàn)的功能為從鍵盤輸入一個(gè)字符串,并將結(jié)果保存到文件1.txt中。
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在
/I******en*or******的下面°
試題程序:
#include<iostream>
#include<fstream>
/****舉舉**prror*不*****,?、
usingstd;
voidWriteFile(char*s)
ofstreamout1;
/?1??1??1??1??>1??1?
//不不不不小小不小prrcr不不不不不不不不
outl.open("l.txt",binary|app);
for(inti=0;s[i]!=0;i++)
/小小小小小小小小prrcr不不個(gè)不不不不不
outl.puts(s[i]);
)
outl.close;
}
voidClearFile
(
ofstreamoutl;
outl.open(Hl.txt");
outl.close;
}
intmain
(
chars"024];
ClearFile;
cout?"pleaseinputastrin9:u?endl;
cin.getline(s,1024);
WriteFile(s);
returnO;
38.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)
行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為
Constructor,i=0,
Destructor
注意:錯(cuò)誤的語句在//******error******的下面,修改該語句即可。
試題程序:
#include(iostream.h)
classTC
(
inti;
public:
TC;
voiddisplay;
?TC;
);
TC:TC
cout?',Constructor',?,'
i=0;
)
//-V
//小小小小小小errcr不不不不不不
TC:display
tout?"i=H?i?n,n?endl;
TC:TC
COUI?"Destructor"?endl:
}
voidmain
TCa;
a.display;
)
39.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序
運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正錯(cuò)誤,使程序正常運(yùn)行,并且要求最后一個(gè)
catch必須拋出執(zhí)行的任何異常。
程序異常,輸出信息為
error
0
ERROR
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在//******error******的下面。
試題程序:
#include<iostream.h)
intmain
(
try
(
throw("error");
)
/小小小小小小小小prrcr不不不不不不不不
catch(chars)
(
cout?s?endl;
try
throw((int)0);
)
/汴舉**舉舉汴*prrcr*不******
catch
(
cout?i?endl;
)
try
(
throw(O);
throwC^rror");
/*1*?!*?1??1??[?**??****?*****??**
//不不不不不不不不prrcr不干不不不不不不
catch
(
cout?,,ERROR,,?endl;
)
returnO:
40.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)
行有問題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果為:
number=l
number=10
number=100
注意:不要改動(dòng)main函數(shù),不能增加或刪除行。也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在//******error******的下面。
試題程序:
#include<iostream.h>
classTC
public:
TC(inti)
(
number=i;
}
voidSetNumber(intmi
(
number=m;
)
intGetNumberconst
(
returnnumber;
)
voidPrintconst
(
cout?,,number=,'?number?endl;
)
private:
intnumber;
);
voidmain
/小小小小小小小小prrcr不不不不不不予不
TCobjl;
objl.Print;
TCobj2⑶;
objl.number=10;
II********e仃or*%。******
TC.SetNumber(lOO);
objl.Print;
obj2.Print;
}
41.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序
運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為
Constructor,i=0,
Destructor
注意:錯(cuò)誤的語句在//******error******的下面,修改該語句即
可。
試題程序:
#include(iostream.h)
classTC
inti;
public:
TC;
voiddisplay;
?TC;
/
//*****不不不不予不
TC;TC
cout?,,Constructor',?M,"
i=0;
)
/******errcr不不不不不不
TC:display
tout?',i=,,?i?n,M?endl;
)
/汴汴汴汴不舉prmr不不不不不不
TC:TC
(
COUI?"Destructor"?endl:
)
voidmain
(
TCa;
a.display;
42.使用VC++6.0打開考生文件夾下的源程序文件1.cpp。本程序
要求輸入一個(gè)字符串,然后將其中的小寫字母改成大寫字母,字符可
能輸入多行,當(dāng)輸入字符“?”時(shí),默認(rèn)字符輸入結(jié)束,最后把結(jié)果輸出
到屏幕中。
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在//****火火error******的下面。
試題程序:
#include<iostream.h>
voidmain
(
inti=O;
charstr[120];
cout?"Enterastringendwith?.n?endl;
/不不不不不不不不prrcr不不不不不不不不
cin.getline(str,120);
/I/不”「不*1*不KM”「KM不*1*不不error干不干干干干干不
while(str)
(
/******汴汴0rrcr不不不不不不予予
if(str[i])=a)
str[i]=str[i]-a+A;
i++:
)
cout?str?endl;
return;
43.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)
行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,并使程序輸出的結(jié)果
為:
sizeof(S1)=5
sizeof(s2)=10
sizeof(s3)=l
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在//******error******的下面。
⑴不能刪除assert()語句。
(2)只能修改后面的數(shù)字。
提示:assert函數(shù)如果為假,則會(huì)產(chǎn)生一個(gè)中斷異常。
試題程序:
#include<iostream.h>
#include<asseil.h>
voidmain()
chartsl=',abcM:
/
//不不不不不不不不prr()r不不不不不干不不
assert(sizeof(s1)==3):
cout?nsizeof(s1)=5u?endl;
chars2[10]=nabn:
//
//不不不不不不不不prrcr不干不不不不不不
asseil(sizeof(s2)==2);
coiit?',sizeof(s2)=10,'?endl;
chars3=23:
assert(sizeof(s3)==4);
cout?,,sizeof(s3)=l,'?endl;
return;
44.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,但該程
序運(yùn)行有問題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使該程序的輸出結(jié)果正
確。
程序輸出:
8
8
注意:錯(cuò)誤的語句在/********error********/的下面。修改該語句
即可,其他的語句不能修改。
試題程序:
#include(iostream.h>
classCO
(
public:
7*7*7*7*7*7*7*7*/
不不?門*i*不pi*rY、r不干干不干不不干?
staticintn=O:
CO
(
n++:
}
?CO
):
f7,?[,?{**£**2*f
/不不不不不不不不arrr、r不不不不不不不不/
intCO::n;
voidmain
(
COobj;
COobj2[7];
COCNULL:
c=&obj:
不舉***汴汴汴P(guān)]T()r,????????不不不不???/
eout?C.n?endl;
cout?C0::n?endl;
}
45.使用VC++6.0打開考生文件夾下的源程序文件1.cppo本程序要
求輸入一個(gè)字符串,然后將其中的小寫字母改成大寫字母,字符可能輸
入多行,當(dāng)輸入字符“?”時(shí),默認(rèn)字符輸入結(jié)束,最后把結(jié)果輸出到屏幕
中。
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)
構(gòu),錯(cuò)誤的語句在//*****?error******的下面。
試題程序:
#include<iostream.h>
voidmain
inti=0;
charstr[120J;
cout?MEnterastringendwith?."?endl;
cin.getline(str,120);
while(str)
//
//不不不不不不不不prmr不不不不不不不不
if(str[i])=a)
str[i]=str[i]-a+A;
i++;
cout?str?endl;
return;
五、綜合應(yīng)用題(2題)
46.使用VC++6.0打開考生文件夾下的源程序文件3.cpp。其中定
義的類不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。
(1)定義類的公有數(shù)據(jù)成員函數(shù)NO、NameL32J,其中NO是int型的數(shù)
據(jù),Name[32]為字符型。請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。
(2)完成函數(shù)Set的定義,分別設(shè)置N0和Name的值,請(qǐng)?jiān)谧⑨?后添
加適當(dāng)?shù)恼Z句。
⑶完成函數(shù)print,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句,輸出結(jié)果如下:
N0=12345
Name=HelloWorld!
(4)添加默認(rèn)構(gòu)造函數(shù),設(shè)置NO為0,Name為空,請(qǐng)?jiān)谧⑨?后添加
適當(dāng)?shù)恼Z句。
注意:增加或者修改代碼的位置已經(jīng)用符號(hào)表示出來,請(qǐng)不要修改其
他的程序代碼。
試題程序:
#include<iostream.h>
classTC
(
public:
/at?
//*4**4**4*I*7*
///水*1*?宇1*?!字*?!*?*1**1**1**1*2*?1?*?1?*?1?****3**?*1*
No=no;
for(inti=0:strName[i]!=O:i++)
Name[i]=strName[i];
Name[i+1]=0;
voidprint()
/*1**1**1**3**1**1**1**1**1**1*?1*
/Irj*?J%rjw
TC()
/女女女女**女女4火女女女火女來來)
};
intmain()
(
TCstu:
stu.Set(12345,nHelloWorld!");stu.print();
returnO;
47.請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程
proj3,其中聲明的DataList類,是一個(gè)用于表示數(shù)據(jù)表的類。DataList
的重載運(yùn)算符函數(shù)Operator+,其功能是求當(dāng)前數(shù)據(jù)表與另一個(gè)相同長(zhǎng)
度的數(shù)據(jù)表之和;即它返回一個(gè)數(shù)據(jù)表,其每個(gè)元素等于相應(yīng)兩個(gè)數(shù)
據(jù)表對(duì)應(yīng)元素之和。請(qǐng)編寫這個(gè)operator+函數(shù)。程序的正確輸出應(yīng)該
是:
兩個(gè)數(shù)據(jù)表:1,2,3,4,5,63,4,5,6,7,8兩個(gè)數(shù)據(jù)表之
和:
4,6,8,10,12,14要求:
補(bǔ)充編制的內(nèi)容寫在“〃********333********“與
*//********666********''之間,不得修改程序
的其他部分。
注意:程序最后將結(jié)果輸出到文件。ut.dat中。輸出函數(shù)writeToFile
已經(jīng)編譯為。bj文件,并且在本程序中調(diào)用。
//DataList.h
#inClude<iostream>usingnamespaCestd;
ClaSSDalaList{〃數(shù)據(jù)表類inlfen;
double*d;public:
DataList(intlen,doubledatalJ=NULL);DataList(DataList&data);
intlengthConst{returnlen;}
doublegetElement(inti)Consttreturnd[i];}
DataListoperator+(ConstDataList&list)Const;〃兩個(gè)數(shù)據(jù)表求和void
showConst;//顯示數(shù)據(jù)表
};
voidwriteToFile(Char$,ConstDataList&);//main.Cpp
#inCludevDataList.h"
DataList::DataList(intlen,doubledataf]):len(ien){d=new
doubletlen];
for(inti=0;i<len;i++)
d(Wi=(data==NULL?O.0:data[i]);
)
DataList::DataList(DataList&data):len(data.len){d=new
doubleflen];
for(inti=0;i<len;i++)d[i]=data.d[i];
DataListDataList::0perator+(Con8tDataList&list,)Const{〃兩個(gè)數(shù)據(jù)
表求和double*dd=newdoubleflist.lensthl;
returnDataList(list.length,dd);}
voidDataList::showConst{〃顯示數(shù)據(jù)表fr(intoi=0;i<len-l;i++)
eout?d[i]vv'',";
Cout?dllen-1J?endl;
intmain{
doublesl[]={1,2,3,4,5,6};
doubles2[]={3,4,5,6,7,8};
DataListlistl(6,si),list2(6,s2);〃定義兩個(gè)數(shù)據(jù)表對(duì)象eoutvv”兩個(gè)
數(shù)據(jù)表:"vvendl:
listl.show:list2.show;eoutwendlw”兩個(gè)數(shù)據(jù)表之
和:”vVendl:
(listl+list2).show;
writeToFile(,,,\listl+list2);return0:
六、3.綜合應(yīng)用題(2題)
4g使用VC6打開考生文什夾下的工程testl_3o此工程包含一個(gè)
testl_3.cpp,其中定義了類circle和column,其中column類由circle類
protected派生,但兩個(gè)類的定義并不完整。請(qǐng)按要求完成下列操作,將
程序補(bǔ)充完整。
⑴定義類circle的保護(hù)數(shù)據(jù)成員r和area,它們都是double型的數(shù)據(jù)。
請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z句。
⑵添加類circle的無參數(shù)的構(gòu)造函數(shù),使circle對(duì)象的r默認(rèn)值為0,請(qǐng)
在汁釋“〃**2***之后添加適當(dāng)?shù)恼Z句。
(3)添加派生類column構(gòu)造函數(shù)的定義,傳入的參數(shù)為double型的height
和radius,并將具分別賦值給數(shù)僻成員h和基類的r,請(qǐng)?jiān)谧⑨尅?/**3**”
之后添加適當(dāng)?shù)恼Z句。
(4)完成派生類column的成員函數(shù)print的定義,使其以格式“r=_area=_"
先輸出半徑r和底面積area,再以格式“h=_vol=_”輸出高h(yuǎn)和體積vol
的值,請(qǐng)?jiān)谧⑨尅啊?*4**”之后添加適當(dāng)?shù)恼Z句。
輸山結(jié)果如下:
r=larea=3.1416
h=2voI=6.2832
注意:除在指定的位置添加語句外,請(qǐng)不要改動(dòng)程序中的其他語句。
源程序文件testl_3.cpp清單如下:
#include<iostream.h>
constdoublepi=3.1416;
classcircle
(
protected:
〃**j**
public:
circle(doubleradius){r=radius;}
voidprint()
(
area=r*r*pi;
cout<<,,r=n<<r<<"n<<',area="<<ared<<endl;
classcolumn:protectedcircle
protected:
doubleh;
public:
〃**3**
voidprint()
**4**
voidmain()
(
columncol(1.0,2.0);
Col.print();
)
49.使用VC6打開考生文件夾下的工程testlO_3,此工程包含一個(gè)源程
序文件testlO_3.cpp,其中定義了用于表示雇員信息的CEmployee類與
表示公司信息的Company類,但這兩個(gè)類的定義并不完整。請(qǐng)按要求
完成下列操作。
⑴定義Cemployee類的私有數(shù)據(jù)成員name(大小為50的字符數(shù)組)和
pay(double型數(shù)據(jù)),分別用于記錄雇員姓名和月薪。請(qǐng)?jiān)谧⑨尅啊?*1**?
之后添加適當(dāng)?shù)恼Z句。
(2)完成Company類默認(rèn)構(gòu)造函數(shù)的定義,該構(gòu)造函數(shù)將n值賦值給私
有成員nam,并完成指針emp所指的n個(gè)Cemployee對(duì)象空間的申請(qǐng),
請(qǐng)?jiān)谧⑨尅啊?*2***之后添加適當(dāng)?shù)恼Z句。
⑶完成Company類成員函數(shù)voidCompany::add(血code,charname[50],
doublepay)的定義,該函數(shù)將某一雇員的編號(hào)code、姓名name及月薪
pay輸入到公司信息中。請(qǐng)?jiān)谧⑨尅敝筇砑舆m當(dāng)?shù)恼Z句。
(4)完成Company類成員函數(shù)voidCompany::print()的定義,使其以“_is
paidRMBforouemonth”的格式輸出公司內(nèi)所有員工的月薪信息。請(qǐng)?jiān)?/p>
注釋,,//**4**?之后添加適當(dāng)?shù)恼Z句。
注意:除在指定位置添加語句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。
源程序文件旭stlO_3.cpp清單如下:
#include<iostream.h>
#include<string.h>
classCEmployee
(
public:
voidputname(charn[50]){strcPY(name,n);)
voidgetname(charn[501){strcDY(n,name);)
voidputpay(doubled){pay=d;)
doublegetpay(){returnpay;)
private:
〃**]**
);
classCompany
(
private:
CEmployee*emp;
intnum;
public:
Company(intn);
voidadd(intCOde,Charname[50],doublepay);
voidprint();
}
Company::Company(intn)
(
)
voidCompany::add(intcode,Charname[50],doublepay)
(
voidCompany::print()
(
for(inti=0;i<num;i++)
(
(emp+i)->getname(C);
money=(emp+i)->getpay();
cout<<C<<"ispaid"<<money<<"
RMBforonemonth"<<endl;
}
)
voidmain()
(
Companycom(2);
com.add(0,"Jack'1,200);
com.add(l,"Lee",300);
com.print();
)
參考答案
I.A解析:本題是一個(gè)綜合題,考察幾種常用的修飾詞與成員函數(shù)之間
的關(guān)系。Inline和static均可以修飾成員函數(shù)的。
2.B解析C++語言中通常有3種繼承修飾符public,protected和private,
限制依次嚴(yán)格,另外對(duì)類中的數(shù)據(jù)和函數(shù)也有這3種修飾符進(jìn)行限制。
一個(gè)派生類能不能繼承基類的所有數(shù)據(jù)成員受它們的限制。注意:C++
語言中繼承關(guān)系的修飾符publie,protected和private的運(yùn)用。
3.D
4.D解析:本題考核thiso類的每一個(gè)成員函數(shù)都有一個(gè)隱含定義的常
量指針,稱為this指針。它是成員函數(shù)所屬對(duì)象的指針,它指向類對(duì)象
的地址。成員函數(shù)可以通過這個(gè)指針知道自己屬于哪一個(gè)對(duì)象。當(dāng)對(duì)一
個(gè)對(duì)象調(diào)用成員函數(shù)時(shí),編譯程序先將對(duì)象的地址賦值給this指針,然
后調(diào)用成員函數(shù),每次成員函數(shù)存取數(shù)據(jù)時(shí),則隱含使用this指針。但
是在使用this指針時(shí)需要注意的是:this指針只能在類的成員函數(shù)中使
用,它指向該成員函數(shù)被調(diào)用的對(duì)象。this指針一般用于返回當(dāng)前對(duì)象
自身靜態(tài)成員函數(shù)沒有this指針。因?yàn)轭愔挥幸粋€(gè)靜態(tài)成員函數(shù)實(shí)例,
所以使用this指針沒有什么意義。在靜態(tài)成員函數(shù)中使用this指針會(huì)弓|
起編譯錯(cuò)誤。
5.C解析:類的賦值運(yùn)算符』”只能被重載為成員函數(shù),不能重載為友元
函數(shù)。
6.A解析:本題考核C++的輸入流°cin是一個(gè)輸入流對(duì)象,所以A選
項(xiàng)的敘述是錯(cuò)誤的。
7.B
8.C解析:本題考核函數(shù)的調(diào)用方法。當(dāng)函數(shù)的參數(shù)是引用類型時(shí),參
數(shù)不能為常量、表達(dá)式和變量地址,只能是變量本身。
9.A解析:木題中,雖然Derived1和Derived2都是由共同的基類x派生
而來的,但由于引入了虛基類,使得它們分別對(duì)應(yīng)基類的不同副本。這
時(shí)數(shù)據(jù)成員x只存在一份拷貝,不論在類Derived1修改,還是在類
Derived?中修改,都是直接對(duì)這惟一拷貝進(jìn)行操作。本題程序執(zhí)行語句
“Derivedobj"時(shí),就會(huì)先調(diào)用虛基類Base的構(gòu)造函數(shù),使得x=0,然后
執(zhí)行類Derived1的構(gòu)造函數(shù),使得x=10,再執(zhí)行類Derived2的構(gòu)造函
數(shù),使得x=20o最后輸出x的值為20o
10.D解析:順序、選擇和循環(huán)是程序的三種基本控制結(jié)構(gòu)。
11.D
I2.A解析:本題考核C++流的概念和I/O的格式化。cin是istream類的
對(duì)象,即輸入流對(duì)象。ifstream是輸入文件流類不能定義個(gè)輸出流對(duì)象。
C選項(xiàng)中執(zhí)行語句序列char*y=PQMN;cout<<y;后將輸出字符串
PQMN\getline函數(shù)功能是允許從輸入流中讀取多個(gè)字符,并且允許指
定輸入終止字符(默認(rèn)是換行字符),在讀取完成后,從讀取的內(nèi)容中刪
除該終止字符,所以D選項(xiàng)中的語句序列后x中字符串應(yīng)該是Happy
newyear'o
13.A
14.C
Co【解析】本題考查的知識(shí)點(diǎn)是虛函數(shù)與多態(tài)性。在成員函數(shù)聲明的
前面加上virtual修飾,即把該函數(shù)聲明為虛函數(shù)。在C++41,一個(gè)
基類指針(或引用)可以用于指向它的派生類對(duì)象,而且通過這樣的指針
(或引用)調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針(或引用)實(shí)際所指向的對(duì)象
類的那個(gè)重定義版木。故木題最終輸出結(jié)果為DBB。
15.B模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與
其他模塊的聯(lián)系最少且接口簡(jiǎn)單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到
高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有
利于提高模塊的獨(dú)立性,所以人錯(cuò)誤,B正確。耦合性是模塊間互相連
接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合
的緊密程度,所以C與D錯(cuò)誤。故答案為B選項(xiàng)。
16.B
17.D解析:70'輸出為不顯示,只代表一個(gè)字符串的結(jié)束。注意:C++語
言中各種字符轉(zhuǎn)義序列的意義和應(yīng)用。
18.C
本題主要考查了對(duì)象數(shù)組、指針數(shù)組和new運(yùn)算符。new運(yùn)算符返回
指向指定類型的一個(gè)指針。對(duì)象數(shù)組是指數(shù)組元素為對(duì)象的數(shù)組,該
數(shù)組中的每一個(gè)元素都是同一個(gè)類的對(duì)象。定義對(duì)象數(shù)組時(shí),系統(tǒng)將
自動(dòng)調(diào)用構(gòu)造函數(shù)倉(cāng)J建每一個(gè)對(duì)象元素,因?yàn)轭怣yClass中定義了一
個(gè)有一個(gè)整型參數(shù)的構(gòu)造函數(shù),編譯器將不再為其生成缺省構(gòu)造函
數(shù),所以定義對(duì)象數(shù)組時(shí)必須分別調(diào)用有參構(gòu)造函數(shù)為每一個(gè)數(shù)組元
素指定初始值。因此選項(xiàng)A錯(cuò)誤,沒有初始化對(duì)象數(shù)組;選項(xiàng)B中,用
指向?qū)ο蟮闹羔槼跏蓟瘜?duì)象數(shù)組,類型不匹配,因此選項(xiàng)B錯(cuò)誤;指針
數(shù)組是由指針組成的數(shù)組,即數(shù)組中的每一個(gè)元素都是指向同一類型
對(duì)象的指針。選項(xiàng)C定義了指向MyClass類對(duì)象的指針數(shù)組x3,該定
義語句正確;選項(xiàng)D中,只能用指向MyClass類對(duì)象的指針或用已有的
MyClass類對(duì)象的地址來初始化指針數(shù)組x4的每一個(gè)元素,不能用對(duì)
象進(jìn)行初始化,因此選項(xiàng)D錯(cuò)誤。
19.D解析:靜態(tài)數(shù)據(jù)成員必須在類體外初始化,它是類的所有對(duì)象的共
有成員,需要使用類名調(diào)用,靜態(tài)數(shù)據(jù)成員的初始化與權(quán)限控制無關(guān)。
20.C
“++”是右結(jié)合的,所以先賦值為3,最后輸出3+1;常成員函數(shù)只有常
對(duì)象才能調(diào)用,所以輸出2。
21.D
解析:本題考查的知識(shí)點(diǎn)是;語句塊和函數(shù)。if語句的分支和循環(huán)語
句的循環(huán)體可以是一條語句也可以是一個(gè)語句塊,所以不是必須用一
對(duì)大括號(hào)括起來;switch語句中的case標(biāo)號(hào)語句可以是一系列語句,
也可以包含語句塊,也不是必須用一對(duì)大括號(hào)括起來:函數(shù)的函數(shù)體
必須使用一對(duì)大括號(hào)括起來。故本題應(yīng)該選擇D。
22.A解析:C++語言中的不能重載的操作符是和?
23.C
Co【解析】由主函數(shù)main入手,首先X被賦值為3,a被賦值為4,
然后調(diào)用fun函數(shù),參數(shù)為4,所以在fun函數(shù)中的a=4。而主程序中
的X作用域是由它定義開始到cout輸出,在fun函數(shù)中無效。而在
fun函數(shù)定義前的變量X作用域是整個(gè)程序,所以fun函數(shù)中的x值為
5,這樣c的值就為20。在主函數(shù)中的x+fun(a)中的X為靠近這條語
句的x定義,即3,所以最后x的值為20+3=23。
24.00解析:冒泡排序算法在最好的情況下(已經(jīng)有序的)元素交換次數(shù)
為0。
25.20
26.對(duì)象對(duì)象解析:將屬性、操作相似的對(duì)象歸為類,也就是說,類是
具有共同屬性、共同方法的對(duì)象的集合。
27.Base::fun();
28.相鄰相鄰解析:常用的存儲(chǔ)表示方法有4種,順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)、
索引存儲(chǔ)、散列存儲(chǔ)。其中,順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)
在物理位置也相鄰的存儲(chǔ)單元中。
29.inCoinCo解析:本題考查虛函數(shù)和多態(tài)性。原本obj指向祖先
類,隨后被賦值,指向新的子孫類,則在使用use這個(gè)重載的虛函數(shù)時(shí),
根據(jù)當(dāng)前指向可確定調(diào)用子孫的同名虛函數(shù)。
30.(*p)
31.max=(a>B?a:b;max=(a>B?a:b;解析:條件運(yùn)算符要求有三個(gè)
操作對(duì)象,稱三目(元)運(yùn)算符,它是C++語言中惟一的一個(gè)三目運(yùn)算符。
條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3。所以我們可
以寫成(a>B?a:b,它是一個(gè)“條件表達(dá)式執(zhí)行順序是如果(a>B條件
為真,則條件表達(dá)式取值a作為整個(gè)表達(dá)式的值,否則取值b作為整個(gè)
表達(dá)式的值。
32.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)是現(xiàn)實(shí)世界符號(hào)的抽象,而
數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系
統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束行為,為數(shù)據(jù)庫(kù)系統(tǒng)的信息表示與操作
提供一個(gè)抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們
是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、
物理數(shù)據(jù)模型(physicaldatamodel)o
33.操作符個(gè)數(shù)操作符個(gè)數(shù)解析:本題考查的是運(yùn)算符重載的概念,用
戶重新定義的運(yùn)算符不改變?cè)\(yùn)算符的優(yōu)先性和結(jié)合性,也不改變運(yùn)算
符的語法結(jié)構(gòu).也就是說重載運(yùn)算符不會(huì)產(chǎn)生新的運(yùn)算符。
34.12345。12345。解析:本題考查的是考生使用簡(jiǎn)單循環(huán)輸出數(shù)
組元素的能力,因?yàn)榻Y(jié)束條件是i<5,而i初始值為0,所以只會(huì)輸出
前5個(gè)元素。
35.派生類派生類解析:如果類A為類B的基類,那么類B稱為類A
的派生類。
36.(1)應(yīng)改為"catch(char*s)’'。
⑵應(yīng)改為“cateh(inti)”。
(3)應(yīng)改為"catch(…)”°
【解析】本題中第1個(gè)標(biāo)識(shí)前的異常拋出語句為“throwderror");”,其
中的類型為字符串。所以對(duì)應(yīng)的異常捕捉語句catch中應(yīng)該符合這個(gè)類
型,而程序中給出的語句“catch(chars)”是字符型的,所以第1處的語
句修改為“catch(char*S)”。第2個(gè)標(biāo)識(shí)前的異常拋出語句為
“throw((int)0);",其中的類型為int。對(duì)應(yīng)的異常捕捉語句calch中應(yīng)
該符合這個(gè)類型,所以補(bǔ)充catch子句中的類型,否則如果找不到匹配
的catch塊,系統(tǒng)就會(huì)調(diào)用一個(gè)系統(tǒng)函數(shù),使程序終止運(yùn)行。即第2處
的語句修改為“catch(inti)”。如果在catch子句中沒有指定異常信息的類
型,那么就用刪節(jié)號(hào)“…”表示它可以捕捉任何類型的異常信息,即修
改為“catch(…)”。
37.(1)應(yīng)改為"usingnamespacestd;
(2)應(yīng)改為“outl.open(Ml.txt”,ios::binaryIios::app);
(3)應(yīng)改為“outl.put(s[i]);
【解析】本題第1處的“usingstd;”是在程序中引入標(biāo)準(zhǔn)命名空間std,
對(duì)于C++中引入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處
的語句修改為“usingnamcspaccstd;第2處,調(diào)用成員函數(shù)open
中,輸入、輸出方式是在加類中定義的,所以“outl.open(nl.txf,
binaryIapp);”語句缺少類ios,即第2處的語句修改為
Uout1.open(Hl.txtM,ios::binaryIios::app);第3個(gè)標(biāo)識(shí)應(yīng)
該用流成員函數(shù)put輸出字符,所以第3處的語句修改為
4€outl.put(sfi]);
38.(1)應(yīng)改為“TC::TC”。
\n(2)應(yīng)改為"voidTC::display”。
\n(3)應(yīng)改為“TC::
\n【解析】在類的外部定義成員函數(shù)時(shí),必須在成員函數(shù)前面加上類名
和作用域運(yùn)算符“::作用域運(yùn)算符用采表示某個(gè)成員屬于哪個(gè)類」吏
用格式為“(類名)二〈成員函數(shù)〉((參數(shù)函數(shù))),因此第1處應(yīng)改為“TC::
TC”,默認(rèn)構(gòu)造函數(shù)沒有參數(shù)。由第2處“TC"display”后的語句看,這
是在類外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)誤問題,display
函數(shù)返回值為void,因此第2處的語句應(yīng)改為“voidTC"display:由第
3處的語句叮(2::10可知,顯然這里是在類外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函
數(shù)是一個(gè)特殊的函數(shù),它的名稱和類名相同,并在前面加字符,用
采與構(gòu)造函數(shù)加以區(qū)別,因此第3處的語句應(yīng)改為“TC::?TC二
39.(1)應(yīng)改為"catch(char*s)”。
(2)應(yīng)改為"cateh(inti)”。
(3)應(yīng)改為"catch(…)”。
【解析】本題中第1個(gè)標(biāo)識(shí)前的異常拋出語句為“throw,error");”,其
中的類型為字符串。所以對(duì)應(yīng)的異常捕捉語句catch中應(yīng)該符合這個(gè)類
型,而程序中給出的語句“catch(chars)”是字符型的,所以第1處的語
句修改為“catch(char*S)”。第2個(gè)標(biāo)識(shí)前的異常拋出語句為
“throw((int)0);”,其中的類型為int。對(duì)應(yīng)的異常捕捉語句catch中應(yīng)
該符合這個(gè)類型,所以補(bǔ)充catch子句中的類型,否則如果找不到匹配
的catch塊,系統(tǒng)就會(huì)調(diào)用一個(gè)系統(tǒng)函數(shù),使程序終止運(yùn)行。即第2處
的語句修改為“catch(inti)”。如果在catch子句中沒有指定異常信息的類
型,那么就用刪節(jié)號(hào)表示它可以捕捉任何類型的異常信息、,即修
改為“catch(…)”。
40.(1)應(yīng)改為"TCobjl(l);
\n(2)應(yīng)改為“Objl.SetNumber(lO);
\n(3)應(yīng)改為“0bj2.SelNumber(lOO);"。
\n【解析】本題第1處的“TCobjl;”語句是聲明TC類的對(duì)象Objl,根據(jù)
TC類構(gòu)造函數(shù)的定義TC(inti),存在整型參數(shù),并且題目要求第一個(gè)輸
出結(jié)果兩1,所以補(bǔ)全參數(shù)1,即第1處的“TCobjl(l);二第2處處的
“objl.number=10;”應(yīng)該是調(diào)用成員函數(shù)SetNumber賦值。在C++中
成員函數(shù)的使用形式應(yīng)該是:對(duì)象名.成員函數(shù),所以修改為
t49,
objl.SetNumber(lO);o類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例。
第3處叮(:.$@1m11^「(100);”語句中的丁(:為類,并不是對(duì)象,這里
應(yīng)該使用定義的對(duì)象,即obj2,所以將語句修改為
“obj2.SetNumber(lOO);"。
41.(1)應(yīng)改為“TC::TC”。
(2)應(yīng)改為"voidTC::display"o
⑶應(yīng)改為“TC::?TC”。
【解析】在類的外部定義成員函數(shù)時(shí),必須在成員函數(shù)前面加上類名
和作用域運(yùn)算符“::”,作用域運(yùn)算符用采表示某個(gè)成員屬于哪個(gè)
類,使用格式為“(類名)::(成員函數(shù)〉((參數(shù)函數(shù))),因此第1處應(yīng)改
為“TC::TC”,默認(rèn)構(gòu)造函數(shù)沒有參數(shù)。山第2處“TC::display"后
的語句看,這是在類外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)
誤問題,display函數(shù)返回值為void,因此第2處的語句應(yīng)改為
“voidTC::display”。由第3處的語句“TC::TC”可知,顯然這里是
在類外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函數(shù)是一個(gè)特殊的函數(shù),它的名稱和類名
相同,并在前面加“?”字符,用采與構(gòu)造函數(shù)加以區(qū)別,因此第3處
的語句應(yīng)改為“TC::?TC”。
42.(1)應(yīng)改為“ein.getline(str,120,?);”。
(2)應(yīng)改為"while(str[i])”。
⑶應(yīng)改為“if(st巾]>=a&&st幣]<=2廣。
【解析】本題中要求以輸入字符"'為結(jié)束符,用于字符輸入的流成員
函數(shù)getline函數(shù)讀入一行字符,格式為“cin.getline(字符數(shù)組,字符
個(gè)數(shù),終止標(biāo)志字符)“,所以第1處改為“cin.getline(str,
120,?);5,o第2處的“whilc(str)”語句應(yīng)該是判斷字符串sir中的每一
個(gè)字符是否為結(jié)束符,若不是結(jié)束符,在循環(huán)中判斷每一個(gè)字符是否
為小寫,若為小寫,則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])?。第3處的
“if(str[i]>=a)”語句是判斷字符str[i]是否為小寫字符,而現(xiàn)有的語句只
是判斷字符是否大于a,但是小寫字符應(yīng)該是a到2,所以修改為
44,,
if(str[i]>=a&&str[i]>=z)o
43.(1)應(yīng)改為"assert(sizeof(s1)=4);
\n⑵應(yīng)改為"assert(sizeoRs2)=lO);”。
\n(3)應(yīng)改為"assert(sizeof(s3)==l);
\n【解析】assert函數(shù)如果為假,則會(huì)產(chǎn)生一個(gè)中斷異常。所以要讓它正
常執(zhí)行輸出結(jié)果,那么assert函數(shù)只有為真,才不會(huì)產(chǎn)生中斷異?!?/p>
uassert(sizeof(s1)=3);”語句中“sizeof(sl)==3”為假,這會(huì)使程序產(chǎn)生異
常,不能正常執(zhí)行。因
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園保育員實(shí)習(xí)合同
- 紡織翻新施工合同
- 新能源顧問聘用協(xié)議
- 乳膠漆施工服務(wù)協(xié)議教育機(jī)構(gòu)
- 垃圾處理分包協(xié)議
- 展覽館真石漆施工合同
- 休閑運(yùn)動(dòng)中心施工協(xié)議
- 鐵路新建塔機(jī)租賃合同
- 嬰兒用品快遞租賃合同
- 銀行 融資合同范例
- 儀器分析題庫(kù)(含答案)
- 風(fēng)電工程施工合同
- 招標(biāo)法律法規(guī)匯總
- 湖北省黃岡市2022-2023學(xué)年高一上學(xué)期元月期末數(shù)學(xué)試題(原卷版)
- 2023配電網(wǎng)線損理論計(jì)算導(dǎo)則
- 審計(jì)人員保密守則
- GB/T 713.3-2023承壓設(shè)備用鋼板和鋼帶第3部分:規(guī)定低溫性能的低合金鋼
- 林西森騰礦業(yè)有限責(zé)任公司林西縣銀洞子溝鉛鋅礦2022年度礦山地質(zhì)環(huán)境治理計(jì)劃書
- 招聘服務(wù)協(xié)議
- 免費(fèi)下載裝修合同范本
- 《高職體育與健康》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論