参考答案和解析
正确答案:A
A)选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,因此不能将其赋值给整型变量k。
更多“有以下程序 则以下函数调用语句错误的是( )。 A.k=*f(a,b);B.k=add(a,b);C.k=( ”相关问题
  • 第1题:

    有以下函数定义: void fun(int n double x){…} 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。

    A.fun(int y,double m);

    B.k=fun(10,12.5);

    C.fun(x,n);

    D.void fun(n,x);


    正确答案:C
    解析:选项A中应将y和m前面的函数类型说明符去掉,故选项A不正确。fun函数没有返回值,不能对k赋值,所以选项B不正确。选项D在调用函数时,不用声明其返回类型,故选项D不正确。当函数不返回函数值时,函数的调用可作为一条独立的语句,故选项C符合题意。

  • 第2题:

    有以下程序:则以下函数调用语句错误的是( )。

    A.

    B.

    C.

    D.


    正确答案:C
    在语句”k=*f(a,b)”中,由于””的优先级高于”*”,所以”*f(a,b);”表示其返回类型为指针的带有两个整型参数的函数。

  • 第3题:

    有以下程序:

    则以下函数调用语句错误的是( )。.

    A.k=f(a,B.;

    B.k=add(a,B.;

    C.k=(*f)(a,B.;

    D.k={f(a,B.;


    正确答案:D
    s与()的优先级,()的优先级高于*,因为(+f)()定义函数指针f。f指向函数的指针。f=add,将函数8dd()的首地址赋给指针f,所以调用函数add()可以写为f(),其返回值是整型,不是指针类型,不能用t取指针指向的内存单元的数据,故k=*f(a,b)的调用方式错误。答案为D选项。

  • 第4题:

    有以下程序

    int add (int a,int b){return (a+b); }

    main()

    { int k,(*f)(),a=5,b=10;

    f=add;

    }

    则以下函数调用语句错误的是

    A.k=(*f)(a,b);

    B.k=add(a,b);

    C.k=*f(a,b);

    D.k=f(a,b);


    正确答案:C
    解析:本题考查函数的调用。在语句"k=*f(a,b)"中,由于"()"的优先级高于"*",所以"*f(a,b);"表示其返回类型为指针的带有两个整型参数的函数。

  • 第5题:

    有以下程序:

    则以下函数调用语句错误的是( )。

    A.k:f(a,B.;

    B.k:add(a,B.;

    C.k=(*f)(a,B.;

    D.k=*(a,B.;


    正确答案:D
    D选项中+f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。