更多“执行下列程序中的输出语句后,a的值是( )。 main() { int a; printf("%d\n",(a=2*3,a*5,a+7)); }A.17B.37C.6D.13”相关问题
  • 第1题:

    有以下程序: main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; }while(!i); n++; } printf("n=%d\n",n); } 程序执行后的输出结果是( )。

    A.n=5

    B.n=2

    C.n=3

    D.n=4


    正确答案:D
    解析:for循环当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1。当i=3时,执行do循环,由于if{3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3。当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++,此时n的值为4。当i=5时,退出for循环,因此最后输出的n值为4。所以,4个选项中选项D符合题意。

  • 第2题:

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

    void func(int *a,int b[])

    { b[0]=*a+6; }

    main()

    { int a,b[5];

    a=0; b[0]=3;

    func(&a,b); printf("%d\n",b[0]);}

    A.6

    B.7

    C.8

    D.9


    正确答案:A
    解析:函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针型。它的作用是将一个变量的地址传递到另一个函数中。当数组名作参数时,如果形参数组中的各元素的值发生变化,实参数组元素的值也将随之发生变化。

  • 第3题:

    有以下程序 main( ) { int x[8]={8,7,6,5,0,0},*s; s=x+3; printf("%d\n",s[2]); } 执行后输出结果是

    A.随机值

    B.0

    C.5

    D.6


    正确答案:B
    解析:首先使指针指向数组元素x[3],即5,执行printf语句,输出s[2]的值即s+2(指针后移两位)。

  • 第4题:

    执行下面程序后,a的值是 ( ) main( ) { int a; printf("%d\n",(a=3*5,a*4,a+5));}

    A.65

    B.20

    C.15

    D.10


    正确答案:B

  • 第5题:

    下列程序执行后输出的结果是()includef(int A){ int b=0;static c=3;a=c++,b++;return

    下列程序执行后输出的结果是( ) #include<stdio.h> f(int A) { int b=0; static c=3; a=c++,b++; return(A) ; } main() { int a=2,i,k; for(i=0;i<2;i++) k=f(a++); printf("%d\n",k); }

    A.3

    B.0

    C.5

    D.4


    正确答案:D

  • 第6题:

    有下列程序: main( ) { int k=5; while(--k) printf("%d",k=1); printf("/n"); } 执行后的输出结果是( )。

    A.1

    B.2

    C.4

    D.死循环


    正确答案:A
    在程序语句中,k的初始值为5,进行第l次while循环后,k自减l为4,非0,执行循环体里的printf语句,输出k,此时k的值变为l。程序执行第2次循环时,k自减l变为0,为假,退出while循环语句。所以程序的最后结果为l。

  • 第7题:

    有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

    有以下程序,程序执行后,输出结果是【 】

    include<stdio.h>

    void fun(int*A)

    { a[0]=a[1];}

    main()

    { int a[10]={10,9,8,7,6,5,4,3,2,1,},i;

    for(i=2;i>1=0;i-) fun(&a[i]);

    for(i=0;i<10;i++) printf("%d,a[i]);

    printf("\n");

    }


    正确答案:7777654321
    7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

  • 第8题:

    若有以下程序main(){ int p=5,a=5; if(p=1!=0) printf("%d\n",p); else printf("%d\n",p+2);}程序执行后的输出结果是


    正确答案:√
    在本题中,程序首先定义两个整型变量p和a,都被初始化为5,然后执行if语句,该语句的判断条件为p=1!=0,这也是求解这个题目的关键,由于运算符!=的优先级比运算符=高,因此,本判断条件表达式等价于p=(1!=0),很明显,1是不等于0的,返回的是一个真值结果1,因此,此时变量p的值为1,那么条件为真,if语句返回的结果也为真,因此,执行printf("%d\n",p);语句,由于此时变量p的值已经变为1,因此,程序运行后的输出结果为1。

  • 第9题:

    下列程序执行后输出的结果是( )。 int d=1; fun (int p) { int d=5; d + =p + +; printf("%d,",d); } main( ) { int a=3; fun(a); d + = a + +; printf("%d\n",d); }

    A.8, 4

    B.9, 6

    C.9, 4

    D.8, 5


    正确答案:A

  • 第10题:

    有以下程序:include main(){ int i,n=0;for(i=2;i<5;i++){do {if(i%3) continue;n++;

    有以下程序: #include <stdio.h> main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(! i); n++; } printf("n=%d\n",n); } 程序执行后的输出结果是( )。

    A.n=5

    B.n=2

    C.n=3

    D.n=4


    正确答案:D
    解析:for循环中,当i=2时,i%3为真,结束本次while循环,!i为假,执行n++,n为1;当i=3时,i%3=0,执行n++,n为2,!i为假,执行n++,n为3;当i=4时,i%3为真,结束本次while循环,!i为假,执行n++,n为4;当i=5时,for循环结束。这时输出n=4。

  • 第11题:

    有以下程序 main() { int i,n=0; for(i=2;i<5;i++) { do {if(i%3)continue; n++; }while(!i); n++; } printf("n=%d\n",n); } 程序执行后输出结果是

    A.n=5

    B.n=2

    C.n=3

    D.n=4


    正确答案:D
    解析:do…while的结构形式为:do循环体,while(条件表达式),当程序执行到do后,先执行循环体一次,然后才对条件表达式进行计算、判断。若条件表达式的值为真,则重复执行一次循环体;否则退出,与while结构相比,do…while结构至少要执行一次循环体;运算符%是求模运算,即求两个数相除的余数。continue语句的作用时结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中,当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1,当i=3时,执行do循环。由于if(3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3;当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断 while循环条件为假,故退出while循环,执行n++,此时n的值为4;当i=5时,退出for循环,因此最后输出的n的值为4。

  • 第12题:

    以下程序的输出结果是()。includeint fan(int);main(){int w=5; fun(w);printf("\n");}

    以下程序的输出结果是( )。 #include <stdio.h> int fan(int); main() { int w=5; fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }

    A.5 4 3 2 1

    B.0 1 2 3 4 5

    C.1 2 3 4 5

    D.5 4 3 2 1 0


    正确答案:B
    解析:本题考查函数的递归调用。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函数调用的,其余是在fun函数中调用的。

  • 第13题:

    有下列程序:

    main()

    {int k=5;

    while(--k) printf("%d",k-=3);

    printf("\n");}

    执行后的输出结果是( )。

    A.1

    B.2

    C.4

    D.死循环


    正确答案:A
    解析:在程序语句中,k的初始值为5,进行第 1次while循环后,k自减1为4,非0,执行循环体里的printf语句,输出1,此时k的值变为1。程序执行第2次循环时,k自减1变为0,为假,退出while循环语句。所以程序的最后结果为1。

  • 第14题:

    以下语句段执行后的输出结果是()。includemain(){int k=3;if(k)printf("")elseprint

    以下语句段执行后的输出结果是( )。 #include<stdio.h> main() {int k=3; if(k) printf("###") else printf("&&&&");}

    A.###

    B.&&&&

    C.###&&&&

    D.有语法错误,不能执行


    正确答案:D
    解析:在C语言中语句结束时应该以分号结尾,程序中的第1个printf("###")输出语句后面少了一个分号(;),因此执行程序时会出错。

  • 第15题:

    若有以下程序

    main()

    { int p,a=5;

    if(p=a!=0)

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

    else

    pfintf("%d\n",p+2);

    }

    执行后输出结果是【 】。


    正确答案:√
    1 解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=o”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。

  • 第16题:

    以下程序运行后的输出结果是 ______。 main() { int a=1,b=2,c=3; if(c=a) printf("%d\n",c); else printf("%d\n",b); }

    A.2

    B.3

    C.5

    D.1


    正确答案:B
    解析:根据if条件,语句c=a的值为1,因此输出c值为3。

  • 第17题:

    若执行下列程序时从键盘上输入2,则输出结果是()。 inclUde main() {int a; scanf("%d",

    若执行下列程序时从键盘上输入2,则输出结果是( )。

    #inclUde<stdio.h>

    main()

    {int a;

    scanf("%d",&A);

    if(a++<3)

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

    else printf("%d\n",a--);

    }

    A.1

    B.3

    C.2

    D.4


    正确答案:B
    解析:本题考查if else语句。程序中首先使用函数scanf()通过键盘读入a的值,并通过第1个if语句,先判断条件,取a的值2和3比较,然后将a的值加1,发现条件成立,执行下列的printf语句,输出a的值3。

  • 第18题:

    执行下面程序中的输出语句后,a的值是()。includemain(){int a; printf("%d\n",(a=3*5,a

    执行下面程序中的输出语句后,a的值是( )。 #include <stdio.h> main() { int a; printf("%d\n",(a=3*5,a*4));

    A.15

    B.20

    C.10

    D.60


    正确答案:A
    解析:本题考查对逗号运算符的理解。逗号运算符的求解过程是从左至右,依次求解各个表达式的值,所以在该题中,先使a的值等于15,再计算a*4,此时整个表达式的值为60,但a的值并未改变,仍为15。

  • 第19题:

    执行下列程序中的输出语句后,a的值是( )。

    A.17

    B.37

    C.6

    D.13


    正确答案:C
    本题考查逗号表达式。程序输出时输出一个%d,所以输出第一个a的值与后续无关。

  • 第20题:

    执行下面程序中的输出语句后,a的值是

    main( )

    {

    int a;

    cout<<(a=3*5,a*4,a+5);

    }

    A.65

    B.20

    C.15

    D.10


    正确答案:B
    解析:本题考查逗号表达式的运算特点。逗号表达式是所有表达式中优先级最低的,从左到右结合,其求解过程是:将逗号表达式各表达式按从左到右的顺序依次求值,并将最右边的表达式结果作为整个逗号表达式的结果。这里考生要注意的是,第二个表达式执行完后,a的值并没有发生变化,依然是15,所以在执行a+5的时候,结果是20,而不是65。正确答案应是B。

  • 第21题:

    执行下列程序语句后,输出结果为()。ineludeusing namespace std;int m=5;int main(){i

    执行下列程序语句后,输出结果为( )。 #inelude<iostream> using namespace std; int m=5; int main() { int m=3; m++; ::m++; cout<<m<<end1; return 0; }

    A.3

    B.4

    C.5

    D.6


    正确答案:B

  • 第22题:

    有以下程序: include < stdio. h > main ( ) int a=3,b=4,c=5,d=2;if(a>b) if(b>c)printf("%d",

    有以下程序: #include < stdio. h > main ( ) int a=3,b=4,c=5,d=2; if(a>b) if(b>c)printf("%d",d++ +1); else printf( "% d", + + d + 1 ); printf( "% d \n" ,d); 程序运行后的输出结果是( )。

    A.2

    B.3

    C.43

    D.44


    正确答案:A
    解析:C语言规定:else总是与离自己前面最近的if配对,程序中if(a>b)不成立,因此执行prinff("%d\n",d);,输出结果为2。

  • 第23题:

    下列程序执行后输出的结果是 ______。int d=1;fun(int p){ int d=5; d+=p++; printf("%d,",D) ;}main(){ int a=3; fun(A) ; d+=a++; printf("%d\n",D) ;}

    A.8,12

    B.9,13

    C.8,4

    D.9,5


    正确答案:C
    解析:本题执行过程如下首先调用fun函数,使得实参a的值3传递给形参p,得到局部变量d=8,打印出局部变量d的值8;返回主函数执行“d+=a++”,此处的d为全局变量,所以d=1+3=4(由于本题是值传递,所以在函数fun中对p值的改变并不能引起a的改变),故本题的输出是8,4。