2012年9月全国计算机二级C语言上机题库详解与练习

需积分: 8 5 下载量 194 浏览量 更新于2024-07-27 收藏 285KB DOC 举报
一、C语言程序设计题目详解 1. 学生结构体数组排序 在C语言中,我们需要实现一个名为`fun`的函数,用于根据学生姓名的字典序对学生结构体数组进行升序排列。结构体`student`包含学号(`num`)、姓名(`name`)和成绩(`score`)等字段。使用`strcmp`函数比较姓名字符串,当发现`a[i].name`的字典序大于`a[j].name`时,需要交换这两个元素的位置,确保数组按照姓名从小到大排序。 2. 字符串操作与查找最大ASCII值 函数`fun`的目标是在字符串`p`中找到ASCII值最大的字符,并将其移到字符串的开头。使用`while`循环,当`q`指针不小于`p`时,比较当前字符的ASCII值,如果大于`p`的ASCII值,就移动`p`指针,直到找到最大值。 3. 结构体数组筛选与元素复制 `fun`函数用于筛选数组`s`中指定分数范围(1到`h`)内的学生数据,并将它们复制到数组`b`中,同时返回筛选后的学生数量。通过遍历`a`数组,利用条件语句判断每个学生分数是否在指定范围内,符合条件的学生被复制到`b`数组,并计数器`j`递增。 二、链表操作与重复节点删除 针对带有头结点的单向链表,函数`fun`的任务是删除所有数据域值相同的节点,仅保留一个。通过遍历链表,遇到相同数据域值时,先释放当前节点(`free(q)`),然后将`p`指向下一个节点(`q=p->next`),继续遍历,直到找到新值。 4. 数组排序 对于选择排序算法的实现,函数`fun`使用`while`循环来遍历数组,每次找到未排序部分中的最小元素(`p=j`),将其与当前元素交换(`p=i`),确保整个数组按升序排列。 5. 整数数组过滤与计数 最后,`fun`函数接收两个参数`m`和`a`,它负责在1到`m`的整数中找出能被7或11整除的数,并将这些数存入数组`a`,同时通过指针`n`返回这些数的个数。使用`for`循环,检查每个数是否满足条件,如果满足则添加到数组`a`中,并更新计数器`n`。 总结: 这段资料包含了多个C语言编程题目,涉及数据结构(如学生结构体数组和链表)、字符串操作、数组排序以及数值处理。这些题目涵盖了基础的C语言编程技能,包括结构体、函数、循环、条件判断和数据筛选等知识点。熟练掌握这些概念和技能对于准备计算机等级考试二级C语言至关重要。