有以下程序: #include<string.h> int a=4; int f(int n) {int t=0;static int a=5; if(n%2) {int a=6;t++=a++;} else{int a

admin2011-06-10  36

问题 有以下程序:    #include<string.h>    int a=4;    int f(int n)    {int t=0;static int a=5;    if(n%2) {int a=6;t++=a++;}    else{int a=7;t+=a++;}    return t+a++;    }    main()    {int s=a,i=0;    for(;i<2;i++)s+=f(i);    printf("%d\n",s);    }    程序运行后的输出结果是(    )。

选项 A、24
B、28
C、32
D、36

答案B

解析 本题考查的是外部变量的应用。因为程序的初始int a=4;语句定义了外部变量a,在以后的执行过程中,当i=0时,调用f(0)函数,执行的语句是else {int a=7;t+=a++;},此处程序中又定义了变量a,所以原来定义的外部变量在此不起作用,得到t=7,返回值语句return t+a++;处,外部变量a起作用,返回值为7+5=12:当i=1时,调用f(1)函数,执行的是语句else{inta=6:t+=a++;},此处程序中又定义了变量a,所以原来定义的外部变量在此不起作用,得到t=6,返回值语句
转载请注明原文地址:https://kaotiyun.com/show/0xPp777K
0

最新回复(0)