单选题若有函数: void fun(double a[],int *n) {......} 以下叙述中正确的是(  )。A 调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送B 形参a和n都是指针变量C 形参a是一个数组名,n是指针变量D 调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组

题目
单选题
若有函数: void fun(double a[],int *n) {......} 以下叙述中正确的是(  )。
A

调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

B

形参a和n都是指针变量

C

形参a是一个数组名,n是指针变量

D

调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组


相似考题
更多“若有函数: void fun(double a[],int *n) {......} 以下叙述中正确的是(  )。”相关问题
  • 第1题:

    以下正确的函数原型语句是(48)。

    A.double fun(int x,int y);

    B.double fun(int x;int y);

    C.double fun(int,int);

    D.double fun(int x,y);


    正确答案:C
    解析:函数原型不必包含参数的名字,而只要包含参数的类型。函数原型和函数定义在返回类型、函数名和参数表上必须完全一致。

  • 第2题:

    若有以下调用语句,则不正确的fun函数的首部是______。 main() { …… int a[50],n; fun(n,&a[9]); …… }

    A.void fun(int m, int x[])

    B.void fun(kit s, kit h[41])

    C.void fun(kit p, kit *s)

    D.void fun(int n, int a)


    正确答案:D

  • 第3题:

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

    A.fun(int y,double m);

    B.k=fun(10,12.5);

    C.fun(x,n);

    D.void fum(n,x);


    正确答案:C
    解析:选项A中应将y和m前面的函数的类型说明符去掉,故选项A不正确;选项B中函数传了2个参数,其中一个为整型—个为浮点型,而fun()函数在定义时声明的2个参数,一个为整型一个为双精度型,其参数类型不一致,故选项B不正确;选项D在调用函数时,不应该再声明其返回类型,故选项D不正确。所以,4个选项中选项C符合题意.

  • 第4题:

    设有以下函数: void fun(int n,char*s){…} 则下面对函数指针的定义和赋值均正确的是( )。

    A.void(*pf)( );pf=fun;

    B.void*pf( );pf=fun

    C.void*pf( );*pf=fun;

    D.void(*pf)(int,char);pf=&fun;


    正确答案:A
    函数指针的定义格式为函数类型(*指针变量名)(形参列表);函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。所以选项A正确。

  • 第5题:

    若有函数

    Void fun( double a[ ],int *n)

    { …… }

    以下叙述中正确的是

    A)调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

    B)形参a和n都是指针变量

    C)形参a是一个数组名,n是指针变量

    D)调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组


    正确答案:C
    【答案】C
    【知识点】函数参数传递
    【解析】a是形参数组的名字,接收从调用函数中传过来的实参数组的首地址,n是指针变量。

  • 第6题:

    若有以下调用语句,则不正确的fun函数的首部是( )。 main() { … int a[50],n; … fun(n,&a[9]); … }

    A.void fun(int m,int x[])

    B.void fun(int s,int h[41])

    C.voidfun(int p,int*s)

    D.void fun(int n,iht a)


    正确答案:C
    解析:根据主函树中的函数调用可知,第一个实参为整型数据,第二个实参为整型数组中一个元素的地址值。因此函数fun()的第二个形参应该为一个指针,故应该选择C。实参不是将整个数组传递给形参,故选项A和B不正确;选项D的第二个形参的数据类型与实参的数据类型不符。

  • 第7题:

    有以下函数定义: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。

  • 第8题:

    有以下函数定义; 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。

  • 第9题:

    若有以下调用语句,则不正确的 fun 函数的首部是( )。 void main() { int a[50],n; fun(n,&a[9]); }

    A.void fun(int m,int x[])

    B.void fun(int s,int h[])

    C.void fun(intp,int * s)

    D.void fun(int n,int a)


    正确答案:D
    解析:&a[9]表示对变量a[9]的引用,与它对应的形参必须是表示地址的变量,而D的第2个形参是一个普通变量。

  • 第10题:

    对于函数定义:  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

  • 第11题:

    以下正确的函数定义形式是()。

    • A、double FUN(int x;int y)
    • B、double FUN(int x,int y)
    • C、double FUN(int x,int y);
    • D、double FUN(int x,y)

    正确答案:B

  • 第12题:

    单选题
    若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是(  )。
    A

    void fun(int a=90,double b=0.0);

    B

    int fun(int a,double B);

    C

    void fun(double a,int B);

    D

    bool fun(int a,double b=0.0);


    正确答案: B
    解析:
    函数重载的原则是至少要在参数个数或参数类型上有所不同。如果只是函数的返回值类型不同,而其他完全相同,则不能作为重载函数来使用。

  • 第13题:

    有以下函数定义: 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)错误。

  • 第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题:

    若有以下函数首部: 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。

  • 第16题:

    若有函数 void fun(double a[]。int*n) {…} 以下叙述中正确的是( )。

    A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

    B.形参a和n都是指针变量

    C.形参a是一个数组名,n是指针变量

    D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组


    正确答案:B
    本题考查函数中数组和指针的传值,数组a[]在参数传递时,是传递的数组a的首地址,所以形参a和n都是指针变量。。

  • 第17题:

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

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

    B.int fun(double, int);

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

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


    正确答案:D
    解析:函数声明可以照写已定义的函数的首部,再加一个号就成为了对函数的声明,在函数声明中也可以不写形参名,而只写形参的类型,但要保证与函数首部写法上的—致,即函数类型、函数名、参数个数、参数类型和参数顺序相同。字符数组可用指针来表示,所以选顶D正确。

  • 第18题:

    设有以下函数:

    void fun(int n,char*$s){……}

    则下面对函数指针的定义和赋值均正确的是

    A.void(*pf)( );pf=fun;

    B.void*Pf( );pf=fun;

    C.void*pf( ); *pf=fun;

    D.void(*pf)(int,char);nf=&fun;


    正确答案:A
    解析:函数指针的定义形式是:数据类型标识符(*指针变量名)( )。void(*pf)( )定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

  • 第19题:

    若有以下函数首部:

    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选项正确。

  • 第20题:

    若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是

    A.void fun(int a=90,double b=0.0);

    B.int fun(int a,double B) ;

    C.void fun(double a,intB) ;

    D.bool fun(int a,double b=0.0);


    正确答案:C

  • 第21题:

    若有以下调用语句,则不正确的fun函数的首部是( )。 main() { int a[50],n; fun(n,&a[9]); ┆ }

    A.void fun(int m,int x[])

    B.void fun(int s,int h[41])

    C.void fun(int p,int *s)

    D.void fun(int n,int a)


    正确答案:D
    解析:根据main函数中的fun函数调用语句可知,fun函数的第二个参数是一个地址值,对应的形参可以是指针变量或一维数组,所以D)不正确。

  • 第22题:

    若有函数定义:double fun(int a[10]){...},则在对该函数进行原型声明时,错误的声明语句是()

    • A、double fun(int[])
    • B、double fun(intb[10])
    • C、double fun(inta)
    • D、double fun(int*a)

    正确答案:C

  • 第23题:

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

    int fun(double*,int*);

    B

    int fun(double,int);

    C

    int fun(double *x,int n);

    D

    int fun(double x,int*n);


    正确答案: C
    解析:
    函数声明应该和函数调用的参数保持一致,声明时的参数(形参)名字可以省略,数组在参数传递过程中变成指针。答案选择A选项。

  • 第24题:

    单选题
    对于函数定义:  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
    解析: 暂无解析