以下C程序段的输出结果是(30)。 include void prt(int*x,Int*y,int*z){ printf(以下C程序段的输出结果是(30)。 #include<stdio.h> void prt(int*x,Int*y,int*z){ printf("%d,%d,%d\n",++*x,++*y,*(z++)); } void main(){ int a=10,b=40,c=20; Prt(&a,&b,&c); Prt(&a,&b,&c); }A.11,42,31 12,22,41B.11

题目
以下C程序段的输出结果是(30)。 include void prt(int*x,Int*y,int*z){ printf(

以下C程序段的输出结果是(30)。 #include<stdio.h> void prt(int*x,Int*y,int*z){ printf("%d,%d,%d\n",++*x,++*y,*(z++)); } void main(){ int a=10,b=40,c=20; Prt(&a,&b,&c); Prt(&a,&b,&c); }

A.11,42,31 12,22,41

B.11,41,20 12,42,20

C.11,21,40 11,21,41

D.11,41,20 12,42,22


相似考题
更多“以下C程序段的输出结果是(30)。 include void prt(int*x,Int*y,int*z){ printf( 以下C程序段的输出结果是(30)。 #include<stdio.h> void prt(int*x,Int*y,int*z){ printf("%d,%d,%d\n",++*x,++*y,*(z++)); } void main(){ int a=10,b”相关问题
  • 第1题:

    以下程序执行后的输出结果是( )。include usingnamespacestd;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<<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()函数在主函数中是以一条独立语句的方式被调用的,且主函数最后输出变量r的值。③但在主函数中,并没有对变量r赋值。④在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以,虽然在函数try()中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第2题:

    有以下程序: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。

  • 第3题:

    有以下程序: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个变量的值未改变。

  • 第4题:

    有以下程序 include void fun(int*a,int*B) { int*c; c=a;a=b;b=c; } main() {int x=3

    有以下程序 #include<stdio.h> void fun(int*a,int*B) { int*c; c=a;a=b;b=c; } main() { int x=3, y=5,*p=&x, *q=&y; fun(p,q); printf("%d,%d,",*p,*q); fun(&x,&y); printf(" %d,%d\n",*p,*q); } 程序运行后的输出结果是______。

    A.3,5,5,3

    B.3,5,3,5

    C.5,3,3,5

    D.5,3,5,3


    正确答案:B
    解析:本题主要考查的是函数的实参和形参之间的传递关系,C语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数参数也要遵循这一规则。调用函数不可能改变实参指针变量的值。所以x和y的地址并没有改变,即p和q也没有改变,因此,选项B是正确的。

  • 第5题:

    以下程序的输出结果是______。includevoid prt(int*x,int*y,int*z){printf("%d,%d,%d\n

    以下程序的输出结果是______。 #include<stdio.h> void prt(int*x,int*y,int*z) { printf("%d,%d,%d\n",++*x,++*y,*(z++));} int a=10,b=40,c=20; main() { prt(&a,&b&c) prt(&a,&b,&c); }

    A.11,42,31 12,22,41

    B.11,41,20 12,42,20

    C.11,21,40 11,21,41

    D.11,41,21 12,42,22


    正确答案:B
    解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

  • 第6题:

    以下程序的输出结果是()。includevoid prt(int *x,int *y,int *z){printf("%d,%d,%d\n"

    以下程序的输出结果是( )。 #include<stdio.h> void prt(int *x,int *y,int *z) {printf("%d,%d,%d\n",++*x,++*y,*(z++));} main() {inta=10,b=40,c=20; prt(&a,&b,&C); prt(&a,&b,&C);}

    A.11,42,31 12,22,41

    B.11,41,20 1,42,20

    C.11,21,40 11,21,21

    D.11,41,21 12,42,22


    正确答案:B

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

    以下程序执行后的输出结果是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,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第9题:

    下列程序运行后的输出结果是()。 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。

  • 第10题:

    有以下程序: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的值并未改变,即变量作形参时,其值的改变不能影响实参的值。

  • 第11题:

    以下程序的输出结果是______。includevoid prt(int.*x,int*y,int*z){printf("%d,%d,%d\

    以下程序的输出结果是______。 #include<stdio.h> void prt(int.*x,int*y,int*z) { printf("%d,%d,%d\n",++*x,++*y,*(z++));} int a=10,b=40,c=20; main() { prt(&a,&b&c) ; prt(&a,&b,&c) ; }

    A.11,42,31 12,22,41

    B.11,41,20 12,42,20

    C.11,21,40 11,21,41

    D.11,41,21 12,42,22


    正确答案:B
    解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

  • 第12题:

    以下程序执行后的输出结果是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,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第13题:

    下列程序的输出结果是()。includevoid p(int *x){printf("%d",++*x);}void main(){int

    下列程序的输出结果是( )。 #include<stdio.h> void p(int *x) { printf("%d",++*x); } void main() { int y=3; p(&y); }

    A.3

    B.4

    C.2

    D.5


    正确答案:B
    解析:本题考查函数调用时的参数传递。在函数调用时,形参是指向实参的指针变量,则printf的执行结果为3+1=4。

  • 第14题:

    以下程序的运行结果是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++语言中,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。了解了实参指针变量的改变情况,本题只剩下简单的“加减法”了。

  • 第15题:

    以下程序输出结果是():includeusing namespace std;void add(int X,int y,int *z){*z

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

    A.12,10,14

    B.12,18,30

    C.12,6,18

    D.12,14,30


    正确答案:B

  • 第16题:

    以下程序的输出结果是includevoid prt(int *x,int*y,int*z){ printf("%d,%d,%d\n",++*

    以下程序的输出结果是 #include<stdio.h> void prt(int *x,int*y,int*z) { printf("%d,%d,%d\n",++*x,++*y,*(z++));} main() { int a=10,b=40,c=20; prt(&a,&b,&c); prt(&a,&b,&c);}

    A.11,42,31 12,22,41

    B.11,41,20 12,42,20

    C.11,21,40 11,21,21

    D.11,41,21. 12,42,22


    正确答案:B
    解析:尽管C语言以传值方式进行函数调用,但也可以通过传递指针的值(变量的地址)来达到修改实参变量值的目的,这是此题主要说明的问题。其次,应注意表达式。(z++)的值是*z,其后的z++在程序中无实际作用。函数调用时,由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次调用函数时,*x=a=10,*y=b=40,*z=c=20输出结果为11,41,20,至此,已经可以肯定选项B)是正确的。在第一次输出后,a=11,b=41,c=20,第二次输出为:12,42,20。注意:指针作为参数的函数调用的执行过程。

  • 第17题:

    以下程序输出结果是 ______。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

  • 第18题:

    以下程序的输出结果是______。includevoid prt(int *x,int *y,int *z){printf("%d,%d,%

    以下程序的输出结果是______。 #include<stdio.h> void prt(int *x,int *y,int *z) { printf("%d,%d,%d\n",++*x,++y,*(z++));} int a=10,b=40,c=20; main() { prt(&a,&b&c); prt(&a,&b,&c); }

    A.11,42,31 12,22,41

    B.11,41,20 12,42,20

    C.11,21,40 11,21,41

    D.11,41,21 12,42,22


    正确答案:B
    解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

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

    下列程序段的输出结果是( )。include void fun(int *x, int *y) { printf("%d %d ", *x,*y); *x=3;*y=4;}main() { int x=1,y=2; fun(&y,&x); printf("%d %d\n",x,y); }

    A、2143

    B、1212

    C、1234

    D、2112


    正确答案:A

  • 第21题:

    以下程序执行后的输出结果是()。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

  • 第22题:

    下列程序段的输出结果是 include void fun(int * X,int * y) {cout < < * X < <

    下列程序段的输出结果是 #include<iostream.h> void fun(int * X,int * y) { cout < < * X < < * y; * X=3; * y=4; } void main( ) { int x=1,y=2; fun(&y,&x); cout < < X < < y < < end1; }

    A.2143

    B.1212

    C.1234

    D.2112


    正确答案:A
    解析:在fun函数中,x接收的是main函数中y的地址,所以*x值为2,同样,*y值为1,所以第1次输出的是21,第2次改变*x的值等同于改变y的值,改变*y的值也即改变x的值,所以第2次输出的是43。注意:C++语言中函数的传参方式中关于指针的应用。

  • 第23题:

    有以下程序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个变量的值未改变。