首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
●试题4
阅读下列说明和算法,回答问题1和问题2,将解答填人答题纸的对应栏内。
【说明】
算法2一l可以用来检查某文本文件中的尖括号是否匹配。若文件中存在尖括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示:
文件提示信息
head>缺少对应左括号:第2行,第5列
< top HREF=”+urlresuh+”>>>缺少对应左括号:第3行,第10列
<<
><
缺少对应右括号:第5行,第2列;第4行,第1列
在算法2—1中,stack为一整数栈。算法中各函数的说明见表5.3。
表5.3
函数名 | 函数功能 |
push(int i) | 将整数i压入栈stack中 |
pop() | stack的栈顶元素出栈 |
isEmpty() | 判断stack栈是否为空。若为空,函数返回1,否则函数返回0 |
nextChar() | 读取文本文件中的下一个字符,并返回该字符的ASCIl值,将字符所在的行号以及字符在行中的位置分别存储到变量row和col中,若遇到文件结束符,则将变量EOF置为true |
type(char ch) | 判断字符ch是左括号还是右括号,若是左括号,函数返回1,若是右括号,函数返回2,若两者都不是,函数返回0 |
【算法2—1】
将栈stack置空,置EOF为false
ch<一nextChar();
while(not EOF)
k<一type(CH);
if(k==(1))
push((2));push((3));
else if(k==(4))
if(not isEmpty()) pop();pop();
else
显示错误信息(缺少对应左括号或右括号);
显示行号low;显示列号col;
endif endif ch<一nextChar();
endwhile
if(not isEmpty())
显示错误信息(缺少对应左括号或右括号);
while(not isEmpty())
row<一pop();col<一pop();
显示行号row;显示列号col;
endwhile
endif
为了识别更多种类的括号,对算法2一1加以改进后得到算法2—2。算法2—2能够识别圆括号、方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数type(chat ch)的参数及其对应的返回值见表5.4。
表5.4
ch |
( |
) |
{ |
} |
[ |
] |
其他 |
返回值 |
1 |
2 |
3 |
4 |
5 |
6 |
0 |
【算法2—2】
将栈stack置空,置EOF为false
ch<一nextChar();
while(not EOF) k<一type(ch);
if(k>0)
if(判断条件1)
push((5));push((6));push((7));
elseif(判断条件2and判断条件3)
pop();pop();pop();
else
显示错误信息(缺少对应左括号或右括号);
显示行号row;显示列号col;
endif
endif
ch<一nextChar();
endwhile
if(not isEmpty())
显示错误信息(缺少对应左括号或右括号);
while(not isEmpty())
pop();row←pop();col←pop();
显示行号row;显示列号col;
endwhile
endif
【问题1】
请将【算法2—1】和【算法2—2】中(1)~(7)处补充完整。
【问题2】
请从下面的选项中选择相应的判断逻辑填补【算法2—2】中的“判断条件1”至“判断条件3注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。
(a)字符是括号
(b)字符是左括号
(c)字符是右括号
(d)栈空
(e)栈不空
(f)栈顶元素表示的是与当前字符匹配的左括号
(g)栈顶元素表示的是与当前字符匹配的右括号
【问题1】解答:
(1)1 类型为左括号时入栈。
(2)col 先压入col
(3)row 后压入lOW
(4)2 类型为右括号时出栈。
(5)col 先弹出col
(6)row 后弹出row
(7)k
【问题2】解答:
判断条件l:(b)判断字符是否是左括号
判断条件2:(e)栈是否空
判断条件3 1(f)栈顶元素表示的是否是与当前字符匹配的左括号
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |