版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022年山西省忻州市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、1.選擇題(10題)1.this指針是C++語(yǔ)言實(shí)現(xiàn)什么的一種機(jī)制?()
A.抽象B.封裝C.繼承D.重載
2.下列字符串中,正確的C++標(biāo)識(shí)符是()。
A.foo-lB.2bC.newD._256
3.下面的描述中,正確的是()。
A.A.virtual可以用來(lái)聲明虛函數(shù)
B.含有純虛函數(shù)的類是不可以用來(lái)創(chuàng)建對(duì)象的,因?yàn)樗翘摶?/p>
C.即使基類的構(gòu)造函數(shù)沒(méi)有參數(shù),派生類也必須建立構(gòu)造函數(shù)
D.靜態(tài)數(shù)據(jù)成員可以通過(guò)成員初始化列表來(lái)初始化
4.以下選項(xiàng)中,與k=n++完全等價(jià)的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
5.下列關(guān)于虛基類的描述中錯(cuò)誤的是
A.虛基類子對(duì)象的初始化由最派生類完成
B.虛基類子對(duì)象的初始化次數(shù)與虛基類下面的派生類個(gè)數(shù)有關(guān)
C.設(shè)置虛基類的目的是消除二義性
D.帶有虛基類的多層派生類構(gòu)造函數(shù)的成員初始化列表中都要列出對(duì)虛基類構(gòu)造函數(shù)調(diào)用
6.已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是()
A.堆排序B.直接插入排序C.快速排序D.直接選擇排序
7.下列敘述中正確的是()。
A.線性鏈表中的各元素在存儲(chǔ)空間中的位置必須是連續(xù)的
B.線性鏈表中的表頭元素一定存儲(chǔ)在其他元素的前面
C.線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,但表頭元素一定存儲(chǔ)在其他元素的前面
D.線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,且各元素的存儲(chǔ)J頃序也是任意的
8.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為
A.31B.32C.16D.15
9.有以下程序:#include<iostream>usingnamespacestd;classsample{private:intn;public:sample(){}sample(intm){n=m;sampleadd(samplesl,samples2){this->n=sl.n+s2.n;return(*this);}voiddisp(){cout<<"n="<<n<<end1;}};intmain(){samplesl(10),s2(5),s3;s3.add(s1,s2);s3.disp();return0;}程序運(yùn)行后,輸出的結(jié)果是()。
A.n=10B.n=5C.n=20D.n=15
10.下列運(yùn)算符不能重載為友元函數(shù)的是()。
A.=()[]→B.+-++--C.><>=<=D.+=-=*=/=
二、單選題(13題)11.為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡(jiǎn)單的函數(shù)定義為()。
A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸函數(shù)D.函數(shù)模板
12.有如下程序:#included<iostream>usingnamespacestd;voidfl(int&X,int&y){intz=x;x=y;y=z;)voidf2(intX,inty){intz=x;x=y;y=z;}intmain(){intx=10,y=26;f1(X,y);f2(x,y);cout<<y<<endl;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A.10B.16C.26D.36
13.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測(cè)試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源
14.下列關(guān)于this指針的敘述中,正確的是()。
A.任何與類相關(guān)的函數(shù)都有this指針
B.類的成員函數(shù)都有this指針
C.類的友元函數(shù)都有this指針
D.類的非靜態(tài)成員函數(shù)才有this指針
15.負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是()。
A.數(shù)據(jù)定義語(yǔ)言B.數(shù)據(jù)管理語(yǔ)言C.數(shù)據(jù)操縱語(yǔ)言D.數(shù)據(jù)控制語(yǔ)言
16.下列敘述中錯(cuò)誤的是()。
A.gets函數(shù)用于從終端讀入字符串
B.getchar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件
17.有如下函數(shù)模板聲明:template
TMax(Ta,Tb){return(a>=b)?a.b;}下列對(duì)函數(shù)模板Max()的調(diào)用中錯(cuò)誤的是()。
A.Max(3.5,4.5)
B.Max(3.5,4)
C.Max(3.5,4.5)
D.Max(3.5,4)
18.在32位的計(jì)算機(jī)中,一個(gè)char型數(shù)據(jù)所占的內(nèi)存長(zhǎng)度的字節(jié)是()A.4B.1C.2D.8
19.下面排序算法中,平均排序速度最快的是()。
A.冒泡排序法B.選擇排序法C.交換排序法D.堆排序法
20.
21.算法的空間復(fù)雜度是指()。
A.算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語(yǔ)句或指令條數(shù)
D.算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)
22.下列描述中,()是抽象類的特性。
A.可以說(shuō)明虛函數(shù)B.可以進(jìn)行構(gòu)造函數(shù)重載C.可以定義友元函數(shù)D.不能說(shuō)明其對(duì)象
23.數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是()
A.數(shù)據(jù)存儲(chǔ)B.數(shù)據(jù)共享C.數(shù)據(jù)查詢D.數(shù)據(jù)管理
三、2.填空題(12題)24.棧中允許進(jìn)行插入和刪除的一端叫做______。
25.下列程序在構(gòu)造函數(shù)和析構(gòu)函數(shù)中申請(qǐng)和釋放類的數(shù)據(jù)成員int*a,申請(qǐng)時(shí)使用形參b初始化a,請(qǐng)?zhí)羁铡?/p>
classA
{
public:
A(intb);
~A();
private:
int*a;
};
A::A(intb)
{
【】;
}
A::~A()
{
【】;
}
26.在C++中,打開一個(gè)文件,就是將這個(gè)文件與一個(gè)【】建立關(guān)聯(lián);關(guān)閉一個(gè)文件,就是取消這種關(guān)聯(lián)。
27.在面向?qū)ο蠓椒ㄖ?______描述的是具有相似屬性與操作的一組對(duì)象。
28.C++語(yǔ)言的參數(shù)傳遞機(jī)制包括傳值和傳地址兩種,如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取【】方式。
29.在算法的4個(gè)特性中,算法必須能在執(zhí)行有限個(gè)步驟之后終止指的是算法的______特性。
30.下列程序運(yùn)行后的輸出結(jié)果是【】。
#include<iostream.h>
voidmain()
{
ints=0,k;
for(k=7;k>=0;k--)
{
switch(k)
{
case1:
case4:
case7:s++;break;
case2:
case3:
case6:break;
case0:
case5:S+;2;break;
}
}
cout<<"S="<<S<<endl;
}
31.在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊。其中【】的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。
32.對(duì)于下列語(yǔ)句
char*strl="Hello";
char*str2=."Hello";
*strl='P';
cout<<str2<<end1;
其輸出結(jié)果為:【】
33.結(jié)構(gòu)化程序設(shè)計(jì)所規(guī)定的三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和【】。
34.執(zhí)行以下程序后,輸出“#”號(hào)的個(gè)數(shù)是【】。
#include<iostream.h>
main()
{
inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)
cout<'#';
}
35.深度為m的滿二叉樹共有【】個(gè)節(jié)點(diǎn)。
四、程序改錯(cuò)題(10題)36.使用VC++6.0打開考生文件夾下的源程序文件1.cpp。本程序要求輸入一個(gè)字符串,然后將其中的小寫字母改成大寫字母,字符可能輸入多行,當(dāng)輸入字符“?”時(shí),默認(rèn)字符輸入結(jié)束,最后把結(jié)果輸出到屏幕中。注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。試題程序:#include<iostream.h>voidmain{inti=0;charstr[120];cout<<"Enterastringendwith?."<<endl;//********error********cin.getline(str,120);//********error********while(str){//********error********if(str[i])=a)str[i]=str[i]-a+A;i++;}cout<<str<<endl;return;}
37.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為
Constructor,i=0,
Destructor
注意:錯(cuò)誤的語(yǔ)句在//******error******的下面,修改該語(yǔ)句即可。
試題程序:
#include(iostream.h)
classTC
{
inti;
public:
TC;
voiddisplay;
~TC;
};
//******error******
TC:TC
{
cout<<"Constructor"<<",";
i=0;
)
//******error******
TC:display
{
tout<<"i="<<i<<","<<endl;
}
//******error******
TC:TC
{
COUI<<"Destructor"<<endl:
}
voidmain
{
TCa;
a.display;
}
38.使用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ò)誤的語(yǔ)句在//******error******的下面。
試題程序:
#include<iostream.h)
intmain
{
try
{
throw("error");
}
//********error********
catch(chars)
{
cout<<s<<endl;
}
try
{
throw((int)0);
}
//********error********
catch
{
cout<<i<<endl;
}
try
{
throw(O);
throw("error");
}
//********error********
catch
{
cout<<"ERROR"<<endl;
}
return0;
}
39.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,并使程序輸出的結(jié)果為:
sizeof(S1)=5
sizeof(s2)=10
sizeof(s3)=1
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。
(1)不能刪除assert()語(yǔ)句。
(2)只能修改后面的數(shù)字。
提示:assert函數(shù)如果為假,則會(huì)產(chǎn)生一個(gè)中斷異常。
試題程序:
#include<iostream.h>
#include<assert.h>
voidmain()
{
char*s1="abc":
//********error********
assert(sizeof(s1)==3):
cout<<"sizeof(s1)=5"<<endl;
chars2[10]="ab":
//********error********
assert(sizeof(s2)==2);
cout<<"sizeof(s2)=10"<<endl;
chars3=23:
//********error********
assert(sizeof(s3)==4);
cout<<"sizeof(s3)=1"<<endl;
return;
}
40.使用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ò)誤的語(yǔ)句在//******error******的下面。試題程序:#include<iostream>#include<fstream>//********error********usingstd;voidWriteFile(char*s){ofstreamout1;//********error********out1.open("1.txt",binary|app);for(inti=0;s[i]!=0;i++){//********error********out1.puts(s[i]);}out1.close;}voidClearFile{ofstreamout1;out1.open("1.txt");out1.close;}intmain{chars[1024];ClearFile;cout<<"pleaseinputastrin9:"<<endl;cin.getline(s,1024);WriteFile(s);return0;}
41.使用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ò)誤的語(yǔ)句在
//******error******的下面。
試題程序:
#include<iostream>
#include<fstream>
//********error********
usingstd;
voidWriteFile(char*s)
{
ofstreamout1;
//********error********
out1.open("1.txt",binary|app);
for(inti=0;s[i]!=0;i++)
{
//********error********
out1.puts(s[i]);
}
out1.close;
}
voidClearFile
{
ofstreamout1;
out1.open("1.txt");
out1.close;
}
intmain
{
chars[1024];
ClearFile;
cout<<"pleaseinputastrin9:"<<endl;
cin.getline(s,1024);
WriteFile(s);
return0;
}
42.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行有問(wèn)題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果為:number=1number=10number=100注意:不要改動(dòng)main函數(shù),不能增加或刪除行。也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。試題程序:#include<iostream.h>classTC{public:TC(inti){number=i;}voidSetNumber(intm){number=m;}intGetNumberconst{returnnumber;}voidPrintconst{cout<<"number="<<number<<endl;}private:intnumber;};voidmain{//********error********TCobjl;objl.Print;TCobj2(3);//********error********objl.number=10;//********error*‰******TC.SetNumber(100);objl.Print;obj2.Print;}
43.使用VC++6.0打開考生文件夾下的源程序文件1.cpp。本程序要求輸入一個(gè)字符串,然后將其中的小寫字母改成大寫字母,字符可能輸入多行,當(dāng)輸入字符“?”時(shí),默認(rèn)字符輸入結(jié)束,最后把結(jié)果輸出到屏幕中。
注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。
試題程序:
#include<iostream.h>
voidmain
{
inti=0;
charstr[120];
cout<<"Enterastringendwith?."<<endl;
//********error********
cin.getline(str,120);
//********error********
while(str)
{
//********error********
if(str[i])=a)
str[i]=str[i]-a+A;
i++;
}
cout<<str<<endl;
return;
}
44.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行有問(wèn)題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果為:
number=1
number=10
number=100
注意:不要改動(dòng)main函數(shù),不能增加或刪除行。也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。
試題程序:
#include<iostream.h>
classTC
{
public:
TC(inti)
{
number=i;
}
voidSetNumber(intm)
{
number=m;
}
intGetNumberconst
{
returnnumber;
}
voidPrintconst
{
cout<<"number="<<number<<endl;
}
private:
intnumber;
};
voidmain
{
//********error********
TCobjl;
objl.Print;
TCobj2(3);
//********error********
objl.number=10;
//********error*‰******
TC.SetNumber(100);
objl.Print;
obj2.Print;
}
45.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)。請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為1003732注意:錯(cuò)誤的語(yǔ)句在//******error******的下面,修改該語(yǔ)句即可。試題程序:#include<iostream.h>//******error******voidmain{//******error******intm=0142://******error******intn=0X27:intq=32;cout<<m<<endl;cout<<n<<endl;cout<<q<<endl;return;}五、綜合應(yīng)用題(2題)46.使用VC++6.0打開考生文件夾下的源程序文件3.cpp,其中定義了類A、A1和A2,其中A1類由A類公有派生,A2類由A1類公有派生。(1)定義類A的構(gòu)造函數(shù),該構(gòu)造函數(shù)有一個(gè)整型的參數(shù)x,在構(gòu)造函數(shù)中請(qǐng)將x賦值給數(shù)據(jù)成員a。請(qǐng)?jiān)谧⑨尅埃?*******1********”之后添加適當(dāng)?shù)恼Z(yǔ)句。(2)定義類A1的構(gòu)造函數(shù),該構(gòu)造函數(shù)有兩個(gè)整型的參數(shù)x和y,在構(gòu)造函數(shù)中請(qǐng)將x賦值給數(shù)據(jù)成員b,將y作為基類A構(gòu)造函數(shù)的參數(shù)值傳人。請(qǐng)?jiān)谧⑨尅埃?*******2********”之后添加適當(dāng)?shù)恼Z(yǔ)句。(3)定義類A2的構(gòu)造函數(shù),該構(gòu)造函數(shù)有3個(gè)整型的參數(shù)x,y和z,在構(gòu)造函數(shù)中請(qǐng)將x賦值給數(shù)據(jù)成員C,將y和z分別賦值給基類A1構(gòu)造函數(shù)的參數(shù)x和y。請(qǐng)?jiān)谧⑨尅埃?*******3********”之后添加適當(dāng)?shù)恼Z(yǔ)句。(4)完成類A2的成員函數(shù)show的定義,該函數(shù)調(diào)用基類成員函數(shù),輸出基類數(shù)據(jù)成員a和b及類A2自身的數(shù)據(jù)成員C的值,上述3個(gè)值在輸出時(shí)以空格隔開。請(qǐng)?jiān)谧⑨尅埃?*******4********”之后添加適當(dāng)?shù)恼Z(yǔ)句。程序輸出結(jié)果如下:73738注意:除在指定的位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序的其他部分。試題程序:#include<iostream.h>classA{inta;public://********1********intgeta{returna;}};classA1:publicA{intb;public://********2********intgetb{returnb;}};classA2:publicA1{intC;public://****,****3********voidshow{//********4********}};voidmain{A2a(8.3.7):cout<<a.geta<<endl:cout<<a.getb<<endl:a.show;}
47.(1)“while”應(yīng)改為“while(infile.get(ch))”。
(2)應(yīng)添加“bur[len++]=ch;bur[len]=ch;len++;”。
(3)應(yīng)添加“outfile2<<bur[i++];”或“outfile2<<buf[i];i++;”。
(4)“TCobj;”應(yīng)改為“TCobi("in.txt");”。
【解析】本題考查了文件流的使用。根據(jù)題意,第1處要獲得一個(gè)字符,并判斷是否到文件結(jié)尾,所以應(yīng)使用get函數(shù);第2處應(yīng)將ch存入buf數(shù)組,同時(shí)讓len增1;第3處將buf中的字節(jié)輸出給outfile2,注意同時(shí)讓i增1,否則while循環(huán)將進(jìn)入死循環(huán);第4處TC只確一個(gè)帶char*參數(shù)的構(gòu)造函數(shù),所以創(chuàng)建對(duì)象時(shí)必須使用構(gòu)造參數(shù),根據(jù)題意這個(gè)參數(shù)應(yīng)該是“"in.txt"”。
六、3.綜合應(yīng)用題(2題)48.使用VC6打開考生文件夾下的工程test19_3,此工程包含一個(gè)源程序文件test19_3.cpp,其中定義了用于表示向量的類vector,但類vector的定義并不完整。請(qǐng)按要求完成下列操作,將類vector的定義補(bǔ)充完整。
(1)補(bǔ)充類vector的構(gòu)造函數(shù),該函數(shù)有參數(shù)x和y,它們都是int型的數(shù)據(jù),默認(rèn)值都為0。請(qǐng)使用參數(shù)列表的形式分別將類的數(shù)據(jù)成員a和b分別初始化為參數(shù)x和y的值。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(2)完成類vector的成員函數(shù)input(intx,inty)的定義,將int型的參數(shù)x和y分別賦值給數(shù)據(jù)成員a和b,請(qǐng)?jiān)谧⑨尅?/**2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(3)完成類vector的友元函數(shù)frienddoubleMultiply(vector&x,vector&y)的定義,先定義double型的臨時(shí)變量c,然后將參數(shù)對(duì)象x和對(duì)象y的數(shù)據(jù)成員a與b分別相乘再相加后賦值給c,最后返回c的值,將請(qǐng)?jiān)谧⑨尅?/**3**”之后添加適當(dāng)?shù)恼Z(yǔ)句。輸出結(jié)果如下:
(10,20)
(2,3)
80
注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。
源程序文件test19_3.cpp清單如下:
#include<iostream.h>
classvector
{
inta;
intb;
public:
//**1**
voidinput(intx,inty)
{
//**2**
}
voidoutput()
{
cout<<'('<<a<<','<<b<<")"<<end1;
}
frienddoubleMultiply(vector&x,vector&y);
}
doubleMultiply(vector&x,vector&y)
{
//**3**
c=x.a*y.a+x.b*y.b;
returnc;
}
voidmain()
{
vectorx(10,20),y;
doubled;
y.input(2,3);
d=Multiply(x,y);
x.output();
y.output();
cout<<d<<end1;
}
49.使用VC6打開考生文件夾下的工程MyProj1。此工程包含千個(gè)源程序文件MyMainl.cpp,其中定義了用于表示日期的類Date,但類Date的定義并不完整。請(qǐng)按要求完成下列操作,將類Date的定義補(bǔ)充完成:
①定義私有數(shù)據(jù)成員year、month和day分別用于表示年、月、日,它們都是int型的數(shù)據(jù)。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
②完成默認(rèn)構(gòu)造函數(shù)Date的定義,使Date對(duì)象的默認(rèn)值為:year=1,month=1,day=1,請(qǐng)?jiān)谧⑨尅?/**2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
③完成重載構(gòu)造函數(shù)Date(inty,intm,intd)的定義,把數(shù)據(jù)成員year、month和day分別初始化為參數(shù)y、m和d的值,請(qǐng)?jiān)谧⑨尅?/**3**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
④完成成員函數(shù)print的類外定義,使其以“年-月-日”的格式將Date對(duì)象的值輸出到屏幕上。請(qǐng)?jiān)谧⑨尅?/**4**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。
源程序文件MyMain1.cpp清單如下:
//MyMainl.cpp
#include<iostream>
usingnamespacestd;
classDate
{
public:
//**2**
Date(inty,intm,intd)
{
//**3**
}
voidprint()const;
private:
//datamember
//**1**
};
voidDate::print()const
{
//**4**
}
intmain()
{
Datenational_day(1949,10,1);
national_day.print();
return0;
}
參考答案
1.B解析:this指針是C++語(yǔ)言實(shí)現(xiàn)封裝的一種機(jī)制,它將對(duì)象和該對(duì)象調(diào)用的成員函數(shù)連接在一起,在外部看來(lái),每一個(gè)對(duì)象都擁有自己的函數(shù)成員。
2.D解析:第一個(gè)字符必須是字母或下劃線,中間不能有空格,在第一個(gè)字母后,可以是任意字母、下劃線和數(shù)字組成的字符序列;標(biāo)識(shí)符的長(zhǎng)度是任意的,但特定的編譯系統(tǒng)能夠識(shí)別的標(biāo)識(shí)符長(zhǎng)度是有限的。一般不要超過(guò)31個(gè)字符;標(biāo)識(shí)符中大小寫字母是有區(qū)別的;用戶定義標(biāo)識(shí)符時(shí),不要采用系統(tǒng)的保留字。
3.A在基類中用virtual聲明成員函數(shù)為虛函數(shù),所以A是正確的。純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的虛函數(shù)。純虛函數(shù)是一種特殊的虛函數(shù),它沒(méi)有具體的實(shí)現(xiàn)。靜態(tài)數(shù)據(jù)成員函數(shù)只能在類外進(jìn)行初始化。
4.A解析:在本題中k=n++,為后綴運(yùn)算。根據(jù)其運(yùn)算規(guī)則,首先n先加一,但n++表達(dá)式的值依然n原來(lái)的值,即k的值沒(méi)有改變。選項(xiàng)A中先給k賦值為n,然后n再加1,k值沒(méi)有變化,所以這個(gè)表達(dá)式和本題中表達(dá)式等價(jià):選項(xiàng)B中先n加1,然后將n加1后的值賦給k,k變化了比原來(lái)的值大1,所以這個(gè)表達(dá)式和本題中表達(dá)式不等價(jià):選項(xiàng)C中先計(jì)算表達(dá)式左邊的表達(dá)式++=N的值,執(zhí)行++n后,左邊的表達(dá)式的值為n的值加1,然后將n+1后的值賦給k,所以這個(gè)表達(dá)式和本題中的表達(dá)式不等價(jià);選項(xiàng)D中表達(dá)式展開為k=k+(n+1),k的值發(fā)生了變化,所以這個(gè)表達(dá)式和本題中的表達(dá)式不等價(jià)。所以4個(gè)選項(xiàng)中A正確。
5.B解析:虛基類主要是為了消除在多重繼承中的二義性問(wèn)題。實(shí)際上,說(shuō)某個(gè)類是虛基類,并不是該類本身有什么特殊的地方,而是在繼承的時(shí)候加上virtual修飾詞。虛基類不同于抽象類,虛基類是可以被實(shí)例化的,派生類初始化時(shí),必須列出虛基類的構(gòu)造函數(shù)調(diào)用。虛基類對(duì)象的初始化次數(shù)只于對(duì)象的多少有關(guān),與類的層次結(jié)構(gòu)是沒(méi)有關(guān)系的。故本題正確答案為B。
6.B堆排序。先把序列看成一棵大根堆或小根堆,摘取最大或最小元素后再建成新的根堆,再排序。堆排序的過(guò)程是:先建一個(gè)堆,輸出堆頂?shù)淖畲蠡蜃钚〉脑?,再將剩余的n-1個(gè)元素重新調(diào)整成一個(gè)新堆。如此反復(fù)進(jìn)行,直到排序完成。
直接插入排序是一種最簡(jiǎn)單的排序方法,它的基本操作是將一個(gè)記錄插入到已排好的有序表中,從而得到一個(gè)新的、記錄數(shù)增1的有序表。首先,將序列中的第1個(gè)記錄看成是一個(gè)有序的子序列,然后從第2個(gè)記錄起逐個(gè)進(jìn)行插入,直至整個(gè)序列變成按關(guān)鍵字非遞減有序序列為止。
快速排序是對(duì)冒泡排序的一種改進(jìn)。它的基本思想是通過(guò)一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,則可以分別對(duì)這兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序。
直接選擇排序是通過(guò)n-i次關(guān)鍵字間的比較,從n-i+1個(gè)記錄中選出關(guān)鍵字最小的一個(gè)記錄,并和第i個(gè)記錄交換。這樣重復(fù)執(zhí)行n-1趟選擇排序。
在本題中,數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),即說(shuō)明數(shù)據(jù)表基本有序,簡(jiǎn)單移動(dòng)一些元素即可完成排序,在這種情況下,使用直接插入排序法所需時(shí)間最少,最合理。因此本題的正確答案是B。
\r\n\r\n\r\n
7.D
8.C解析:二叉樹的一個(gè)性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個(gè)結(jié)點(diǎn)。對(duì)于滿二叉樹,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-1個(gè)結(jié)點(diǎn)。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點(diǎn)在第5層上,即其結(jié)點(diǎn)數(shù)為2(k-1)=2(5-1)=16。
9.D解析:本題考核this指針的使用。類中成員函數(shù)add中的this指針指向該成員函數(shù)被調(diào)用的對(duì)象。在主函數(shù)main()中調(diào)s3.a(chǎn)dd(s1,s2),即對(duì)象s3的私有變量n的值為對(duì)象s1和s2私有變量的和,所以程序最后輸出15,即選項(xiàng)D。
10.A
11.A\n一般函數(shù)進(jìn)行調(diào)用時(shí),要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中.然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時(shí),是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來(lái)替換,一般只將{將規(guī)模很小而使用頻繁的函數(shù)聲明為內(nèi)聯(lián)函數(shù),可以避免函數(shù)調(diào)用時(shí)間開銷,從而提高運(yùn)行速度。
\n
12.AA?!窘馕觥吭擃}考查了函數(shù)參數(shù)傳遞的兩種方式:引用傳遞和值傳遞,引用傳遞時(shí)x和y會(huì)交換,而值傳遞時(shí)二者不交換,因此選10。
13.D軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中主要的資源有硬件資源、通信資源、輔助資源等。(1)硬件資源是指組成計(jì)算機(jī)及相關(guān)應(yīng)用所需要的硬件,它是軟件開發(fā)必不可少的資源,因?yàn)闊o(wú)論什么樣的軟件工具都需要在硬件上完成任務(wù),它是其他資源的基礎(chǔ)資源。(2)通信資源是指為軟件開發(fā)提供通信支撐的資源,它與測(cè)試數(shù)據(jù)無(wú)關(guān)。(3)支持軟件是指為軟件開發(fā)提供操作平臺(tái)的軟件,如常用的面向?qū)ο箝_發(fā)的Rose軟件,它主要是軟件開發(fā)的工具。通過(guò)對(duì)上述分析的總結(jié),可以知道本題的正確答案選D。
14.D解析:本題考核this指針的使用。類的每一個(gè)成員函數(shù)都有一個(gè)隱含定義的常量指針,稱為this指針。它是成員函數(shù)所屬對(duì)象的指針,它指向類對(duì)象的地址。成員函數(shù)可以通過(guò)這個(gè)指針知道自己屬于哪一個(gè)對(duì)象。但是在使用this指針時(shí)需要注意的是:this指針只能在類的成員函數(shù)中使用,它指向該成員函數(shù)被調(diào)用的對(duì)象。this指針一般用于返回當(dāng)前對(duì)象自身;靜態(tài)成員函數(shù)沒(méi)有this指針。因?yàn)轭愔挥幸粋€(gè)靜態(tài)成員函數(shù)實(shí)例,所以使用this指針沒(méi)有什么意義。在靜態(tài)成員函數(shù)中使用this指針會(huì)引起編譯錯(cuò)誤。
15.C數(shù)據(jù)定義語(yǔ)言:負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語(yǔ)言:負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增加、刪除、修改等操作;數(shù)據(jù)控制語(yǔ)言:負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。因此本題答案為C)。
16.B解析:本題考查的是輸入輸出函數(shù)的使用,gets和getchar函數(shù)用于從標(biāo)準(zhǔn)輸入設(shè)備終端讀八字符串和字符,并非從磁盤文件讀入,fputs用于把字符串輸出到文件,fwrite用于以二進(jìn)制形式輸出數(shù)據(jù)到文件,故選項(xiàng)B)描述錯(cuò)誤。
17.BB?!窘馕觥恳媚0搴瘮?shù)和引用一般函數(shù)在語(yǔ)法形式上沒(méi)有任何區(qū)別。說(shuō)明一個(gè)函數(shù)模板后,當(dāng)編譯系統(tǒng)發(fā)現(xiàn)有一個(gè)對(duì)應(yīng)的函數(shù)調(diào)用時(shí),將根據(jù)實(shí)參中的類型來(lái)確認(rèn)是否匹配函數(shù)模板中對(duì)應(yīng)的形參。
18.B解析:char型數(shù)據(jù)所占內(nèi)存的大小為1個(gè)字節(jié)。注意:int型數(shù)據(jù)占內(nèi)存的大小為4個(gè),congdouble,double占內(nèi)存的大小為8個(gè)字節(jié)。注意:求字節(jié)數(shù)用sizeof運(yùn)算符。
19.DD。【解析】在各種排序方法中,快速排序法和堆排序法的平均速度是最快的,因?yàn)樗鼈兊臅r(shí)間復(fù)雜度都是O(nlog2n),其他的排序算法的時(shí)間復(fù)雜度大都是O(n2)。
20.D
21.A算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間。所以選擇A項(xiàng)。
22.D解析:本題考核抽象類的特性。
①抽象類是指至少有一個(gè)純虛函數(shù)的類。它往往表示一些抽象的概念,它的成員函數(shù)沒(méi)有什么意義。
②抽象類是一種特殊的類,它是為了抽象和設(shè)計(jì)的目的而建立的,它處于繼承層次結(jié)構(gòu)的上層。抽象類的主要作用是將有關(guān)的類組織在一個(gè)繼承層次結(jié)構(gòu)中,由它來(lái)為它們提供一個(gè)公共的根,相關(guān)的子類是從這個(gè)根派生出來(lái)的。
③對(duì)于抽象類的使用有幾點(diǎn)規(guī)定:抽象類只能用作其他類的基類,不能建立抽象類對(duì)象;抽象類不能用作參數(shù)類型、函數(shù)返回類型或顯式轉(zhuǎn)換的類型;可以說(shuō)明指向抽象類的指針和引用,此指針可以指向它的派生類,進(jìn)而實(shí)現(xiàn)多態(tài)性。
由此可知,抽象類區(qū)別于其他類的最根本的特征是不能定義對(duì)象。因此也一般將抽象類的構(gòu)造函數(shù)說(shuō)明為保護(hù)的訪問(wèn)控制。
23.BB)【解析】數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織
的、可共享的大量數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享,所以數(shù)據(jù)庫(kù)技術(shù)的根本日標(biāo)是解決數(shù)據(jù)共享問(wèn)題。
24.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
25.a=newint(B)deleteaa=newint(B)\r\ndeletea解析:C++中new和delete的使用有如下幾種:①a=newint;deletea;②a=newint(10);deletea;③a=newint[10];delete[]a;。
26.流流解析:在C++中,對(duì)文件的操作是由文件流完成的。文件流類在流與文件之間建立鏈接。
27.類類
28.傳地址傳地址解析:本題考查的是傳值調(diào)用和傳址調(diào)用的區(qū)別——傳值調(diào)用只是進(jìn)行值的簡(jiǎn)單復(fù)制,返回之后不會(huì)改變?cè)瓉?lái)的值;而傳址調(diào)用是把參數(shù)的地址傳入,會(huì)改變?cè)瓉?lái)的值。
29.有窮性有窮性解析:算法的四個(gè)基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報(bào),其中,算法的有窮性指的是算法必須在有限的時(shí)間內(nèi)完成,即算法必須在執(zhí)行有限個(gè)步驟之后終止。
30.s=7
31.驅(qū)動(dòng)模塊驅(qū)動(dòng)模塊解析:在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊。其中驅(qū)動(dòng)模塊的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。
32.PelloPello解析:注意,兩個(gè)字符串都沒(méi)有名字,屬字符串常量,在內(nèi)容中是同一份內(nèi)容。因此,對(duì)strl進(jìn)行重新賦值,僅僅替換了該字符數(shù)組的第一個(gè)字符。兩個(gè)指針指向同一個(gè)字符串,因此輸出為Pello。
33.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)解析:任何一個(gè)大型的程序都由三種基本結(jié)構(gòu)所組成,由這些基本結(jié)構(gòu)順序地構(gòu)成了一個(gè)結(jié)構(gòu)化的程序。事實(shí)上,程序設(shè)計(jì)語(yǔ)言僅僅使用順序、選擇和循環(huán)三種基本結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。
34.6
35.2m-12m-1解析:對(duì)于深度為m的滿二叉樹,其節(jié)點(diǎn)數(shù)為2m-1,這是滿二叉樹的性質(zhì)之一。36.(1)應(yīng)改為“ein.getline(str,120,?);”。
(2)應(yīng)改為“while(str[i])”。
(3)應(yīng)改為“if(str[i]>=a&&str[i]<=2)”。
【解析】本題中要求以輸入字符“?”為結(jié)束符,用于字符輸入的流成員函數(shù)getline函數(shù)讀入一行字符,格式為“cin.getline(字符數(shù)組,字符個(gè)數(shù),終止標(biāo)志字符)”,所以第1處改為“cin.getline(str,120,?);”。第2處的“while(str)”語(yǔ)句應(yīng)該是判斷字符串str中的每一個(gè)字符是否為結(jié)束符,若不是結(jié)束符,在循環(huán)中判斷每一個(gè)字符是否為小寫,若為小寫,則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])”。第3處的“if(str[i]>=a)”語(yǔ)句是判斷字符str[i]是否為小寫字符,而現(xiàn)有的語(yǔ)句只是判斷字符是否大于a,但是小寫字符應(yīng)該是a到2,所以修改為“if(str[i]>=a&&str[i]>=z)”。
37.(1)應(yīng)改為“TC::TC”。
\n(2)應(yīng)改為“voidTC::display”。
\n(3)應(yīng)改為“TC::~TC”。
\n【解析】在類的外部定義成員函數(shù)時(shí),必須在成員函數(shù)前面加上類名和作用域運(yùn)算符“::”,作用域運(yùn)算符用采表示某個(gè)成員屬于哪個(gè)類,使用格式為“(類名)::<成員函數(shù)>((參數(shù)函數(shù))),因此第1處應(yīng)改為“TC::TC”,默認(rèn)構(gòu)造函數(shù)沒(méi)有參數(shù)。由第2處“TC::display”后的語(yǔ)句看,這是在類外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)誤問(wèn)題,display函數(shù)返回值為void,因此第2處的語(yǔ)句應(yīng)改為“voidTC::display”。由第3處的語(yǔ)句“TC::TC”可知,顯然這里是在類外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函數(shù)是一個(gè)特殊的函數(shù),它的名稱和類名相同,并在前面加“~”字符,用采與構(gòu)造函數(shù)加以區(qū)別,因此第3處的語(yǔ)句應(yīng)改為“TC::~TC”。
38.(1)應(yīng)改為“catch(char*s)”。(2)應(yīng)改為“cateh(inti)”。
(3)應(yīng)改為“catch(…)”。
【解析】本題中第1個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為“throw("error");”,其中的類型為字符串。所以對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)該符合這個(gè)類型,而程序中給出的語(yǔ)句“catch(chars)”是字符型的,所以第1處的語(yǔ)句修改為“catch(char*S)”。第2個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為“throw((int)0);”,其中的類型為int。對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)該符合這個(gè)類型,所以補(bǔ)充catch子句中的類型,否則如果找不到匹配的catch塊,系統(tǒng)就會(huì)調(diào)用一個(gè)系統(tǒng)函數(shù),使程序終止運(yùn)行。即第2處的語(yǔ)句修改為“catch(inti)”。如果在catch子句中沒(méi)有指定異常信息的類型,那么就用刪節(jié)號(hào)“…”表示它可以捕捉任何類型的異常信息,即修改為“catch(…)”。
39.(1)應(yīng)改為“assert(sizeof(s1)==4);”。
\n(2)應(yīng)改為“assert(sizeof(s2)==1O);”。
\n(3)應(yīng)改為“assert(sizeof(s3)==1);”。
\n【解析】assert函數(shù)如果為假,則會(huì)產(chǎn)生一個(gè)中斷異常。所以要讓它正常執(zhí)行輸出結(jié)果,那么assert函數(shù)只有為真,才不會(huì)產(chǎn)生中斷異常。“assert(sizeof(s1)==3);”語(yǔ)句中“sizeof(s1)==3”為假,這會(huì)使程序產(chǎn)生異常,不能正常執(zhí)行。因?yàn)閟tr1的值為abc,但是它還有一個(gè)尾符,它的長(zhǎng)度應(yīng)該是4,而不是3,所以在第1處修改為“assert(sizeof(s1)==4);”。str2[10]說(shuō)明,str2的空間為10,在第2處修改為“assert(sizeof(s2)==10);”。charstr3=23;語(yǔ)句說(shuō)明23是字符,所占存儲(chǔ)空間為1,所以修改為“assert(sizeof(s3)==1);”。
40.(1)應(yīng)改為“usingnamespacestd;”。(2)應(yīng)改為“outl.open("1.txt",ios::binary|ios::app);”。(3)應(yīng)改為“out1.put(s[i]);”?!窘馕觥勘绢}第1處的“usingstd;”是在程序中引入標(biāo)準(zhǔn)命名空間std,對(duì)于C++中引入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處的語(yǔ)句修改為“usingnamespacestd;”。第2處,調(diào)用成員函數(shù)open中,輸入、輸出方式是在ios類中定義的,所以“out1.open("1.txt",binary|app);”語(yǔ)句缺少類ios,即第2處的語(yǔ)句修改為“out1.open("1.txt",ios::binary|ios::app);”。第3個(gè)標(biāo)識(shí)應(yīng)該用流成員函數(shù)put輸出字符,所以第3處的語(yǔ)句修改為“out1.put(s[i]);”。
41.(1)應(yīng)改為“usingnamespacestd;”。
\n(2)應(yīng)改為“outl.open('1.txt',ios::binary|ios::app);”。
\n(3)應(yīng)改為“out1.put(s[i]);”。
\n【解析】本題第1處的“usingstd;”是在程序中引入標(biāo)準(zhǔn)命名空間std,對(duì)于C++中引入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處的語(yǔ)句修改為“usingnamespacestd;”。第2處,調(diào)用成員函數(shù)open中,輸入、輸出方式是在ios類中定義的,所以“out1.open('1.txt',binary|app);”語(yǔ)句缺少類ios,即第2處的語(yǔ)句修改為“out1.open('1.txt',ios::binary|ios::app);”。第3個(gè)標(biāo)識(shí)應(yīng)該用流成員函數(shù)put輸出字符,所以第3處的語(yǔ)句修改為“out1.put(s[i]);”。
42.(1)應(yīng)改為“TCobjl(1);”。(2)應(yīng)改為“0bj1.SetNumber(10);”。(3)應(yīng)改為“0bj2.SelNumber(100);”?!窘馕觥勘绢}第1處的“TCobjl;”語(yǔ)句是聲明TC類的對(duì)象0bj1,根據(jù)TC類構(gòu)造函數(shù)的定義TC(inti),存在整型參數(shù),并且題目要求第一個(gè)輸出結(jié)果兩1,所以補(bǔ)全參數(shù)1,即第1處的“TCobjl(1);”。第2處處的“objl.number=10;”應(yīng)該是調(diào)用成員函數(shù)SetNumber賦值。在C++中成員函數(shù)的使用形式應(yīng)該是:對(duì)象名.成員函數(shù),所以修改為“obj1.SetNumber(10);”。類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例。第3處“TC.SetNumber(100);”語(yǔ)句中的TC為類,并不是對(duì)象,這里應(yīng)該使用定義的對(duì)象,即obj2,所以將語(yǔ)句修改為“obj2.SetNumber(100);”。
43.(1)應(yīng)改為“ein.getline(str,120,?);”。
\n(2)應(yīng)改為“while(str[i])”。
\n(3)應(yīng)改為“if(str[i]>=a&&str[i]<=2)”。
\n【解析】本題中要求以輸入字符“?”為結(jié)束符,用于字符輸入的流成員函數(shù)getline函數(shù)讀入一行字符,格式為“cin.getline(字符數(shù)組,字符個(gè)數(shù),終止標(biāo)志字符)”,所以第1處改為“cin.getline(str,120,?);”。第2處的“while(str)”語(yǔ)句應(yīng)該是判斷字符串str中的每一個(gè)字符是否為結(jié)束符,若不是結(jié)束符,在循環(huán)中判斷每一個(gè)字符是否為小寫,若為小寫,則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])”。第3處的“if(str[i]>=a)”語(yǔ)句是判斷字符str[i]是否為小寫字符,而現(xiàn)有的語(yǔ)句只是判斷字符是否大于a,但是小寫字符應(yīng)該是a到2,所以修改為“if(str[i]>=a&&str[i]>=z)”。
44.(1)應(yīng)改為“TCobjl(1);”。
\n(2)應(yīng)改為“0bj1.SetNumber(10);”。
\n(3)應(yīng)改為“0bj2.SelNumber(100);”。
\n【解析】本題第1處的“TCobjl;”語(yǔ)句是聲明TC類的對(duì)象0bj1,根據(jù)TC類構(gòu)造函數(shù)的定義TC(inti),存在整型參數(shù),并且題目要求第一個(gè)輸出結(jié)果兩1,所以補(bǔ)全參數(shù)1,即第1處的“TCobjl(1);”。第2處處的“objl.number=10;”應(yīng)該是調(diào)用成員函數(shù)SetNumber賦值。在C++中成員函數(shù)的使用形式應(yīng)該是:對(duì)象名.成員函數(shù),所以修改為“obj1.SetNumber(10);”。類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例。第3處“TC.SetNumber(100);”語(yǔ)句中的TC為類,并不是對(duì)象,這里應(yīng)該使用定義的對(duì)象,即obj2,所以將語(yǔ)句修改為“obj2.SetNumber(100);”。
45.(1)“voidmain”。(2)“intm=0144;”。(3)“intn=OX25;”或“intn===0x25;”。【解析】本題主要考查了主函數(shù)定義及冪同進(jìn)制之間的轉(zhuǎn)換,包括十進(jìn)制到八進(jìn)制,十進(jìn)制到十六進(jìn)制。主函數(shù)定義的定義形式為“main”,函數(shù)名之后必須是一對(duì)括號(hào),因此第1處應(yīng)改為“voidmain”。cout輸出默認(rèn)是以十進(jìn)制方式輸出的,根據(jù)題目要求輸出的結(jié)果可發(fā)現(xiàn)變量的初值不正確,十進(jìn)制的100對(duì)應(yīng)八進(jìn)制的144,卡進(jìn)制的37對(duì)應(yīng)十六進(jìn)制的25,因此2和3應(yīng)分別改成“intm=0144;”,“intn=0×25;”或“intn=0×25;”。46.(1)“A(intx){a=x;}”。(2)“A1(intx,inty):A(y){b=x;}”。(3)“A2(intx,inty,intz):A1(y,z){c=x;}”。(4)“cout<<geta<<""<<getb<<""<<c<<endl;”?!窘馕觥勘绢}第1處要求定義類A的構(gòu)造函數(shù),該構(gòu)造函數(shù)有一個(gè)整型的參數(shù)x,在構(gòu)造函數(shù)中請(qǐng)將x賦值給數(shù)據(jù)成員a,構(gòu)造函數(shù)沒(méi)有返回值類型,所以應(yīng)填“A(intx){a=x;}”。第2處第3處根據(jù)繼承中對(duì)象的初始化語(yǔ)法規(guī)則可知。第4處要求調(diào)用基類成員函數(shù),由于都是公有繼承,ge-ta、getb都是自身類的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年西藏自治區(qū)日喀則市南木林高級(jí)中學(xué)高三第二次(4月)月考生物試題試卷含解析
- 13人物描寫一組(生字講解)教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文五年級(jí)下冊(cè)
- 場(chǎng)站微電網(wǎng)綜合運(yùn)維平臺(tái) V1.1
- Unit 7 Its raining!Section B (2a-3c)教學(xué)設(shè)計(jì)2023-2024學(xué)年人教版英語(yǔ)七年級(jí)下冊(cè)
- 監(jiān)控單元相關(guān)行業(yè)項(xiàng)目建議書
- 九年級(jí)化學(xué)上冊(cè) 第五單元 定量研究化學(xué)反應(yīng) 第二節(jié) 化學(xué)反應(yīng)的表示教案 (新版)魯教版
- Unit3 Section B Writing (3a-3c)教學(xué)設(shè)計(jì)2024-2025學(xué)年人教版英語(yǔ)八年級(jí)上冊(cè)
- 職業(yè)綜合安全教育和突發(fā)事件應(yīng)急救援知識(shí)普及培訓(xùn)函授
- 2025年山東省德州市夏津第一中學(xué)高三2月模擬(四)生物試題含解析
- 2025年江西省宜春市靖安縣靖安中學(xué)下學(xué)期高三年級(jí)3月第五次調(diào)研考試生物試題含解析
- 2024-2030年中國(guó)港口碼頭行業(yè)深度分析及發(fā)展戰(zhàn)略研究咨詢報(bào)告
- 小區(qū)智能化工程施工組織設(shè)計(jì)方案
- 第三單元測(cè)試卷-2024-2025學(xué)年統(tǒng)編版語(yǔ)文四年級(jí)上冊(cè)
- 貨運(yùn)公司安全承諾書(6篇)
- 第四單元測(cè)試卷(單元測(cè)試)-2024-2025學(xué)年六年級(jí)上冊(cè)統(tǒng)編版語(yǔ)文
- Unit 2 Lesson 3 Running and Fitness 教學(xué)設(shè)計(jì)-2024-2025學(xué)年高中英語(yǔ)北師大版(2019)必修第一冊(cè)
- 2024年湖北省武漢市九年級(jí)調(diào)考數(shù)學(xué)試卷(含解析)
- 2024年教師職稱考試試題
- NBA球星庫(kù)里課件
- 桂花路里的教書匠-2024-07-31-【2024年湖北中考】2024年湖北中考語(yǔ)文試題
- 2024年公安輔警招聘知識(shí)考試題庫(kù)附含答案
評(píng)論
0/150
提交評(píng)論