作业帮 > 综合 > 作业

以下选项中与if(a==1)a++;else a=b;语句功能不同的语句是()

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/17 10:19:09
以下选项中与if(a==1)a++;else a=b;语句功能不同的语句是()
A switch(a) B switch(a==1)
{case 0:a=b;break; {case 0;a++;
default;a++; default:a=b;
} }
C switch(a) D a=(a==1)?(a++):b
{default:a=b;break;
case 1:a++;
}
以下选项中与if(a==1)a++;else a=b;语句功能不同的语句是()
选B,当a==0时条件a==1不成立结果为0,执行case0语句
再问: D的作用也不一样啊! a=a++;a的值不会变化。而if(a==1)a++;else a=b;中a会自加1
再答: 执行a=(a==1)?(a++):b语句时,先判断a是不是为1,如果a为0,则条件(a==1)不成立,结果为假,执行语句2,将b的值赋给a;如果a为1,条件成立,a=a++
再问: A的作用也不一样,当a等于非0时执行a++,也就是说当a等于2、3、4……时都会执行,而题目中的语句是只有当a等于1时才执行a++;
再答: 这样看选项B与题目更不同, B switch(a==1) {case 0;a++; default:a=b; } 当且仅当a值为1时,a==1成立,条件为真,执行a=b,如果a为其他值,都是执行a++;题目的结果刚好和B相反,仅当a为1时执行a++,a为其他值时执行a=b
再问: 对,所以这道题目应该选A和B两个。你认为呢?
再答: B答案比A答案离题目的本意更远