版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验14函数的嵌套与递归安徽师范大学数学计算机科学学院2主要内容一、实验目的二、实验原理三、实验内容四、实验要求一、实验目的1、理解函数的嵌套调用方式。2、理解递归的定义,掌握递归函数的定义方法。3、学会实验函数的嵌套调用解决一些复杂应用问题,理解函数调用的程序设计思想。安徽师范大学数学计算机科学学院3二、实验原理1、函数的嵌套调用C语言不能嵌套定义函数,但可以嵌套调用函数,也就是说,在调用一个函数的过程中调用另一个函数。注意:不能调用main函数。2、函数的递归调用在调用函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。说明:不应出现无终止的递归调用,因此,应该给定一个限制递归次数的条件,即满足该条件时停止函数的调用。安徽师范大学数学计算机科学学院4三、实验内容1、验证性实验安徽师范大学数学计算机科学学院5题目:用递归方法求解十进制非零正整数x的二进制大小安徽师范大学数学计算机科学学院6递归函数设计为:如果x为0,则函数结束;否则,递归调用该函数本身,函数的实参值为x/2,再输出x%2源程序:#include<stdio.h>voidn10to2(intx);intmain(){intx;do{ printf("请输入非零正整数:"); scanf("%d",&x);}while(x<=0);n10to2(x);return0;}voidn10to2(intx){ if(x==0) return; else { n10to2(x/2); printf("%d",x%2); }}题目:将字符串s中除了下标为偶数、同时字符ASCII值为偶数的字符外,其余全部删除。安徽师范大学数学计算机科学学院7函数fun就是实现按要求删除字符的功能,形参s存放原串,形参t存放新串;函数pd为判断值是否为偶数源程序:#include<stdio.h>#include<string.h>voidfun(char*s,chart[]);intpd(inti);intmain(){chars[100],t[100];printf("\nPleaseenterstringS:");gets(s);fun(s,t);printf("\nTheresultis:%s\n",t);return0;} voidfun(char*s,chart[]){ inti,j=0; for(i=0;s[i]!='\0';i++)if(pd(s[i])&&pd(i)) { t[j]=s[i]; j++; }t[j]='\0';}intpd(inti){ if(i%2==0) return1; else return0;}课堂练习练习题目1:请编写函数fun,函数的功能是:将M行N列的二维字符数组中的字符数据,按列的顺序依次放到一个字符串中。给定源程序:#include<stdio.h>#defineM3#defineN4voidfun(chars[][N],char*b);intmain(){chara[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}};inti,j;printf("Thematrix:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3c",w[i][j]);printf("\n");}fun(w,a);printf("TheAstring:\n");puts(a);printf("\n\n");return0;}安徽师范大学数学计算机科学学院8练习题目2:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。#include<stdio.h>#defineN80intfun(inta[],intn);Intmain(){inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;printf("Theoriginaldata:\n");for(i=0;i<n;i++)printf("%3d",a[i]);n=fun(a,n);printf("\nThedataafterdeleted:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");return0;}练习题目3:编写程序,输入10个整数,将其进行升序排序,并检查整数x(由用户指定)值是否在这些数字当中,若在,返回其在数组中的位置(即下标值,可能不止一个),若不在则将x插入到相应位置,并使插入后数组仍有序。注:查找数x要求用递归函数实现折半查找。折半查找的基本思想是:对于升序表,查找时先取表中间位置的元素值和所给值进行比较,若相等,则查找成功;如果给定值比该记录关键字大,则在后半部分继续进行折半查找;否则在前半部分进行折半查找,直到查找范围为空而查不到为止。安徽师范大学数学计算机科学学院103、在线测试基础题友好数字(OJ1361)Description
如果满足下面的条件则称这两个整数是友好的:这个整数的约数和(除它本身外)等于对方。编写程序,输入两个正整数,判断它们是否为友好。Input
两个整数Output
友好输出YES,不友好输出NO安徽师范大学数学计算机科学学院114、在线测试提高题约瑟夫环问题(OJ1362)Description
古代某法官要判决n个犯人死刑,他有一个荒唐的逻辑,将犯人首尾相接排成圆圈,然后从第1个人开始数起,每数到第m个犯人,就拉出来处决;然后再数m个,数到的犯人再被处决;……剩下的最后一个犯人可以赦免。编写程序给出哪一个人可以活下来。Inp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云存储服务合同协议2026年存储
- 2026年医疗用地土地流转经营合同协议
- 2026年医药冷链仓库租赁合同
- 商铺租赁合同2026年税务承担
- 2026年2026年干货供应合同协议
- 家装修介绍教学课件
- 2026届新高考英语冲刺复习 读后续写-逆推
- 家政服务员安全卫生课件
- 家务培训课件
- 培训讲座心理课件
- 2025年宁波市数据局直属事业单位公开招聘工作人员笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025秋苏少版七年级上册美术期末测试卷(三套)
- 2026年及未来5年市场数据中国EPP保温箱行业市场调研及投资战略规划报告
- 2025锦泰财产保险股份有限公司招聘理赔管理岗等岗位54人(公共基础知识)综合能力测试题附答案解析
- 2025浙江宁波象山县水质检测有限公司招聘及对象笔试历年参考题库附带答案详解
- 光伏屋面施工专项安全方案
- 2026年黑龙江农业工程职业学院单招综合素质考试题库附答案
- 四川农商银行2026年校园招聘1065人考试题库附答案
- 2026年度交通运输部所属事业单位第三批统一公开招聘备考笔试试题及答案解析
- 2025秋学期六年级上册信息科技期末测试卷附答案(苏科版)
- 广西壮族自治区公安机关2026年人民警察特殊职位招聘195人备考题库及1套完整答案详解
评论
0/150
提交评论