实战解题训练
例题1:关系表达式与逻辑表达式求值 中等
考点定位:关系运算符 + 逻辑运算符(考试重点题型)
题目:已知int a=5, b=3, c=8; 计算以下表达式的值(分值15分)
// 表达式求值
1. a > b && c > a
2. a + b > c || b < c
3. !(a == b) && (c - b < a)
4. (a > b) == (c > 10)
答案与解析:
- 1 && 1 = 1(a>b为真,c>a为真,逻辑与结果为真)
- 8>8为假 || 3<8为真 = 1(逻辑或只要一个为真结果就为真)
- !0 && 5<5为假 = 1 && 0 = 0(!运算取反,再做逻辑与)
- 1 == 0 = 0(关系表达式的结果参与比较)
解题技巧:先计算算术表达式,再计算关系表达式,最后计算逻辑表达式;注意运算符优先级和结合性。
例题2:if语句程序改错 简单
考点定位:if语句语法规范(考试高频题型)
题目:找出以下程序中的错误并改正(分值10分)
// 错误程序:判断成绩是否合格
#include <stdio.h>
int main() {
int score = 75;
if score >= 60
printf("成绩合格");
else
printf("成绩不合格")
return 0;
}
错误分析与改正:
- if后条件表达式缺少括号 → 修正:if (score >= 60)
- else对应的printf语句末尾缺少分号 → 修正:printf("成绩不合格");
- (建议)代码块添加{},增强可读性 → if (score >= 60) { ... } else { ... }
解题技巧:if语句改错题优先检查:①条件表达式括号 ②分号 ③{}匹配 ④else是否单独成行。
例题3:switch语句编程题 较难
考点定位:switch-case-break结构(考试压轴题型,分值20分)
题目:编写程序,输入1-4的数字,输出对应的季节(1-春季,2-夏季,3-秋季,4-冬季,其他-输入错误)。
参考答案:
// 程序功能:根据数字输出季节
#include <stdio.h>
int main() {
int season;
// 输入数字
printf("请输入1-4的数字:");
scanf("%d", &season);
// switch多分支判断
switch (season) {
case 1:
printf("春季\n");
break;
case 2:
printf("夏季\n");
break;
case 3:
printf("秋季\n");
break;
case 4:
printf("冬季\n");
break;
default:
printf("输入错误!\n");
break;
}
return 0;
}
解题技巧:switch语句编程题四步法:①定义变量 ②输入数据 ③switch多分支判断(每个case加break) ④添加default分支;注意case后是常量,break不能省略。