全国计算机二级C语言上机题库:链表求和解题关键

需积分: 10 2 下载量 150 浏览量 更新于2024-08-01 收藏 1.45MB DOC 举报
本篇文档提供了全国计算机二级C语言上机考试中的一个具体题目集,主要关注的是填空题部分,涉及链表操作和函数设计。以下是关键知识点的详细解析: 1. 题目背景与要求: 这是一道关于单向链表操作的题目,要求考生掌握链表的基本结构和函数实现。函数`fun`的目标是计算一个带有头接点的单向链表中所有节点的数据域(即整型数据)之和。函数需要遍历链表并累加每个节点的`data`字段。 2. 函数`fun`详解: - `s` 是一个临时变量,用于存储链表中所有节点数据之和; - 在`while`循环中,首先访问当前节点的`data`字段并将值累加到`s`上(`s += p->data;`),然后更新指针`p`指向下一个节点(`p = p->next;`)。 3. `creatlist`函数: - 该函数用于创建一个单向链表,参数为整型数组`a`; - 它首先分配内存创建头结点`h`和第一个元素`p`; - 然后通过`for`循环遍历输入数组,为每个元素创建一个新的节点,并将它们链接到前一个节点的`next`指针上。 4. `main`函数: - 初始化一个包含8个元素的整型数组`a`; - 调用`creatlist`函数创建链表,并调用`outlist`函数输出链表(这部分未给出,但可能用于检查链表结构); - 最后,通过`fun`函数计算链表的总和,并将结果打印出来(`printf("\nsum=%d\n", fun(head));`),`head`是指向链表头结点的指针。 5. 填空题答案: - 第一处填空:`data`,表示在累加当前节点数据时,应访问`p->data`; - 第二处填空:`next`,表示在移动指针时,应更新为`p->next`; - 第三处填空:`head`,因为在`fun`函数调用中,需要传入链表的头结点指针。 总结:本题主要考察了考生对C语言链表数据结构的理解、链表操作以及函数的定义与调用。熟悉链表的基本操作,如节点的创建、遍历以及数据的访问,是解答此题的关键。