计算机二级C语言上机考试必备:100题库解析

需积分: 5 0 下载量 114 浏览量 更新于2024-07-24 收藏 1.14MB DOC 举报
"这份文档是2011年九月的二级C语言上机考试题库,包含了100道填空题,旨在帮助考生熟悉考试题型和备考。题目中的程序代码要求考生在指定位置填写正确的内容以完成程序功能。提供的代码示例是一个计算单向链表中所有节点数据域之和的函数。" 在C语言中,链表是一种常用的数据结构,用于存储动态数据集合。在这个给定的程序中,我们关注的是一个单向链表,其节点定义如下: ```c typedef struct list { int data; struct list* next; } SLIST; ``` 这个结构体包含两个成员:`data`存储整型数据,`next`是一个指向下一个节点的指针。`SLIST`是类型别名,方便我们之后在代码中引用。 函数`fun(SLIST*h)`的目的是计算链表中所有节点的数据域之和。函数接受一个参数`h`,这是链表的头节点。为了实现这个功能,我们需要遍历整个链表。在给定的代码中,`p`被初始化为`h->next`,即链表的第一个有效节点(因为`h`本身是头节点,它的`next`指向第一个实际的节点)。然后,通过`while(p)`循环遍历链表,每次迭代将`p->data`累加到`s`中,最后返回`s`作为所有节点数据的和。 在`fun`函数中,有两处需要填写的地方: 1. `s += p->___1___;` 应该填写`data`,因为我们需要将当前节点的`data`值累加到`s`。 2. `p = p->___2___;` 应该填写`next`,这样`p`就可以移动到链表的下一个节点。 在`main`函数中,`creatlist(int a[])`函数被调用来创建链表,它接受一个整型数组`a`,并使用数组元素创建相应的链表节点。数组`a`在这里是`{12, 87, 45, 32, 91, 16, 20, 48}`,创建的链表每个节点的`data`值对应数组中的一个元素。 `outlist(head)`函数用于输出链表的所有节点数据,便于调试或验证链表的正确性。最后,`printf("\nsum=%d\n", fun(___3___));`需要填写`head`,因为`fun`函数需要头节点作为参数来计算数据和。 这份练习题库涵盖了C语言中链表的基本操作,如链表的创建、遍历以及对链表节点数据的操作,这些都是二级C语言考试中常见的考点。通过解答这些题目,考生可以提高对C语言链表的理解和实际编程能力。