早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一道关于C语言的题目设有定义:inta=0,b=5,c;执行语句c=(a=b)||++a&&b++后,a、b、c的值分别是.A)5,5,1B)4,6,1C)1,6,1D)1,5,0请问这道题是怎么算的?语句c=(a=b)||++a&&b++是怎么算的?

题目详情
一道关于C语言的题目
设有定义:int a=0,b=5,c; 执行语句c=(a=b)||++a&&b++后,a、b、c的值分别是_____.
A)5,5,1 B)4,6,1 C)1,6,1 D)1,5,0
请问这道题是怎么算的?语句c=(a=b)||++a&&b++是怎么算的?
▼优质解答
答案和解析
结果是5,5,1
运算的时候从左往右扫描,由于与优先级高于或,就先执行++a&&b++,它又相当于++a&&b,到这里之后由于++a首先运算,得到a=1,再和b=5进行与运算得到表达式的值为1,然后在和前面的进行或运算,在或运算之前要计算括号里面的(a=b),则a被重新赋值为5,经过与运算:(a=b)||1后得到结果为1,最后赋值给c,所以现在a=5,b=5,c=1··