以下程序的输出结果是#includevoid 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, 3112,22,41B.11,41,2012,42,20C.11,21,4011,21,21D.11,41,2112,42,22

题目

以下程序的输出结果是

#include

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


相似考题
更多“以下程序的输出结果是#includevoid 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, 3112,22,41B.11,41,2012,42,20C.11,21,4011,21,21D.11,41,2112,42,22”相关问题
  • 第1题:

    以下程序的输出结果是 【10】 。

    fun (int x,int y,int z)

    { z =x*x+y*y;}

    main ()

    {int a=31;

    fun (6,3,a)

    printf ("%d", a)

    }


    正确答案:
    31

  • 第2题:

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

  • 第3题:

    以下程序的输出结果是______。

    fun(int x,inty,int z)

    { z=x*x+y*y;}

    main()

    { int a=31;

    fun(6,3,a)

    printf("%d",a)

    }


    正确答案:
    在函数调用时,形参值的改变,不会改变实参值。

  • 第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 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。注意:指针作为参数的函数调用的执行过程。

  • 第6题:

    以下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


    正确答案:B
    解析:C语言不但可以通过传值的方式进行函数调用,还可以通过传递指针的值(变量的地址)来达到修改实参变量值的目的,这是本试题主要说明的问题。其次,应注意表达式*(z++)的值是*z,其后的z++是使指针z指向下一个整数,在程序中无实际作用。函数调用时,由于x、y和z分别指向a、b和c,因此,*x、*y和*z就是a、b和c。第1次调用函数时,*x=a=10,*y=b=40,*z=c=20,输出结果为11,41,20。同时注意到运算符。和++的运算优先级别相同,遵循右结合性。则*z++与*(z++)作用相同,但(*z)++含义不同。(*z)++的含义是c变量值的自增。因此第2次调用函数时,输出结果为12,42,20。

  • 第7题:

    有以下程序: viod 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
    本题考查实参与形参调用,从实参传递到形参时,只是数值的传递,调用函数中值的改变不会影响主函数中的值,因此原样输出。

  • 第8题:

    有以下程序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.10,20,30 B.30,20,10C.456,567,678 D.678,567,456


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

  • 第9题:

    以下程序的输出结果是______。 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
    解析:本题中,a的值并没有改变,因为传递到函数中的是变量值。

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

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

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

    以下程序的输出结果是 【11】 。

    int fun(int x,int y,int *p,int *q)

    { *p=x*y;

    *q=x/y;}

    main()

    {int a,b,c,d;

    a=4;b=3;

    fun(a,b,&c,&d);

    printf("%d,%d\n",c,d);}


    正确答案:
    12,1

  • 第14题:

    有以下程序:

    int sub(int n) { return(n/10+n%10); }

    main()

    { int x, y;

    scanf("% d", &x);

    y=sub(sub(sub(x)));

    printf("% d\n", y);

    }

    若运行时输入:1234<回车>,程序的输出结果是【 】。


    正确答案:10
    10 解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

  • 第15题:

    以下程序的输出结果是______。 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
    解析:函数fun的形参是简单变量,main函数中调用fun时只是把实参的值传递给形参,形参的改变不影响实参,所以调用完函数fun后a的值不发生变化,即a=31。

  • 第16题:

    有以下程序:include prt(int * m,int n)int i;for(i =0;i

    有以下程序:#include <stdio.h>prt(int * m,int n) int i; for(i =0;i<n;i ++ ) m[i] ++;main( )} int a[ ] = { 1,2,3,4,5} ,i; prt(a,5); for(i =0;i<5;i ++ ) printf( "% d," ,a[i] );}程序运行后的输出结果是( )。

    A.1,2,3,4,5,

    B.2,3,4,5,6,

    C.3,4,5,6,7,

    D.2,3,4,5,1


    正确答案:B
    解析:prt(a,5);用数组名a作函数实参,不是把a数组的值传递给形参m,而是将数组a的首地址传递给指针变量m,使指针变量m指向数组a的首地址,这样他们就占用同一段内存单元。当改变了指针变量所指向的存储单元中的内容,也就改变了数组a中的元素。函数pit的作用是将指针变量m所指向的存储单元中的各元素值加1,也就是数组a中各元素的值加l,所以输出结果为:2,3,4,5,6,

  • 第17题:

    以下程序的输出结果是______。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
    解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

  • 第18题:

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

  • 第19题:

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

  • 第20题:

    以下程序的输出结果是______。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
    解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。

  • 第21题:

    请读程序:includefunc(int a, int b){int c; c=a+b; return c;}main(){int x=6,y=7,z=

    请读程序: #include <stdio.h> func(int a, int b) { int c; c=a+b; return c; } main() { int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf("%d\n",r); 上面程序的输出结果是( )。

    A.11

    B.20

    C.21

    D.31


    正确答案:C
    解析:函数func的作用是返回两个形参的和,第一个形参是x,y分别自减和自增后的和13,第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func的返回值为13+8=21。

  • 第22题:

    有程序: 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",z,y,x); } 输出结果是 ( )

    A.30,20,10

    B.10,20,30

    C.456,567,678

    D.678,567,456


    正确答案:A

  • 第23题:

    以下程序的输出结果是______。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
    解析:由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内容的改变。