更多“有以下程序void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5]={0};a=0; b[0]=3;func(& ”相关问题
  • 第1题:

    下列程序执行后的输出结果是 void func(int *a,int b[]) { b[0]=*a+6;} main() { inta,b[5]; a=0;b[0]=3; fun c(&a,b);printf("%d\n",b[0]);}

    A.6

    B.7

    C.8

    D.9


    正确答案:A
    解析: 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针型。它的作用是将一个变量的地址传递到另一个函数中。当数组名作参数时,如果形参数组中的各元素的值发生变化,实参数组元素的值也将随之发生变化。

  • 第2题:

    下列程序执行后的输出结果是( )。 void func(int*a,int b[]) { b[0]=*a+b;}

    main { int a,b[5]; a=0.b[0]=3; func(&a,b);printf("%d\n",b[0]); }

    A.6

    B.7

    C.8

    D.9


    正确答案:A
    本题考查函数的调用,从主函数传递到调用函数中,*a的值为0,因此当执行完调用函数后,b[0]的值为6。

  • 第3题:

    下列程序的运行结果是______。include int Func(int *a,int n) {int s=1; for(int i=0

    下列程序的运行结果是______。

    include<iomanip.h>

    int Func(int *a,int n)

    {int s=1;

    for(int i=0;i<n;i++)

    s*=*a++;

    returns;}

    void main()

    {inta[]:{1,2,3,4,5,6,7,8};

    intb=Func(a,6)+Func(&a[5],2);

    cout<<“b=“<(b<<endl;}


    正确答案:b=762。
    b=762。 解析: 本题考查了。a++的用法。*a++作为表达式时,先计算*a作为表达式的值,然后使指针变量 a本身增1,在本惠中,s*=*a++等同于3=s**a,a++,S后面第一个*是乘号。

  • 第4题:

    有如下程序段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。然后程序用输出语句输出数组b的第一个元素值,输出的结果应该是6,本题正确答案选A。

  • 第5题:

    下面程序: void func (int *a,int b[]) { b[0] =*a+6;) main() { int a,b[5]; a=0; b[0]=3; func(&a,b); printf("%d\n",b[0]); } 则程序运行后的输出结果是( )。

    A.6

    B.7

    C.8

    D.9


    正确答案:A
    解析:在函数的形参中使用int*类型和使用int[]类型并无区别,两者都可用宋传递数组名或指针变量,所以func()函数的形参是两个指针a和b,又因为b[0]亦可写成*b,所以表达式b[0]=*a+6也可以写成*b=*a+6,其意思是:将a所指内容加上6赋给 b所指内容。所以主函数中对func()的调用func(&a,b)可看成b[0]=a+6,所以最后b[0]的结果为6。正确答案为选项A。