若主函数中有以下定义和语句: main() { double a[3][4]; …… fun(a) ; } 则正确的fun函数的首部是( )A.void fun(double *s)B.fun(double *s[4])C.fun(double(*s)[3])D.void fun(double(*s)[4])

题目

若主函数中有以下定义和语句: main() { double a[3][4]; …… fun(a) ; } 则正确的fun函数的首部是( )

A.void fun(double *s)

B.fun(double *s[4])

C.fun(double(*s)[3])

D.void fun(double(*s)[4])


相似考题
更多“若主函数中有以下定义和语句:main(){doublea[3][4]; …… fun(a) ;}则正确的fun函数的首部是()A.vo ”相关问题
  • 第1题:

    若各选项中所用变量已正确定义,fun()函数中通过return语句返回一个函数值,下列选项中错误的程序是( )。

    A.main() {……x=fun(2,10);……} float fun(int a,int b){……}

    B.float fun(int a,int b){……} main() {……x=fun(i,j);……}

    C.float fun(int,int); main() {……x=fun(2,10);……} float fun(int a,int b){……}

    D.main() {float fun(int I,intj); ……x=fun(i,j);……} float fun(int a,int b){……}


    正确答案:A
    解析:C语言规定,函数必须先定义,后调用(函数的返回值类型为int或char时除外)。在选项A)中,调用的子函数在调用后面定义,所以不正确。在选项B)、C)中,被调用函数在主调函数之前定义,再在主函数中调用,所以是正确的;在选项D)中,在主调函数中先对子函数float fun(int i,int j)进行了定义,然后进行调用。

  • 第2题:

    有以下函数定义: 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)错误;题目中的函数没有返回值,所以选项B)错误;函数调用前不需要加类型说明,选项D)错误。

  • 第3题:

    若有以下变量定义和函数调用语句: int a=5; fun(&a); 则执行下面函数后正确的输出结果是( )。 void fun(int*x) { cout<<++*x<<end1; }

    A.3

    B.4

    C.5

    D.6


    正确答案:D
    解析:fun函数中的x参数为整型指针变量。调用fun函数, &a是取a的地址,即将实际参数a的地址传递。函数fun中的*x是变量x所指的存储单元即值5。*运算符的等级高于++,所以先取值5,然后加1输出,即为6。

  • 第4题:

    若有以下函数首部: int fun(double x[10],int *n) 则下面针对此函数的函数声明语句中正确的是( )。

    A.int fun(double x, int *n);

    B.int fun(double, int);

    C.int fun(double *x, int n);

    D.int fun(double*, int*);


    正确答案:D
    解析:本题中的fun函数有两个参数,一个类型是double型一维数组,另—个是int型指针。而在C语言中,一维数组用作函数参数和该数组元素的指针类型是等价的。所以本题的正确答案是选项D。

  • 第5题:

    若语句“t=fun(fun(x,y,A),(a+b,a+C),x+y+z);”对fun函数的调用正确,则fun函数的形参个数为( )。

    A.3

    B.4

    C.5

    D.6


    正确答案:A

  • 第6题:

    设在主函数中有以下定义和函数调用语句,且fun函数为void类型。请写出函数fun的头部,要求函数的形参为变量b。main(){ double s[10][22]; int n; …… fun(s); ……}


    正确答案:void fun(double * b)
    数组名是地址值,它通常可以作为指针使用,题中有被调用函数fun(s),而s为double型数组名,所以函数fun的形参类型为double *。

  • 第7题:

    若有以下函数首部:

    int fun(double x[10],int*n)

    则下面针对此函数的函数声明语句中正确的是( )。

    A.int fun(double,int);

    B.int fun(double木,int*);

    C.int mn(double*x,int n);

    D.int fun(double x,intint*n)


    正确答案:B
    函数声明的一般形式为:“类型说明符被调函数名(类型形参,类型形参,……);”或“类型说明符被调函数名(类型,类型,……);”由于函数首部为intfun(doublex[10],int*n),因此B选项正确。

  • 第8题:

    以下程序的主函数中调用了在其面前定义的fun函数 #include<stdio.h> . . . main( ) {double a[15],k; k=fun(a); . . .

    } 则以下选项中错误的fun函数首部是( )。 、

    A.double fun(double a[l5])

    B.double fun(double *a) 。

    C.double fun(double a[])

    D.double fun(double a)


    正确答案:A
    由题可知fun的参数为变量,而a[15]为常量,所以答案为A。

  • 第9题:

    以下程序的主函数中调用了在其前面定义的fun函数

    #include<stdio.h>

    main()

    { double a[15],k;

    k=fun(a);

    .

    .

    .

    }

    则以下选项中错误的fun函数首部是

    A.double fun(double a[15])

    B.double fun(double *a)

    C.double fun(double a[])

    D.double fun(double a)


    正确答案:D
    解析:从主函数中调用fun函数的实参可以看出,形参应该是一个地址,不能省略前面的*号,D)选项的形参为一个double的值,所以不正确。

  • 第10题:

    若下列各选项中所有变量已正确定义,函数fun通过return语句返回一个函数值,以下选项中错误的程序是( )。

    A.main( ) {...... x = fun(2,10);......} float fun(int a, int b){......}

    B.float fun( int a,int b){......} main( ) {......x = fun(i,j);......}

    C.float fun(int, int); main( ) {......x=fun(2,10);......} float fun(iht a, int b){......}

    D.main( ) { float fun(int i, int j); ...... x = fun(i,j);......} float fun(int a,int b) {......}


    正确答案:A
    解析:C语言程序从main函数开始执行,当程序中定义了多个函数时,通常情况下是先定义后调用。若被调用函数定义在主调函数之后,则必须先声明后调用。在选项A)中,先执行main函数,并调用了fun函数,而fun函数在此调用之前无定义也无声明,故无法正常识别调用,所以错误。

  • 第11题:

    有以下函数定义voidfun(intn){…};若以下选项中的变量都已经正确定义且赋值则对函数fun的正确调用语句是()

    • A、fun(inty);
    • B、k=fun(10);
    • C、fun(x);
    • D、voidfun(n);

    正确答案:C

  • 第12题:

    单选题
    以下程序的主函数中调用了在其前面定义的函数fun: #include  … main() {  double a[15],k;  k=fun(a);  … } 则以下选项中错误的fun函数首部是(  )。
    A

    double fun(double a[15])

    B

    double fun(double*a)

    C

    double fun(double a[])

    D

    double fun(double a)


    正确答案: D
    解析:
    由题目可知,fun函数中定义的应该是一个double型的指针变量。D项定义的是双精度型浮点数变量。答案选择D选项。

  • 第13题:

    设有如下函数定义: int fun(int k) {if(k<1)return 0; else if(k= =l)return l; else return fun(k-1)+1: } 若执行调用语句:“n=fun(3);”,则函数fun总共被诃用的次数是( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    此题考查简单的循环,当执行n=fun(3),则函数fun执行3次。

  • 第14题:

    设在主函数中有以下定义和函数调用语句,且fun()函数为void类型,请写出fun()函数的首部______。

    int main()

    {

    double s[10][22];

    int n:

    ...

    fun (s):

    ...

    return 0;

    }


    正确答案:void fun(b[][22])
    void fun(b[][22]) 解析:此题考核的知识点是函数的定义形式与数组名作为函数的参数。函数头的定义形式是“存储类型说明符数据类型说明符函数名(形参列表)”,此题没有涉及到函数的存储类别。如果函数的参数是数组,其第1维的长度可以省略,因此本题的函数首部可以写成:void fun(b[] [22])。

  • 第15题:

    若有以下说明和定义:fun(int*c){ }main(){ int(*a)()=fun,*b(),w[10],c; ……}在做必要的赋值之后,对fun函数的正确调用语句是______。

    A.a=a(w);

    B.(*a)(&c);

    C.b=*b(w);

    D.fun(b);


    正确答案:B

  • 第16题:

    设有如下函数定义

    若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( )。

    A.3

    B.2

    C.4

    D.5


    正确答案:A
    首先n=fun(3),3被当作参数传递进去,进行了第一次调用,3被当作参数传进去后,程序会执行语句elseretllnlfun(k—1)+1;进行第二次调用,而参数是3"1也就是2。2被当作参数传进去后,程序会执行语句elsereturnfun(1[一l)+1;进行第三次调用,而参数是2一l也就是1。l被当作参数传进去后。程序会执行语句elseif(k==1)returnl;不再递归调用,因此最终结果为3次,选项A)正确。

  • 第17题:

    有以下函数定义: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中,fun(int y,double m);中变量y和m前不需要类型说明;因为函数fun(10,12.5)没有返回值,所以选项B错误;调用函数fun时,不需要在函数前面加上void,所以选项D错误。故本题的正确答案是选项C。

  • 第18题:

    设有如下函数定义

    int fun(int k)

    {if(k<1) return 0:

    else if(k==1) return 1:

    else return fun(k一1)+1:

    }

    若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:函数fun总共被调用了3次,即fun(3)、fun(2)和fun(13)

  • 第19题:

    若各选项中所有变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是______。

    A.mam() {…… x=fun(2,10); ……} fioat fun(int a,int b) { ……}

    B.float fun (int a,int b) {……} main() {…… x=fun(i,j); ……}

    C.float fun (int int); main() {…… x=fun(2,10); ……} float fun (int a,int b){ ……}

    D.main() { float fun (int i, int j); …… x=fun(i,j); ……} float fun (int a,int b){ ……}


    正确答案:A
    解析:C语言程序是由—个主函数和若干个其他函数组成的,主函数的函数名为:main(),main()函数在程序中的位置是任意的。C语言程序是从main()函数开始执行,当程序中定义了多个函数时,通常情况下是先定义后调用,若被调函数定义在主调函数之后,则必须先声明后调用。在选项A中,先执行main()函数,此时对fun()函数进行调用,由于fun函数在此调用之前无定义也无声明,故无法正常识别调用,所以选项A的程序错误。

  • 第20题:

    有以下函数定义; 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
    解析:函数调用的一般形式为;函数名(实参表列);,实参与形参的个数应相等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为void的函数,不能作为赋值表达式的组成部分,所以选C。

  • 第21题:

    若主函数中有定义语句:int a[10],b[10],c;,在主函数前定义的fun函数首部为:void fun(int x[ ]),则以下选项中错误的调用语句是( )。

    A.fun(b);

    B.fun(&c);

    C.fun(&a[3]);

    D.fun(b[11]);


    答案:D 
    解析:fun函数的形式参数为一个数组,需要实参为一个地址,而b[11]是一个整型元素,参数类型不一致,且b[11]已经溢出,所以D项错误。 

  • 第22题:

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

    • A、k=FUN(x,n);
    • B、void FUN(n,x);
    • C、FUN(int y,double m);
    • D、FUN(10,12.5);

    正确答案:D

  • 第23题:

    单选题
    若主函数中有定义语句:int a[10],b[10],c;在主函数前定义的fun函数首部为void fun(int x[])则以下选项中错误的调用语句是(  )。
    A

    fun(b);

    B

    fun(&c);

    C

    fun(&a[3]);

    D

    fun(b[11]);


    正确答案: C
    解析:
    fun函数的形式参数为一个数组,需要实参为一个地址,而b[11]是一个整型元素,参数类型不一致,且b[11]已经溢出,所以D项错误。答案选择D选项。