全国计算机二级C语言上机考试题库及解析

需积分: 10 14 下载量 112 浏览量 更新于2024-07-27 收藏 970KB PDF 举报
"这份资源包含了2011年至2012年间全国计算机二级C语言上机考试的题库,包括程序填空、程序修改和程序设计三种类型的题目,旨在帮助考生熟悉考试形式和提高编程能力。" 第一套题目主要考察的是C语言中结构体数组的操作和字符串比较。在程序填空中,需要实现一个按照姓名字典序排列学生数据的函数。第一处填写的`struct student t;`表示定义了一个名为`t`的结构体变量,用于临时存储比较的学 生数据。第二处的`for(i=0; i<n-1; i++)`循环遍历整个数组,确保所有学生数据都参与了比较。第三处`if(strcmp(a[i].name, a[j].name)>0)`使用`strcmp`函数比较两个字符串的字典序,如果当前学生姓名大于下一个学生姓名,则需要交换它们的位置。 在程序修改部分,给定程序的目标是将ASCII码值最大的字符移到字符串开头,并将原字符向前移动。`q=p+i;`找到最大字符的索引,然后`while(q>p)`循环将最大字符前的字符依次向前移动一位。 程序设计题要求编写一个函数,将指定分数范围内的学生数据复制到新的数组中。这个函数首先遍历所有学生,检查每个学生的成绩是否在给定范围内,如果符合要求,则将学生数据添加到新数组中。 第二套题目涉及链表操作和选择排序。在链表题目中,函数`fun`的目的是删除链表中重复的数据域值,只保留一个。第一处`free(q);`释放重复节点的内存,第二处`q=p->next;`更新指向下一个节点的指针,第三处`q=q->next;`继续查找下一个相同数据域的节点。 程序修改部分,给定的`fun`函数使用选择排序算法对数组进行排序。`p=j;`将最大元素的指针保存在`p`,而`p=i;`则将当前待比较元素的指针赋给`p`,这两个位置的交换是选择排序的关键步骤。 第三套题目中,`fun`函数需要实现的功能是逆置数组元素的值,这可以通过双指针法轻松完成,交换数组首尾元素,然后逐步向中间移动指针。另一道程序设计题要求找出1到m之间可以被7或11整除的所有整数,使用一个循环遍历所有可能的数,通过判断模7和模11的余数来确定是否符合条件,并将这些整数存入数组,返回个数。 这些题目覆盖了C语言的基础语法、数据结构(如结构体、链表)、字符串处理、排序算法以及条件判断等核心知识点,是准备计算机二级C语言考试的重要练习材料。