参考答案和解析
正确答案: 3
解析: 暂无解析
更多“填空题写出程序的运行结果。 main( ) { int a=0; for ( a=0;a3;a++ ); printf ( " %d/n", a ); } 输出结果是()。”相关问题
  • 第1题:

    有以下程序 main() {int c=35;printf("%d\n",c&c);} 程序运行后的输出结果是

    A.0

    B.70

    C.35

    D.1


    正确答案:C
    解析:按位与“&”,因为1&1=1,0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。

  • 第2题:

    以下程序的输出结果是( )。 includefun(){ int a=0;a+=3;printf("%d",A); } main() {int

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

    include<stdio.h>

    fun()

    { int a=0;

    a+=3;

    printf("%d",A);

    }

    main()

    { int cc;

    for(cc=1;cc<=4;cc++)

    fun();

    printf("\n");

    }


    正确答案:3 3 3 3
    3 3 3 3 解析:本题考查for循环,for(cc=1;cc=4;cc++)表示循环4次,a+=3表示每次a的值增加3,但是子函数中没有将变量a定义为static类型,所以每次调用完子函数之后,变量a所做的改变都不能保存,这样在下一次调用子函数时,a的初值仍是0,所以不管调用多少次,子函数输出始终是3。

  • 第3题:

    下列程序执行输出的结果是______。 include f (int a) {int b=0;static c=7;a=c++; b++

    下列程序执行输出的结果是______。

    include <stdio.h>

    f (int a)

    { int b=0;

    static c=7;

    a=c++; b++;

    return (a);

    }

    main()

    { int a=2,i,k;

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

    k=f(a++);

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

    }


    正确答案:8
    8 解析:第1次for循环,i=0,调用函数f(2),然后将a的值加1,在f()函数中,变量c为static类型,所以c=8;第2次for循环, i=1,调用函数f(3),然后将a的值加1,调用函数f(3)时,a=c++=8,所以k=8。

  • 第4题:

    有以下程序 int a=3; main() { int s=0; { int a=5;s+=a++;} s+=a++; printf("%d\n",s); } 程序运行后的输出结果是______。

    A.8

    B.10

    C.7

    D.11


    正确答案:A

  • 第5题:

    以下程序的输出结果是( )。 main { int a=3: printf("%d\n",(a+a-=a*a)); }A.-6B.12S

    以下程序的输出结果是( )。 main { int a=3: printf("%d\n",(a+a-=a*a)); }

    A.-6

    B.12

    C.0

    D.-12


    正确答案:D
    本题可以写成:a+a+(a-(a*a)),所以*的优先级最高,其次是-=的,+的优先级最低,因此先求a-=a*a=9,表达式变为a+a+-=9,a即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。

  • 第6题:

    以下程序的输出结果是()。includemain(){int n=4; while(n--) printf("%d",--n);}A.2 0

    以下程序的输出结果是( )。 #include <stdio.h> main() { int n=4; while(n--) printf("%d ",--n); }

    A.2 0

    B.3 1

    C.3 2 1

    D.2 1 0


    正确答案:A
    解析:n--是先使用后自减,--n是先自减后使用。n=4时,执行n--后,n变为3,执行--n后,n变为2,所以,第一次输出时,n为2;同上过程,第二次输出时,n为0。

  • 第7题:

    以下程序的输出结果是( )。 include main()fint x=0; sub(&x,16,2); printf("%d\n",

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

    include<stdio.h>

    main()

    fint x=0;

    sub(&x,16,2);

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

    }

    sub(int*a,int n,int k)

    {if(k<=n) sub(a,n/2,2*k);

    *a+=k;

    }


    正确答案:14
    14 解析:本题考查递归函数的调用。在主函数中调用sub(&x,16,2)函数,此时n=16,k=2,if语句的控制的条件k=n成立,所以执行下面的语句,调用sub(x,8,4),此时n=8,k=4,if语句的控制条件k=n成立,所以执行下面的语句,调用sub(x,4,8),此时n=4,k=8,if语句控制的条件k=n不成立,因此,最后得x=2+4+8=14。

  • 第8题:

    有如下程序 main() { int x=1,a=0,b=0; switch(x){ case 0 : b++; case 1 : a++; case 2 : a++;b++; } printf("a=%d,b=%d\n",a,B) ; } 程序运行后的输出结果是( )

    A.a=2,b=1

    B.a=1,b=1

    C.a=1,b=0

    D.a=2,b=2


    正确答案:A

  • 第9题:

    有以下程序: #include<stdio.h> int f(int m) { static int n=0; n+=m; return n; } main( ) { int n=0; printf("%d,"f(++n)); printf("%d\n",f(n++)); } 程序运行后的输出结果是( )。

    A.1,2

    B.1,1

    C.2,3

    D.3,3


    正确答案:A
    由题可知,输出是调用了f函数,其中有f(++n)和f(n++),其中n=0,所以输出的结果为l,2。

  • 第10题:

    以下程序的输出结果是( )。 include fun() {static int a=0; a+=3;printf("%d",A); } ma

    以下程序的输出结果是( )。 include<stdio.h> fun() {static int a=0; a+=3;printf("%d",A); } main() {int cc; for(cc=1;cc<5;cc++)fun(); printf("\n"); }


    正确答案:3 6 9 12
    3 6 9 12 解析:本题考查最基本的for循环。for(cc=1;cc5;cc++)规定循环次数为4次,每次a+=3,即每次a的值增加3,但因为fun函数中变量a为static类型,所以每次调用完子函数之后,变量a所做的改变都要保存。

  • 第11题:

    单选题
    有以下程序#include int a=4;int f(int n){ int t=0; static int a=5; if(n%2) {  int a=6;  t+=a++; } else {  int a=7;  t+=a++; } return t+a++;}main(){ int s=a,i=0; for(;i<2;i++)s+=f(i); printf(%d,s);}程序运行后的输出结果是(  )。
    A

    36

    B

    24

    C

    32

    D

    28


    正确答案: C
    解析:
    函数f中,不管是if语句块还是else语句块,a都是局部变量。f(0)和f(1)调用f函数都是执行else语句块。t+=a++等效于t=t+a;a++;,else语句块执行完后,t=7;函数f中,a也是局部变量,执行return时,a=5,t=7,返回12。s=4+ f(0)+ f(1) = 12 + 12 =28。答案选择D选项。

  • 第12题:

    单选题
    有以下程序#include int f(int n){ int t=0,a=5; if(n/2) {  int a=6;  t+=a++; } else {  int a=7;  t+=a++; } return t+a++;}main(){ int s=0,i=0; for(;i<2;i++)s+=f(i); printf(%d,s);}程序运行后的输出结果是(  )。
    A

    36

    B

    28

    C

    32

    D

    24


    正确答案: C
    解析:
    函数f中,不管是if语句块还是else语句块,a都是局部变量。f(0)和f(1)调用f函数都是执行else语句块。t+=a++等效于t=t+a;a++;,else语句块执行完后,t=7;函数f中,a也是局部变量,执行return时,a=5,t=7,返回12。s= f(0)+ f(1) = 12 + 12 =24。答案选择D选项。

  • 第13题:

    以下程序的输出结果是( )。 main {int x=0.5;char z=a; printf("%d\n",(x&1)&&(z<2));}A.0S

    以下程序的输出结果是( )。 main {int x=0.5;char z=a; printf("%d\n",(x&1)&&(z<2));}

    A.0

    B.1

    C.2

    D.3


    正确答案:B
    (x&1)&&(z<2)=(0.5&1)&&(a<z)=1&&1=1,故选择B选项。

  • 第14题:

    若运行输入:3<回车>,则以下程序的输出结果是( )。 main() {int a,b; scanf("%d",&A); b=(a>=0

    若运行输入:3<回车>,则以下程序的输出结果是( )。 main() {int a,b; scanf("%d",&A); b=(a>=0)?a:-a; printf("b=%d",B); }


    正确答案:b=3
    b=3 解析:条件表达式的基本格式为:“表达式1?表达式2:表达式3”;其功能是:表达式1的值若非0,则计算表达式2的值,且为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。因为a=3,则a>=0成立,所以b=a=3。

  • 第15题:

    若有如下程序: main() {int a=0,t=0; while(!a!=0) t+=a++; printf("%d,%d\n",t,A) ; } 则程序运行后的输出结果是( )

    A.0,1

    B.1,0

    C.0,0

    D.1,1


    正确答案:A

  • 第16题:

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

  • 第17题:

    有以下程序includevoid main(){int a=1,b=0;printf("%d,",b=(a++)+(a++));pfintf("%d\

    有以下程序 #include<stdio.h> void main() { int a=1,b=0; printf("%d,",b=(a++)+(a++)); pfintf("%d\n",a+B); } 程序运行后的输出结果是( )。

    A.4,6

    B.2,5

    C.3,5

    D.2,6


    正确答案:B

  • 第18题:

    有以下程序

    #include <stdio.h>

    void func(int n)

    { int i;

    for(i=0;i<=n;i++) printf(”*”);

    printf(”#”).

    }

    main( )

    { func(3); printf(”???? ”); func(4); printf(”\n”); }

    程序运行后的输出结果是

    A)****#????***#

    B)***# ????*** *#

    C)**#????*****#

    D)****#????*****#


    正确答案:D
    【答案】D
    【知识点】函数调用中形参与实参的关系
    【解析】第一次调用实参为3,所以形参变量n为3,打印四个*号后打印一个#号。然后在主函数中打印四个?。再次调用func函数,实参值为4,所以形参n的值为4,按照循环,打印五个*号后结束循环,再打印一个#号。

  • 第19题:

    以下程序的输出结果是main() { int x=l,a=2,b=3; switch(x) { case 0:b++; case 1:a++;break; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); }


    正确答案:

    a=3,b=3


    在本题中,程序首先定于了三个整型变量x、a和b,其初值分别为1、2、3,然后执行switch选择语句,由于变量x的值为1,因此,执行case 1结构,这个结构中首先执行a++,即将变量a的值加1,然后执行break语句,执行此语句结束switch。此时,变量b的值没有发生变化。然后程序执行输出语句,根据输出语句的输出格式,最后程序的输出结果是a=3,b=3。

  • 第20题:

    以下程序运行后的输出结果是 ______。main(){int a,b,c; a=10;b=20;c=(a%b<1)||(a/b>1); printf(“

    以下程序运行后的输出结果是 ______。 main() { int a,b,c; a=10;b=20;c=(a%b<1)||(a/b>1); printf(“%d %d %d\n",a,b,c); }

    A.10 20 0

    B.20 10 0

    C.10 10 0

    D.20 20 0


    正确答案:A
    解析:a%b=11不成立,根据“||”的性质,不需要看后面的表达式,就可以得出c=0。

  • 第21题:

    下列程序的输出结果是()。 include main() {int a=4; printf("%d\n",(a+=a-=a*A) ); }A

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

    #include<stdio.h>

    main()

    { int a=4;

    printf("%d\n",(a+=a-=a*A) );

    }

    A.-8

    B.14

    C.0

    D.-24


    正确答案:D
    解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式 (a+=a-=a*a)=(a=a+a=-24)。

  • 第22题:

    写出程序的运行结果。 main( ) { int a=0; for ( a=0;a<3;a++ ); printf ( " %d/n", a ); } 输出结果是()。


    正确答案:3

  • 第23题:

    单选题
    有以下程序#include main(){ int a=1, b=0; for(; a<5;a++) {  if(a%2 == 0)break;  continue;  b += a; } printf(%d ,b);}程序运行后的输出结果是(  )。
    A

    0

    B

    1

    C

    10

    D

    4


    正确答案: A
    解析:
    该程序的for循环中,如果循环变量a为偶数,则执行break语句直接跳出循环;如果a为奇数,则直接执行continue语句进入下一次循环。因此无论a取何值,语句b+=a都不会执行,即b没有改变,最后输出0。答案选择A选项。