单选题
C语言
2017-04-04
有以下程序:

程序运行后的输出结果是( )。
A.30
B.10
C.0
D.64
参考答案
D
答案解析
分析程序可知,main函数中初始化s=1,然后根据i的值1、2、3执行3次for循环,每次将s当前值与函数fun()的返回值相乘,并将乘积赋给s,所以for循环等价于:s=S*fun()*fun()*fun();可见s的值取决于fun()函数的返回值。在fun()函数中,定义了一个静态局部变量x并初始化为1,再将X的值乘以2返回,因为静态局部变量x在编译时赋初值,并且只赋值一次,下一次调用时都是保留上一次的值,所以fun()函数每次被调用,返回值都是上一次的2倍,所以S=1×2×4×8=64,故答案选D。
你可能感兴趣的试题
A.Beijing!
B.to Beijing!
C.Welcome you to Beijing!
D.you to Beijing!
A.进行字符串复制时,目的串的存储空间必须足够大
B.两个字符串进行比较时,短的一个必定比长的一个小
C.计算一个字符串的长度时,应包含串尾的结束标志
D.两个字符串连接时,对存储空间的大小没有要求

