有以下程序: int a=3; main() { int s=0; {int a=5; s+=a++ ;} s+=a++; printf("% d\n", s);} 程序运行后的输出结果是______。

admin2010-09-05  27

问题 有以下程序:    int a=3;    main()    {  int s=0;       {int a=5; s+=a++ ;}       s+=a++; printf("% d\n", s);}    程序运行后的输出结果是______。

选项 A、8
B、10
C、7
D、11

答案A

解析 本题有两个同名变量a,其中一个在main函数之前定义,为全局变量,另一个在main函数中的复合语句中定义,为局部变量。在复合语句中局部变量a起作用,即a=5,因此语句s+=a++计算出的s值为:s=s+a++=0+5++=0+5=5;执行完复合语句后全局变量a起作用,即a=3,因此语句s+=a++计算出的s值为:s=s+a++=5+3++=5+3=8。故printf语句的输出为8。
转载请注明原文地址:https://kaotiyun.com/show/EpWp777K
0

最新回复(0)