c语言的输入输出问题

请问这个题目abd我都测试了,在devc++都可以正确的打印出来呀?还是devc++避免了这种错误呢,到底哪个才是最正确的写法呢

img

只有 A 。

A B D不报错,但是会增加循环次数。C选项的意思就是条件 (str[i] = '\0')的值取非,即如果该条件成立则 !(str[i] = '\0') 为假,如果该条件不成立则 !(str[i] = '\0') 为真,与题干中 str[i] != '\0' 的结果一致,可以替换。

可以查看手册:c语言-exp() 中的内容