计算机二级考试改错题解析:函数与字符串处理
需积分: 9 149 浏览量
更新于2024-09-26
收藏 48KB TXT 举报
"该资源包含了计算机二级考试中的改错题,包括了三个不同的代码段,分别涉及函数计算、字符串查找和数字位移的实现。"
第一个代码段是用于计算调和级数的一个函数,其中的错误在于循环条件的设置。正确的代码应该在`for`循环中初始化`i`为2,然后将条件设为`i<=m`。修正后的代码为:
```c
for(i=2; i<=m; i++) // 正确的循环条件
```
这个函数`fun`的目标是计算1到m的倒数平方和,其中m=5时结果应为1.463611。修复后的代码可以正确地累加每个项并返回结果。
第二个代码段是一个查找子字符串的函数`fun`,其主要任务是在字符串`s`中查找子字符串`t`。初始错误在于`a`的初始化,它应该被初始化为空指针`NULL`。另外,在内层`while`循环中,当字符不匹配时应立即退出循环。修正后的代码为:
```c
a = NULL; // 初始化a为空指针
while (*r) {
if (*r == *p) {
r++; p++;
} else {
break; // 字符不匹配时退出循环
}
}
```
这段代码修复后,能够正确地找到子字符串在主字符串中的起始位置,或在找不到时返回`NULL`。
第三个代码段的目的是计算一个数字的所有位数之积。原始代码中,`num /= 10`应在`k *= num % 10`之前执行,以确保每次循环都处理新的个位数。修正后的代码为:
```c
do {
k *= (num % 10); // 计算个位数与k的乘积
num /= 10; // 更新num,移除个位数
} while (num);
```
这样,函数`fun`就能正确计算出给定数字的各个位数的乘积,例如输入252时返回2020,输入0时返回0。
这三个代码段涵盖了C语言的基础知识,包括循环控制、条件判断、函数定义、指针操作以及字符串处理等,都是计算机二级考试中的常见考点。
2020-12-21 上传
2022-11-26 上传
2021-10-06 上传
2011-04-12 上传
2012-07-01 上传
2021-10-04 上传
2021-10-10 上传
2011-04-24 上传
2013-06-06 上传
zjzb19900708
- 粉丝: 0
- 资源: 3
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全