首页 > 通信工程师
题目内容 (请给出正确答案)
[单选题]

使用栈判断括号串是否匹配,当读入左括号时应(),算法结束时,若栈(),则括号串是匹配的。

A.出栈、为空

B.出栈、非空

C.入栈、为空

D.入栈、非空

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“使用栈判断括号串是否匹配,当读入左括号时应(),算法结束时,…”相关的问题
第1题
阅读下列说明和算法,回答问题1和问题2。【说明】 算法2-1是用来检查文本文件中的圆括号是否匹配。若

阅读下列说明和算法,回答问题1和问题2。

【说明】

算法2-1是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示:

文件 提示信息

(1+2)

abc) 缺少对应左括号:第2行,第4列

((def)gx) 缺少对应左括号:第3行,第10列

(((h)

ij)(k

(1ml) 缺少对应右括号:第5行,第4列;第4行,第1列

在算法2-1中,stack为一整数栈。算法中各函数的说明见表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 显示错误信息(缺少对应左括号或右括号); 显示行号row;显示列号col; endif endif ch < - nextch(); endwhile if(not empty()) 显示错误信息(缺少对应左括号或右括号); while(not empty()) row < - pop() ; col <- pop(); 显示行号row; 显示列号col; endwhile endif 为了识别更多种类的括号,对算法2-1加以改进后得到算法2-2。算法2-2能够识别圆括号、方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数kind(char ch)的参数及其对应的返回值见表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(判断条件2 and 判断条件3 )

pop() ;pop() ;pop();

else

显示行号row; 显示列号col;

endif

endif

ch < - nextch();

endwhile

if(not empty() )

显示错误信息(缺少对应左括号或右括号);

while(not empty() )

pop(); row←pop(); col←pop();

显示行号row;显示列号col;

endwhile

endif

请将【算法2-1】和【算法2-2】中(1)~(7)处补充完整。

点击查看答案
第2题
请从以下选项中选择相应的判断逻辑填写【算法4-2】中的“判断条件1”至“判断条件3”。注意,如“判断条件
2”的逻辑判断结果为假,则无须对“判断条件3”进行判断。 判断条件1:(8) 判断条件2:(9) 判断条件3:(10) 【供选择的答案】A.栈顶元素表示的是与当前字符匹配的左括号

B.栈顶元素表示的是与当前字符匹配的右括号

C.字符是左括号

D.字符是右括号

E.栈不空F.栈空G.字符是括号

点击查看答案
第3题
设计一个“判别在表达式中左、右括号是否配对出现”的算法,采用______数据结构最佳。A.线性表的顺序

设计一个“判别在表达式中左、右括号是否配对出现”的算法,采用______数据结构最佳。

A.线性表的顺序存储结构

B.栈

C.队列

D.线性表的链式存储结构

点击查看答案
第4题
【C程序】#include<stdio.h> /*此处为栈类型及其基本操作的定义,省略*/ int main(){ STACK

【C程序】

#include<stdio.h>

/*此处为栈类型及其基本操作的定义,省略*/

int main(){

STACK station;

int state[1000];

int n; /*车厢数*/

int begin, i, j, maxNo; /*maxNo为A端正待入栈的车厢编号*/

printf("请输入车厢数:");

scanf("%d",&n);

printf(“请输入需要判断的车厢编号序列(以空格分隔):”);

if(n<1)return-1;

for (i=0; i<n; i++) /*读入需要驶出的车厢编号序列,存入数组state[]*/

scanf("%d",&state[i]);

(1) ; /*初始化栈*/

maxNo=1;

for(i=0; i<n; ){ /*检查输出序列中的每个车厢号state[i]是否能从栈中获取*/

if((2) ){ /*当栈不为空时*/

if (state[i]=Top(station)) { /*栈顶车厢号等于被检查车厢号*/

printf("%d",Top(station));

Pop(&station);i++;

else

if ((3) ) {

printf(“error\n”);

return 1;

else{

begin= (4) ;

for(j=begin+l;j <=state [i];j++){

Push(&station, j);

}

else{ /*当栈为空时*/

begin=maxNo;

for(j=begin; j<=state[i];j++) {

Push(&station, j);

maxNo= (5) ;

printf("OK");

return 0;

点击查看答案
第5题
需编译运行的程序,其(20)错误在编译时能被发现。

A.0作为除数

B.死循环

C.无穷递归

D.括号不匹配

点击查看答案
第6题
● 需编译运行的程序,其 (12) 错误在编译时不能发现。 (12)A. 逻辑 B. 语法 C. 括号不匹配 D. 关

● 需编译运行的程序,其 (12) 错误在编译时不能发现。

(12)A. 逻辑 B. 语法 C. 括号不匹配 D. 关键字拼写

点击查看答案
第7题
●算术表达式采用逆波兰式表示时不用括号,可以利用(20)进行求值。与逆波兰式ab-cd+*对应的中缀表达

●算术表达式采用逆波兰式表示时不用括号,可以利用(20)进行求值。与逆波

兰式ab-cd+*对应的中缀表达式是 (21) 。

(20)

A.数组

B.栈

C.队列

D.散列表

(21)

A. a-b+c*d

B.(a-b)*c+d

C.(a-b)*(c+d)

D. a-b*c+d

点击查看答案
第8题
● 算术表达式采用逆波兰式表示时不用括号,可以利用 (20) 进行求值。与逆波兰式 ab-cd+* 对应的中

● 算术表达式采用逆波兰式表示时不用括号,可以利用 (20) 进行求值。与逆波兰式 ab-cd+* 对应的中缀表达式是 (21) 。

(20)

A .数组

B .栈

C .队列

D .散列表

(21)

A.a-b+c*d

B.(a_b)*c+d

C.(a-b)*(c+d)

D.a-b*c+d

点击查看答案
第9题
用结构归纳法证明:成形括号串的字尾中,右括号数不少于左括号数.

点击查看答案
第10题
●对于高级语言源程序,若(19),则可断定程序中出现语法错误。(19)A.编译时发现表达式中操作数的类型

●对于高级语言源程序,若(19),则可断定程序中出现语法错误。

(19)A.编译时发现表达式中操作数的类型不匹配

B.编译时发现表达式中的括号不匹配

C.运行时出现数组下标越界的情况

D.运行时出现除数为0的情况

点击查看答案
第11题
编译程序在语法分析阶段能检查出(41)错误。

A.表达式中的括号不匹配

B.以零作除数

C.数组下标越界

D.无穷递归

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改