问题 单项选择题

有以下程序
#include<stdio.h>
int fun()
static int x=1;
x*=2;
return x;

main()
( int i, s=1;
for(i=1; i<=3; i++)s*=fun();
printf("%d\n", s);

程序运行后的输出结果是______。

A.0

B.10

C.30

D.64

答案

参考答案:D

解析: 静态局部变量只在定义它的函数内有效,程序仅分配一次内存,函数返回后,该变量不会消失,下一次依据上一次的结果值。此题中第一次循环时,调用fun函数后x的值为2,s的值为2;第二次循环时,调用fun函数后x的值为4,s的值为8;第三次循环时,调用fun函数后x的值为8,s的值为64。

判断题
单项选择题