2016年計(jì)算機(jī)軟件設(shè)計(jì)師模擬試題2

字號(hào):


    ●試題二
    閱讀下列說(shuō)明和算法,回答問題1和問題2,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
    【說(shuō)明】
    算法2-1是用來(lái)檢查文本文件中的圓括號(hào)是否匹配。若文件中存在圓括號(hào)沒有對(duì)應(yīng)的左括號(hào)或者右括號(hào),則給出相應(yīng)的提示信息,如下所示:
    文件提示信息
    (1+2)
    abc)缺少對(duì)應(yīng)左括號(hào):第2行,第4列
    ((def)gx)缺少對(duì)應(yīng)左括號(hào):第3行,第10列
    (((h)
    ij)(k
    (1ml)缺少對(duì)應(yīng)右括號(hào):第5行,第4列;第4行 ,第1列
    在算法2-1中,stack為一整數(shù)棧。算法中各函數(shù)的說(shuō)明見表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ò)誤信息(缺少對(duì)應(yīng)左括號(hào)或右括號(hào));
    顯示行號(hào)row;顯示列號(hào)col;
    endif
    endif
    ch<-nextch();
    endwhile
    if(not empty())
    顯示錯(cuò)誤信息(缺少對(duì)應(yīng)左括號(hào)或右括號(hào));
    while(not empty())
    row<-pop();col<-pop();
    顯示行號(hào)row;顯示列號(hào)co1;
    endwhile
    endif
    

 
    


    為了識(shí)別更多種類的括號(hào),對(duì)算法2-1加以改進(jìn)后得到算法2-2。算法2-2能夠識(shí)別圓括號(hào)、方括號(hào)和花括號(hào)(不同類型的括號(hào)不能互相匹配)。改進(jìn)后,函數(shù)kind(char ch)的參數(shù)及其對(duì)應(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ò)誤信息(缺少對(duì)應(yīng)左括號(hào)或右括號(hào));
    顯示行號(hào)row;顯示列號(hào)col;
    endif
    endif
    ch<-nextch();
    endwhile
    if(not empty())
    顯示錯(cuò)誤信息(缺少對(duì)應(yīng)左括號(hào)或右括號(hào));
    while(not empty())
    pop();rowpop();colpop();
    顯示行號(hào)row;顯示列號(hào)col;
    endwhile
    endif
    【問題1】
    請(qǐng)將【算法2-1】和【算法2-2】中 (1) ~ (7) 處補(bǔ)充完整。
    【問題2】
    請(qǐng)從下面的選項(xiàng)中選擇相應(yīng)的判斷邏輯填補(bǔ)【算法2-2】中的"判斷條件1"至"判斷條件3"。注意,若"判斷條件2"的邏輯判斷結(jié)果為假,就無(wú)需對(duì)"判斷條件3"進(jìn)行判斷。
    (a)字符是括號(hào)
    (b)字符是左括號(hào)
    (c)字符是右括號(hào)
    (d)???BR>    (e)棧不空
    (f)棧頂元素表示的是與當(dāng)前字符匹配的左括號(hào)
    (g)棧頂元素表示的是與當(dāng)前字符匹配的右括號(hào)