全国计算机等级考试二级C语言上机纠错题解析
需积分: 0 104 浏览量
更新于2024-07-28
1
收藏 204KB DOC 举报
"全国计算机等级考试二级C语言程序设计上机高频考题"
这些题目主要针对C语言的基础知识,包括程序逻辑、循环控制、条件判断、变量运算以及字符串处理等核心概念。下面是针对每个题目中错误的部分进行的分析和修正:
1. 题目一的目标是计算两个正整数的最小公倍数(LCM)。错误出现在`while`循环的条件判断上。当前的条件`while(scanf("%d%d",&m,&n),m<0&&n<0);`会导致当输入的`m`或`n`小于等于0时程序终止。但题目要求输入数均大于0,所以应将条件改为`while(scanf("%d%d",&m,&n),!(m>0&&n>0));`,确保`m`和`n`都大于0时才继续执行。
```c
void main()
{
int m, n, k;
while (scanf("%d%d", &m, &n), !(m > 0 && n > 0)); // m>0 && n>0
for (k = m; k % n != 0; )
k = k + m % n;
printf("%d\n", k);
}
```
2. 题目二的目的是计算连续数字前缀3的累加和。错误在于变量`s`未初始化。应该在`main`函数中声明`s`并将其初始化为0,即`s=0;`。另外,在`for`循环内部,累加的数字应该是`i`而不是1,所以应将`t=t*10+1;`更改为`t=t*10+i;`。
```c
void main()
{
int i, a, n, t = 0, s = 0; // 添加s=0;
scanf("%d%d", &a, &n);
for (i = 1; i <= n; i++) {
t = t * 10 + i; // 改为t=t*10+i;
s = s + t;
}
s = s * a;
printf("%d\n", s);
}
```
3. 题目三的目的是计算一个整数各位数字之和。错误出现在两个地方:首先,`while`循环的条件应该是`n>0`,以便在每次迭代后去除最右边的数字;其次,更新`n`的语句应该除以10,即`n=n/10;`,以移除已累加的个位数。
```c
void main()
{
int n, s = 0;
scanf("%d", &n);
n = fabs(n);
while (n > 0) { // 更改为n>0
s = s + n % 10;
n = n / 10; // 更改为n=n/10;
}
printf("%d\n", s);
}
```
这些题目考察了C语言的基本编程技能,包括输入输出操作、循环结构、条件判断、算术运算以及数组和指针的使用。通过这些练习,考生可以巩固对C语言的理解,提高编写正确、高效代码的能力,为全国计算机等级考试二级C语言程序设计上机考试做好准备。
2014-06-25 上传
2009-11-11 上传
2012-03-10 上传
2011-07-04 上传
2010-03-28 上传
2010-03-23 上传
点击了解资源详情
点击了解资源详情
dadmomsister
- 粉丝: 0
- 资源: 1
最新资源
- NotesAppJavascriptPractice:针对教程
- modelando-dominios-ricos-java:该项目旨在应用在AndréBaltieri的“建模富域”课程中介绍的概念。 关联
- MySQLtoHDF5:将 MySQL 数据库转换为 HDF5 文件
- mamamoneybookmarks:包含用于妈妈钱的书签列表
- AT89S51+MAX232+CD4053B+9014组成的原理图
- 1-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- qownnotes-overlay:QOwnNotes覆盖
- jsx-slack:从JSX为Slack Block Kit表面构建JSON对象
- JS_forelasning_1
- Ideal-Zen-Refonte-2021:理想的Zen Refonte 2021
- tabcmd_linux:在 Linux 中实现 Tableau 的 tabcmd 命令行实用程序
- Bdae
- Project-61160014-61160222
- Mysql学习并训练.zip
- 链表数据结构
- karashirl.github.io:项目组合