单选题有以下程序: #include void fun(int x,int y,int *z) {  *z=y-x; } main() {  int a,b,c;  fun(10,5,&a);  fun(7,a,&b);  fun(a,b,&c);  printf("%d,%d,%d",a,b,c); } 程序运行后的输出结果是(  )。A 5,2,3B -5,-12,-7C -5,-12,-17D 5,-2,-7

题目
单选题
有以下程序: #include  void fun(int x,int y,int *z) {  *z=y-x; } main() {  int a,b,c;  fun(10,5,&a);  fun(7,a,&b);  fun(a,b,&c);  printf("%d,%d,%d",a,b,c); } 程序运行后的输出结果是(  )。
A

5,2,3

B

-5,-12,-7

C

-5,-12,-17

D

5,-2,-7


相似考题
更多“有以下程序: #include  void fun(int x,int y,int *z) {  *z=y-x; } m”相关问题
  • 第1题:

    下面程序的结果【】。 include int f(int); void main() { int x=1,i; for (i=0; i<3;

    下面程序的结果【 】。

    include<iostream.h>

    int f(int);

    void main() {

    int x=1, i;

    for (i=0; i<3; i++)

    cout<<f(x)<<‘ ’ ;

    cout<<end1;

    }

    int f(int x){

    int y=1;

    static int z=3

    y++;

    z++;

    return (x+y+z);

    }


    正确答案:7 8 9
    7 8 9

  • 第2题:

    有如下程序: include using namespace std; void f1(int& x, int& y){int z=

    有如下程序:

    #include<iostream>

    using namespace std;

    void f1(int& x, int& y){int z=x; x=y; y=z;)

    void f2(int x, int y){int z=x; x=y; y=z;}

    intmain(){

    int x=10, y=26;

    f1(x, y);

    f2(x, y);

    cout<<y<<end1;

    return 0;

    }

    运行时的输出结果是( )。

    A) 10

    B) 16

    C) 26

    D) 36

    A.

    B.

    C.

    D.


    正确答案:A

  • 第3题:

    以下程序的运行结果是include void sub(int x,int y,int *z){*z=y-x;}void main( )

    以下程序的运行结果是 #include<iostream.h> void sub(int x,int y,int *z) { *z=y-x;} void main( ) { int a,b,c; sub(10,5,&a) ; sub(7,a,&b) ; sub(a,b,&c) ; cout << a <<","<< b <<"," << c << en

    A.5,2,3

    B.-5,-12,-7

    C.-5,-12,-17

    D.5,-2,-7


    正确答案:B
    解析:在C++语言中,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。了解了实参指针变量的改变情况,本题只剩下简单的“加减法”了。

  • 第4题:

    有以下程序:includevoid fun(int a, int b, int c){a=456,b=567,c=678;}void main(

    有以下程序: #include<iostream.h> void fun(int a, int b, int c) { a=456,b=567,c=678;} void main( ) { int x=10,y=20,z=30; fun(x, y, z) ; cout < < x< < ',' < < y < < ',' < < z < < endl; } 输出结果是

    A.30,20,10

    B.10,20,30

    C.456,567,678

    D.678,567,456


    正确答案:B
    解析:本题考查函数中变量的作用范围,在主函数中给变量x、y、z赋值,然后将其作为实参传递给了函数fun( ) ,虽然在函数fun( ) 中改变了这3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数fun( ) 结束后,主函数3个变量的值未改变。

  • 第5题:

    以下程序输出结果是 ______。includevoid fun(int x,int y,int z){z=x+y;}void main

    以下程序输出结果是 ______。 #include<iostream.h> void fun(int x,int y,int z){z=x+y;} void main() { int a=10; fun (2,2,a); cout<<a; }

    A.0

    B.4

    C.10

    D.无定值


    正确答案:C

  • 第6题:

    有以下程序:includevoid fun(int a,mt b,int C) {a=456,b=567,c=678;}void main(){

    有以下程序: #include<iostream.h> void fun(int a,mt b,int C) {a=456,b=567,c=678;} void main() { int x=10,y=20,z=30; fun(x,y,z); cout<<x<<','<<y<<','<<z<<endl; } 输出结果是( )。

    A.30,20,10

    B.10,20,30

    C.456,567,678

    D.678,567,456


    正确答案:B
    解析: 本题考查函数中变量的作用范围,在主函数中给变量x,y,z赋值,然后将其作为实参传递给了函数fun (),虽然在函数fun()中改变了这3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数fun()结束后,主函数3个变量的值未改变。

  • 第7题:

    以下程序执行后的输出结果是include using namespace std;void try(int,int,int,int)

    以下程序执行后的输出结果是 #include <iostream> using namespace std; void try(int,int,int,int); int main () { int x,y,z,r; x =1 ; y = 2; try(x,y,z,r); cout<<r<<endl; return 0; } void try(int x,int y,int z,int r) { z = x+y; x = x*x; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D
    解析:本题考核函数调用(参数的传递)。本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。以下是正确解答,根据程序逐步分析:程序中定义了一个名为try的void型函数,即函数try没有任何返回值。而try函数在main函数中是以一条独立语句的方式被调用的,且main函数最后输出变量r的值。但在main函数中,并没有对变量r赋值。在c++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数try中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第8题:

    阅读下面程序:includefun(int a,int b){int c;c=a+b;return c;}void main(){int x=

    阅读下面程序: #include<iostream.h> fun(int a,int b) { int c; c=a+b; return c; } void main() { int x=6,y=7,z=8,r; r=fun((x--,y++,x+y),z--); cout<<r<<endl; } 则该程序的输出结果是( )。

    A.11

    B.20

    C.21

    D.31


    正确答案:C

  • 第9题:

    请选出以下程序的输出结果 ______。include sub(x, y, z)int x, y,*z;{*z=y-x:}main()

    请选出以下程序的输出结果 ______。#include <stdio. h>sub(x, y, z)int x, y,*z;{*z=y-x:}main(){ int a, b, c; sub 10,5,&a);sub(7,a,&b);sub(a, b, &c); printf("%d,% d,/%d\n", a, b, c);}

    A.5,2,3

    B.-5,-12,-7

    C.-5,-12,-17

    D.5,-2,-7


    正确答案:B
    解析:sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(0.,5,&a),10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随*z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。

  • 第10题:

    有以下程序:includefun(int x,int y,int z){z=x*y;}main(){int a=4,b=2,c=6; fun(a,b,

    有以下程序: #include <stdio.h> fun(int x,int y,int z) { z=x*y;} main() { int a=4,b=2,c=6; fun(a,b,c); printf("%d",c); } 程序运行后的输出结果是( )。

    A.16

    B.6

    C.8

    D.12


    正确答案:B
    解析:本题考查函数形参与实参的传递规则,当形参与实参都是简单的数据类型时,形参值的改变不能影响实参值,即本题中c的值未改变,仍然是6。

  • 第11题:

    以下程序执行后的输出结果是()。includeusing namespace std;void try(int,int,int,in

    以下程序执行后的输出结果是( )。 #include<iostream> using namespace std; void try(int,int,int,int); int main() { int x,y,z,r; x=1; y=2; try(x,y,z,r); cout<<r<<endl; return 0; } void try(int x,int y, int z,int r) { z = x+y; X = x*x; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D

  • 第12题:

    有以下程序includevoid fun(int a,int b,int c){a=456,b=567,c=678;}void main(){

    有以下程序 #include<iostream.h> void fun(int a,int b,int c) {a=456,b=567,c=678;} void main() { int x=10,y=20,z=30; fun(x,y,2); cout << X < < ‘,’ < < y < < ‘,’ < < z < < endl; } 输出结果是

    A.30,20,10

    B.10,20,30

    C.456,567,678

    D.678,567,456


    正确答案:B
    解析:本题:考查函数中变量的作用范围,在主函数中给变量x,y,z赋值,然后将其作为实参传递给了函数fun(),虽然在函数fun()中改变了这3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在凋用函数fun()结束后,主函数3个变量的值未改变。

  • 第13题:

    以下程序的运行结果是()。includevoid sub(int x,int y,int*z){*Z=y-x;}void main()

    以下程序的运行结果是( )。 #include<iostream.h> void sub(int x,int y,int*z) {*Z=y-x;} void main() {int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); cout<<a<<“,”<<b<<“,”<<c<<endl;}

    A.5,2,3

    B.-5,-12,-7

    C.-5,-12,-17

    D.5,-2,-7


    正确答案:B
    解析: 在C++语言中,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。

  • 第14题:

    有以下程序:include void f(int v, int w){int t; t=v; v=w; w=t;}main(){int x=1,y=3

    有以下程序: #include <stdio.h> void f(int v, int w) { int t; t=v; v=w; w=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z); } 执行后的输出结果( )。

    A.1,2,3

    B.3,1,2

    C.1,3,2

    D.2,3,1


    正确答案:C
    解析:程序中if语句的条件只有y>z为真,所以执行f(y,z)。函数f的功能是交换两形参的值,但由于实参和形参都是一般变量,因此形参变量值的交换不能影响实参的值,main函数中的y和z并来互换,因此输出结果为:1,3,2。

  • 第15题:

    若有以下程序:include using namespace std;void sub(int x,int y, int *z){ *z = y+

    若有以下程序: #include <iostream> using namespace std; void sub(int x,int y, int *z) { *z = y+x; } int main() { int a,b, c; sub (8,4,&a) ; sub (6, a, &b) ; sub(a,b,&c) ; cout<<a<<", "<<b<<", "<<c<<end1; return 0; } 程序运行后的输出结果是( )。

    A.12,18,30

    B.-12,6,8

    C.6,8,10

    D.12,-18,16


    正确答案:A
    解析:本题考核对指针作为函数的参数的理解程度。分析程序:①函数sub()为void型。函数的形参中,z是一个血型的指针变量,因此它只能从实参接收一个血型变量的地址。②在函数sub()体中,语句:“*z=y+x;”的功能是把形参y与x的和值放入形参z所指的存储单元中。③在主函数中,3次调用sub()函数。第一次调用时,把8和4分别传递给形参x和y,把主函数中变量a的地址传递给形参z,这样形参就指向了主函数中的变量a,在sub函数中执行语句“*z=y+x;”后,把12放入z所指的存储单元中,即变量a被赋值12。以此类推,最后b被赋值18,c被赋值30。所以最后输出是12,18,30。

  • 第16题:

    请选出以下程序的输出结果_______。includesub(x,y,z)int x,y,*z;{*z=y-x;}main(){int

    请选出以下程序的输出结果_______。 #include<stdio.h> sub(x,y,z) int x,y,*z; {*z=y-x;} main(){ int a,b,c; sub(10,5,&A) ;sub(7,a,&B) ;sub(a,b,&C) ; printf("%d,%d,%d\n",a,b,C) ; }

    A.5,2,3

    B.-5,-12,-7

    C.-5,-12,-17

    D.5,-2,-7


    正确答案:B
    解析:sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&a),10和5属于值传递,a是属于她址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随*2变化,所以此次函数被调用后,a的值为y-x=5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=12,在sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。

  • 第17题:

    请填写空格: include using namespace std; void fun(int x,int y,int * z) { *2 = x

    请填写空格:

    include<iostream>

    using namespace std;

    void fun(int x,int y,int * z)

    { *2 = x + y;}

    void main()

    {

    int a=100,b=100,c,*p=&c;

    fun(a,b,p);

    【 】; //输出调用fun函数后返回a、b的和。

    }


    正确答案:cout*p;
    cout*p; 解析:函数 fun()通过指针可以带回返回值,a、b的和存放在*p中。

  • 第18题:

    阅读下面程序:include fun (int a, int b){int c;c=a+b;return c;}void main(){int

    阅读下面程序:#include <iostream.h>fun (int a, int b){int c;c=a+b;return c;}void main(){int x=6, y=7, z=8, r;r=fun( (x--, y++, x+y), z--);cout<<r<<end1;}则该程序的输出结果是( )。

    A.11

    B.20

    C.21

    D.31


    正确答案:C

  • 第19题:

    下列程序运行后的输出结果是()。includevoid fun(int,int,int*);void main(){int x,

    下列程序运行后的输出结果是( )。 #include<iostream.h> void fun(int,int,int*); void main() { int x,y,z; fun(5,6,&x); fun(7,x,&y); fun(x,y,&z); cout<<x<<","<<y<<","<<z<<endl; } void fun(int a,int b,int *c) { b+=a; *c=b-a; }

    A.5,5,5

    B.6,6,6

    C.5,6,7

    D.7,7,7


    正确答案:B
    解析:由程序中的main函数入手,分别调用fun函数,第一个调用中x参数为引用地址,调用后x的值为6,因为参数为地址,所以第二个调用中的x参数值为6,调用后y的计算结果为6。同理,z在第三个函数调用后z的值为6。

  • 第20题:

    以下程序执行后的输出结果是includeusing namcspace std;void try(int,int,int,int);

    以下程序执行后的输出结果是 #include<iostream> using namcspace std; void try(int,int,int,int); int main() { int x,y,z,r; x=1; y=2; try(x,y,z,r); cout<<r<<end1; return 0; } void try(int x,int y, int z,int r) { z = x+y; x = x*x; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D
    解析:本题考核函数调用(参数的传递)。本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。以下是正确解答,根据程序逐步分析:程序中定义了一个名为try的void型函数,即函数try没有任何返回值。而try函数在main函数中是以一条独立语句的方式被调用的,且main函数最后输出变量r的值。但在main函数中,并没有对变量r赋值。在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数try中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第21题:

    以下程序的输出结果是( )。include fun(int x,int y,int z) { z=x*x+y*y;} main() { int a=31; fun(5,2,a); printf("%d",a);}

    A、0

    B、29

    C、31

    D、无定值


    正确答案:C 

  • 第22题:

    下列程序运行后的输出结果是()。 include void fun(int,int,int*); void main() { i

    下列程序运行后的输出结果是( )。 #include<iostream.h> void fun(int,int,int*); void main() { int x,y,z; fun(5,6,&x); fun(7,x,&y); fun(x,y,&z); cout<<x<<","<<y<<","<<z<<end1; } void fun(int a,int b,int *c) { b+=a; *c=b-a; }

    A.5, 5, 5

    B.6, 6, 6

    C.5, 6, 7

    D.7, 7, 7


    正确答案:B
    解析:由程序中的main函数入手,分别调用fun函数,第一个调用中x参数为引用地址,调用后x的值为6,因为参数为地址,所以第二个调用中的x参数值为6,调用后y的计算结果为6。同理, z在第三个函数调用后z的值为6。

  • 第23题:

    有以下程序:includevoid fun(int a,int b,int c){ a=456,b=567,c=678;}main(){ int x=

    有以下程序: #include <stdio.h> void fun(int a,int b,int c) { a=456,b=567,c=678;} main() { int x=10,y=20,z=30; fun(x,y,z); printf("%d,%d,%d\n",x,y,z); } 此程序的输出结果是( )。

    A.30,20,10

    B.10,20,30

    C.456,567,678

    D.678,567,456


    正确答案:B
    解析:本题考查函数中变量的作用范围,在主函数中给变量x,y,z赋值,然后将其作为实参传递给函数fun,在函数fun中虽然改变了这三个变量的值,但两个函数中的x,y,z只是同名的局部变量,互不影响,所以调用函数fun后,主函数中x,y,z的值并未改变,即变量作形参时,其值的改变不能影响实参的值。

  • 第24题:

    以下程序执行后的输出结果是include.using namespace std;void try(int,int,int,int)

    以下程序执行后的输出结果是 #include<iostream>. using namespace std; void try(int,int,int,int); int main() { int x,y,z,r; x=1; y=2; try(x,y,z,r); cout<<r<<end1; return 0; } void try(int x,int y, int z,int r) { z = x+y; x = x*x; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D
    解析:本题考核函数调用(参数的传递)。本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。以下是正确解答,根据程序逐步分析:程序中定义了一个名为try的void型函数,即函数try没有任何返回值。而try函数在main函数中是以一条独立语句的方式被调用的,且main函数最后输出变量r的值。但在main函数中,并没有对变量r赋值。在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数try中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。