下面程序的输出结果是( ) #include"stdio.h" fun(x) int x; { int y=0; static int z=5; z=x++,y++; return(z); } main() int a=4,i,j; for (i=0;i<2;i++) j=fun(a++); printf("%d",j); }A.0B.3C.4D.5

题目

下面程序的输出结果是( ) #include"stdio.h" fun(x) int x; { int y=0; static int z=5; z=x++,y++; return(z); } main() int a=4,i,j; for (i=0;i<2;i++) j=fun(a++); printf("%d",j); }

A.0

B.3

C.4

D.5


相似考题
更多“下面程序的输出结果是()#include"stdio.h"fun(x)intx;{int y=0;static int z=5;z=x++,y++;return ”相关问题
  • 第1题:

    若有以下程序段:include using namespace std;int main (){ int a[]={1,4,5}; int *p

    若有以下程序段: #include <iostream> using namespace std; int main () { int a[]={1,4,5}; int *p=&a[0],x=6, y,z; for (y=0; y<3; y++) z= ( (* (p+y) <x) ? *(p+y) :x); cout<<z<<end1; return 0; } 程序运行后的输出结果是( )。

    A.1

    B.4

    C.5

    D.2


    正确答案:C
    解析:本题考核指针的运算。程序首先定义了一整型数组a,并赋初值1,4,5。即a[0],a[1]和a[2]的值分别为1,4和5。程序还定义了一个整型指针p,并将其初始化且指向数组元素a[0]。在for循环语句中,赋值语句“z=((*(p+y)x)?*(p+y):x);”可等价为“z=(a[y]x)?a[y]:x”。因为表达式中的“*(p+y)=p[y]=a[y]”。for语句每循环一次,就给变量z重新赋值一次,z的值其实就是数组和x相比较,将数组a中的最大值赋给z。当y=2后,退出循环,输出结果是5。

  • 第2题:

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

    下列程序的输出结果是( )。 #include<stdio.h> int fun(intx) { 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。

  • 第3题:

    以下程序的输出结果是【 】。include int fun(int x) {static int t=0; return(t+=x); }

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

    include <stdio.h>

    int fun(int x)

    { static int t=0;

    return(t+=x);

    }

    main()

    int s,i;

    for(i=1 ;i<=5;i++) s=fun(i);

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


    正确答案:15
    15 解析:static类型的变量是静态变量,本题中的静态变量t为静态局部变量。静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用时的值。本题在多次调用fun函数的过程中,只在第一次调用时t的初值为0,以后每次调用函数时不再重新赋初值,而只是保留上次函数调用结束时的值,所以本程序的作用相当于将1到5数字进行累加,故输出结果为15。

  • 第4题:

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

  • 第5题:

    下面程序的输出结果是()。includeint m=13;int fun2(int x,int y){int m=3; return(x*y

    下面程序的输出结果是( )。 #include <stdio.h> int m=13; int fun2(int x,int y) { int m=3; return(x*y-m); } main() { int a=7,b=5; printf("%d\n",fun2(a,b)/m); }

    A.1

    B.2

    C.7

    D.10


    正确答案:B
    解析:本题考查函数的调用。函数fun2的作用是将形参x和y的值相乘后减去3,在fun2中的变量m是一个局部变量,它的值在fun2函数内有效;在主函数中的m指的是全局变量,其值为13,所以fun2(a,b)/m的值为(7*5-3)/13,即2。

  • 第6题:

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

  • 第7题:

    若有以下程序段;includeusing namespace std;int main(){ int a[]={1,4,5}; int *p=&

    若有以下程序段; #include<iostream> using namespace std; int main() { int a[]={1,4,5}; int *p=&a[0],x=6,y,z; for(y=0;y<3;y++) z=((*(p+y)<x) ? *(p+y):x); cout<<z<<end1; return 0; } 程序运行后的输出结果是( )。

    A.1

    B.4

    C.5

    D.2


    正确答案:C
    解析:本题考核指针的运算。①程序首先定义了一整型数组a,并赋初值1,4,5。即a[0],a[1]和a[2]的值分别为1,4和5。程序还定义了一个整型指针p,并初始化它指向数组元素a[0]。②在for循环语句中,赋值语句“z=((*(p+y)x)?*(p+y):x);”可等价为:“z=(aly]x)?a[y]:x”。因为表达式中的“*(p+y)=p[y]=a[y]”。③for语句每循环一次,就给变量z重新赋值一次,z的值其实就是数组和x相比较,将数组a中的最大值赋给z。当y=2后,退出循环,输出结果是5。

  • 第8题:

    若有程序 fun(int a,int b} { static int c=0; c+=a+b; return c; } main() { int x=5,y=3,z=7,r, r=fun(y,x+y),z); r=fun(xy); printf("%d\n",r); } 上面程序的输出结果是_____。

    A.23

    B.15

    C.19

    D.18


    正确答案:A
    解析:static声明的外部变量只限于彼本文件引用,而不能被其他文件引用。用static来声明一个变量的作用有:①对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在;②全部变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。调用第一个fun,其两个实参的值为(3,5+3)与7即8与7,在函数fun执行结束返回15。第二次调用fun时,由于static为静态类型,其值保留,执行fun(5,3)后,其返回值为23,故选A。

  • 第9题:

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

    请读程序: #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分别自减和自增后的和,其中(x-,y++,x+y)是一个逗号表达式,它的值应该等于x+y,所以整个表达式(x-,y++,x+y)的值为13,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func()的返回值为13+8=21。

  • 第10题:

    阅读下面程序: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

  • 第11题:

    请读程序: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。

  • 第12题:

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

  • 第13题:

    阅读下列程序: include void fun(int n) { int x(5); static int y(10); if(n>0) {

    阅读下列程序:

    include<iostream.h>

    void fun(int n)

    {

    int x(5);

    static int y(10);

    if(n>0)

    {

    ++x;

    ++y;

    cout<<x<<","<<y<<endl;

    }

    }

    void main()

    int m(1);

    fun(m);

    }

    则该程序的输出结果是______。


    正确答案:611
    6,11 解析:由主函数mian入手,首先定义变量m等于1,然后调用fun函数。fun函数中y为静态数值,等于10,作用域为到本文件结束。所以y加1后,主函数中y的值也为11。其中函数中x的加1运算调用的是函数中的x等于5的变量,作用域为由定义到文件结束,即主函数中输出的x值为6。所以答案为6,11。

  • 第14题:

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

  • 第15题:

    若有程序: fun(int a,int b) { static int c=0; c+=a+b: return c; } main() { int x=5,y=3,z=7,r; r=fun((y,x+y),z); r=fun(x,y); printf("%d\n",r); } 上面程序的输出结果是______。

    A.23

    B.15

    C.19

    D.18


    正确答案:A
    解析:static声明的外部变量只限于被本文件引用,而不能被其他文件引用。用static来声明一个变量的作用有:①对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在:②全部变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。调用第一个fun,其两个实参的值为(3.5+3)与7即8与7,在函数fun执行结束返回15。第二次调用fun时,由于static为静态类型,其值保留,执行fun(5,3)后,其返回值为23,故选A。

  • 第16题:

    有以下程序includeintf(intx){inty;if(x==0||x==1)return(3);y=x*x-f(x-2);returny;}m

    有以下程序 #include <stdio.h> intf(int x) { int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } main() { int z; z=f(3); printf("%d\n",z); } 程序的运行结果是

    A.0

    B.9

    C.6

    D.8


    正确答案:C
    解析: 函数int f(int x)是一个递归函数调用,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x-2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9=f(1)=9-3=6。

  • 第17题:

    有下列程序: include int f(int x) { int y; if(x=0‖x==1)r

    有下列程序: #include <stdio.h> int f(int x) { int y; if(x=0‖x==1)return(3); y=x*x-f(x-2); return y; } main() { int z; z=f(3);printf("%d\n",z); 程序的运行结果是( )。

    A.0

    B.9

    C.6

    D.8


    正确答案:C
    解析:主函数调用f()函数,将实参3传递给x,进行if条件语句的判断不成立,接着执行y=3*3-f(1),再执行f(1)而f(1)满足if条件语句,所以f(1)的值为3,那么代入y=3*3-f(1)=9-3=6,故选项C)为正确的运行结果。

  • 第18题:

    有以下程序includeint f(intx){inty; if(x==0||x==1)return(3); y=x*x-f(x-2); return

    有以下程序 #include <stdio.h> int f(int x) { int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } main() { int z; z=f(3); printf("%d\n",z); } 程序的运行结果是

    A.0

    B.9

    C.6

    D.8


    正确答案:C
    解析:函数int f(int x)是一个递归函数调用,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x -2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9-f(1)=9-3=6。

  • 第19题:

    以下程序执行后输出的结果是【】。 include using namespace std; int fac(int a,int b){

    以下程序执行后输出的结果是【 】。

    include<iostream>

    using namespace std;

    int fac(int a,int b){

    return(b-a)*a;

    }

    int main(){

    int x=3,y=4,z=5,result;

    result=fac(fac(x,y),fac(x,z));

    cout<<result<<endl;

    return 0;

    }


    正确答案:9
    9 解析:在main()函数中执行result=fac(fac(x,y),fac(x,2));调用了三次fac()函数: fac(x,y)的值为3,fac(x,z)的值为6,fac(3,6)得到的值为9。

  • 第20题:

    下面程序的输出结果是( )。 #include "stdio.h" fun (x int x { int y=0; static int z=5; z=x++,y++; return(Z); } main() { int a=4,i,j; for(i=0;i<2;i++) j=fun(a++); printf("%d",j); }

    A.0

    B.3

    C.4

    D.5


    正确答案:D
    解析:本题在fun()函数中定义了一个静态局部变量z,在第一次调用此函数时,z被初始化为5,而以后的调用2都会保留上次调用后的值。主函数通过一个for循环,二次调用fun()函数,第1次调用实参表达式a++的值为4,执行z=x++,y++;语句,因运算符“=”的优先级高于“,”,故z的值为表达式x++的值,x++是先对z赋值再对x加1,则z的值为4。第二次调用实参表达式a++的值为5,返回结果也为5,所以最后输出结果是5。D为所选。

  • 第21题:

    阅读下面程序: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

  • 第22题:

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

  • 第23题:

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

  • 第24题:

    下面程序的输出结果是()。includevoid main(){int x=-1,y=5,z;z=(x++<0)&&

    下面程序的输出结果是( )。#include<iostream.h>void main(){int x=-1,y=5,z;z=(x++<0)&& (y-->=0);cout<<x<<'\t'<<y<<'\t'<<z<<end1;}

    A.-1 5 0

    B.-1 4 1

    C.0 4 1

    D.0 4 0


    正确答案:C