问题 填空题

下列程序执行输出的结果是 【19】
#include<stdio.h>
f(int a)
int b=0;
static c=3;
a=c++,b++;
return(a);
main()
int a=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);

答案

参考答案:D

解析: 本题考查了静态存储类别的局部变量的特点。静态存储类别的局部变量在程序的整个生存周期内都存在,但作用域却只局限于定义它的函数或局部范围。当i=0时执行第一次for循环,k=f(2),a=c+ +,b++;因为赋值运算符的优先级高于逗号运算符,所以a=3,c=4;当i=1时执行第二次for循环,k=f(3), a=c++,b++;因为c为静态局部变量所以保留着这一次执行的结果值4,所以a=4,c=5,所以函数f()返回a的值为4。

单项选择题
单项选择题