97490449 - 15 - 跟我学C练习题九

更新时间:2023-11-01 20:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

跟我学C练习题九

1. 函数与结构应用。请定义一个描述学生基本信息的结构,包括姓名,学号,籍贯,

身份证号,年龄,家庭住址,性别,联系方式等。编程:

(1) 调用输入函数input(),函数类型和形参自定义,input()每次输入一条学生

记录(结构变量的值),并返回给主函数;

(2) 主函数循环输入学生记录数组(5条以上);

(3) 检索函数search(),函数类型和形参自定义,主函数调用它检索一个指定的学生信息(学号或姓名),记录存在则返回该记录在数组中的位置,检索失败则返回-1; (4) 函数print(),函数类型和形参自定义,主函数调用它将检索到的学生记录

打印到屏幕上;

(5) 函数out()输出全体纪录信息(结构数组); (6) 主函数根据键盘输入命令循环运行:(输入数据(包括把新的记录增加到结

构数组中),检索、输出所有记录,退出)

2. 函数指针与结构应用。题意同上,编程要求如下:

(1) 每一个功能所对应的函数,有一个指向该函数的指针,主程序通过调用函

数指针,实现各项功能; (2) 以下的输入、检索、输出分别用函数指针实现;

a) 输入基本信息(3~5条记录);

b) 检索一个指定的学生信息,并打印到屏幕上; c) 输出全体纪录信息;

3. 递归编程。主函数从键盘输入一个字符串s,递归求s的长度(strlen的功能)。 4. 递归编程。

(1) 调用输入函数input(),函数类型和形参自定义,input()每次输入一个长度

为N的有序的数整型数组array(20

(2) 设计一个递归函数

int search(int *array, int key,int start,int end);

功能是在array数组中,检索是否至少存在一个元素与key相等,若存在,返回该元素的数组下标;否则,返回-1; (3) 检索函数search(),函数类型和形参自定义,主函数从键盘随机输入检索码key,调用search函数,返回并输出检索结果(检索成果或失败信息)。 5. 最接近点对问题。{x1,x2,,xn}是随机输入的整数序列,现欲找出其中的一对点,。。。

它们在n个点组成的所有点对中的距离最小(序列中最接近点对仅限于一对)。求,

递归结构的最接近点对算法C程序(不能使用排序算法)。程序输出最接近点对的距离和点坐标(xi,xj)。

6. 链表编程。链表节点结构如下。 学号 姓名 后继结点指针 链表结构: head

编程。要求程序实现如下功能:

(1) Insert函数:随机插入链表节点,构筑一个简单非循环无序链表A,每插入一节点之后用函数list输出链表A到屏幕,链表长度在7个节点以上;

(2) 单链表复制。编写一个函数copy,将单链表A复制到单链表B,并用函数

list输出B到屏幕。

(3) SelectMax函数:搜索链表,返回一个指向链表中具有最大关键字(学号)的节点的指针,主程序输出该节点关键字到屏幕;

(4) list函数:输出链表A到屏幕,同时返回链表中的节点总数(int类型); (5) bubble函数:对Insert函数建立的链表按学号递升序列做冒泡排序(参考

第十章内容),只允许交换指针,不能交换数据域,主程序输出排序结果到

屏幕。

(6) search()函数:主函数从键盘读入一个学号,search函数在head指向的链

表中搜索该学号的节点,成功返回指向该节点的指针,失败返回为空,主

函数打印该节点信息(或检索失败的提示)。

(7) delete()函数:主函数从键盘读入一个学号,delete函数在head指向的链表

中搜索该学号的节点,存在则从链表中删除该节点,并返回指向该节点的

指针,不存在则返回为空,主函数打印该节点信息(或节点不存在的提示)、

并调用list函数输出当前链表。

7. 链表编程。链表结构如下,并在其上实现前一题的功能1~7。

学号 姓名 后继结点指针 链表结构: head循环链表结构

本文来源:https://www.bwwdw.com/article/s4v2.html

Top