三、綜合應(yīng)用題
使用VC6打開考生文件夾下的工程kt11_3。此工程包含一個(gè)kt11_3.cpp,其中定義了類queue,但該類的定義并不完整。請(qǐng)按要求完成下列操作,將程序補(bǔ)充完整。
(1)完成類queue的無參數(shù)的構(gòu)造函數(shù)的定義,要求把數(shù)據(jù)成員bl和el都初始化為0,同時(shí)輸出queueinitialized。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z句。
(2)完成類queue的成員函數(shù)qput(intj)的定義,它的功能是把新的元素加入隊(duì)列,過程是先依據(jù)bl的值判斷數(shù)組是否已經(jīng)滿了,如果是就輸出queueisfull,否則bl自加一,并且把參數(shù)j的值存入bl指向的數(shù)組元素中,請(qǐng)?jiān)谧⑨尅?/**2**”之后添加適當(dāng)?shù)恼Z句。
(3)完成類queue的成員函數(shù)qget()的定義,它的功能是把隊(duì)列開頭的元素提取出隊(duì)列,并返回該值,過程是先比較el和bl的值判斷隊(duì)列是否已空,如果是就輸出queueisempty,
否則el自加一,并且把el指向的數(shù)組元素返回,請(qǐng)?jiān)谧⑨尅?/**3**”之后添加適當(dāng)?shù)恼Z句。
程序輸出結(jié)果如下:
queueinitialized
queueinitialized
3311
4422
注意:除在指定位置添加語句之外,請(qǐng)不要改動(dòng)程序中的其他內(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) 【試題解析】 主要考查對(duì)于具體的一個(gè)隊(duì)列類的掌握,對(duì)列是一種特殊的存儲(chǔ)結(jié)構(gòu),應(yīng)使用先進(jìn)先出原則。題目中bl和el分別指向隊(duì)列的開頭和結(jié)尾,其中(2)是隊(duì)列的標(biāo)準(zhǔn)插入操作,(3)是隊(duì)列的標(biāo)準(zhǔn)的刪除操作,注意它們的操作方式和先判斷后操作的原則。 相關(guān)推薦: 2014年計(jì)算機(jī)等級(jí)考試過關(guān)技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |