gzq44 发表于 2020-10-3 17:03:15

S1E28语句的执行顺序

#include <stdio.h>

void a();
void b();
void c();

void a()
{
      ; // A
}

int main()
{
      b(); // B
      a(); // C
      c(); // D

      return 0;
}

void c()
{
      ; // E
}

void b()
{
      ; // F
}
答:B -> F -> C -> A -> D -> E
怎么看出来的??

巴巴鲁 发表于 2020-10-3 18:29:11

程序自顶向下执行,这是对于主函数而言
看主函数,先调用b(),程序执行b()里的
然后调用a(),....
最后调用c(),....

风过无痕1989 发表于 2020-10-3 21:15:01

本帖最后由 风过无痕1989 于 2020-10-3 21:16 编辑

main() 是程序的入口,所有程序都从它开始。main() 调用函数 b(),虽然函数 b() 没有给出具体的程序代码,但其调用注释是B,调用完后的注释是注释为F,故此判断其返回值是F(下面的也是同理),返回主函数,再调用函数 a(),调用注释是C,调用完后返回值是A,返回主函数,最后调用函数 c(),调用注释是D,调用后的返回值是E

故作答:B -> F -> C -> A -> D -> E

gzq44 发表于 2020-10-3 21:49:52

巴巴鲁 发表于 2020-10-3 18:29
程序自顶向下执行,这是对于主函数而言
看主函数,先调用b(),程序执行b()里的
然后调用a(),....


你这都和答案不一样了{:10_269:}

gzq44 发表于 2020-10-3 21:51:16

风过无痕1989 发表于 2020-10-3 21:15
main() 是程序的入口,所有程序都从它开始。main() 调用函数 b(),虽然函数 b() 没有给出具体的程序代码, ...

那他为什么不把a()和c()按顺序给调用了呢??{:10_267:}

风过无痕1989 发表于 2020-10-3 21:55:56

gzq44 发表于 2020-10-3 21:51
那他为什么不把a()和c()按顺序给调用了呢??

是按顺序调用的呀:

int main()
{
      b(); // B      先调用
      a(); // C      再调用
      c(); // D      最后调用

巴巴鲁 发表于 2020-10-3 21:57:00

gzq44 发表于 2020-10-3 21:49
你这都和答案不一样了

程序执行b()里的,不就是B->F,下面同理

风过无痕1989 发表于 2020-10-3 22:45:58

巴巴鲁 发表于 2020-10-3 21:57
程序执行b()里的,不就是B->F,下面同理

他这个题目,没有具体的程序代码,就是一个概念,估计他不好理解,而我的电脑不听使唤,敲几个汉字都困难
页: [1]
查看完整版本: S1E28语句的执行顺序