●試題二
閱讀下列說明和算法,回答問題1和問題2,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
算法2-1是用來檢查文本文件中的圓括號是否匹配。若文件中存在圓括號沒有對應(yīng)的左括號或者右括號,則給出相應(yīng)的提示信息,如下所示:
文件提示信息
(1+2)
abc)缺少對應(yīng)左括號:第2行,第4列
((def)gx)缺少對應(yīng)左括號:第3行,第10列
(((h)
ij)(k
(1ml)缺少對應(yīng)右括號:第5行,第4列;第4行 ,第1列
在算法2-1中,stack為一整數(shù)棧。算法中各函數(shù)的說明見表4。
【算法2-1】
將棧stack置空,置EOF 為false
ch<-nextch();
while(not EOF)
k<-kind(CH);
if(k== (1) )
push( (2) );push( (3) );
elseif(k== (4) )
if(not empty())
pop();pop();
else
顯示錯(cuò)誤信息(缺少對應(yīng)左括號或右括號);
顯示行號row;顯示列號col;
endif
endif
ch<-nextch();
endwhile
if(not empty())
顯示錯(cuò)誤信息(缺少對應(yīng)左括號或右括號);
while(not empty())
row<-pop();col<-pop();
顯示行號row;顯示列號co1;
endwhile
endif
為了識(shí)別更多種類的括號,對算法2-1加以改進(jìn)后得到算法2-2。算法2-2能夠識(shí)別圓括號、方括號和花括號(不同類型的括號不能互相匹配)。改進(jìn)后,函數(shù)kind(char ch)的參數(shù)及其對應(yīng)的返回值見表5。
【算法2-2】
將棧stack置空,置EOF為false
ch<-nextch();
while(not EOF)
k<-kind(ch);
if(k>0)
if(判斷條件1)
push( (5) );push( (6) );push( (7) );
elseif(判斷條件2and判斷條件3)
pop();pop();pop();
else
顯示錯(cuò)誤信息(缺少對應(yīng)左括號或右括號);
顯示行號row;顯示列號col;
endif
endif
ch<-nextch();
endwhile
if(not empty())
顯示錯(cuò)誤信息(缺少對應(yīng)左括號或右括號);
while(not empty())
pop();rowpop();colpop();
顯示行號row;顯示列號col;
endwhile
endif
【問題1】
請將【算法2-1】和【算法2-2】中 (1) ~ (7) 處補(bǔ)充完整。
【問題2】
請從下面的選項(xiàng)中選擇相應(yīng)的判斷邏輯填補(bǔ)【算法2-2】中的"判斷條件1"至"判斷條件3"。注意,若"判斷條件2"的邏輯判斷結(jié)果為假,就無需對"判斷條件3"進(jìn)行判斷。
(a)字符是括號
(b)字符是左括號
(c)字符是右括號
(d)?
(e)棧不空
(f)棧頂元素表示的是與當(dāng)前字符匹配的左括號
(g)棧頂元素表示的是與當(dāng)前字符匹配的右括號
- 環(huán)球網(wǎng)校:2024年計(jì)算機(jī)軟考高級旗艦班系規(guī)旗艦班課程
- 2025年計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試時(shí)間:5月24日-27日、11月8日-11日
- 2024下半年計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試成績查詢通知
- 2024年上半年計(jì)算機(jī)軟件資格考試單獨(dú)劃線地區(qū)合格標(biāo)準(zhǔn)
- 2023上半年計(jì)算機(jī)軟件資格考試單獨(dú)劃線地區(qū)合格標(biāo)準(zhǔn)通告
- 2023下半年計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試模擬練習(xí)平臺(tái)上線公告
- 查看計(jì)算機(jī)軟件水平考試全部文檔 >>