niusouti.com

已知函数调用f(3,4,5)是正确的函数调用,则下列选项中函数f可能的声明形式包括()。A.void f(int a, int b, int c);B.void f(int a, int b, int c=10);C.void f(int a=20, int b, int c=10);D.void f(int a, int b, int c=10, int d=20);

题目

已知函数调用f(3,4,5)是正确的函数调用,则下列选项中函数f可能的声明形式包括()。

A.void f(int a, int b, int c);

B.void f(int a, int b, int c=10);

C.void f(int a=20, int b, int c=10);

D.void f(int a, int b, int c=10, int d=20);


相似考题
更多“已知函数调用f(3,4,5)是正确的函数调用,则下列选项中函数f可能的声明形式包括()。”相关问题
  • 第1题:

    若有以下程序#include <stdio.h>void f(int n);main(){ void f(int n); f(5);}void f(int n){ printf("%d\n",n);}则以下叙述中不正确的是A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:对f函数重复说明D.函数f无返回值,所以,可用void将其类型定义为无返回值型


    正确答案:C
    C语言规定,一个函数中调用另一个函数(即被调用函数)需要具备的条件有:
    ① 被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。
    ② 如果使用库函数,一般还应该在本文件开头用#include命令将函数调用有关库函数时所需要的信息“包含”到本文件中。
    ③ 如果使用自定义函数,而且该函数与调用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明,即向编译系统声明将要调用此函数,并将有关信息通知编译系统。
    在本题中,选项C是不正确的,从程序中我们可以看出,首先在主函数前面声明了函数f,按照函数调用的规则,主函数可以调用该函数了,但在主函数中又重复声明了该函数,其声明的形式完全一样,虽然重复了操作,但编译时系统不会报错,仍属于合理操作。

  • 第2题:

    ● 函数f()、g()的定义如下所示,已知调用f时传递给其形参x的值是3,若以传方式调用g,则函数f的返回值为 (34) ;若以传引用方式调用g,则函数f的返回为 (35) 。

    (34)

    A. 18

    B. 17

    C. 12

    D. 8

    (35)

    A. 18

    B. 17

    C. 12

    D. 8


    正确答案:C,A

  • 第3题:

    函数f()、g()的定义如下所示,已知调用 f 时传递给其形参 x 的值是 10。若在f中以 传值方式调用 g,则函数f 的返回值为( );若以引用方式调用 g,则函数f 的返回值为( )。

    A. 10 B. 15 C. 25 D.30A. 10 B. 15 C. 25 D.30


    正确答案:C,D

  • 第4题:

    已知函数fl()、f2()的定义如下图所示设调用函数f1时传递给形参x的值是1,若函数调用f2(a)采用引用调用(call by refere nce)的方式传递信息,则函数n的返回值为 (32) ;若函数调用f2(a)以值调用(call liy value)的方式传递信息,则函数F1返回值为(33)。

    A.-5

    B.6

    C.15

    D.35


    正确答案:C
    本题考查程序语言基础知识。函数fl被调用而运行时,其局部变量值的变化情况如下:在调用f2(a)之前,x的值为1,a的值为5。在以引用调用方式调用f2(a)时,形参x是实参a的引用,在函数F2中的x就是函数F1中a的别名(或者说此时)与a所对应的存储单元是同一个,只是角度不同而己),因此执行函数亿时,条件表达式x>l即等同于a>l,a的值是5所以该条件表达式成立,从而执行了“x=X'*X”,就将x所对应存储单元的内容改为了25,然后结束f2的执行并将所返回的-10赋值给fl中的x,因此在f1结束时返回的值为a+x=25-10=15。在值调用方式下调用f2(a)时,是将实参£的值5传递给F2形参x,a和x所对应的存储单元是不同的,此后执行F2,由于的值是5,所以条件表达式x>l即等同于5>1,是成立的,从而执行了“x=X'*X”,此时将f2的x修改为25,与f中的a和x都无关,在结束f2执行并将返回值-10赋直给FI中的x后,fl结束时进行的计算为a+x=5-10=5。

  • 第5题:

    已知函数f132、f232的定义如下图所示。设调用函数f1时传递给形参x的值是1,若函数调用f2(a)采用引用调用(call by reference)的方式传递信息,则函数f1的返回值为(请作答此空);若函数调用f2(a)以值调用(call by value)的方式传递信息,则函数f1的返回值为( )。

    A.-5
    B.6
    C.15
    D.35

    答案:C
    解析:
    本题考查程序语言基础知识。
    函数f1被调用而运行时,其局部变量值的变化情况如下:在调用f2(a)之前,x的值为1,a的值为5。在以引用调用方式调用f2(a)时,形参x是实参a的引用,在函数f2中的x就是函数f1中a的别名(或者说此时x与a所对应的存储单元是同一个,只是角度不同而已),因此执行函数f2时,条件表达式x>1即等同于a>1,a的值是5所以该条件表达式成立,从而执行了"x=x*x",就将x所对应存储单元的内容改为了25,然后结束f2的执行并将所返回的-10赋值给f1中的x,因此在f1结束时返回的值为a+x=25-10=15。
    在值调用方式下调用f2(a)时,是将实参a的值5传递给f2的形参x,a和x所对应的存储单元是不同的,此后执行f2时,由于x的值是5,所以条件表达式x>1即等同于5>1,是成立的,从而执行了"x=x*x",此时是将f2中的x修改为25,与f1中的a和x都无关,在结束f2的执行并将返回值-10赋值给f1中的x后,f1结束时进行的计算为a+x=5-10=-5。

  • 第6题:

    函数f30、g30的定义如下所示,已知调用f时传递给其形参x的值是10。若在f中以传值方式调用g,则函数f的返回值为(请作答此空);若以引用方式调用g,则函数f的返回值为( )。

    A.10
    B.15
    C.25
    D.30

    答案:C
    解析:
    本题考查程序语言基础知识。
    若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。
    根据题目说明,当调用函数f时,形参x首先得到10,接下来以传值方式调用函数g,也就是将f中x的值传给g的参数x。在这种情况下,系统为f中的x与g中的x分别分配存储单元。执行g中的"x=x+5"运算后,g中x的值变为15,返回值15存入f的变量y(即y的值变为10),而f中x的值没有变,因此函数f的返回值为25(x=10,y=15)。
    在引用方式调用g时,g中对其形参x的修改可视为是对调用g时实参的修改,因此调用g之后,f中的y得到返回值15,f中的x也被修改为15,所以f的返回值为30。

  • 第7题:

    调用函数时若是引用调用方式,则是将( )。下面所定义的函数f1为值调用方式,函数f2为引用调用方式。若有表达式x=f1(5),则函数调用执行完成后,该表达式中x获得的值为(请作答此空)。

    A.5
    B.20
    C.36
    D.45

    答案:D
    解析:
    第32题。值调用:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参数的值。引用调用:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。第33题。结果为b*x=(2*4+1)*5=45

  • 第8题:

    已知函数F( )、G( )的定义如下所示,执行表达式”x=F(3)”的运算时,若函数调用G(a)是引用调用方式,则执行”x=F(3)”后x的值为( );若函数调用G(a)是值调用方式,则执行”x=F(3)”后x的值为(请作答此空)。

    A.6
    B.7
    C.8
    D.9

    答案:A
    解析:
    传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。本题的第一问:采用的是引用调用方式执行,x=3,a=2,G(a)中y=y*y-1=3,即a这时的值被修改为3,最后a*x=3*3=9 ;本题的第二问:采用的是传值调用方式执行,x=3,a=2;G(a)中y=y*y-1=3,即a这时的值仍然为2,最后a*x=2*3=6;

  • 第9题:

    函数f( )、g( )的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为(请作答此空);若以传引用方式调用g,则函数f的返回值为( )。

    A.3
    B.4
    C.6
    D.7

    答案:A
    解析:
    本题考查程序设计基础知识。
    在传值调用方式下,将实参的值传递给形参,分配给实参变量和形参变量的存储单元之间无相关性,各自使用,互不干扰。在引用调用方式下,实参变量和形参变量的对应的存储单元是同一个,在被调用函数中修改形参实质上就修改了实参变量的值。
    对于本题,在传值方式下,函数f的参数x、局部变量a和函数g的参数Y分别对应不同的存储单元,如下图所示:



    因此,以传值方式调用g,函数f执行结束时,返回值为3。

  • 第10题:

    关于函数声明,以下不正确的说法是()。

    • A、如果函数定义出现在函数调用之前,可以不必加函数原型声明
    • B、如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明
    • C、函数再调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查
    • D、标准库不需要函数原型声明

    正确答案:C

  • 第11题:

    若有以下程序 #include void f(int n) main() { void f(int n); f(5); } void f(int n); { printf("%d/n",n); } 则以下叙述不正确的是()

    • A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
    • B、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数f
    • C、对于以上程序,编译时系统会出提示出错信息:提示对f函数重复说明
    • D、函数f无返回值,所以可用void将其类型定义为无值型

    正确答案:C

  • 第12题:

    单选题
    函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为__(1)__;若以传引用方式调用g,则函数f的返回值为__(2)__。空白(2)处应选择()
    A

    3

    B

    4

    C

    6

    D

    7


    正确答案: B
    解析: 在传引用方式下,函数f的参数x、局部变量a分别对应不同的存储单元,函数g的参数y与实参x引用同一个存储单元。因此,以传值方式调用g,函数f执行结束时,返回值为4。

  • 第13题:

    ● 函数 f和g 的定义如下图所示。执行函数 f时需要调用函数 g(a),若采用值调用方式 (call by value) 调用 g(a), 则函数 f的返回值为 (32) ; 若采用引用 (call by reference)方式调用 g(a),则函数 f的返回值为 (33) 。

    (32)

    A. 6

    B. 13

    C. 25

    D. 28

    (33)

    A. 35

    B. 28

    C. 25

    D. 13


    正确答案:D,A

  • 第14题:

    若有以下程序#include <stdio.h>void f(int n);main(){ void f(int n); f(5);}void f(int n){ printf("%d\n",n); }则以下叙述中不正确的是A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB.若在主函数前对函数f进行说明,则在主函数和其他函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:对f函数重复说明D.函数f无返回值,所以,可用void将其类型定义为无返回值型


    正确答案:C
    本题主要考查函数说明的位置及调用。
    函数的说明有时可以缺省,在缺省时,必须先被定义后被调用。函数说明的位置可以是所有函数定义的外部,也可以是某一函数内部,对于后者,函数说明的作用域将被限制在该函数定义内部。函数说明是一条独立的语句,其中<形式参数>部分可以省略。当函数在调用时,如果实参的数据类型与函数说明中对应的形参数据类型不兼容,C语言将不能编译通过。不管函数被说明在哪里,我们需要注意的是:函数在被调用前必须先被说明或定义。
    在本题中,程序首先说明了一个无返回值的函数f,然后在主函数中又说明了这个函数f,接着调用这个函数,虽然函数被重复说明,但其符合先说明后调用的规定。程序执行时,编译系统不报错。
    根据上面的分析我们可以知道,本题四个选项中,描述不正确的是C,虽然函数被重复说明,但编译系统不报错。其他说法都正确。因此本题答案选C。

  • 第15题:

    已知函数f()、g()的定义如下所示,执行表达式”x=f(5)”的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行”x=f(5)”后x的值为 ( ) ;若函数调用g(a)是值调用(call by value)方式,则执行”x=f(5)”后x的值为 ( ) 。

    A.20 B.25 C.60 D.75A.20 B.25 C.60 D.75


    正确答案:D,A

  • 第16题:

    已知函数f(). g()的定义如下所示,执行表达式“x= f(5)”的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行“x=f(5)”后x的值为(33):若函数调用g(a)是值调用(call by value)方式,则执行“x= f(5)”后x的值为(34)。

    A.20

    B.25

    C.60

    D.75


    正确答案:D
    本题考查程序语言基础知识。若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。根据题目说明,调用函数f时,实参的值为5,也就是在函数f中,x的初始值为5,接下来先通过“a=x-l”将a的值设置为4,再调用函数g(a)。函数g()执行时,形参y的初始值为4,经过“y=y*y-l”运算后,y的值就修改为15。在引用调用方式下,g函数中y是f函数中a的引用(可视为形参y与实参a是同一对象),也就是说函数f中a的值被改为15,因此,返回函数f中再执行“a+x”运算后得到75(x-5,a-15),因此空(33)应填入的值为75。在值调用方式下,g函数中y只获得f函数中a的值(形参y与实参a是两个不同的对象),也就是说在函数g中修改y的值与函数f中a的值已经没有关系了,因此,返回函数f再执行“a*x”运算后得到20(X=5,a=4),因此空(34)应填入的值为20。

  • 第17题:

    已知函数f()、g()的定义如下所示,执行表达式”x=f(5)”的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行”x=f(5)”后x的值为 () ;若函数调用g(a)是值调用(call by value)方式,则执行”x=f(5)”后x的值为 (请作答此空) 。

    A. 20
    B. 25
    C. 60
    D. 75

    答案:A
    解析:
    本题考查程序语言基础知识。若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。根据题目说明,调用函数f时,实参的值为5,也就是在函数f中,x的初始值为5,接下来先通过“a=x-1”将a的值设置为4,再调用函数g(a)。函数g()执行时,形参y的初始值为4,经过“y=y*y-1”运算后,y的值就修改为15。在引用调用方式下,g函数中y是f函数中a的引用(可视为形参y与实参a是同一对象),也就是说函数f中a的值被改为15,因此,返回函数f中再执行“a*x”运算后得到75(x=5,a=15),因此第一空应填入的值为75。在值调用方式下,g函数中y只获得f函数中a的值(形参y与实参a是两个不同的对象),也就是说在函数g中修改y的值与函数f中a的值已经没有关系了,因此,返回函数f再执行“a*x”运算后得到20(x=5,a=4),因此第二空应填入的值为20。

  • 第18题:

    已知函数f1()、f2()的定义如下,调用f1时为传值调用,调用f2时为引用调用。设有函数调用t=f1(5),那么调用执行后t的值为( )。

    A.1
    B.5
    C.6
    D.7

    答案:A
    解析:
    首先a=f2(x)=f2(1),代入到f2中进行运算,x的值为0,返回值为1。这里x是引用调用,所以x的终值为0,然后返回值赋给了a。所以a=1。最终t的值为a+x=1。

  • 第19题:

    调用函数时若是引用调用方式,则是将( )。下面所定义的函数f1为值调用方式,函数f2为引用调用方式。若有表达式x=f1(5),则函数调用执行完成后,函数f1最终获得的值为(请作答此空)。

    A.5
    B.20
    C.36
    D.45

    答案:D
    解析:
    传址调用(引用调用) : 将实参地址给形参
    由于f1采用传值调用, X值不发生变化X=5 ; f2采用传址调用,会对B的值产生影响,当执行b=x-1后b=4 ;当执行f2中2*x+1后, b=9 ;所以最后b*x= 5*9=45

  • 第20题:

    函数f( )、g( )的定义如下所示,已知调用f时传递给其形参x的值是10,若以传值方式调用g,则函数f的返回值为______。

    A.10
    B.15
    C.25
    D.30

    答案:C
    解析:
    本题考查程序语言基础知识。 若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。 根据题目说明,当调用函数f时,形参x首先得到10,接下来以传值方式调用函数g,也就是将f中x的值传给g的参数x,执行g中的“x=x+5”运算后,g中x的值变为15,返回值15存入f的变量y(即y的值变为15),而f中x的值没有变,因此函数f的返回值为25(x=10,y=15)。

  • 第21题:

    若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是()。


    正确答案:3

  • 第22题:

    以下关于程序中函数的定义、调用和声明的叙述中,正确的是()。

    • A、函数的定义必须放在该函数的调用之前
    • B、函数的声明必须放在该函数的调用之前
    • C、函数的定义必须放在该函数的声明之前
    • D、函数的声明必须放在该函数的定义之前

    正确答案:B

  • 第23题:

    单选题
    函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为__(1)__;若以传引用方式调用g,则函数f的返回值为__(2)__。 空白(1)处应选择()
    A

    3

    B

    4

    C

    6

    D

    7


    正确答案: A
    解析: 在传值调用方式下,将实参的值传递给形参,分配给实参变量和形参变量的存储单元之间无相关性,各自使用,互不干扰,在引用调用方式下,实参变量和形参变量的对应的存储单元是同一个,在被调用函数中修改形参实质上就修改了实参变量的值。对于本题,在传值方式下,函数f的参数x、局部变量a和函数g的参数y分别对应不同的存储单元。因此,已传值方式调用g,函数f执行结束时,返回值为3。

  • 第24题:

    单选题
    以下关于程序中函数的定义、调用和声明的叙述中,正确的是()。
    A

    函数的定义必须放在该函数的调用之前

    B

    函数的声明必须放在该函数的调用之前

    C

    函数的定义必须放在该函数的声明之前

    D

    函数的声明必须放在该函数的定义之前


    正确答案: B
    解析: 在程序中,函数定义是指对函数的完整定义,包括函数首部和函数体,函数调用是指对所定义函数的使用,一个函数只有被调用才能得到执行。函数声明是指函数的定义在后面,而前面需要对它进行调用,这样就需要预先进行声明,以便编译程序检查调用的合法性。一般来说,函数的声明只是函数首部加上分号即可。函数声明不是必需的.若函数调用在函数定义之后,则无须声明。