1楼:匿名用户
这个涉及到c语言的单目运算符优先级与结合性的知识:
62616964757a686964616fe59b9ee7ad9431333330356165
优先级:
在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。
结合性:
c语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。
这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。
在你的问题中,"="在表达式中是赋值运算符,而在c语言中,赋值运算符是典型的右结合性运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。
所以,本例就是先计算双目运算符“>”:a>b,因为a=4,b=5,a是小于b的,所以式子计算就变成了c = a = 0,然后再计算a = 0(即a = (a > b)),最后式子就是c = 0, 所以答案选a
具体运算符优先级和结核性请参考:
http://wenku.baidu.***/view/044cc58a6529647d27285242.html
2楼:0冷雨
答案是a;因为a=a>b意思为把波尔值a>b赋值给a,因为a大于b,a>b等于0,所以a为0.望采纳~
3楼:匿名用户
a, a=0
= 是由du右向zhi左运算的,
a>b值为daofalse,值为0
所以c=a=0
另外也可以专写程序属验证:
#include
int main(void)
在c语言中,若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为多少?
4楼:假面
c=1,因为a/b默认来
是取整计算源!即5/8=1,c=1+0.4=1。计算过程中bai小数点之后的全部舍去
du。不是按四舍五入计算!
zhiint类型dao在内存中占用了4个字节,也就是32位。int类型是有符号的,因此,32位并不会全部用来存储数据,使用最高位来存储符号,最高位是0,提示数据是正数,最高位是1,表示数据是负数,使用其他的31位来存储数据。
5楼:卯丹司马寄真
首先a/b=1.6,但是因为为整型,所以取1,然后1+0.4=1.4由于同样的原因值为1
所以c=1;
6楼:安迪军团雷
int函数 ,将数字向下舍入到最接近的整数,即取不大于自变量的最大整数。a/b=1,c=1+0.4,c的值为1.
已知int a=5,b=4,c=6,d;,执行语句d=a>b?(a>c?a:c):b后,d的值为________。 具体过程 15
7楼:匿名用户
6首先运行的肯定是括号里的 a>c?a:c如果a大于c的话 结果为 a,
反之则为c, 所以结果是c
然后运行的是 a>b?c:b;
同上 所以结果为6
8楼:¤工藤星一
d的值为6
“条件?语句1:语句2”执行过程:
判断条件是否正确,如果正确,则执行语句1,否专则执行语句2首先执行“属a>c?a:c”,4<6,所以返回6则语句变成“d=a>b?
6:b;”
5>4,返回6
所以d的值为6
ps:“d=a>b?(a>c?a:c):b”的后面要加“;”
ps:你可以上机调试
**:#include "stdio.h"
void main()
9楼:匿名用户
a>c?a:c 这个结果是c
a>b?c:b 这个结果还是c
d=cd为六。
c语言环境中,设a=1,b=2,c=3,d=4,则表达式:a>b?a:c>d?a:d的结果为( )
10楼:lovefree随风
表达式:a>b?a:c>d?a:d的结果为4。
解析:1、由于c语言的相同优先级运算符运算规则为从左至右依次运算,而条件运算符具有右结合性,所以表达式:a>b?
a:c>d?a:
d优先运算c>d?a:d,得出的结果为4;
2、再运输a>b?a:4,得出的结果为4。
所以最终得出的结果为4。
扩展资料表达式为:表达式1?表达式2:表达式3
先求解表达式1,
若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:1、max=(a>b)?a:b,就是将a和b二者中较大的一个赋给max。
2、min=(a条件运算符具有右结合性
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。例如:
11楼:匿名用户
结果是4,一会写出过程
“?:"这是一个三目运算符,以“c>d?a:
d”这个**为例,程序会首先判断“c>d”是否为真,若为真则执行冒号前的语句,即其结果为”a“的值;若为假,则执行冒号后的语句,即其值为"d"的值。
一般遇到这样的题要拆分着做,首先判断最左边的“a>b”,这个结果为假,根据条件判断运算符的性质,所以接下来执行第一个冒号后的语句“c>d?a:d”,接着判断“c>d”,结果为假,所以最终取值为第二个冒号后的值,即为d的值,也就是4。
12楼:匿名用户
答案为4,“a?b:c”是从右向左执行的,也就是说a为真的话,这个式子就可以看做b,否则可以看做c;c大于d么,不是,则变成了a>b?
a:d,a大于b么,不是,则为d,d=4.
13楼:匿名用户
答案是4.三目运算符就可求得
c语言题目 如果 int a=3,b=4:则条件表达式“a<b?a:b“的值是 a)1 b)4 c)4,333333 d)1
14楼:匿名用户
inta=3,b=4;
x=(a<dub?a:b)//如题意,要求x的值zhi。三目运算符
dao《表达式专1>?《表达式2>:《表达式3>中,//如果表属达式1成立,
结果选择表达式2,不成立,选择表达式3.因为3<4成立,所以,选表达2的结果
///即,答案是a的值:3
15楼:想请教你们哈
先判断式 a < b 是否成立:现在 a=3,b=4,所以判断式 a<b 成立,而条件表达式“a<b?a:
b“ 的值应该是 a,也就是 3。但题目提供的可选的值没有 3 !
可见,题目有错!
16楼:匿名用户
3<4 成立,所以 返回 a ,因此结果是3
17楼:海鸭
答案是3,好像没得选啊
一道c语言的题目,求大神解答,一道C语言的题目,求大神解答。 5
1楼 云中鹤隐 while scanf d n 是什么 2楼 心河星尘 你忘记将每次循环前将sum清零了。还有格式等等问题。改法是 include int main sum 0 for b 0 b printf 2f n sum n return 0 3楼 匿名用户 include int main...