




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C实验全选JQK实验七 函数程序设计(二)练习1用递归方法解决猴子吃桃子的问题(P129习题6.10)。运行结果:1534练习2编写一个程序,其中包含一个子函数,功能为删除字符串中指定的某个字符,并显示删除后的字符串。子函数要求:形式为:void delete_string(char str,char ch);运行结果示例:练习3编写一个程序,其中包含一个子函数,功能为求出一个二维数组(从键盘读入)中每列的最小元素,并依次放入一个一维数组中。例:子函数要求:形式为:void fun(int ttMN,int ppN);(其中,tt是一个M行N列的二维数组,pp为存放结果的一维数组。)*练习4编写一个程序,功能为将一个无序数组b(包含5个元素)中的每个元素插入另一个有序数组a(包含10个元素)中的适当位置,使插入后的数组a依然有序。其中,包含3个子函数,各函数要求如下:l 子函数1:功能为读入一包含n个元素的数组;形式为:void input(int a,int n);l 子函数2:功能为将一个数值x插入到包含n个元素的有序数组中;l 形式为:void insert(int a,int n,int x);l 子函数3:功能为输出一包含n个元素的数组;形式为:void output(int a,int n);实验八 指针程序设计(一)练习1用指针变量的处理方法编写一个程序,功能为读入一组(10个)数据后,逆向输出。程序要求:练习2用指针变量的处理方法编写一个程序,功能为将数组s(共10个元素,由随机数生成)中的数据位置两两对倒,并输出结果。程序要求:程序中对数组的处理全部使用指针方式。练习3用指针变量的处理方法编写一个子函数,功能为从键盘读入一个已经排好序的数组(共10个数),再输入一个数,将此数按次序规律将它插入到数组中后输出结果。函数要求:实参为指针变量,形参为数组名,且形式为:void insert(int x , int m);其中:形参m为要插入的数据;函数无返回值。练习4用指针变量的处理方法编写一个函数,功能为把读入的一维数组(10个数据)中的所有奇数放在另一个数组中,并输出新数组的内容。函数要求:实参为指针变量;形参为指针变量,且形式为:int select(int *p, int *q);其中:指针p用来接收原数组(的地址),指针q用来接收新数组(的地址);函数返回新数组元素的个数。提示:两个数组全部在主函数中定义。练习5用指针变量的处理方法编写一个程序,功能为将一维数组s(数组元素的个数和数值均由用户即时输入的值决定)中的数据进行逆置,并输出结果。程序要求:使用两个指针,指针p从数组首部向后移动,指针q从数组尾部与之同步向前移动。练习6利用随机数生成一个M*M的二维数组(数据在020范围),以4*4矩阵为例: 分别以上三角和下三角形式显示矩阵;子函数形式:void out(int *p); 求出矩阵两条对角线上所有元素之和;子函数形式:void add(int *p); 将矩阵的第一行与最后一行对应元素交换位置存储,并输出新矩阵的结果。子函数形式:void exchange(int *p);程序要求:程序中对数组的处理全部使用指针数组方式。实验九 指针程序设计(二)练习1用指针变量的处理方法编写一个程序,功能为统计某一字符在已知字符串“This is a c/c+ program.”中出现的次数。要求:程序中不得出现数组。练习2用指针变量的处理方法编写一个程序,其中包含一个子函数,功能为将字符串s中的字符c1用字符c2替换。子函数形式为:void replace(char *str,char c1,char c2);练习3用指针数组的处理方法编写一个程序,其中包含一个子函数,功能为从键盘输入四个字符串,找出其值最小的一个字符串。子函数形式为:int min(char *p,int n);(其中:n为字符串的个数,子函数返回值为最小字符串的指针数组元素的下标)练习4编写一个程序,其中包含一个子函数,功能为统计一个字符串在另一个字符串中出现的次数。要求:l 子函数形式为:int strat(char *a,char *sub);练习5利用随机数生成一个M*M的二维数组(数据在020范围),以4*4矩阵为例: 分别以上三角和下三角形式显示矩阵;子函数形式:void out(int *p); 求出矩阵两条对角线上所有元素之和;子函数形式:void add(int *p); 将矩阵的第一行与最后一行对应元素交换位置存储,并输出新矩阵的结果。子函数形式:void exchange(int *p);程序要求:程序中对数组的处理全部使用指针数组方式。*练习6编写一个程序,其中包含一个子函数,功能为将a,b两个字符串中共有的字符存储至数组c中并输出。要求:子函数形式为:void seek(char *a,*b,*c);指定测试数据:实验十 结构体程序设计(一)练习1编写一个程序,功能为输入5个学生的姓名和年龄,然后输出其中年龄最大和最小学生的姓名和年龄。要求:5个学生的数据不得使用数组,且仅使用两个结构体变量max和min,分别存储最大的和最小的学生姓名和年龄。练习2编写一个程序,功能如下: 输入若干人员的姓名及电话号码(8位),以字符“#”结束输入; 当输入姓名时,能查找出该人的电话号码(如果没有此人,则显示未找到该记录)。练习3有4个学生,每个学生的数据包括学号、姓名、三门课的成绩,要求: 从键盘输入4个学生的数据; 求出每门课的平均成绩; 求出每个学生的平均成绩。 程序主框架:#include iostream.h#include string.h#define N 4struct studentint num;char name20;int score3;void input(struct student stu)void danke(struct student *p)void everyone(struct student *p)void main()struct student stuN;input(stu);danke(stu);everyone(stu);练习4编写一个程序,其中包含一个子函数,功能为将字符串s2中所有未出现在s1中的字母添加到s1的末尾,然后输出。要求:l 子函数形式为:char *addat(char *s1,char *s2);即:使用指针型函数的方式定义子函数,函数返回值为字符串s1的地址。练习5编写一个程序,功能为读入多个正整数(以输入-1作为结束标志),输出其中的最大值、最小值。l 要求:所有数据均不得使用整型变量,而全部使用malloc( )函数。l 提示:申请创建3个空间,分别用一个指针加以指向(例如:int *p,*max,*min;)。实验十一 结构体程序设计(二)练习1编写一个程序,功能为读入一组正整数(以-1作为结束标志),将它们存储在一个动态链表中。再读入一个数m,在链表中搜索值为m的结点,输出从该结点开始直至链表结束的所有数据。此功能为可重复多次的,直至用户输入N结束程序。要求:程序包含2个子函数,各函数要求如下:子函数1:功能为创建包括n个结点的链表并读入数据;形式为:struct LNode *creat(void);子函数2:功能为输出链表中的从m值开始的所有结点;形式为:void print(struct LNode *head,int m);提示:程序可根据需要设置一个全程变量n,用于计结点个数;练习2编写一个程序,功能为输入10个整数,将它们存储在一个动态链表中。再读入一个数n,将链表从第n个结点开始重组(即以第n个结点作为头结点,而将前n-1个结点平移至链表的末尾),并输出重组后的链表结果。要求:程序包含3个子函数,各函数要求如下:子函数1:功能为创建包括10个结点的链表并读入数据;形式为:struct LNode *creat(void);子函数2:功能为平移(重组)链表;形式为:struct LNode *move(struct LNode *head,int n);其中:函数返回值为调整后的新“头指针”的地址;l 子函数3:功能为输出链表中的所有结点;形式为:void print(struct LNode *head);练习3编写一个程序,功能为输入并存储一组文具的明细单(以#作为结束)。文具的类型以(单个大写)字母标识,并且不同类型的文具其规格也不同。其中:P为铅笔,规格为铅芯直径;G为签字笔,规格为颜色;R为尺子,规格为尺子的长度(cm)。l 要求:程序包含1个子函数,其功能要求为输出指定类型文具的信息;形式为:void count(STA a,int n,char type);l 提示:程序中数组的类型为STA,应使用typedef定义;n为数组元素的个数;type为要统计的文具类型(单个大写字母)。*练习4编写一个程序,功能为输入一组正整数(以-1作为结束标志),将它们存储在一个动态链表中并输出。然后,将链表中所有偶数值结点删除,并输出链表删除后结果。要求:程序包含3个子函数,各函数要求如下:l 子函数1:功能为创建包括n个结点的链表并读入数据;形式为:NUM *creat(void);子函数2:功能为输出链表中的所有结点;形式为:void print(NUM *head);子函数3:功能为删除链表中的所有偶数值结点;形式为:NUM *dele(NUM *head);提示:程序中结点的类型为NUM,应使用typedef定义;正常情况: 特殊情况: 实验十二 文件的操作练习1编写一个程序,功能为先创建一个从键盘输入指定文件名的文本文件(如a1.dat),并输入可多行的数据(以“#”结束)作为其内容;然后将该文件的信息复制到指定名称的另一个文本文件(如a2.dat)中,最后输出两个文件的内容。要求:使用fgetc和fputc函数。练习2编写一个程序,功能为从键盘读入一组数值(10个整数),将其中的奇数和偶数分别在磁盘文件“odd.c”和“even.c”中存放(以二进制方式)并输出。要求:使用fread和fwrite函数。练习3有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生的数据,要求: 将读入的数据存入磁盘文件“stu.txt”中; 从磁盘文件“stu.txt”中读出并显示所有学生数据; 将指定课程、指定分数段范围内的学生数据另存入磁盘文件“range.txt”中; 从磁盘文件“range.txt”中读出并显示学生数据。 用记事本打开磁盘文件“stu.txt”和“range.txt”验证其内容。要求:使用fscanf和fprintf函数。 程序主框架:#include stdlib.h#include iostream.h#include stdio.h#define FORMAT %d %s %d %d %d / 定义格式控制符#define N 5struct studentint num;char name20;int score3;stuN;void input(char a) / a用于接收要写入数据的文件名void output(char a,int sn) / sn用于接收要输出文件中的学生人数int select(char
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拆装式泳池采购合同协议
- 房屋做隔间出租合同范本
- 无产权房屋转让合同范本
- 男女合伙人开店合同范本
- 换窗户合同要签安全协议
- 校园外卖商家合同协议书
- 智能售货机投放协议合同
- 摩托车寄存协议合同模板
- 新能源牵引车合同协议书
- 施工队工人劳务合同范本
- 《应用语文(第3版)》技工院校语文课程全套教学课件
- 《石油钻采设备》课件
- 老人居家治疗指南解读
- 瓦斯超限撤人流程及应急处置培训
- 创新园管理制度
- 小学一年级第一学期数学兴趣小组计划
- 第五届绵阳市职业技能大赛赛项技术文件-健康和社会照护
- 肾切除患者护理疑难病例
- 人力管理咨询合同范本
- 2025译林版高中英语高考复习必背全七册单词表(精校打印)
- 2025年变压器绝缘材料项目可行性研究报告
评论
0/150
提交评论