有如下程序段void func(int *a,int b[ ]){ b[0]=*a+6; }main(){ int a,b[5]={0}; a=0;b[0]=3;

9 查阅

有如下程序段void func(int *a,int b[ ]){ b[0]=*a+6; }main(){ int a,b[5]={0}; a=0;b[0]=3; func(&a,b); printf("%d\n",b[0]); }程序运行后输出的结果是A.6 B.7 C.8 D.9

参考答案:

A在本题中,程序首定义了一个无返回值的函数func,该函数带有两个形参,第一个形参是一个指针变量,第二个形参是一个数组。在主函数中,定义一个整型变量a和一个整型数值b,并将b初始化为0,然后通过赋值操作改变变量a的值为0,b[0]的值为3。接着调用函数func,传递的实参分别为变量a的地址和数组b,这时执行func函数的函数体b[0]=*a+6;语句将数组b的第一个元素值变为0+6=6,由于采用的传值方式是传址传值,可以实现数据的双向传递,因此,实参数组b的第一个元素值被改为6。然后程序用输出语句输出数组

计算机二级