C语言 实验六 函数
C语言 实验六 函数
一、实验目的
1.掌握函数定义与调用的方法。
2.掌握实参和形参的对应关系以及函数调用时的数据传递方式。
3.了解函数的嵌套调用和递归调用。
4.掌握局部变量、全局变量、自动变量和静态局部变量的使用方法。
二、实验学时
4 学时
三、实验内容
1.编一函数 void print(int x),功能是输出下列图形
行数由形参 x 来确定
在主函数中输入 x 的值,调用函数 print 来输出图形。
2. 编写一函数计算
y=(a-b)/(a+b)
的值。在主函数中输入 a 和 b 的值、输出 y 的值。
3. 编写两个函数分别求两个正整数的最大公约数和最小公倍数。在主函数中输
入两个正整数 m 和 n 的值、输出 m 和 n 的最大公约数和最小公倍数。
4.编写函数 int fac ( int x )计算 x!的值。在主函数中输入 n 和 m 的值,通
过调用函数 fac 计算
Cnm
的值(要求分别用递归和非递归的方法编写函数 fac)。
5.编写一个判别素数的函数 int ftss(int x),在主函数输入一个整数,调用 int
ftss(int x)输出是否素数信息。本程序应当准备以下测试数据:17、34、2、1、0。
分别输入数据,运行程序并检查结果是否正确。
6.用递归法将一个整数 n 转换成字符串。例如,输入 483,应输出字符串“483”,
N 的位数不确定,可以是任意的整数。
程序代码如下:
1.
①正三角
#include<stdio.h>
void print(int x)
{int i,m,n; for(i=1;i<=x;i++) {for(n=1;n<=x-i;n++) {printf(" "); } for(m=1;m<=2*i-1;m++) {printf("*"); } printf("\n"); }
}int main(void)
{int x;printf("请输入行数x:");scanf("%d",&x); print(x);
}
②倒三角
#include<stdio.h>void print(int x)
{int i,m,n; for(i=1;i<=x;i++) { for(m=1;m<=i;m++) { printf(" "); } for(n=1;n<=2*x+1-2*i;n++) { printf("*"); } printf("\n"); }
}int main(void)
{int x;printf("请输入行数x:");scanf("%d",&x); print(x);
}
#include<stdio.h>
#define zero 1e-8double yyds(double a,double b)
{double y; if(a+b<=zero) printf("输入无效"); else {y=(a-b)/(a+b); printf("y=%lf",y); } }main(void)
{double a,b; int c; printf("请输入a,b:"); c=scanf("%lf,%lf",&a,&b); while(c!=2) {while(getchar()!='\n'); printf("输入无效,请重新输入:"); c=scanf("%lf,%lf",&a,&b); } yyds(a,b);
}
①普通调用
#include<stdio.h>
int Nrin(int m,int n)
{int s; for(s=1;s%m!=0||s%n!=0;s++); printf("m和n的最小公倍数=%d\n",s);}int Zer(int m,int n){int s; for(s=m;m%s!=0||n%s!=0;s--); printf("m和n的最大公约数=%d\n",s);}main(void)
{int m,n; printf("请输入两个正整数m,n:"); scanf("%d,%d",&m,&n); Nrin(m,n); Zer(m,n);}
②多级调用( xy=最小公倍数最大公约数)
#include<stdio.h>
int Nrin(int m,int n)
{int s; for(s=1;s%m!=0||s%n!=0;s++); return s;
}int Zer(int m,int n)
{int x; x=m*n/Nrin(m,n); return x;
}main(void)
{int m,n; printf("请输入两个正整数m,n:"); scanf("%d,%d",&m,&n); printf("m和n的最小公倍数=%d\nm和n的最大公约数=%d\n",Nrin(m,n),Zer(m,n));
}
①非递归:
#include<stdio.h>
int fac(int x)
{int i; long j=1; for(i=1;i<=x;i++) j*=i; return j;}int main(void)
{int n,m; long p; do{printf("输入n,m (n>=m>0):"); scanf("%d,%d",&n,&m); } while(n<m||n<=0||m<0); p=fac(n)/(fac(m)*fac(n-m)); printf("%ld\n",p); return 0;
}
②递归
#include<stdio.h>
int fac(int x)
{if(x==0||x==1) return 1; else return (x*fac(x-1));
}int main(void)
{int n,m; long p; do{printf("输入n,m (n>=m>0):"); scanf("%d,%d",&n,&m); } while(n<m||n<=0||m<0); p=fac(n)/(fac(m)*fac(n-m)); printf("%ld\n",p); return 0;
}
#include<stdio.h>
int ftss(int x)
{int i,flag=0; for(i=2;i<x;i++) if(x%i==0) flag=1; if(flag==1||x==0||x==1) printf("%d不是一个素数",x); else printf("%d是一个素数",x);
}int main(void)
{int x; printf("请输入整数x:"); scanf("%d",&x); ftss(x); return 0;
}
#include <stdio.h>
#include <stdlib.h>
long zer(long n)
{int m; if ((m=n/10)!=0) zer(m); putchar(n%10+'0');
}int main()
{long num; printf("请输入整数number: "); scanf("%d", &num); zer(num); return 0;
}
C语言 实验六 函数相关推荐
- c语言实验7字符串,C语言实验六(第七章二维数组字符串数组)
C语言实验六(第七章二维数组字符串数组) 第 1 页 共 7 页第七章二维数组.字符串数组题[书面作业] 以书面作业形式上交,2010 年 11 月 1 日课堂交三道题的源程序1. 编写一个主函数:用 ...
- c语言实验七 函数实验报告,C语言实验七函数实验报告.doc
C语言实验七函数实验报告 C语言程序设计 实 验 报 告 实验题目 实验七 函数 实验目的 掌握函数定义的方法: 掌握函数实参与形参的对应关系,以及值传递的方式. 掌握函数的嵌套调用和递归调用的方法: ...
- 桂 林 理 工 大 学实 验 报 告 实验名称实验六 函数
桂 林 理 工 大 学 实 验 报 告 班级 计算机类2 学号320205 姓名 实验名称实验六 函数 日期 2020年 12月7日 一.实验目的: 掌握定义函数.声明函数的方法. 掌握调用函 ...
- c语言实验报告函数和宏定义,第六章 实验报告(函数与宏定义)
##C程序设计实验报告 ###一.实验项目: 1.编写由三角形三边求面积的函数 2.编写求N阶乘的函数 3.求两个整数的最大公约数 4.打印输出三角形 5.求500以内的所有亲密数对 ##姓名:戴求 ...
- c语言实验五函数答案,C语言程序设计实验五 参考答案.doc
C语言程序设计实验五 参考答案 实验5 函数(1)参考答案 5-1.以下程序的功能:从键盘输入两个数,计算出他们的和,并将结果输出在屏幕上.调试运行程序,观察出现了什么错误,提出修改方案. 答案: # ...
- python函数实验总结_Python程序设计实验报告:实验六 函数
安徽工程大学 Python程序设计 实验报告六 班级 物流192 姓名陶俊学号3190505235 成绩 日期 2020.5.4 指导老师修宇 实验 6 函数 [实验目的] 掌握函数的定义与使用方法: ...
- 智慧树c语言实验八函数,C君带你玩编程
第一章 认识C语言 认识C语言 C语言的历史与特点 C语言的历史与特点 算法及其表示 算法及其表示 C程序的操作过程 C程序的操作过程 C程序的基本结构 C程序的基本结构 标识符.关键字和保留字 标识 ...
- C语言实验六 一维数组程序设计
一.实验目的 (一)掌握一维数组的定义.初始化方法: (二)掌握一维数组中数据的输入和输出方法: (三)掌握与一维数组有关的程序和算法: (四)了解用数组处理大量数据时的优越性. 二.预习要求 (一) ...
- c语言对分查找实验报告,C语言实验指导.doc
C语言实验指导.doc C语言实验指导(要求认真填写实验报告中的各项内容,不得空白或填写未发现问题)实验一 顺序结构程序设计实验二 选择结构程序设计实验三 循环结构程序设计实验四 一维数组及其应用实验 ...
- 池州学院c语言实验作业答案,池州学院《C语言程序设计》实验教学大纲.doc
池州学院<C语言程序设计>(2011002)实验教学大纲 适用范围:非计算机理工类本科各专业 总学时:18 (2010年6月修订)New 一.教学目的: 本大纲是针对理工科非计算机各专业的 ...
最新文章
- zookeeper 启动显示started,jps查看进程却没有,解决方法
- [原创].图解一招搞定UCWEB@Nokia S60v5无法在博客园手机版发闪存的问题
- uva140 Bandwidth
- Codeforces 987C. Three displays(o(n^2))
- PHP 入门 - 9.安全
- 底层系统如何实现数据一致性/系统底层如何保证有序性
- 前端学习(1172):模板字符串
- 【Linux】Linux中常用操作命令
- 软件设计师 - 软件工程
- SpringBoot编写sh脚本进行启停
- java 几种类_Java 中有几种类型的流?
- 2016专接本c语言真题_专科三年记录+自己学习专接本历程
- 最近公共祖(LCA)模板_祖先深度_区域祖先_(欧拉序列+标准RMQ+四毛子)O(n)-O(1)
- HTML制作虾米音乐,如何用jQuery仿虾米音乐网完整源码
- FaceBook爬取库:facebook-scraper
- 基于Ant Design vue框架登录demo
- 解析区块链游戏与GameFi的发展历程
- 网页中标签对搜索引擎的影响
- 零基础入门UI设计必备实用技巧!
- CSS小技巧---线性渐变linear-gradient/径向渐变radial-gradient
热门文章
- 微信小程序视频开发教程
- 常用编程语言应用、前景及学习方法
- 深度学习与计算机视觉教程(18) | 深度强化学习 (梯度策略,Actor-Critic,DDPG,A3C)(CV通关指南·完结)
- Docker容器监控cAdvisor
- Java 中的十大排序算法
- C语言全局变量的使用
- java逻辑面试题_java学习必备——java逻辑推理面试题
- 关于自抗扰控制的稳定性分析
- 低代码平台集成方案,打通企业内部业务管理系统
- 调用远程摄像头进行人脸识别_怎样快速搭建人脸识别通道?