题目
70【单选题,1分】下面if语句统计“成绩(mark)优秀的男生以及不及格的男生”的人数,正确的语句为()。A. if gender=="男" and mark=90:n+=1B. if gender=="男" and mark=90:n+=1C. if gender=="男" and (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
题目解答
答案
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优先执行,条件为“性别为男”且“成绩优秀或不及格”,完全符合题意。