题目内容 (请给出正确答案)

请教:2011年上半年软考程序员下午试题(标准答案版)第1大题第4小题如何解答?

【题目描述】

试题四(共15分)

阅读以下说明和C函数,填补C函数中的空缺(1)~(5),将解答写在答题纸的对应栏内。

【说明】

假设一个算术表达式中可以包含以下三种括号:“(”和“)”、"[”和“]”、“{”和“}”,并且这三种括号可以按照任意的次序嵌套使用。

下面仅考虑表达式中括号的匹配关系,其他问题暂时忽略。例如,表达式“[a.(b.5)]*c[{}]”中的括号是完全匹配的,而表达式“[a-(b-5]))*c”中的括号不是完全匹配的,因为“(”与“]”不能匹配,而且多了一个“)”,即缺少一个与“)”相匹配的“(”。 函数ifmatched (char expr[])的功能是用栈来判断表达式中的括号是否匹配,表达式以字符串的形式存储在字符数组expr中。若表达式中的括号完全匹配,则该函数的返回值为Matched,否则返回值为Mismatched。

该函数的处理思路如下:

(1)设置一个初始为空的栈,从左至右扫描表达式。

(2)若遇上左括号,则令其入栈;若遇上右括号,则需要与栈顶的左括号进行匹配。

(3)若所遇到的右括号能与栈顶的左括号配对,则令栈顶的左括号出栈,然后继续匹配过程;否则返回Mismatched,结束判断过程。

(4)若表达式扫描结束,同时栈变为空,则说明表达式中的括号能完全匹配,返回Matched。 函数ifMatched中用到了两种用户自定义数据类型BOOL 和STACK,其中,BOOL类型的定义如下:

typedef enum {Mismatched, Matched}BOOL;

STACK(即栈类型)的定义省略,栈的基本操作的函数原型说明如下:

void InitStack(STACK *S):初始化一个空栈。

void Push(STACK *S,char e):将一个字符压栈,栈中元素数目增1。

void Pop(STACK *S):栈顶元素出栈,栈中元素数目减1。

char Top(STACK S):返回非空栈S的栈顶元素值,栈中元素数目不变。

int IsEmpty(STACK S):若S是空栈,则返回1,否则返回0。

【我提交的答案】:(1)cptr++ (2)Push(&S,*cptr) (3)Top(STACK S) (4)Pop(STACK *S) (5)IsEmpty(STACK S)

【参考答案分析】:试题四参考答案(共 15分)

(1) cptr++或++cptr 或cptr +=1 或cptr = cptr+1 (3分)

(2) Push(&S,*cptr) (3 分)

(3) Top(S) (3分)

(4)Pop(&S) (3分)

(5) Is Empty(S) (3分)

【我的疑问】(如下,请求专家帮助解答)

老师,我第二题的答案写成:Push(STACK *S,*cptr),这样写对吗?会给分吗?我第三题写成:Top(STACK S),这样写对吗?会给分吗?

查看答案
您可能会需要:
更多“请教:2011年上半年软考程序员下…”相关的问题

第1题

【题目描述】

【我提交的答案】:
【参考答案与解析】:

正确答案:B

答案分析:

【我的疑问】(如下,请求专家帮助解答)

不知怎么代入公式

点击查看答案

第2题

我自己开2M宽带好?还是和邻居共用4M宽带?我喜欢看电影,这两种有什么不一样吗?网速一样吗?是不是4M两人共用就是每人2M了?可以设置平分宽带吗?谢谢啊!

点击查看答案

第3题

【题目描述】

【我提交的答案】:B
【参考答案与解析】:

正确答案:C

答案分析:

【我的疑问】(如下,请求专家帮助解答)

独立显卡安装在哪里

点击查看答案

第4题

【题目描述】

【我提交的答案】:D
【参考答案与解析】:

正确答案:D

答案分析:

【我的疑问】(如下,请求专家帮助解答)

这道题看不懂

点击查看答案
热门考试 全部 >
最新试卷 全部 >
找答案
账号:
你好,尊敬的上学吧用户
粘贴 取消
搜索
如搜索结果不匹配,请 联系老师上传试题 获取答案
发送账号至手机
看不清?点击更换
发送
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧会员政策被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信
温馨提示

您的免费查看次数已用完,

需要开通会员才能继续使用。

马上开通会员 我已开通会员,登录会员账号继续查看答案
重置密码
确认修改