二级C语言考试填空题解析
需积分: 10 102 浏览量
更新于2024-07-24
收藏 292KB DOC 举报
"计算机二级C语言题库填空题,包含2014年3月份的考试填空题目,主要涉及C语言程序设计,包括链表操作和数据处理。"
在给定的C语言代码中,我们需要填充两个空缺的地方,以实现计算带有头结点的单向链表中所有结点数据域之和的功能。首先,我们来分析这段代码。
代码定义了一个结构体`SLIST`,代表链表中的一个节点,包含一个整型数据域`data`和一个指向下一个节点的指针`next`。`creatlist`函数用于创建链表,而`outlist`函数用于输出链表。主要关注的`fun`函数则用于计算链表中所有节点的数据之和。
在`fun`函数内部,我们有一个指针`p`,它初始化为头结点`h->next`。这是因为`h`本身是头结点,而数据域的和应该从第一个实际数据节点开始计算,即`h->next`。然后,我们用`while`循环遍历链表,直到`p`为空,即遍历完整个链表。
现在,我们来看需要填写的两处空缺:
1. `s+=p->___1___;`
这里,我们需要填入`p`指向的节点的数据域,即`p->data`。因此,正确的代码应该是:
```c
s += p->data;
```
2. `p=p->___2___;`
这里,我们需要更新`p`使其指向下一个节点,即`p->next`。所以,正确的代码是:
```c
p = p->next;
```
将这两个填充回原代码,完整的`fun`函数应该是这样的:
```c
int fun(SLIST* h)
{
SLIST* p;
int s = 0;
p = h->next;
while (p)
{
s += p->data;
p = p->next;
}
return s;
}
```
在`main`函数中,创建了一个数组`a`,并用其初始化了一个链表`head`,然后调用了`outlist(head)`输出链表,并调用`fun(head)`计算链表的和。
总结来说,这个填空题考察了C语言中链表的处理,特别是如何遍历链表并访问每个节点的数据域。理解链表结构和指针操作是解答此类问题的关键。在实际编程中,这样的功能常用于链表的遍历、统计和操作。
2010-09-15 上传
2019-03-31 上传
2021-10-11 上传
点击了解资源详情
2021-10-06 上传
2021-10-01 上传
2021-10-08 上传
2009-04-04 上传
korkin
- 粉丝: 0
- 资源: 1
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析