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语言 实验六 函数相关推荐

  1. c语言实验7字符串,C语言实验六(第七章二维数组字符串数组)

    C语言实验六(第七章二维数组字符串数组) 第 1 页 共 7 页第七章二维数组.字符串数组题[书面作业] 以书面作业形式上交,2010 年 11 月 1 日课堂交三道题的源程序1. 编写一个主函数:用 ...

  2. c语言实验七 函数实验报告,C语言实验七函数实验报告.doc

    C语言实验七函数实验报告 C语言程序设计 实 验 报 告 实验题目 实验七 函数 实验目的 掌握函数定义的方法: 掌握函数实参与形参的对应关系,以及值传递的方式. 掌握函数的嵌套调用和递归调用的方法: ...

  3. 桂 林 理 工 大 学实 验 报 告 实验名称实验六 函数

    桂 林 理 工 大 学 实  验  报  告 班级 计算机类2 学号320205 姓名  实验名称实验六 函数 日期 2020年 12月7日 一.实验目的: 掌握定义函数.声明函数的方法. 掌握调用函 ...

  4. c语言实验报告函数和宏定义,第六章 实验报告(函数与宏定义)

    ##C程序设计实验报告 ###一.实验项目: 1.编写由三角形三边求面积的函数 2.编写求N阶乘的函数 3.求两个整数的最大公约数 4.打印输出三角形 5.求500以内的所有亲密数对 ##姓名:戴求  ...

  5. c语言实验五函数答案,C语言程序设计实验五 参考答案.doc

    C语言程序设计实验五 参考答案 实验5 函数(1)参考答案 5-1.以下程序的功能:从键盘输入两个数,计算出他们的和,并将结果输出在屏幕上.调试运行程序,观察出现了什么错误,提出修改方案. 答案: # ...

  6. python函数实验总结_Python程序设计实验报告:实验六 函数

    安徽工程大学 Python程序设计 实验报告六 班级 物流192 姓名陶俊学号3190505235 成绩 日期 2020.5.4 指导老师修宇 实验 6 函数 [实验目的] 掌握函数的定义与使用方法: ...

  7. 智慧树c语言实验八函数,C君带你玩编程

    第一章 认识C语言 认识C语言 C语言的历史与特点 C语言的历史与特点 算法及其表示 算法及其表示 C程序的操作过程 C程序的操作过程 C程序的基本结构 C程序的基本结构 标识符.关键字和保留字 标识 ...

  8. C语言实验六 一维数组程序设计

    一.实验目的 (一)掌握一维数组的定义.初始化方法: (二)掌握一维数组中数据的输入和输出方法: (三)掌握与一维数组有关的程序和算法: (四)了解用数组处理大量数据时的优越性. 二.预习要求 (一) ...

  9. c语言对分查找实验报告,C语言实验指导.doc

    C语言实验指导.doc C语言实验指导(要求认真填写实验报告中的各项内容,不得空白或填写未发现问题)实验一 顺序结构程序设计实验二 选择结构程序设计实验三 循环结构程序设计实验四 一维数组及其应用实验 ...

  10. 池州学院c语言实验作业答案,池州学院《C语言程序设计》实验教学大纲.doc

    池州学院<C语言程序设计>(2011002)实验教学大纲 适用范围:非计算机理工类本科各专业 总学时:18 (2010年6月修订)New 一.教学目的: 本大纲是针对理工科非计算机各专业的 ...

最新文章

  1. zookeeper 启动显示started,jps查看进程却没有,解决方法
  2. [原创].图解一招搞定UCWEB@Nokia S60v5无法在博客园手机版发闪存的问题
  3. uva140 Bandwidth
  4. Codeforces 987C. Three displays(o(n^2))
  5. PHP 入门 - 9.安全
  6. 底层系统如何实现数据一致性/系统底层如何保证有序性
  7. 前端学习(1172):模板字符串
  8. 【Linux】Linux中常用操作命令
  9. 软件设计师 - 软件工程
  10. SpringBoot编写sh脚本进行启停
  11. java 几种类_Java 中有几种类型的流?
  12. 2016专接本c语言真题_专科三年记录+自己学习专接本历程
  13. 最近公共祖(LCA)模板_祖先深度_区域祖先_(欧拉序列+标准RMQ+四毛子)O(n)-O(1)
  14. HTML制作虾米音乐,如何用jQuery仿虾米音乐网完整源码
  15. FaceBook爬取库:facebook-scraper
  16. 基于Ant Design vue框架登录demo
  17. 解析区块链游戏与GameFi的发展历程
  18. 网页中标签对搜索引擎的影响
  19. 零基础入门UI设计必备实用技巧!
  20. CSS小技巧---线性渐变linear-gradient/径向渐变radial-gradient

热门文章

  1. 微信小程序视频开发教程
  2. 常用编程语言应用、前景及学习方法
  3. 深度学习与计算机视觉教程(18) | 深度强化学习 (梯度策略,Actor-Critic,DDPG,A3C)(CV通关指南·完结)
  4. Docker容器监控cAdvisor
  5. Java 中的十大排序算法
  6. C语言全局变量的使用
  7. java逻辑面试题_java学习必备——java逻辑推理面试题
  8. 关于自抗扰控制的稳定性分析
  9. 低代码平台集成方案,打通企业内部业务管理系统
  10. 调用远程摄像头进行人脸识别_怎样快速搭建人脸识别通道?