题目
70【单选题,1分】下面if语句统计“成绩(mark)优秀的男生以及不及格的男生”的人数,正确的语句为()。A if gender=="男" and mark<60 or mark>=90:n+=1B if gender=="男" and mark<60 and mark>=90:n+=1C if gender=="男" and (mark<60 or mark>=90):n+=1
70【单选题,1分】
下面if语句统计“成绩(mark)优秀的男生以及不及格的男生”的人数,正确的语句为()。
A if gender=="男" and mark<60 or mark>=90:n+=1
B if gender=="男" and mark<60 and mark>=90:n+=1
C if gender=="男" and (mark<60 or mark>=90):n+=1
题目解答
答案
题目要求统计“成绩优秀(mark≥90)或不及格(mark<60)的男生”人数。需满足:
1. 性别为“男”。
2. 成绩满足`mark < 60`或`mark >= 90`。
分析各选项:
- A项:`gender == "男" and mark < 60 or mark >= 90`,未加括号导致逻辑优先级错误,当`mark >= 90`时,无论性别均被统计,不符合要求。
- B项:`gender == "男" and mark < 60 and mark >= 90`,条件互斥,永远为假,显然错误。
- C项:`gender == "男" and (mark < 60 or mark >= 90)`,正确表达了题目要求的条件。
综上,正确答案是C。
答案:C. `if gender == "男" and (mark < 60 or mark >= 90): n += 1`
解析
考查要点:本题主要考查逻辑运算符的优先级及条件组合的正确表达方式。
解题核心:
- 逻辑条件拆分:题目要求统计同时满足两个条件的男生:性别为“男”且成绩“优秀(mark≥90)或不及格(mark<60)”。
- 运算符优先级:
and
的优先级高于or
,需通过括号明确逻辑顺序,避免条件错误组合。
关键点:
- 括号的作用:必须用括号将
mark<60
或mark≥90
包裹,确保or
的逻辑优先于外层的and
。 - 条件互斥性:选项B中
mark<60
和mark≥90
无法同时成立,导致条件矛盾。
选项分析
选项A
gender == "男" and mark < 60 or mark >= 90
- 逻辑错误:由于
and
优先级高于or
,实际条件等价于(gender == "男" and mark < 60) or mark >= 90
。 - 问题:当
mark >= 90
时,无论性别是否为男,均会被统计,不符合题意。
选项B
gender == "男" and mark < 60 and mark >= 90
- 矛盾条件:
mark < 60
和mark >= 90
无法同时成立,条件永远为假,无法统计任何人。
选项C
gender == "男" and (mark < 60 or mark >= 90)
- 正确逻辑:括号确保
or
优先执行,条件为“性别为男”且“成绩优秀或不及格”,完全符合题意。