第 1 頁:改錯題 |
第 2 頁:簡單應(yīng)用題 |
第 3 頁:綜合應(yīng)用題 |
三、綜合應(yīng)用題
使用VC6打開考生文件夾下的工程kt11_3。此工程包含一個kt11_3.cpp,其中定義了類queue,但該類的定義并不完整。請按要求完成下列操作,將程序補充完整。
(1)完成類queue的無參數(shù)的構(gòu)造函數(shù)的定義,要求把數(shù)據(jù)成員bl和el都初始化為0,同時輸出queueinitialized。請在注釋“//**1**”之后添加適當(dāng)?shù)恼Z句。
(2)完成類queue的成員函數(shù)qput(intj)的定義,它的功能是把新的元素加入隊列,過程是先依據(jù)bl的值判斷數(shù)組是否已經(jīng)滿了,如果是就輸出queueisfull,否則bl自加一,并且把參數(shù)j的值存入bl指向的數(shù)組元素中,請在注釋“//**2**”之后添加適當(dāng)?shù)恼Z句。
(3)完成類queue的成員函數(shù)qget()的定義,它的功能是把隊列開頭的元素提取出隊列,并返回該值,過程是先比較el和bl的值判
斷隊列是否已空,如果是就輸出queueisempty,否則el自加一,并且把el指向的數(shù)組元素返回,請在注釋“//**3**”之后添加適當(dāng)?shù)恼Z句。
程序輸出結(jié)果如下:
queueinitialized
queueinitialized
3311
4422
注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。
源程序文件kt11_3.cpp清單如下:
#include
classqueue
{ intq[100];
intbl,el;
public:
queue();
voidqput(intj);
intqget(); };
queue::queue()
{ //**1** }
voidqueue::qput(intj)
{ //**2**
{ cout<<"queueisfull\n";
return; }
bl++;
q[bl]=j; }
intqueue::qget()
{ //**3**
{ cout<<"queueisempty\n";
return0; }
el++;
returnq[el]; }
voidmain()
{
queueaa,bb;
aa.qput(11);
bb.qput(22); aa.qput(33);
bb.qput(44);
cout< cout< }
【參考答案】
(1)bl=el=0;
cout<<"queue initialized\n";
(2)if(bl==100)
(3)if(el==bl)
【試題解析】
主要考查對于具體的一個隊列類的掌握,對列是一種特殊的存儲結(jié)構(gòu),應(yīng)使用先進(jìn)先出原則。題目中bl和el分別指向隊列的開頭和結(jié)尾,其中(2)是隊列的標(biāo)準(zhǔn)插入操作,(3)是隊列的標(biāo)準(zhǔn)的刪除操作,注意它們的操作方式和先判斷后操作的原則。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |