实战解题训练
例题1:循环语句改错 中等
考点定位:三种循环语法 + break/continue使用(考试重点题型)
题目:找出以下程序中的错误并改正(考试常考题型,分值15分)
// 错误程序:计算1-10的偶数和
#include <stdio.h>
int main() {
int sum = 0;
int i = 1;
do {
if (i % 2 = 1) // 错误1
continue // 错误2
sum += i;
i++;
} while (i <= 10) // 错误3
printf("偶数和:%d\n", sum);
return 0;
}
错误分析与改正:
- i % 2 = 1 → i % 2 == 1(判断相等用==,赋值用=,语法错误)
- continue后加; → continue;(语句结束必须有分号)
- while (i <= 10)后加; → while (i <= 10);(do-while循环末尾必须有分号)
- 逻辑优化:i++位置错误,continue会跳过i++导致死循环,需将i++移到if判断前
解题技巧:循环改错题检查优先级:①语法错误(分号、运算符、关键字)→ ②逻辑错误(变量更新、条件判断)→ ③功能错误(break/continue位置)。
例题2:循环执行结果判断 简单
考点定位:循环执行逻辑 + break/continue(考试高频题型)
题目:以下程序的输出结果是什么?(分值10分)
#include <stdio.h>
int main() {
int x = 0;
for (int k = 1; k <= 5; k++) {
if (k == 3) {
break;
}
x += k;
}
printf("x = %d\n", x);
return 0;
}
答案:x = 3
解析:
- k=1时:x=0+1=1
- k=2时:x=1+2=3
- k=3时:触发break,终止整个for循环
- 最终x的值为3
解题技巧:循环结果推导三步法:①列出循环变量初始值 ②逐次推导循环执行过程 ③标记break/continue的触发点;考试时建议手动分步计算,避免跳步出错。
例题3:循环嵌套编程题 较难
考点定位:循环嵌套 + 循环控制(考试压轴题型,分值20分)
题目:编写一个C程序,使用嵌套循环打印如下三角形图案,要求符合程序设计规范。
图案要求:
*
**
***
****
*****
参考答案:
// 程序功能:使用嵌套循环打印5行三角形星号图案
#include <stdio.h>
int main() {
// 外层循环控制行数(1-5行)
for (int row = 1; row <= 5; row++) {
// 内层循环控制列数(每行打印row个星号)
for (int col = 1; col <= row; col++) {
printf("*");
}
// 每行结束后换行
printf("\n");
}
return 0;
}
解题技巧:图案类编程题得分要点:①外层循环定行数 ②内层循环定列数(找出行数和列数的数学关系) ③换行时机(外层循环内、内层循环外) ④变量命名规范(row/col更易理解)。