单选题若有定义:int a=0,b=0,c=0,d=0; 有C语言表达式 (a++ && b++)? c++ : d++,以下关于其执行顺序的叙述正确是(  )。A 先执行a++,表达式a++的值为0,由此即可确定(a++ && b++)值为0,因此执行d++B 先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++ && b++)值为0,因此执行d++C 先执行a++,表达式a++的值为1;再执行b++,表达式b++的值为1,由此可确定(a++ && b++)值为1,

题目
单选题
若有定义:int a=0,b=0,c=0,d=0; 有C语言表达式 (a++ && b++)? c++ : d++,以下关于其执行顺序的叙述正确是(  )。
A

先执行a++,表达式a++的值为0,由此即可确定(a++ && b++)值为0,因此执行d++

B

先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++ && b++)值为0,因此执行d++

C

先执行a++,表达式a++的值为1;再执行b++,表达式b++的值为1,由此可确定(a++ && b++)值为1,因此执行c++

D

先执行b++,表达式b++的值为1;再执行a++,表达式a++的值为1,由此可确定(a++ && b++)值为1,因此执行c++


相似考题
更多“单选题若有定义:int a=0,b=0,c=0,d=0; 有C语言表达式 (a++ b++)? c++ : d++,以下关于其执行顺序的叙述正确是(  )。A 先执行a++,表达式a++的值为0,由此即可确定(a++ b++)值为0,因此执行d++B 先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++ b++)值为0,因此执行d++C 先执行a++,表达式a++的值为1;再执行b++,表达式b++的值为1,由此可确定(a++ b++)值为1,因此执行c++D”相关问题
  • 第1题:

    有以下程序includemain(){intx=1,y=0,a=0,b=0; switch(x) {case1:switch(y){case0:a++

    有以下程序 #include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++; break; case 1:b++; break; } case 2:a++;b++; break; case 3:a++;b++; } printf("a=%d,b=%d\n",a,b); } 程序的运行结果是

    A.a=1,b=0

    B.a=2,b=2

    C.a=1,b=1

    D.a=2,b=1


    正确答案:D
    解析:本题考查switch语句,首先,x=1符合条件case 1,执行switch(y)语句。y=0符合case 0语句,执行 a抖并跳出switch(y)语句,此时a=1。因为case 1语句后面没有break语句,所以向后执行case 2语句,执行a++,b++,然后跳出switch(x),得a=2,b=1。

  • 第2题:

    若有条件表达式(x)?a++:b++;则表达式中(x)等价于(x!=0)。()

    此题为判断题(对,错)。


    参考答案:正确

  • 第3题:

    有以下程序includemain(){intx=1,y=0,a=0,b=0;switch(X){case1:switch(y){case0:a++;b

    有以下程序 #include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(X) { case 1: switch(y) { case 0:a++; break; case 1:b++; break; } case 2:a++;b++;break; case 3:a++;b++; } printf("a=%d,b=%d\n",a,b); } 程序

    A.a=1,b=0

    B.a=2,b=2

    C.a=1,b=1

    D.a=2,b=1


    正确答案:D
    解析: 本题考查switch语句,首先,x=1符合条件casel,执行switch(y)语句,y=0符合case 0语句,执行a++并跳出switch(y)语句,此时a=1。因为case 1语句后面没有break语句,所以向后执行case2语句,执行a++,b++,然后跳出switch(x),得a=2,b=1。

  • 第4题:

    有下列程序:includemain(){int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0

    有下列程序: #include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++;break; case 1:b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,B) ; } 程序的运行结果是( )。

    A.a=1,b=0

    B.a=2,b=2

    C.a=1,b=1

    D.a=2,b=1


    正确答案:D
    解析:本题考查的是用switch语句实现多分支选择结构,首先进入第一个switch(x)判断,进入case 1中进行嵌套判断,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接着执行case 2,a自加为2,b自加为1,遇到break,结束循环,此时a=2,b=1,故选项D)正确.

  • 第5题:

    假设a、b均是整型变量,则表达式a=2,b=5,a++,b++,a+b值为______。


    正确答案:9
    9 解析:本题考核运算符的应用,题中的逗号运算符用于将多个表达式串在一起,逗号运算符的左边总是不返回的,这就是说,最右边表达式的值才是整个表达式的值。逗号运算符的结合性为从左到右。所以从左开始计算,a被赋值为2,b被赋值为5,然后a和b分别自增1,最后返回a+b,即9。

  • 第6题:

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

  • 第7题:

    若a的值为1,则执行语句if((a>0)||(a++<0))? a++;后,a的值是( )。A.3B.2C.1D.0

    若a的值为1,则执行语句if((a>0)||(a++<0))? a++;后,a的值是( )。

    A.3

    B.2

    C.1

    D.0


    答案:B

  • 第8题:

    若有定义语句“int a,b;double X;”,则下列选项中没有错误的是( )。

    A.switch(X%2) { case 0:a++;break; case l:b++;break; default:a++;b++; }

    B.switch((int)x/2.O) { case 0:a++;break; case l:b++;break; default:a++;b++; }

    C.switch((int)X%2) { case 0:a++;break; case l:b++;break; default:a++;b++; }

    D.switch((int)(x)%2) { case 0.0:a++;break; case l.0:b++;break; default:a++;b++; }


    正确答案:C
    C语言中,switch语句中的表达式和case表达式都不能是浮点类型。所以选C。

  • 第9题:

    假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()。


    正确答案:10

  • 第10题:

    假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()


    正确答案:8

  • 第11题:

    单选题
    若有定义:int a=0,b=0,c=0,d=0;以下关于C语言表达式:(++a‖++b)? ++c:++d执行顺序的叙述正确的是(    )。
    A

    先执行++a,表达式++a的值为1;再执行++b,表达式++b的值为1,由此可确定(++a‖++b)值为1,因此执行++c

    B

    先执行++a,表达式++a的值为1,由此可确定(++a‖++b)值为1,因此执行++c

    C

    先执行++b,表达式++b的值为1;再执行++a,表达式++a的值为1,由此可确定(++a‖++b)值为1,因此执行++c

    D

    先执行++a,++b,++c,++d,使得a,b,c,d的值都为1,由此可确定(++a‖++b)值为1,因此执行++c


    正确答案: A
    解析:
    ++a表示先将变量a+1,再执行其他操作,逻辑或运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式(++a‖++b)中,左操作数++a的值为1,已经可以确定整个逻辑表达式的结果为1,因此右操作数++b不再求解,直接执行表达式2,即++c,B项正确。答案选择B选项。

  • 第12题:

    单选题
    有以下程序#include main(){ int x=1,y=0,a=0,b=0; switch(x) {  case 1:      switch(y)      {       case 0:a++;break;       case 1:b++;break;      }  case 2:a++;b++;break;  case 3:a++;b++; } printf(a=%d,b=%d,a,b);}程序的运行结果是(  )。
    A

    a=2,b=1

    B

    a=2,b=2

    C

    a=1,b=1

    D

    a=1,b=0


    正确答案: D
    解析:
    当执行swicth语句时,首先计算紧跟其后一对括号中的表达式的值,然后在switch语句体内寻找与该值吻合的case标号。如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case和default中的语句,直到switch语句体结束;每当执行到break语句时,立即跳出 switch语句体。switch语句通常总是和break语句联合使用,使得switch语句真正起到分支的作用。本题中,x=1,首先进入外层分支1,接下来y=0,再进入内层分支0,执行a++,此时a=1,接下来遇到break,跳出内层switch;由于外层分支中没有break语句,会继续执行外层分支2,执行a++,b++,此时a=2,b=1;然后遇到break语句,跳出外层switch。答案选择A选项。

  • 第13题:

    设a、b、c都是整型变量,如果a的值为1,b的值为2,则执行c=a++||b++;语句后,变量b的值是().


    正确答案:2
    a||b若a,b都为假,则a||b为假,其他都为真.如果a为真时,则对b不进行真假,所以对于c=a++||b++,因为a++时为真,所以b++不进行判断,b的值保持不变,故b=2。

  • 第14题:

    有如下程序:includemain(){int x=1,a=0,b=0; switch(x) {casc 0:b++;case 1:a++;case

    有如下程序: #include<stdio.h> main() { int x=1,a=0,b=0; switch(x) { casc 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
    解析:该程序的关键是要搞清楚程序执行的路线。由于x的值等于1,所以在switch语句中,程序从case1后面的语句开始执行。由于case1后面没有break语句,所以程序顺序执行case2后面的语句。程序共执行了三条语句:a++;a++;b++;所以,变量a和b最后的值分别为2和l。选项A)正确。

  • 第15题:

    执行如下程序: public class Test { public static void main (String args[]) { int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++; } System.out.println("a=" +a ",b=" +b); } } 该程序的输出结果是( )。

    A.a=2,b=1

    B.a=1,b=1

    C.a=1,b=0

    D.a=2,b=2


    正确答案:A
    解析:本题关键是要搞清楚该程序执行了哪几条语句。由于x的值等于1,所以switch结构中,程序从case1后面的语句开始执行,又因为case1后面的语句没有以break结束,所以程序要继续往下执行case 2后面的语句。所以,该程序共执行了这3条语句:a++;a++;b++;因此,变量a和b最后的值应该为2和1。

  • 第16题:

    设a、b、c都是整型变量,如果a的值为1,b的值为2,则执行c = a++‖b++;变量b的值是【 8 】。


    正确答案:
    【答案】2
    【知识点】||运算符的考察
    【解析】||运算符只要有一项为真结果就为真,且如果前面表达式已经为真后满表达式不再执行。所以b的值还是2。

  • 第17题:

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

  • 第18题:

    下列程序的输出结果是

    main( )

    {int x=1,a=0,b=0;

    switch(x){

    case 0:b++;

    case 1:a++;

    case 2:a++;b++;

    }

    cout<<"a="<<a<<"b="<<b<<endl;

    }

    A.a=2 b=1

    B.a=1 b=1

    C.a=1 b=0

    D.a=2 b=2


    正确答案:A
    解析:本题主要考查switch语句中,break语句的作用。每个case语句后面如果没有break语句,则程序的执行流程将发生变化,即顺序执行各个case语句。这种情况一般不符合程序员的设计思路,但也可以用这种特性完成特殊控制。

  • 第19题:

    若有定义语句int a,b;double x;则下列选项中没有错误的是( )。

    A.switch(x%2) {case O:a++;break; case 1:b++;break; default:a++;b++; }

    B.switch((int)x/2.0) {case O:a++;break; case 1:b++;break; default:a++;b++; }

    C.switch((int)x%2) {case O:a++;break; case 1:b++;break; default:a++;b++; }

    D.switch((int)(x)%2) {case 0.O:a++;break; case 1.0:b++;break; default:a++;b++; }


    正确答案:C
    解析:C语言中switch语句中的表达式和case表达式都不能是浮点类型。所以选c。

  • 第20题:

    执行下面C语言程序段的结果是( )。main( ){int x=l,a=l,b=l;switch(x){case 0:b++;case 1:a++;case 2:a++;b++;}printf(”a=%d,b=%d“,a,b);}

    A.a=2,b=2
    B.a=3,b=2
    C.a=2,b=l
    D.a=3,b=3

    答案:B
    解析:
    switch case语句语法,当匹配到了一个case条件,会从该条件开始往下执行其余所有条件语句,不再进行判断,因此这里x=1匹配到了case1,其会执行case1及case2的语句。

  • 第21题:

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

    • A、a=1,b=0
    • B、a=2,b=1
    • C、a=1,b=1
    • D、a=2,b=2

    正确答案:B

  • 第22题:

    单选题
    若有定义语句int a,b;double x;则下列选项中没有错误的是(  )。
    A



    switch(x%2)
    {
     case 0:a++;break;
     case 1:b++;break;
     default:a++;b++;
    }

    B



    switch((int)x/2.0)
    {
     case 0:a++;break;
     case 1:b++;break;
     default:a++;b++;
    }

    C



    switch((int)x%2)
    {
     case 0:a++;break;
     case 1:b++;break;
     default:a++;b++;
    }

    D



    switch((int)(x)%2)
    {
     case 0.0:a++;break;
     case 1.0:b++;break;
     default:a++;b++;
    }


    正确答案: C
    解析:
    switch语句中,表达式的类型应与case语句后的常量类型保持一致,并且switch的判断条件只能为整型或字符型,case后面为常量表达式。A项,x%2得到的是浮点型数据,而case语句后的常量是整型数据,类型不一致;B项,(int)x/2.0得到的也是浮点型数据,类型不一致;D项,(int)x%2.0得到的是整型数据,而case语句后的常量是浮点型数据,类型也不一致。答案选择C选项。

  • 第23题:

    填空题
    假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+B.的值为()。

    正确答案: 9
    解析: 暂无解析