更多“下面程序的输出结果是()。void prty(int*x){printf("%din",++*x);}main(){int a=25;prty(&a); ”相关问题
  • 第1题:

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

  • 第2题:

    以下程序的输出结果是( )。 include void fun(int x) {if(x/2>0)fun(x/2); printf("%d",

    以下程序的输出结果是( )。

    include<stdio.h>

    void fun(int x)

    { if(x/2>0)fun(x/2);

    printf("%d",x);

    }

    main()

    {fun(3);printf("\n");

    }


    正确答案:13
    13 解析:函数fun是一个递归函数。执行fun(3);,x=3,x/2=1>0,又调用f(1),此时,x=1,x/2=0,不满足继续递归调用的条件,输出1,返回到fun(3)中,输出3。所以本题的输出结果为13。

  • 第3题:

    下面程序的输出结果是()。includeusing namespace std;void swap(int x[2]){int t; t=

    下面程序的输出结果是( )。 #include<iostream> using namespace std; void swap(int x[2]) { int t; t=x[0]; x[0]=x[1]; x[1]=t; } void main() { int a[2]={4,8}; swap(a); cout<<a[0]<<" "<<a[1]; }

    A.4 8

    B.8 4

    C.4 4

    D.8 8


    正确答案:B
    解析:数组名作为函数参数属于地址传递,形参、实参共用同一内存空间。

  • 第4题:

    下列程序的输出结果是()。 include int fun(int x) {int a; if(x==0‖x==1) return 3;

    下列程序的输出结果是( )。

    #include<stdio.h>

    int fun(int x)

    { int a;

    if(x==0‖x==1)

    return 3;

    else

    a=x-fun(x-2) ;

    return a;

    }

    void main()

    { printf("%d",fun(7) );

    }

    A.2

    B.8

    C.9

    D.5


    正确答案:A
    解析:本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→ fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→ fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2。

  • 第5题:

    下面的程序输出结果是 ______。 #define r 16 #if r==16 void p(int a) { printf("%x",a) ; } #else void p(int a) { printf("%d",a) ; } #endif main() { p(32); }

    A.32

    B.20

    C.编译时错误

    D.运行时错误


    正确答案:B
    解析:“#definer16”的作用是指定用标识符r来代替16,因此程序编译时只编译#if部分,故程序运行时,打印输出十六进制的32,即20。

  • 第6题:

    下面的程序输出结果是()。includeusing namespace std;void add(){static int x;x++;c

    下面的程序输出结果是( )。 #include<iostream> using namespace std; void add() { static int x; x++; cout<<x<<''; } int main() { for(int i=0;i<3;i++) add(); return 0; }

    A.111

    B.123

    C.222

    D.333


    正确答案:B

  • 第7题:

    下面程序的运行结果是( )。include main(){int a=25; fun(&A); }fun(int *x){ print

    下面程序的运行结果是( )。

    include<stdio.h>

    main()

    {int a=25;

    fun(&A);

    }

    fun(int *x)

    { printf("%d\n",++*x);

    }


    正确答案:26
    26 解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

  • 第8题:

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

    A.1243

    B.1212

    C.1234

    D.2112


    正确答案:A
    解析:本题主函数中首先定义了两个变量x和y,并初始化为2和1,然后将y和x的地址值,传入函数fun(),函数fun()中的形参x和y分别指向主函数中的变量y和x,所以fun()函数输出的值为1和2,fun()函数在结束之前把形参x所指内容赋为3,把形参y所指内容赋为4,所以返回主函数后,主函数中的x和y已被改写为4和3。故程序输出结果为1243。选项A正确。

  • 第9题:

    以下程序运行后的输出结果是void fun(int x,int y){ x=x+y;y=x-y;x=x-y; printf("%d,%d,",x,y);}main(){ int x=2,y=3; fun(x,y); printf("%d,%d\n",x,y);}


    正确答案:3,2,2,3
    被调用函数fun()实现的功能是交换变量x和y的值并打印,由于该函数无返回值,所以在主函数中打印出的x和y的值仍然为2,3。

  • 第10题:

    下面程序的输出结果是【】。includeint add(int a, int b);void main(){extern int x,

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

    include<iostream.h>

    int add(int a, int b);

    void main()

    {

    extern int x, y;

    cout<<add(x, y)<<end1;

    }

    int x(20),y(5);

    int add(int a, int b)

    {

    int s=a+ b;

    return s;

    }


    正确答案:25
    25

  • 第11题:

    以下程序的输出的结果是()。include int x=3;void main(){void incre();int i;for (

    以下程序的输出的结果是( )。#include <iostream.h>int x=3;void main(){ void incre(); int i; for (i=1;i<x;i++) incre();}Void incre(){ static int x=1; x*=x+1; cout<<x<<"";}

    A.3 3

    B.2 2

    C.2 6

    D.2 5


    正确答案:C

  • 第12题:

    下列程序的输出结果是( )。

    #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的执行结果为++x;x=3,则3+1=4。

  • 第13题:

    有以下程序

    void f( int y, int *x)

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

    main()

    { int x=2,y=4;

    f(y,&x);

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

    }

    执行后输出结果是______。


    正确答案:8 4
    8 4 解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数 f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。

  • 第14题:

    下面程序的输出结果是【】。 include using namespace std; int x; void funA(int&,i

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

    include<iostream>

    using namespace std;

    int x;

    void funA(int&,int);

    void funB(int,int&);

    int main()

    {

    int first;

    int second=5;

    x=6;

    funA(first,seconD) ;

    fimB(first,seconD) ;

    cout<<first<<" "<<second<<" "<<x<<end1;

    return 0;

    }

    void funA(int &a,int B)

    {

    int first;

    first=a+b;

    a=2*b;

    b=first+4;

    }

    void funB(int u,int &v)

    {

    int second;

    second=x;

    v=second+4;

    x=u+v;

    }


    正确答案:10 10 20
    10 10 20 解析:本题考核函数的引用传递。“引用”实际上是给一个已知变量起个别名,对引用的操作也就是对被它引用的变量的操作。函数funA的功能是将第二个实参的值乘以2再赋值给第一个实参(通过引用传递实现),函数funB的功能是将全局变量 x加上4再赋值给第二个实参,同时x等于第一个实参与第二个实参相加的和。

  • 第15题:

    下面程序输出的结果是( )。 include using namespace std; void swap(int

    下面程序输出的结果是( )。 #include <iostream> using namespace std; void swap(int &a,int &b){ int temp; temp=a; a=b; b=temp; } void main(){ int x=2; int y=3; swap(x,y); cout<<x<<y; }

    A.23

    B.32

    C.ab

    D.ba


    正确答案:B
    解析:函数的参数是引用,故能实现引用调用。

  • 第16题:

    下面程序输出的结果是( )。 int m=17; int fun(int x,int y) {int m=3; return(x*y-m); } main() {int a=5,b=7; printf("%d\n”,fun(a,B)/m); }


    正确答案:√
    1 解析:本题考查局部变量和全局变量的区别:局部变量是指作甩域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。

  • 第17题:

    下列程序的输出结果是()。 include int fun(int x) {int a;if(x==0‖x==1) return 3;els

    下列程序的输出结果是( )。 #include<stdio.h> int fun(int x) { int a; if(x==0‖x==1) return 3; else a=x-fun(x-2); return a; } void main() { printf("%d",fun(7)); }

    A.2

    B.8

    C.9

    D.5


    正确答案:A
    解析:本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fon(5)→fun(5):a=5-fon(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去 fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5-2,最后的计算结果为2。

  • 第18题:

    以下程序运行后的输出结果是( )。 include main() { int x=20; printf("%d", 0

    以下程序运行后的输出结果是( )。

    include<stdio.h>

    main()

    { int x=20;

    printf("%d", 0<x<20);

    printf("%d\n", 0<x && x<20);

    }


    正确答案:10
    10 解析:表达式0x20,首先计算0x,其值为1,再计算120,其值为1,输出1;表达式0x && x20,0x为1,x20为0,再计算1 && 0,其值为0,输出0。所以输出结果为10。

  • 第19题:

    下列程序的输出结果是( )。 #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的执行结果为++x;x=3,则3+1=4。

  • 第20题:

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

  • 第21题:

    下面程序的运行结果是void swap(int *a,int *b){ int *t; t=a;a=b;b=t;}main(){ int x=3,y=5,*p=&x,*q=&y; swap(p,q); printf("%d%d\n",*p,*q);}


    正确答案:35
    观察本题的程序可以看出,被调函数swap()实现的功能是交换变量的值,但由于函数不返回任何值,所以在main()函数中打印出的变量的值并没有发生交换,即仍为3和5。

  • 第22题:

    下列程序的输出结果是()。includeint fun(int x){ int a;if(x==0||x=1)return 3;elsea=

    下列程序的输出结果是( )。#include<stdio.h>int fun(int x){ int a; if(x==0||x=1) return 3; else a=x-fun(x-2); return a;}void main(){ printf("%d",fun(7));}

    A.2

    B.8

    C.9

    D.5


    正确答案:A
    解析:本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3→0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2.

  • 第23题:

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