2012年9月全国计算机二级C语言上机题库详解与练习
需积分: 8 113 浏览量
更新于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语言至关重要。
2021-10-06 上传
2021-11-01 上传
2021-11-01 上传
2021-11-01 上传
2021-10-10 上传
2024-11-16 上传
2024-11-16 上传
bohldwx
- 粉丝: 0
- 资源: 2
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器