C语言编程:题库与程序设计解析

版权申诉
0 下载量 117 浏览量 更新于2024-09-07 收藏 626KB PDF 举报
"这个资源包含了2013年3月计算机二级C语言考试的上机题库,包括程序填空、程序修改和程序设计三种类型的题目。内容涉及到C语言的基本结构、字符串处理、排序算法、链表操作以及条件判断等核心知识点。" 详细解释: 在第一套题目中: 1. 题目要求根据姓名的字典序对结构体数组中的学生数据进行排序。`struct studentt;` 应改为 `struct student;` 定义学生结构体。`for(i=0;i<n-1;i++)` 是冒泡排序的标准循环结构,用于比较相邻元素。`if(strcmp(a[i].name,a[j].name)>0)` 比较两个学生姓名的ASCII值,确保升序排列。 2. 给定的程序MODI1.C中,函数fun的目标是找到ASCII码值最大的字符并移动。`f*q=p+i;` 应改为 `f*q=p+i;` 查找最大值,`found` 应该替换为 `found=p;` 记录最大值的位置。然后在循环中,将找到的最大值移到前面,`p=i;` 应改为 `*p=*q; p=q;` 3. 程序设计部分要求编写一个函数,找出分数在特定范围内(s>=1&&s<=h)的学生,并存储到新数组中。提供的代码已经完成了这个功能,通过遍历数组并使用条件判断筛选出符合条件的学生,将它们复制到新数组b中,并返回学生人数。 在第二套题目中: 1. 对于链表操作,题目要求删除所有数据域值相同的结点,只保留一个。`free(q);` 删除当前重复结点,`q=p->next;` 移动到下一个结点,`q=q->next;` 更新q指向新的下一个结点,以避免内存泄漏。 2. MODI1.C中的函数fun采用选择法排序,`p=j;` 应改为 `p=i;` 以便正确地更新最小值的索引。 3. 要求编写一个fun函数,找出1到m之间能被7或11整除的整数。`for(i=7;i<=m;i++)` 循环遍历所有可能的数字,`if((i%7==0)||(i%11==0))` 判断是否满足条件,将符合条件的数添加到数组a中。 在第三套题目中: 1. 函数fun的目标是逆置数组元素的值。题目未给出完整代码,但通常会涉及两个指针,一个从头开始,一个从尾开始,交换它们指向的元素,直到两个指针相遇。 这些题目覆盖了C语言的基础编程概念,如数据结构、排序算法、链表操作、字符串处理以及基本逻辑判断,对于准备计算机二级C语言考试的考生来说是非常有价值的练习。