C语言 若有定义,int a=010,b=1,c=2;接着顺序执行下列语句后,变量c中的值是3?(

C语言
若有定义,int a=010,b=1,c=2;接着顺序执行下列语句后,变量c中的值是3?(why)c=(a-=(b+5));c=(a%11)+(b=1);

int a=010这个是八进制表达,十进制为a=8//凡是0开头的都是八进制

a-=(b+5)这里b+5=6,a-=6,就是a=a-6=2//a-=(b+5)这里先计算再赋值,所以只在这里a的值变化

c=(a%11)+(b=1)=2+1=3
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-10
是3
首先,a=010是八进制数10,转为十进制后为8,即a=8
b+5=6,a-=6=2
a%11=2,b=1 ,c=2+1=3

.追问

我问的是为啥是3。。。。。

全国计算机等级考试二级C语言历年试题及答案
A)每个C程序文件中都必须有一个main()函数 B)在C程序的函数中不能定义另一个函数 C)C程序可以由一个或多个函数组成 D)在C程序中main()函数的位置是固定的(11)将E-R图转换到关系模式时,实体与联系都可以表示成 A)属性 B)关系 C)键 D)域 (12)下列定义变量的语句中错误的是 A)double int_; B)int...

inta=1,b=2,c=3,d=a;intk=a++<=(--b)||(c--)-1<(a++)
C语言默认是短路求值,左边的真与任何逻辑值相或,结果均会是真,则此时不再计算或右边的值了。故后面c--,a++等都不在计算,也就是不再变化。因此有 a=2, b=1, c=3(不变化), d=1(不变化), k =1(逻辑真)不过,真正的程序员是不会这样写代码的,他们会用括号把运算先后顺序写的...

int a=3,b=4,c=5;执行表达示,a++>&&c--&&++c后,a,b,c的值
假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。

C语言中设a=1,b=2,c=3,d=4;执行printf(%d%d%d\\n",a==b==c,c=a==b...
第二步:c==(a=b) 先运行a=b,值为3,在运行c==3,c的值为3, 结果为1,其他的值 a b c d 3 3 3 4 第三步:c=a==b 先运行a==b,第二步可以看出a=3,b=3,a==b的值为1,将其付给c ,即c=1 其他值为 a b c d 3 3 1 4 第四步:a==b=...

c语言表达式! a< b的值是什么意思?
a = 10,b = 20,表达式!a<b值是 true。条件运算符和条件表达式:1、条件运算符是C语言中唯一的一个三目运算符,它需要三个操作数,条件表达式为:表达式1?表达式2:表达式3。?:称为条件运算符 2、执行情况:先计算表达式1的值,若为真,则整个表达式的值为表达式2的值,否则,为表达式3的...

c语言中条件运算 结合方向 从右到左 什么意思
int a=1, b=3, c=2, d;d = a>b ? a : c>b ? c : b; \/\/ 根据从右到左的结合顺序,则该表达式等价于d = (a>b ? a : (c>b ? c : b));\/\/ 计算过程:\/\/ 1、先算a>b,结果为0;\/\/ 2、再算(c>b ? c : b),之后算c>b,结果为0,\/\/ 3、所以最后结果为b的...

C语言?和:操作符怎么用
2. 运行顺序是先计算表达式1,根据其结果决定执行后续的2或3。3. 三目运算符可以直接将计算结果赋值给变量,如`min=(a<b)?a:b`,这里min会被赋予a和b中的较小值。总的来说,三目运算符是C语言中一个方便快捷的条件处理工具,通过它,我们可以用简洁的代码实现复杂的条件判断和值赋值。更多详细...

int a=3,b=2,c=1; c=5?a++:b--; printf("%d\\n",c) 输出为什么是3啊...
C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:3+5,6+8 称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为 表达式1,表达式2 逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6...

C语言高手,帮帮忙
然后在执行i=st%i,因为初值i=10,经过执行第一句后st=75,所以i=75%10 ,所以是5 (8) !(非) &&(且) ||(或)(9) 1,2,3 因为if的条件是a>c,那么要当a>c成立的时候,才执行后面的语句,但是初值给出了a=1,c=3,所以,不执行后面的语句,所以还是现实原来的值 (10)x=0;...

c语言数组的定义
。5、不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。例如:define FD 5 \/\/ ...int a[3+2],b[7+FD];是合法的。但是下述说明方式是错误的。int n=5;int a[n];6、允许在同一个类型说明中,说明多个数组和多个变量。例如:int a,b,c,d,k1[10],k2[20];...

相似回答