C语言程序设计:考试题库与解答

需积分: 7 0 下载量 27 浏览量 更新于2024-07-26 收藏 286KB DOC 举报
"此资源为2012年计算机等级二级C语言的上机考试题库,包含了程序填空、程序修改和程序设计等多种类型的题目,旨在帮助考生备考计算机二级考试,提高C语言编程能力。" 第一套题目解析: 1. 程序填空: 这是一个对结构体数组进行排序的问题。第一处`struct student t;`表示定义了一个名为`student`的结构体类型。第二处`for(i=0; i<n-1; i++)`用于遍历数组,进行冒泡排序。第三处`if(strcmp(a[i].name, a[j].name)>0)`是比较两个学生姓名的字典顺序,如果当前学生的姓名在字典序上大于下一个学生,就交换他们的位置。 2. 程序修改: 给定的程序是将字符串中ASCII码值最大的字符移动到第一位,并将其他字符顺序前移。`q=p+i;`找到最大ASCII值的字符的位置,`while(q>p)`循环将前面的字符逐个后移,而`q=p+i;`和`p=i;`这两句分别用于更新指针位置。 3. 程序设计: 这个函数`fun`的功能是筛选出指定分数范围内(`l`到`h`)的学生数据,并将这些数据复制到新的数组`b`中。通过`for`循环遍历数组,如果学生分数在范围内,就将其添加到`b`数组中,并更新计数器`j`。 第二套题目解析: 1. 程序填空: 此题是关于链表操作,目的是删除链表中重复的数据。第一处`free(q);`释放不再需要的节点。第二处`q=p->next;`将`q`指针移动到下一个节点。第三处`q=q->next;`继续查找下一个节点,确保删除所有相同数据的节点。 2. 程序修改: 这个函数使用选择排序算法,`p=j;`和`p=i;`分别用来记录当前最小元素的索引和交换位置。 3. 程序设计: 这个`fun`函数通过遍历1到`m`的整数,找出能被7或11整除的数字,并将它们存入数组`a`中,通过`n`返回这些数的个数。 第三套题目解析: 1. 程序填空: 这是一个数组逆置的问题,例如将数组`a`的元素值反转。未给出完整代码,但一般逆置数组的策略是使用两个指针,一个从头开始,一个从尾部开始,然后交换它们指向的元素,直到两个指针相遇。 总结: 这些题目涵盖了C语言的基础知识,包括结构体操作、字符串处理、排序算法、链表操作以及数组处理等,都是计算机二级考试中常见的考点。通过练习这些题目,考生可以提高对C语言的理解和应用能力,有助于应对考试。