考虑下面的C程序:
#include
int r(){
int static num=7;
return num--;
}
int main() {
for(r();r();r()) {
printf("%d ",r());
};
return 0;
}
程序执行时将显示以下哪个值?
(A) 41
(B) 52
(C) 63
(D) 630答案: (B)
说明:根据C中的“ for”循环,
for (initialization expr; test expr; update expr)
{
// body of the loop
// statements we want to execute
}
代码将按照以下流程图执行,
另外,请注意,给定的return语句中存在递减(num – –),因此它将返回“ num”的先前值,然后将其递减1。
静态将为变量int“ num”分配一次内存,所有更改都将在此处发生。
#include
int r(){
int static num=7;
return num--;
}
int main() {
for(r();r();r()) {
printf("%d ",r());
};
return 0;
}
因此,给定的代码将打印: 5 2 。
选项(B)是正确的。
这个问题的测验