首页 > 试题广场 >

在上下文及头文件均正常的情况下,下列代码的运行结果是()

[单选题]

在上下文及头文件均正常的情况下,下列代码的运行结果是()

int main() {
    Stack S;
    Char x, y;
    InitStack(S);
    x = 'n';
    y = 'g';
    Push(S, x);
    Push(S, 'i');
    Push(S, y);
    Pop(S, x);
    Push(S, 'r');
    Push(S, 't');
    Push(S, x);
    Pop(S, x);
    Push(S, 's');
    while (!StackEmpty(S)) {
        Pop(S, y);
        printf(y);
    };
    printf(x);
}


  • gstrin
  • string
  • srting
  • stirng
因为只有string是正确的单词,其他的都不是英文单词,而出题人费这么大劲编题目肯定就是为了凑一个单词,所以选B
发表于 2017-08-11 15:33:36 回复(20)
考察的是栈:
(1)Push(S,x);Push(S,'i');Push(S,y);执行结果:nig。
(2)Pop(S,x);Push(S,'r');Push(S,'t');Push(S,x);执行结果:ni(g)rtg 因为后进先出原则,x变量存储最近入栈的值g。
(3)Pop(S,x);Push(S,' s');执行结果ni(g)rt(g)s 同理括号里的的内容弹出,写在这里方便理解。
(4) while(!StackEmpty(S)){Pop(S,y);printf(y);}执行结果strin,就是讲栈s尾的内容赋值给变量y,并打印,根据后进先出原则,将上面的结果倒序。
(5)在第(2)中,x的变量为g,所以不难猜出,最后打印g。
(6)结果就是:string
发表于 2017-11-04 11:51:38 回复(3)
B
根据栈操作
POP(s,x)是出栈 ,把栈S**栈一个元素给到x。
Push(s,r)是进栈,让r进入s栈。
栈服从先进后出原则。
所以这道题最后里面是从栈顶到栈尾是string,最后一个while循环把元素输出出来,所以选B
发表于 2017-01-14 09:49:09 回复(6)
POP(s,x)是出栈 ,把栈S**栈一个元素给到x
Push(s,r)是进栈,让r进入s栈。

注意x改了。
发表于 2017-03-08 21:08:01 回复(0)
B

把图片横放
发表于 2017-01-14 03:48:11 回复(0)
手机为啥bcd都是都是string
发表于 2023-05-04 18:46:59 回复(0)
乍一看,bcd都是一样的
发表于 2023-02-23 08:26:30 回复(0)
堆栈操作;
push(S, x); // 将x压入堆栈
pop(S, x); // 弹出堆栈最上面的元素,放入x

然后画一个堆栈,一步一步操作就行啦。
发表于 2020-08-18 20:32:46 回复(0)
这是伪代码????
发表于 2020-02-28 12:03:40 回复(0)

printf (y)为什么将strin都打印出来了

发表于 2019-06-21 19:40:23 回复(2)
栈操作
发表于 2019-02-22 08:46:41 回复(0)
注意,重点是对push和pop的理解,push是直接入栈,将入栈元素放到末尾,pop则是将上一个入栈的元素执行出栈,并将出栈元素返回给第二个参数。
发表于 2018-12-06 18:11:55 回复(0)
眼瞎了。。。B都能点成c
发表于 2018-09-21 09:52:35 回复(0)
我只认识srting,所以选这个
发表于 2018-09-14 13:34:36 回复(0)
首先压盏nig 随后弹出g 继续压入rts 为nirts 一次弹出strin 再加g 为string
发表于 2018-04-27 19:22:29 回复(0)

这里需要注意的是:pop(s,x)是将栈顶元素出栈附给x;
push(s,r)是将r进栈

发表于 2017-12-10 22:10:27 回复(0)
Push(S,x)入栈, Pop(S,x)出栈,并把数据赋给变量x
在循环输出栈
在输出变量y
编辑于 2017-08-10 08:24:01 回复(0)
这道题我一开始很懵逼选了B。然后通过查阅资料,发现就是数据结构书上的内容。http://www.cnblogs.com/dd2hm/p/7278295.html
发表于 2017-08-03 10:21:41 回复(0)