目录: 标题| 题干| 答案| 搜索| 相关
问题

下列程序的输出结果是int b=2;int func(int *a){ b+


下列程序的输出结果是int b=2;int func(int *a){ b+=*a; return(b);}main(){ int a=2, res=2; res += func(&a); printf("%d\n",res);} A.2 B.4

  • A2
  • B4
  • C6
  • D8
参考答案
参考解析:

在本题程序中,首先定义了一个全局整型变量b,并给其赋初值为2,然后定义一个函数func,该函数带有一个指针类型的形参,在函数体中,通过形参的值来改变全局变量b的值,b+=*a等价于b=b+(*a),然后通过return语句返回计算后的变量b的结果。在主函数中,定义两个整型变量a和res,并都赋初值为2,然后调用func函数,传递的形参是变量a的地址,即使形参指针变量a指向实参变量a的值,通过b+=*a计算,可以得到b=2+2=4。由于变量b是一个全局变量,作用域是整个程序,而非函数func,因此,在主函数中变量res的最后结果为2+4=6,程序最后的输出结果为6。

分类:其他
相关推荐

1、若有程序 fun(int a,int b) { static int c=0

若有程序 fun(int a,int b) { static int c=0 c+=a+b; retum c; } main () { int x=5,y=3,z=7,r; r=fun((y,x+y),z); r=fun(x,y); printf("%d ",r); } 上面程序的输出结果______。A23B15C19D18

2、有以下程序 fun(int a,int b) { if(a>b) retur

有以下程序 fun(int a,int b) { if(a>b) return(a) ; else return(b) ; } main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); Printf("%d ",r); } 程序运行后的输出结果是A3B6C8D12

3、若有程序: fun(int a,int b) { static int c=

若有程序: fun(int a,int b) { static int c=0; c+=a+b: return c; } main() { int x=5,y=3,z=7,r; r=fun((y,x+y),z); r=fun(x,y); printf("%d ",r); } 上面程序的输出结果是______。A23B15C19D18

4、有如下程序段void fun(int *a, int *b){ int *k

有如下程序段void fun(int *a, int *b){ int *k; k=a; a=b; b=k;}main(){ int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf("%d %d", a, b);} 程序运行后输出的结果是A.6 3 B.3 6 C.编译出错 D.0 0A6 3 B3 6 C编译出错 D0 0

5、有以下程序void fun(int a,int b,int c){ a=45

有以下程序void fun(int a,int b,int c){ a=456,b=567,c=678;}main(){ int x=10,y=20,z=30; fun(x,y,z); printf("%d,%d,%d\n",x,y,z);}输出结果是A.10,20,30 ...

6、下列程序执行后输出的结果是_______。 int d=1; fun(int

下列程序执行后输出的结果是_______。 int d=1; fun(int p), { int d=5; d+=p++; printf("%d,",d) } main() { int a=3; fun(a) ; d+=a++; printf("%d "d) ; }A8,12B9,13C8,4D9,5