我的错题本2020.5.2
1.用do-while语句构成的循环,只有在while后的表达式为零时结束循环。
以下叙述正确的是( )d
A、 do-while语句构成的循环不能用其它语句构成的循环代替。
B、 do-while语句构成的循环只能用break语句退出。
C、 用do-while语句构成的循环,只有在while后的表达式为非零时结束循环。
D、 用do-while语句构成的循环,只有在while后的表达式为零时结束循环。
选D。
A 可以用for循环代替。
B 不满足条件时即条件的逻辑值为假(0)时推出,break也可以。
C while(条件),条件为真时进行循环,为假(0)时退出。
D while(条件),条件为真时进行循环,为假(0)时退出, 用do-while语句构成的循环,只有在while后的表达式为零时结束循环,break 是可以退出循环,但不是唯一的。
用do-while语句构成的循环,只有在while后的表达式为零时结束循环 D是正确的;do-while是先做一次do,完事后再while,若非零继续do,若零结束整个循环break在do中只能结束本次的do内容,不能像单个while循环时候结束整个大循环 不懂的不要乱说,误导人 请采纳
2. do { } while(!x) 中的!x
.do {
} while(!x) ;相当于
do {
} while( x==0 ) ;
该循环的格式为:
do {
} while( e ) ; 当e为真时,循环。 !x 为真,只有x为0时才可以!
!是 "非"运算,非0即1,非“非0”为假。
!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。
在while(!x)后面有一个分号,表示该循环的循环体为空,即只做判断和循环,并不执行操作。
于是这句的意思就是,如果x为0,则一直循环下去,不做操作,否则继续执行。
如果没有其它线程来改变x的值,那么这里就是一个死循环了。
3.a>=10或a<=0"的C语言表达式是?具体分析:
a>=10||a<=0
具体分析:
100 <=n<=999
先计算 100<=n 的结果:要么是 1 ,要么是 0
然后才用 1 或 0 去和 999 比较关系,所以
100 <=n<=999 始终都为 1,即 if(100 <=n<=999) 始终成立(条件始终为“真”)
4.if(条件){ }是条件判断语句,条件为零,不执行if内的语句,条件不为零就执行if内的语句。
i%2是求i除以2的余数。
if(i%2)就是判断i除以2的余数是否为零,不为零就执行if内的语句,如果余数为零,就不执行if内的语句。
5.不要把赋值,包括复合赋值组合进行表达式!
6.逗号运算符是二元运算符:
逗号运算符确保操作数被顺序地处理:先计算左边的操作数,再计算右边的操作数。右操作数的类型和值作为整个表达式的结果。左操作数只是为了副作用需要而被计算,它其值会被丢弃。
逗号运算符的优先级是所有运算符中最低的。
7.关于C语言中运算符优先级说明