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

试题四(共 15 分) 阅读以下说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明]

试题四(共 15 分)

阅读以下说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。

[说明]

计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式

“46+5*(120-37)”的后缀表达式形式为“46 5 120 37 - * +” 。

计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中,重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5 120 37 - * +”的计算过程为:

a. 依次将 46、5、120、37 压入栈中;

b. 遇到“-”,取出 37、120,计算 120–37,得 83,将其压入栈中;

c. 遇到“*”,取出 83、5,计算 5*83,得 415,将其压入栈中;

d. 遇到“+”,取出 415、46,计算 46+415,得 461,将其压入栈中;

e. 表达式结束,则计算过程完成。

函数 computing(char expr[],int *result)的功能是基于栈计算后缀形式的表达式(以串形式存入字符数组 expr)的值,并通过参数 result 返回该值。函数的返回值为-1/0 分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“\”)。

函数 computing 中所用栈的基本操作的函数原型说明如下:

void InitStack(STACK *s):初始化栈。

void Push(STACK *s, int e): 将一个整数压栈,栈中元素数目增 1。

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

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

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

[C 函数]

int computing(char expr[], int *result)

{

STACK s; int tnum, a,b; char *ptr;

InitStack(&s);

ptr = expr; /*字符指针指向后缀表达式串的第一个字符*/

while (*ptr!='\0') {

if (*ptr==' ') { /*当前字符是空格*/

(1) ; /*字符指针指向下一字符*/

continue;

}

else

if (isdigit(*ptr)) {

/*当前字符是数字,则将该数字开始的数字串转换为数值*/

tnum = (2) ;

while (*ptr>=’0’ && *ptr <=’9’) {

tnum = tnum * 10 + (3) ;

ptr++;

}

Push((4) );

}

else /*当前字符是运算符或其他符号*/

if (*ptr=='+'||*ptr=='-'||*ptr =='*'||*ptr =='/'){

if (!IsEmpty(s)) {

a = Top(s); Pop(&s); /*取运算符的第二个运算数*/

if (!IsEmpty(s)) {

b = Top(s); Pop(&s); /*取运算符的第一个运算数*/

}

else return -1;

}

else return -1;

switch (*ptr) {

case '+': Push(&s,b+a); break;

case '-': Push(&s,b-a); break;

case '*': Push(&s,b*a); break;

case '/': Push(&s,b/a); break;

}

}

else

return -1;

ptr++; /*字符指针指向下一字符*/

} /* while */

if (IsEmpty(s)) return -1;

else {

(5) = Top(s); Pop(&s); /*取运算结果*/

if (!IsEmpty(s)) return -1;

return 0;

}

}

查看答案
您可能会需要:
更多“试题四(共 15 分) 阅读以下说明和 C 函数,将应填入 ”相关的问题

第1题

试题二(共 15 分) 阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明]

试题二(共 15 分)

阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

[说明]

下面的程序按照以下规则输出给定名词的复数形式:

a. 若名词以“y”结尾,则删除 y 并添加“ies” ;

b. 若名词以“s” 、 “ch”或“sh”结尾,则添加“es” ;

c. 其他所有情况,直接添加“s” 。

[C 程序]

#include <stdio.h>

#include <string.h>

char *plural(char *word)

{

int n;

char *pstr;

n = strlen(word); /*求给定单词的长度*/

pstr = (char *)malloc(n+3); /*申请给定单词的复数形式存储空间*/

if (!pstr || n < 2)

return NULL;

strcpy(pstr,word); /*复制给定单词*/

if ( (1) )

{

pstr[n-1] = 'i'; pstr[n] = 'e'; pstr[n+1] = 's'; (2) ;

}

else

if(pstr[n-1]=='s'||pstr[n-1]== 'h' && ( (3) ))

{

pstr[n] = 'e'; pstr[n+1] = 's'; pstr[n+2] = '\0';

}

else

{ pstr[n] = 's'; pstr[n+1] = '\0'; }

(4) ;

}

main( )

{ int i; char *ps;

char wc[9][10] =

{"chair","dairy","boss","circus","fly","dog","church","clue","dish"}

for(i = 0; i < 9; i++) {

ps = (5) ;

printf("%s: %s\n",wc[i],ps); /*输出单词及其复数形式*/

free(ps); /*释放空间*/

}

system("pause");

}

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第2题

● A (75) system placed between the company network and the outside world may limit outside

● A (75) system placed between the company network and the outside world may limit outside access to the internal network.

(75)

A. firewall

B. modem

C. gateway

D. key

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第3题

● The Internet is an open system, and most information is available to everyone. It is ver

● The Internet is an open system, and most information is available to everyone. It is very important to add (74) to existing system for protecting the secret information.

(74)

A. Web pages

B. modem

C. security

D. network

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第4题

● C++ fully supports (73) programming. (73) A. visual B. object-oriented C. logic D. natur

● C++ fully supports (73) programming.

(73)

A. visual

B. object-oriented

C. logic

D. natural language

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第5题

● The (72) is a collection of modules serving as interface between hardware and software t

● The (72) is a collection of modules serving as interface between hardware and software to provide a software platform.

(72)

A. computer

B. processor

C. application software

D. operating system

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第6题

● The line of computing jobs waiting to be run on a computer system might be a (71) . The

● The line of computing jobs waiting to be run on a computer system might be a (71) . The jobs are serviced in the order of their arrival, that is, the first in is the first out.

(71)

A. queue

B. stack

C. array

D. record

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第7题

● 某主机的 IP地址为 10.100.100.01/20,其子网掩码是 (70) 。 (70)A. 255.255.248.0 B. 255.255.2

● 某主机的 IP地址为 10.100.100.01/20,其子网掩码是 (70) 。

(70)

A. 255.255.248.0

B. 255.255.252.0

C. 255.255.240.0

D. 255.255.255.0

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第8题

● 在 Windows Server2003 操作系统中可以通过安装 (69) 组件创建 FTP站点。 (69)A. IIS B. IE C.

● 在 Windows Server2003 操作系统中可以通过安装 (69) 组件创建 FTP站点。

(69)

A. IIS

B. IE

C. POP3

D. DNS

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第9题

● 在 Outlook 中,通常借助 (68) 来传送一个文件。 (68)A. 邮件正文 B. Telnet C. WWW D. 附件功能

● 在 Outlook 中,通常借助 (68) 来传送一个文件。

(68)

A. 邮件正文

B. Telnet

C. WWW

D. 附件功能

请帮忙给出正确答案和分析,谢谢!

点击查看答案

第10题

● 在检测网络故障时使用的 ping 命令是基于 (67) 协议实现的。 (67)A. SNMP(简单网络管理协议) B.

● 在检测网络故障时使用的 ping 命令是基于 (67) 协议实现的。

(67)

A. SNMP(简单网络管理协议)

B. FTP(文件传输协议)

C. IGMP(互联网组管理协议)

D. ICMP(互联网控制管理协议)

请帮忙给出正确答案和分析,谢谢!

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

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

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

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

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

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

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

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