




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2023年廣東省汕尾市全國計算機等級考試
C++語言程序設計真題(含答案)
學校:班級:姓名:考號:
一、1.選擇題(10題)
l.MyClock為一個類,則指向“\1丫?!?^口;”語句時,調用該類構造函
數(shù)()次。
A.lB.2C.3D.4
2.類MyClass的定義如下,若要對value賦值,則下面語句正確的是
()O
classMyClass
(
public:
MyClass(){}
MyClass(inti){value=newint(i);}
int*value;
};
A.MyClassmy;my.valuer10;
B.MyClassmy;*my.valuer10;
C.MyClassmy;my.*valuer10;
D.MyClassmy(lO);
3.有以下程序#include<iostream.h>floatfun(intx,inty){return(x+y);}
voidmain(){inta-2,b=5,c=8;cout<<fun((int)fun(a+c,b),a-c);}
程序運行后的輸出結果是()。
A.編譯出錯B.9C.21D.9
4.若定義cin>str;當輸入ObjectWindowsProgramming!所得的結果是
str()
A.ObjectWindowsProgramming!
B.Object
C.ObjectWindows
D.ObjectWindowsProgramming
5.下列程序執(zhí)行后的輸出結果是()。voidfuncl(inti);voidfunc2(inti);
charst[]="hello,friend!^^;voidfuncl(inti){printf("%c",st[i]);if(i<
3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;
funcl(i);}}main(){inti=0;funcl(i);printf("\n");}
A.helloB.helC.holD.hlm
6.下列程序的運行結果是#include<iostream.h>voidfun(int*a,int*b)
{int*k;k=a;a=b;b=k;}voidmain(){inta-3,b=6,*x=&a,*y=&b;
fun(x,y);cout<<a<<""<<b;}
A.63B.36C.編譯出錯D.O0
7.數(shù)據庫管理系統(tǒng)是()。
A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系
統(tǒng)D.一種操作系統(tǒng)
8.下列敘述中,不屬于結構化程序設計方法的主要原則的是()。
A.A.自頂向下B.由底向上C.模塊化D.限制使用goto語句
9.以下都是C++語言標識符的是()。
A.dsfa,df4,f$B.huhj,aA,k2C.3k,h,j_9D._ok,jk,k8
10.下列程序的輸出結果是#include<iostream.h>voidmain()
{char*str="12123434";intxl=0,x2=0,x3=0,x4=0,i;for(i=O;str[i]!=
'\0';i++)switch(str[i]){case'l'X4++;case'2':X3++;case'3':X2++;case'4':
X1++;}cout<<X1<<<
A.8,6,4,1B.8,6,3,2C.8,8,4,1D.8,6,4,2
二、單選題(13題)
11.下列選項中正確的定義語句是()。
A.doublea;b;B.doublea=b=7;C.doublea=7,b=7;D.double,a,b;
12.下面程序的運行結果為()。
#include<iostream.h>
voidmain
(
for(inta=0,x=0;!xa<=10;a++)
a++:
cout?a?endl:
A.10B.11C.12D.0
13.下面描述中,符合結構化程序設計風格的是______o
A.使用順序、選擇和重復(循環(huán))三種基本控制結構表示程序的控制邏
輯
B.模塊只有一個入口,可以有多個出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
14.已知函數(shù)f的原型是voidf(int*a,long&B.;,變量vl、v2的定義是:
intvl;long:v2;下列調用語句中正確的是()。
A.f(vl,&v2);B.f(vl,v2);C.f(&vl,&v2);D.f(&vl,v2);
29.若有如下程序:
#include<iostream)
usingnamespacestd;
classTestClass
(
public:
voidwho(){cout<<°TestClassw<<endl;}
classTestClassl:publicTestClass
(
public:
voidwho(){cout<<MTestClasslw<<endl;
intmainO
|
TestClass*p;
TestClasslobjl;
p=&objl;
15p->who();
return0;
)
則該程序運行后的輸出結果是(兀
A.TestClassl,B.TestClassC.0D.無輸出
16.有如下程序;
#include<iostream>
usingnamespacestd;
classBase{
public:
voidoutput(){cout?1;}
virtualvoidPrint(){cout?'B';}
);
classDerived:publicBase{
public:
voidoutput(){cout?2;)
voidPrint(){cout?'D';)
);
intmain(){
Base*ptr=newDerived;
ptr->output();
ptr->Print();
deleteptr;
return0;
)
程序的輸出結果是
A.1BB.1DC.2BD.2D
17.下列關于模板的說法正確的是()。
A.模板的實參在任何時候都可以省略
B.類模板與模板類所指的是同一概念
C.類模板的參數(shù)必須是虛擬類型的
D.類模板中的成員函數(shù)全部都是模板函數(shù)
18.已知函數(shù)FA調用函數(shù)FB,若要把這兩個函數(shù)定義在同一個文件中,
則()o
A.FA必須定義在FB之前
B.FB必須定義在FA之前
C.若FA定義在FB之后,則FA的原型必須出現(xiàn)在FB的定義之前
D.若FB定義在FA之后,則FB的原型必須出現(xiàn)在FA的定義之前
19.有如下函數(shù)模板聲明:template<typenameT>TMax(Ta,T
b){return(a>-b)?a:b;}下列對函數(shù)模板Max()的調用中錯誤的是()。
A.Max(3.5,4.5)
B.Max(3.5,4)
C.Max<double>(3.5,4.5)
D.Max<double>(3.5,4)
20.在C++中使用流進行輸入輸出,其中用于鍵盤輸入的對象是【】
A.cerrB.cinC.coutD.cfile
21.下列說法正確的是()。
A.內聯(lián)函數(shù)在運行時是將該函數(shù)的目標代碼插入每個調用該函數(shù)的地
方
B.內聯(lián)函數(shù)在編譯時是將該函數(shù)的目標代碼插入每個調用該函數(shù)的地
方
C.類的內聯(lián)函數(shù)必須在類體內定義
D.類的內聯(lián)函數(shù)必須在類體外通過加關鍵字inline定義
22.對于長度為n的線性表,在最壞情況下,下列各種排序法所對應的
比較次數(shù)中正確韻是()。
A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-
1)/2
30.有如下程序
#include<iostream.h>
voidmainO
{charch[2][5]={”6937“,“8254”},共p[2]>
inti.j,s=O;
for(i=0|i<2;i++)p[i]=ch[ij;
for(i=0;i<2;i++)
for(j=0$p[i][j?\0<j+=2).
s=10*r0S
cout<<S|)
該程序的輸出結果是().
A.69825B.63825
23.C.6385D.693825
三、2.填空題(12題)
24?一個項目具有一個項目主管,一個項目主管可管理多個項目,則實
體“項目主管”與實體“項目”的聯(lián)系屬于【】的聯(lián)系。
25.在下面程序的橫線處填上適當?shù)膬热荩钩绦驁?zhí)行后的輸出結果為
1/2005o
#include<iostream.h>
usingnamespacestd:
classDate
public:
Date(intm=l,inty=0):month(m.year(y}{}
voidPrint(){cout<<month<<<<year<<end1;}
operator+(constDate&dl,constDate&d2;
private:
intmonthyear;
);
operaror+(constDate&d1,constDate&d2)
intyear,month;
year=dl.year+d2.year;
month=dl.month+d2.month;
year+=(month-1)/12;
month=(month-1)%12+1;
returnDate{month,year):
)
voidmain()
{
Datedl(3,2004),d2,d3(10);
d2=d3+dl;
d2.Print();
)
26.數(shù)據庫設計分為以下6個設計階段:需求分析階段、【】、邏輯設計
階段、物理設計階段、實施階段、運行和維護階段。
27.派生類構造函數(shù)的執(zhí)行順序是先執(zhí)行【】的構造函數(shù),然后執(zhí)行成
員對象的構造函數(shù),最后執(zhí)行[】的構造函數(shù)。
28.若要訪問指針變量p所指向的數(shù)據,應使用表達式o
29.高度為h(h〉O)的二叉樹最少有【】個結點。
30.設某循環(huán)隊列的容量為50,頭指針front=5(指向隊頭元素的前一位
置),尾指針rear=29(指向隊尾元素),則該循環(huán)隊列中共有個元
素O
31.若表達式(x+(y-z)+(m/n))+3中的變量均為double型,則表達式值的
類型為。
32.為解決在多重繼承環(huán)境中因公共基類帶來的問題,C++語言
提供了虛基類機制。
33.軟件維護活動包括改正性維護、適應性維護、維護和預防性
維護。
34.類。stream的成員函數(shù)【】用于執(zhí)行無格式輸山,成員函數(shù)put用
于輸出單個字符。
35.假設inta-I,b=2;則表達式a+++--b的值為°
四、程序改錯題(10題)
36.使用VC++6.0打開考生文件夾下的源程序文件
1.cpp,該程序運行時有錯誤,請改正程序中的錯誤。本程序要求實現(xiàn)
的功能為從鍵盤輸入一個字符串,并將結果保存到文件1.txt中。
注意:不要改動main函數(shù),不能增加或刪除行,也不能更改程序的結
構,錯誤的語句在
******error******的下面。
試題程序:
#include<iostream>
#include<fstream>
!!********enor********
usingstd;
voidWriteFile(char*s)
ofstreamout1;
1I********enor********
outl.open("l.txt",binarylapp);
for(inti=0;s[i]!=0;i++)
!1********enor********
outl.puts(s[i]);
)
outl.close;
)
voidClearFile
ofstreamout1;
outl.open("l.txt");
outl.close;
)
intmain
chars"024];
ClearFile;
cout?"pleaseinputastrin9:"?endl;
cin.getline(s,1024);
WriteFile(s);
returnO;
)
37.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序
運行有問題,請改正main函數(shù)中的錯誤,使程序的輸出結果為:
number=l
number=10
number=100
注意:不要改動main函數(shù),不能增加或刪除行。也不能更改程序的結
構,錯誤的語句在//******errc)r******的下面。
試題程序:
#include<iostream.h>
classTC
(
public:
TC(inti)
(
number=i;
)
voidSetNumber(intm)
(
number=m;
)
intGetNumberconst
returnnumber;
}
voidPrintconst
cout?"number="?number?endl;
private:
intnumber;
};
voidmain
(
I!********enor********
TCobjl;
objl.Print;
TCobj2(3);
II********error********
objl.number=10;
!1********ej*j*or*******
TC.SetNumber(lOO);
objl.Print;
obj2.Print;
}
38.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,但該程
序運行有問題,請改正main函數(shù)中的錯誤,使該程序的輸出結果正
確。
程序輸出:
8
8
注意:錯誤的語句在/********error********/的下面。修改該語句
即可,其他的語句不能修改。
試題程序:
#include(iostream.h>
classCO
(
public:
I********e£i*or********/
staticintn=O:
CO
(
n++:
)
-CO
{
n—:
)
):
I********error********/
intCO::n;
voidmain
(
COobj;
COobj2⑺;
CO*C=NULL:
c=&obj:
I********error********
eout?C.n?endl;
cout?CO::n?endl;
39.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運
行時有錯誤,請改正程序中的錯誤,使得程序輸出:
9,8,7,6,5
注意:錯誤的語句在/********error********/的下面,修改該語句即
可。其他的語句不能修改。
試題程序:
#include(iostream.h>
classTC
{
I********error********/
TC(inti)
(
m_i=i;
)
voidprint
(
cout?—m_i?,;
)
public:
intm_i;
intmain
!********error********/
inti;
TC04(10);
while(i>5)
!****************I
i++:
04.print;
cout?endl;
returnO;
)
40.使用VC++6.0打開考生文件夾下的源程序文件1.cppo本程序要
求輸入一個字符串,然后將其中的小寫字母改成大寫字母,字符可能輸
入多行,當輸入字符“?”時,默認字符輸入結束,最后把結果輸出到屏幕
中。
注意:不要改動main函數(shù),不能增加或刪除行,也不能更改程序的結
構,錯誤的語句在//******error******的下面。
試題程序:
#include<iostream.h>
voidmain
inti=O;
charstr[120];
cout?"Enterastringendwith?."?endl;
!1********enor********
cin.getline(str,120);
!1****************
while(str)
I!********error********
if(str[i])=a)
str[i]=str[i]-a+A;
i++;
)
cout?str?endl;
return;
41.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運
行時有錯,請改正其中的錯誤,使程序正常運行,輸出的結果為
Constructor,i=0,
Destructor
注意:錯誤的語句在//******errc)r******的下面,修改該語句即可。
試題程序:
#include(iostream.h)
classTC
inti;
public:
TC;
voiddisplay;
-TC;
);
II******error******
TC:TC
(
cout?"Constructor"?",";
i=0;
)
II******epj*or******
TC:display
(
tout?"i="?i<<","?endl;
)
Ii******error******
TC:TC
(
COUI?"Destructor"?endl:
)
voidmain
(
TCa;
a.display;
42.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序
運行時有錯誤,請改正錯誤,使程序正常運行,并且要求最后一個
catch必須拋出執(zhí)行的任何異常。
程序異常,輸出信息為
error
0
ERROR
注意:不要改動main函數(shù),不能增加或刪除行,也不能更改程序的結
構,錯誤的語句在//******error******的下面。
試題程序:
#include<iostream.h)
intmain
(
try
(
throw("error");
)
II********error********
catch(chars)
(
cout?s?endl;
)
try
(
throw((int)0);
)
I!********error********
catch
cout?i?endl;
try
(
throw(O);
throw("error");
)
!!********enor********
catch
cout?"ERROR"?endl;
returnO;
43.使用VC++6.0打開考生文件夾下的源程序文件
1.cpp,該程序運行時有錯誤,請改正程序中的錯誤。本程序要求實
現(xiàn)的功能為從鍵盤輸入一個字符串,并將結果保存到文件1.txt中。
注意:不要改動main函數(shù),不能增加或刪除行,也不能更改程序的結
構,錯誤的語句在
1I******error******卜|Hjo
試題程序:
#include<iostream>
#include<fstream>
II********error********
usingstd;
voidWriteFile(char*s)
ofstreamoutl;
II********enor********
outl.open("l.txt",binarylapp);
for(inti=0;s[i]!=0;i++)
{
I!********enor********
outl.puts(s[i]);
)
outl.close;
)
voidClearFile
(
ofstreamout1;
outl.open("l.txt");
outl.close;
)
intmain
(
chars[1024];
ClearFile;
cout?"pleaseinputastrin9:"?endl;
cin.getline(s,1024);
WriteFile(s);
returnO;
44.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序
運行時有錯。請改正程序中的錯誤,使程序輸出的結果為
100
37
32
注意:錯誤的語句在//******error******的下面,修改該語句即
可。
試題程序:
#include<iostream.h>
II******epj*or******
voidmain
(
II******error******
intm=0142:
II******error******
intn=0X27:
intq=32;
cout<<m<<endl;
cout<<n<<endl;
cout<<q<<endl;
return;
45.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序
運行時有錯,請改正其中的錯誤,使程序正常運行,輸出的結果為
Constructor,i=0,
Destructor
注意:錯誤的語句在//******err()r******的下面,修改該語句即
可。
試題程序:
#include(iostream.h)
classTC
(
inti;
public:
TC;
voiddisplay;
-TC;
);
II******error******
TC:TC
(
cout?"Constructor"?",";
i=0;
)
I!******error******
TC:display
tout?"i="?i<<","?endl;
II******error******
TC:TC
{
COUI?"Destructor"?endl:
)
voidmain
(
TCa;
a.display;
)
五、綜合應用題(2題)
46.使用VC++6.0打開考生文件夾下的源程序文件3.cpp。其中定
義的類不完整,按要求完成下列操作,將類的定義補充完整。
⑴定義類的公有數(shù)據成員函數(shù)NO、Name[32],其中NO是int型的數(shù)
據,Name[32]為字符型。請在注釋1后添加適當?shù)恼Z句。
(2)完成函數(shù)Set的定義,分別設置NO和Name的值,請在注釋2后添
加適當?shù)恼Z句。
⑶完成函數(shù)print,請在注釋3后添加適當?shù)恼Z句,輸出結果如下:
N0=12345
Name=HelloWorld!
(4)添加默認構造函數(shù),設置NO為0,Name為空,請在注釋4后添加
適當?shù)恼Z句。
注意:增加或者修改代碼的位置已經用符號表示出來,請不要修改其
他的程序代碼。
試題程序:
#include<iostream.h>
classTC
{
public:
II*1^*|z*|**|*
(
No=no;
for(inti=0;strName[i]!=0;i++)
(
Name[i]=strName[i];
Name[i+1]=0;
)
voidprint()
//********3********
)
TC()
II********4********)
};
intmain()
TCstu:
stu.Set(12345,"HelloWorld!");stu.print();
returnO;
47.使用VC++6.0打開源程序文件3.cpp。其中類TC用于把文件
輸出到屏幕,然后進行文件的分割。分割的方法如下:第一個文件的
大小是文件的前一半,另外一個文件的大小是剩余部分。此程序將
in.txt文件中的內容輸出到
屏幕,并且將文件按照以上方式分割,存于文件。utl.txt和out2.txt
中。
其中定義的類并不完整,按要求完成下列操作,將類的定義補充完
整。
(1)從輸入文件中獲得一個字符,并判斷是否到文件結
尾,如果到文件結尾,則退出循環(huán)。請在注釋1后添加適當?shù)恼Z句。
⑵把獲得的輸入文件的內容存儲到bur中,并且用len
記錄下文件的長度。請在注釋2后添加適當?shù)恼Z句。
(3)將輸入文件的后一半內容存儲在第二個文件中,請
在注釋3后添加適當?shù)恼Z句。
(4)使用文件流對象打開輸入文件in.txt,請在注釋4
后添加適當?shù)恼Z句。
注意:增加代碼或者修改代碼的位置已經用符號表示出來。請不要修
改其他的程序代碼。
試題程序:
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h)
classTC
{
public:
TC(char*fileName)
(
len=O;
fstreaminfile;
infile.open(fileName,ios::in);
charch;
while
(
cout?ch;
IIsj*
}
infile,close;
}
voidsplit
(
fstreamoutfilel;
fstreamoutfile2;
outfilel.open("outl.txt",ios::out);
outfile2.open("out2.txt",ios::out);
inti=0:
for(i=0;i<len/2;i++)
(
outfilel?buf[i];
)
do
(
)
while(i!=len);
outfilel.close;
outfile2.close;
)
prwate:
intlen;
charbuf[1024];
};
voidmain
(
//********4********
TCobj;
obj.split;
return;
六、3.綜合應用題(2題)
48.使用VC6打開考生文件夾下的工程test40_3o此工程包含一個
test40_3.cpp,其中定義了類CVector,但該類的定義并不完整。請按要
求完成下列操作,將程序補充完整。
⑴完成類CVector構造函數(shù)的定義,把傳入的int型參數(shù)a和b分別賦
值給類的成員變量x和yo請在注釋“〃**1**”之后添加適當?shù)恼Z句。
⑵完成類CVector的"+”運算符重載函數(shù)的定義,使Cvector類的兩個對
象相加時可以直接使用符號“+”,并且結果仍然為類Cvector的對象,請
在注釋“〃**2**”之后添加適當?shù)恼Z句。
(3)在主函數(shù)中添加適當?shù)恼Z句,把類Cvector的對象a和b相加,并且
把結果保存在對象c中,最后以“x,y”的形式輸出在屏幕上,請在注釋
“〃**3**,,之后添加適當?shù)恼Z句。
源程序文件test40_3.cpp清單如下:
#include<iostream.h>
classCVector
(
public:
intx,y;
CVector(){};
CVector(int,int);
CVectoroperator+(CVector);
);
CVector::CVector(inta,intb)
(
〃**]**
CVectorCVector::operator+(CVectorparam)
〃**2**
temp.y=y+param.y;
return(temp);
)
intmain()
(
CVectora(3,1);
CVectorb(1,2);
CVectorc;
return0;
)
49.使用VC6打開考生文件夾下的工程test5_3o此工程包含一個源程
序文件test5_3.cpp,其中定義了一個類Pn,用于求n!。請按要求完成下
列操作,將程序補充完整。
⑴定義私有數(shù)據成員value(存放n)和fact(存放n!),它們都是ht型的數(shù)
據。請在注釋“〃**1**”之后添加適當?shù)恼Z句。
⑵完成默認構造函數(shù)Pn的定義,使Fn對象的數(shù)據成員value值為i,
fact值為lo請在注釋“〃**2**”之后添加適當?shù)恼Z句。
⑶完成函數(shù)Cal的定義,該函數(shù)計算value的階乘,并將運算結果保存
在fact中,要求使用while循環(huán)實現(xiàn)。請在注釋“〃**3**”之后添加適當
的語句。
(4)將主函數(shù)補充完整,直接調用類的成員函數(shù),在界面上輸出value的
階乘值。請在注釋“〃**4**”之后添加適當?shù)恼Z句。
注意;除在指定位置添加語句之外,請不要改動程序中的其他內容。
源程序文件test5_3.cpp清單如下:
#include<iostream.h>
classFn
(
〃**1**
public:
Fn(inti);
voidCal();
voiddisp();
);
Fn::Fn(inti)
(
〃**2**
)
voidFn::Cai()
(
〃**3**
fact*=i—;
)
voidFn::disp()
(
cout<<value<<"!="<<fact<<endl;
)
voidmain()
(
intvalue;
cout<<"Enterthevalue:";
cin>>value;
FnA(value);
)
參考答案
LA解析:*p不調用類的構造函數(shù),*p并不定義類對象,而是定義了一
個指針指向一個MyClock的對象。
2.DD。【解析】因題目中定義的指針value是指淘變量i的,所以直接利
用語句MyClass(inti){value=newint(i);}對value進行賦值即可。
3.B解析:本題的運算過程是fun((int)fun(a+c,B,a-C,fun((int)fun(10,
5),2-8),fun((int)15.000000,-6),fun(15,-6)=9。
4.B
5.C
6.B解析:函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據,還可以
是指針類型。它的作用是將一個變量的地址傳送到另一個函數(shù)中去。在
本題解析中,我們試圖將這一問題解釋清楚!
大家可以考慮一下利用下面這函數(shù)可不可以實現(xiàn)a和b的互換。
swap(intx,inty)
{intt;
t=x;
x=y;
y=t
)
如果在main函數(shù)中用swap(a,b),會有什么結果呢?在函數(shù)調用開始時,
a的值傳送給X,b的值傳遞給y。執(zhí)行完swap。函數(shù)后,x和y的值是互
換了,但main。函數(shù)中的a和b并未互換。也就是說由于“單向傳遞”的
“值傳遞”方式,形參值的改變無法傳遞給實參。
為了使在函數(shù)中改變了的變量值能被main()函數(shù)所聞,不能采取上述辦
法,而應該用指針變量做函數(shù)參數(shù)。布函數(shù)執(zhí)行過程中使指針變量所指
向的變量值發(fā)生變化,函數(shù)調用結束后,這些變量值的變化被保留下來,
這樣就實現(xiàn)了調用函數(shù)改變變量的值,在主凋函數(shù)中使用這些改變了的
值的目的。
swap(int*pl,int*p2)
{intp;
p=*pl;
*pl=*P2;
*p2=p;
)
注意交換*Pl和*p2的值是如何實現(xiàn)的,如果寫成下面這樣就有問題了!
swap(int*Pl,int*p2)
{int*P;
*p=*Pl;/*此語句有問題*/
*pl=*p2;
*p2=*p:
}
*pl就是a,是整型變量。而*p是指針變量p所指向的變量,但p中并
無確切地址,用*p可能會造成破壞系統(tǒng)的正常工作狀態(tài)。應該將*pl的
值賦給一個整型變量,用整型變量作為過渡變量實現(xiàn)*P1和*p2的交換。
7.B
數(shù)據庫管理系統(tǒng)是數(shù)據庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據庫中的數(shù)據組織、數(shù)據操
縱、數(shù)據維護、控制及保護和數(shù)據服務等,是一種在操作系統(tǒng)支持下的系統(tǒng)軟件,因此本
題答案為B)o
8.B
解析:結構化程序設計方法的主要原則可以概括為以下4個方面,即
自頂向下、逐步求精、模塊化及限制使用got。語句。
9.D解析:此題考查的是標識符。標識符是由數(shù)字、字母以及下劃線構
成,其中第一個字符必須是字母或下劃線,中間不能有空格;標識符的
長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個字符;標識符
中的大小寫字母是不同的;定義標識符時不能采用系統(tǒng)的保留字。符合
這些要求的只有選項D)。
10.D
11.C
Co【解析】本題考查變量的定義。選項A是兩條語句,用分號隔
開,只定義了a為double型;選項B中,不允許這種聲明賦值方式,
語法錯誤;選項D中,類型與變量名之間不加逗號;選項C為正確
的。
12.C
在進入最后一次循環(huán)時a=10,在循環(huán)體內執(zhí)行“a++;”后a=ll,執(zhí)行
完該次循環(huán)體計算for循環(huán)的增量部分后a=12小于10,循環(huán)結束。
13.A解析:結構化程序設計方法的四條原則是:①自頂向下;②逐步求
精;③模塊化;④限制使用goto語句。“自頂向下”是指在程序設計時,
先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標?!爸鸩角?/p>
精”是指對復雜問題應設計一些子目標作過渡,逐步細節(jié)化?!澳K化”是
指一個復雜問題由若干稍簡單的問題構成;解決這個復雜問題的程序,
也應由若干稍簡單問題的小程序組成。
14.D
函數(shù)參數(shù)的3種傳遞方式:①將變量名作為形參和實參,即傳值方
式;②傳遞變量指針;③引用形參,本題中函數(shù)f的第一個形參為指
針,那么調用f函數(shù)時,第一一個參數(shù)必須是地址,所以必須是
&V1.第二個形參為引用,所以對應實參為V2即可。故本題答案為
Do
15.A
16.B
17.D
Do【解析】在C++中規(guī)定如果一個類被聲明為類模板,那么其中的
所有成員函數(shù)就都成為了模板函數(shù)。
18.D\n如果使用用戶自己定義的函數(shù),而該函數(shù)與調用它的函數(shù)(即主
調用函數(shù))在同一程序單元中,且位置在主調用函數(shù)之后,則必須在調用
此函數(shù)之前對被凋用的函數(shù)作聲明。
\n
19.B解析:此題考查的是函數(shù)模板的引用。引用模板函數(shù)和引用一般
函數(shù)在語法形式上基本相同。需要注意的是說明一個函數(shù)模板后,當編
譯系統(tǒng)發(fā)現(xiàn)有一個對應的函數(shù)調用時,將根據實參中的類型來確認是否
匹配函數(shù)模板中的對應形參。本題選項B)中,編譯系統(tǒng)從第一個參數(shù)
“3.5”獲得信息“double型數(shù)據”和從第二個參數(shù)獲得信息“int型數(shù)據”兩
者矛盾,錯誤;A、選項C)正確:選項D)中,函數(shù)名后的<double>是
模板實參表,編譯系統(tǒng)會將血型的形參“4”自動轉化成double類型。
20.B
考點點擊:本題主要考查的知識點為預定義流對象。要點透析:cin為
標準輸入,即鍵盤輸入。cout為標準輸出,即屏幕輸出。
21.B解析:本題考查的是內聯(lián)函數(shù)的定義,引入內聯(lián)函數(shù)是為了解決
程序中函數(shù)調用的效率問題,是以目標代碼的增加為代價換取時間的節(jié)
??;一般函數(shù)在運行時被調用,而調用的內聯(lián)函數(shù)在編譯時就被替代了,
如果不加inline關鍵字,則編譯器會將在類說明部分定義的任何函數(shù)都
被認定為內聯(lián)函數(shù)。
22.D
23.C
24.一對多(或1:N)一對多(或1:N)解析:兩個文體集間的聯(lián)系實際上
是實體集間的函數(shù)關系,這種函數(shù)關系可以有3種,即一對一(1;1)的
聯(lián)系、一對多(1:N)或多對一(N:1)的聯(lián)系和多對多(M:N)的聯(lián)系。
25.friendDate;DatefriendDate;Date解析:本題考核類與對象、運
算符的重載。題中運算重載函數(shù)中的參數(shù)表中有兩個參數(shù),所以是
作為友元函數(shù)重載(因為“+”是一個二元運算符,作為成員函數(shù)重載時參
數(shù)表中只有一個參數(shù),對應于第二個參數(shù),而第一個操作數(shù)就是對象本
身,僅以this指針的形式隱藏在參數(shù)表中),實現(xiàn)的功能是將參數(shù)對象中
的成員變量month、year的進行對應相加,實現(xiàn)年月的相力口-題中運算符
重載函數(shù)的返回值的類型是類Date,所以第一個空格處填入'friendDate;
第二個空格處完善運算符重載函數(shù)的定義,缺少的是函數(shù)返回值的類型
“Date”
26.數(shù)據庫概念設計階段數(shù)據庫概念設計階段解析:數(shù)據庫設計分為以
下6個設計階段:需求分析階段、概念設計階段、邏輯設計階段、物理
設計階段、實施階段及數(shù)據庫運行和維護階段。
27.基類派生類基類\r\n派生類解析:本題主要考查的是派生類構造函
數(shù)的執(zhí)行順序,在C++語言中構造函數(shù)的執(zhí)行頃序是先基類后派生類,
而析構函數(shù)的執(zhí)行頃序正好相反,是先調用派生類后調用基類。
28.*p
29.h
30.24
31.doubledouble解析:同類數(shù)據進行四則運算類型不變。
32.二義性二義性
33.256.36O256.360解析:str表示把數(shù)值轉化為字符串。字符串函數(shù)
大都以類型說明符結尾,表明函數(shù)的返回值為字符串,但是在Visual
Basic6.0中,函數(shù)尾部的“$''也可以省略,功能相同。因此本題的結果為
256.36。
34.write
35.22解析:因為運算符++和--都是右結合的且優(yōu)先級高于雙目運
算符+,所以上式的運算順序為先a++,--b,再a+b,最后a自加
lo
36.(1)應改為"usingnamespacestd;
\n(2)應改為“outl.open('l.txt',ios::binary|ios::app);"。
5,
\n(3)應改為“outl.put(s[i]);o
\n【解析】本題第1處的“usingstd;”是在程序中引入標準命名空間std,
對于C++中弓I入標準命名空間的格式,缺少namespace,所以第1處
的語句修改為“usingnamespacestd;第2處,調用成員函數(shù)open中,
輸入、輸出方式是在ios類中定義的,所以“out1.open是.txt',binary
app);”語句缺少類ios,即第2處的語句修改為“outl.open。.txt',ios::
binary|ios::app);”。第3個標識應該用流成員函數(shù)put輸出字符,所
以第3處的語句修改為“outl.put(s[i]);
37.(1)應改為"TCobjl(l);
(2)應改為“Objl.SetNumber(lO);
(3)應改為“0bj2.SelNumber(lOO);
【解析】本題第1處的“TCobjl;”語句是聲明TC類的對象Objl,根據
TC類構造函數(shù)的定義TC(inti),存在整型參數(shù),并且題目要求第一個
輸出結果兩1,所以補全參數(shù)1,即第1處的“TCobjl(l);第2處處
的“objl.number=10;”應該是調用成員函數(shù)SetNumber賦值。在C+
+中成員函數(shù)的使用形式應該是:對象名.成員函數(shù),所以修改為
“objl.SetNumber(lO);類是對象的抽象,而對象是類的具體實
例。第3處“TC.SetNumber(lOO);”語句中的TC為類,并不是對象,
這里應該使用定義的對象,即obj2,所以將語句修改為
“obj2.SetNumber(lOO);
38.(1)ustaticintn=O,,^Z^Justaticintn;
(2)uintCO::n;”應改為“intCO::n=0;
(3)“cout?c.n?endl;"應改為"cout?c->n<<endl;
【解析】本題要在屏幕上輸出兩個字符,首先要靜態(tài)變量初始化,第1
處應改為“staticintn;",第2處要給n賦值,第3處輸出時引用c的對
象,應改為"cout<<c->n?endl;"。
39.(1)應添加“public:
\n(2)“inti”應改為“inti(10);
\n(3)“i++;”應改為“i—;
\n【解析】本題主要考查的是成員的訪問屬性。成員的訪問屬性有公有、
保護和私有3種,而默認的訪問屬性為私有,只有公有成員才能通過類
的對象被訪問。故應在構造函數(shù)前添加“public:“,否則該類無法被實例
化。變量的初始化可以通過“=”號,也可以和初始化對象一樣添加構造
參數(shù),題目已要求使用后者。本題要求輸出5個數(shù),while的循環(huán)變量i
每次減1,在i>5時循環(huán),故i初始化應為10。若循環(huán)中i每次增I,則
循環(huán)永遠不會退出。
40.(1)應改為“ein.getline(str,120,?);
何2)應改為"while(str[i])"°
\n⑶應改為“if(str[i]>=a&&str[i]<=2)”。
\n【解析】本題中要求以輸入字符“?”為結束符,用于字符輸入的流成員
函數(shù)getline函數(shù)讀入一行字符,格式為“cin.getline(字符數(shù)組,字符個
數(shù),終止標志字符字所以第1處改為“cin.getline(str,120,?);第
2處的“while(str)”語句應該是判斷字符串str中的每一個字符是否為結
束符,若不是結束符,在循環(huán)中判斷每一個字符是否為小寫,若為小寫,
則轉換。所以應該修改為“while(str[i])”。第3處的“if(str[i]>=a)”語句是
判斷字符str川是否為小寫字符,而現(xiàn)有的語句只是判斷字符是否大于a,
但是小寫字符應該是a到2,所以修改為“if(str[i]>=a&&st巾]>=z)”。
41.⑴應改為“TC::TC”。
\n⑵應改為"voidTC::display”。
\n(3)應改為“TC::~TC”。
\n【解析】在類的外部定義成員函數(shù)時,必須在成員函數(shù)前面加上類名
和作用域運算符“::”,作用域運算符用采表示某個成員屬于哪個類,使
用格式為“(類名)::〈成員函數(shù)〉((參數(shù)函數(shù))),因此第1處應改為“TC::
TC”,默認構造函數(shù)沒有參數(shù)。由第2處“TC=display”后的語句看,這
是在類外實現(xiàn)TC函數(shù),因此也有作用域運算符使用錯誤問題,display
函數(shù)返回值為void,因此第2處的語句應改為“voidTC「display"。由第
3處的語句“TC::TC”可知,顯然這里是在類外實現(xiàn)析構函數(shù),析構函
數(shù)是一個特殊的函數(shù),它的名稱和類名相同,并在前面加“字符,用
采與構造函數(shù)加以區(qū)別,因此第3處的語句應改為“TC::~TC”。
42.(1)應改為"catch(char*s)”。
⑵應改為“cateh(inti)”。
(3)應改為"catch(…)”。
【解析】本題中第1個標識前的異常拋出語句為“throw("error");",其
中的類型為字符串。所以對應的異常捕捉語句catch中應該符合這個類
型,而程序中給出的語句“catch(chars)”是字符型的,所以第1處的語
句修改為“catch(char*S)"°第2個標識前的異常拋出語句為
€tthrow((int)0);",其中的類型為int。對應的異常捕捉語句catch中應
該符合這個類型,所以補充catch子句中的類型,否則如果找不到匹配
的catch塊,系統(tǒng)就會調用一個系統(tǒng)函數(shù),使程序終止運行。即第2處
的語句修改為“catch(inti)”。如果在catch子句中沒有指定異常信息的類
型,那么就用刪節(jié)號"…''表示它可以捕捉任何類型的異常信息,即修
改為“catch(…)”。
43.(1)應改為"usingnamespacestd;"。
(2)應改為"outl.open("l.txt",ios::binaryIios::app);"。
(3)應改為“outl.put(s[i]);
【解析】本題第1處的“usingstd;”是在程序中引入標準命名空間std,
對于C++中引入標準命名空間的格式,缺少namespace,所以第1處
的語句修改為“usingnamespacestd;第2處,調用成員函數(shù)open
中,輸入、輸出方式是在ios類中定義的,所以“outl.open("l.txt",
binaryIapp);”語句缺少類ios,即第2處的語句修改為
“outl.open("l.txt",ios::binaryIios::app);“。第3個標識應
該用流成員函數(shù)put輸出字符,所以第3處的語句修改為
“outl.put(s[i]);”。
t4),
44.(l)voidmaino
(2)“intm=0144;
(3)“intn=OX25;”或"intn=0x25;”。
【解析】本題主要考查了主函數(shù)定義及幕同進制之間的轉換,包括十
進制到八進制,十進制到十六進制。主函數(shù)定義的定義形式為
“main”,函數(shù)名之后必須是一對括號,因此第1處應改為"voidmairT。
cout輸出默認是以十進制方式輸出的,根據題目要求輸出的結果可發(fā)
現(xiàn)變量的初值不正確,十進制的100對應八進制的144,卡進制的37
對應十六進制的25,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 易用性與人性化質檢技術考核試卷
- 植物基紙漿創(chuàng)新考核試卷
- 箱包行業(yè)智能穿戴設備考核試卷
- 糖批發(fā)企業(yè)市場競爭力分析與發(fā)展規(guī)劃考核試卷
- 硅冶煉過程中的產品質量檢驗與控制考核試卷
- 影視燈光控制臺租賃與租賃設備安全操作培訓協(xié)議
- 高端冰球比賽冰面監(jiān)測系統(tǒng)租賃與維護保障協(xié)議
- 生物制藥中試基地股權投資與項目驗收合作協(xié)議
- 翻譯認證補充協(xié)議(學術論文)
- 國際配偶移民忠誠度約定書
- iso220002024食品安全管理體系標準
- 空間中的垂直學案高三數(shù)學一輪復習
- 重慶江北國際機場有限公司招聘筆試題庫2024
- ipv6升級改造建設方案
- 大學生英語四級真題模擬試卷5份
- 單位反恐專項經費保障制度
- 羽毛球比賽對陣表模板
- 2024年上海市中考數(shù)學真題試卷及答案解析
- 統(tǒng)編版2023-2024學年語文三年級下冊第五單元導讀課教學設計
- 2024年陜西延長石油(集團)有限責任公司校園招聘考試試題參考答案
- 地籍測量成果報告
評論
0/150
提交評論