单选题若有定义: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

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


参考解析

解析:
把握前置运算和后置运算的基本运算规则。表达式1?表达式2:表达式3,若表达式1为真,则执行表达式2,否则执行表达式3。逻辑与运算符遵循“短路求值”策略,即在进行求值时,只要最终的结果已经可以确定是假,求值过程便告终止,表达式(a++&&b++)中,左操作数a++的值为0,已经可以确定整个逻辑表达式的结果为0,因此右操作数b++不再求解,直接执行表达式3,即d++,答案选择A选项。

相关考题:

有以下程序#include stdio.hmain(){ 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=0B)a=2, b=2C)a=1, b=1D)a=2, b=1

阅读下面程序,则执行后程序的结果为 【9】#include "stdio.h"main(){ int a=0,b=0;while(a 15)a++;while(b++ 15);printf( "%d,%d\n",a,b);}

有以下程序#include stdio.hmain(){ 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=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

有以下程序:includemain(){intx=1,y=0,a=0,b=0;switch(x){case 1:switch(y){case 0: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=0B.a=2,b=2C.a=1,b=1D.a=2,b=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=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

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

若有条件表达式(x)?a++:b++;则表达式中(x)等价于(x!=0)。() 此题为判断题(对,错)。

有如下程序: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=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

有以下程序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=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

执行如下程序: 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=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

有下列程序: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=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

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

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

下列程序的输出结果是______。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=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

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

下列程序的输出结果是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=1B.a=1 b=1C.a=1 b=0D.a=2 b=2

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

若有定义语句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++; }

若有定义语句“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语言程序段的结果是( )。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=2B.a=3,b=2C.a=2,b=lD.a=3,b=3

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

下列程序的输出结果是(). 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=0B、a=2,b=1C、a=1,b=1D、a=2,b=2

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

单选题若有定义语句int a,b;double x;则下列选项中没有错误的是(  )。Aswitch(x%2){ case 0:a++;break; case 1:b++;break; default:a++;b++;}Bswitch((int)x/2.0){ case 0:a++;break; case 1:b++;break; default:a++;b++;}Cswitch((int)x%2){ case 0:a++;break; case 1:b++;break; default:a++;b++;}Dswitch((int)(x)%2){ case 0.0:a++;break; case 1.0:b++;break; default:a++;b++;}

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

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

单选题有以下程序#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);}程序的运行结果是(  )。Aa=2,b=1Ba=2,b=2Ca=1,b=1Da=1,b=0