int a=3, b; b=a+3; { int c=2; a*=c+1; } printf("%d\n", a);
程序代码分析
int a=3, b;
b=a+3;
{
int c=2;
a*=c+1;
}
printf("%d\n", a);
逐步执行过程
1. 初始化:int a=3, b;
- a = 3
- b 未初始化
2. 第二行:b=a+3;
- b = a + 3 = 3 + 3 = 6
3. 代码块内:
{
int c=2; // 局部变量 c = 2
a*=c+1; // a = a * (c+1) = 3 * (2+1) = 3 * 3 = 9
}
4. 输出:printf("%d\n", a);
- 输出 a 的值,即 9
关键点分析
- 变量作用域:变量 c 只在花括号内有效,但对全局变量 a 的修改会保留
- 复合赋值运算符:a*=c+1 等价于 a = a * (c+1)
- 运算优先级:先计算 c+1=3,再计算 a*3=9
答案
程序输出结果是 9。

浙公网安备 33010602011771号