仅供借鉴、仅供借鉴、仅供借鉴(整理了一下大一C语言每个章节的练习题、没得题目、只有程序了)

文章目录

  • 1 、实训名称
  • 2 、实训目的及要求
  • 3 、源代码及运行截图
  • 4 、小结

1 、实训名称

实训10:函数

2 、实训目的及要求

1、掌握函数的定义和调用。
2、自定义函数的编写。
3、数的递归调用方法。

3 、源代码及运行截图

(2)

#include<stdio.h>
long sum(int n);        //    声明
long fac(int i);         //    声明 int main()
{int n;printf("请输入要累加和的阶乘数:\n");scanf("%d",&n);printf("sum=%ld\n",sum(n));return 0;
}long sum(int n)        //    形参写里面
{int i;        long s=0;          //    调用就行了 for(i=1;i<=n;i++)s+=fac(i);return(s);
}long fac(int i)
{if(i==0)return(1);elsereturn(i*fac(i-1));
}

(3)

#include<stdio.h>int fun(int n);
int main(){int x;printf("请输入所求斐波那契数列的前n项:\n");scanf("%d",&x);printf("%d",fun(x));return 0;
}
//函数
int fun(int n){if(n==1) return 1;if(n==2) return 1;if(n>=3) return fun(n-1)+fun(n-2);
}

【7-7】
(1)、

#include<stdio.h>
int main(){int n;double a,fun(int n);printf("请输入一个数:\n");scanf("%d",&n);                                a=fun(n);printf("%10.6f\n",a);return 0;
}
//函数 double fun (int n){int i,j,t=0;double s;s=0;for(i=1;i<=n;i++){for(j=1;j<=i;j++){t+=j;}s+=1/(double)t;}return s;
}

(3)、

#include<stdio.h>
int fun(int n);
int main(){int n,k=0;printf("请输入一个整数:\n");scanf("%d",&n);fun(n);k=fun(n);printf("%d\n",k);return 0;
}
//函数
int fun(int n){int s=0,i;while(n>0){i=n%10;//余数为组成数的部分 s+=i*i*i;n=n/10;//商 }return s;
}

【7-8】

#include<stdio.h>
int fun(int n);
int main(){int m;printf("请输入一个大于三的数:\n");scanf("%d",&m);fun(m);return 0;
}
//函数
int fun(int m){int i;if(m<2){printf("%d不是素数\n",m);} else{for(i=2;i<m;i++){if(m%i==0)break;}if(i<m) {printf("%d不是素数!!!\n",m);}else printf("%d是素数!!!",m); }return 0;}

【7-9】

#include<stdio.h>
int fun(int a);
int main(){int a;puts("输入数据:"); scanf("%d",&a);printf("\n");printf("%d",fun(a));return 0;
}
//函数
int fun(int a){
int i, sum=0;;
for(int i=2;i<a-1;i++){if(a%i==0) {printf("%d的因子是%d\n",a,i);sum+=i; }
}
return sum;
}

【7-10】

#include<stdio.h>double fun(int m);int main(){int m;printf("输入一个数据:\n");scanf("%d",&n);printf("\nThe result is %1f\n",fun(n));return 0;
} //函数double fun(int m){double s=0.0;;for(int i=1;i<=m;i++){s=s+1.0/(2*i);}return s;}

【7-11】

#include<stdio.h>
#include<math.h>double fun(float x);
int main(){
double x;
printf("请输入数据:\n");
scanf("%lf",&x);
printf("y=%f\n",fun(x));return 0;
} //函数
double fun(float x){double z;if((3<x)&&(x<10)){z=exp(x);}else if((-3<x)&&(x<3)){z=log(x+3);}else if(x>=10){z=sin(x)/(cos(x)+4);}else{printf("输入的数据不符合!!"); }return z;
}#include<stdio.h>
#include<math.h>double fun(float x);
int main(){
double x;
printf("请输入数据:\n");
scanf("%lf",&x);
printf("y=%f\n",fun(x));return 0;
} //函数
double fun(float x){double z;int flag;flag= ((3<x)&&(x<10)) ? 1 :((-3<x)&&(x<3)) ? 2: (x>=10) ? 3:4;switch(flag){case 1: {z=exp(x);return z;break;}case 2:{z=log(x=3);return z; break;}case 3:{z=sin(x)/(cos(x)+3);return z;break;}case 4:{printf("请输入正确的数据!"); break;}}    return z;}

【7-12】、

#include<stdio.h>
#include<math.h>
long fun(int n, int k);
int main(){long int sum;int n,k;printf("请输入k:\n");scanf("%d",&k);printf("请输入n:\n");scanf("%d",&n);sum=fun(n,k);printf("sum=%d\n",sum); return 0;} //函数
long fun(int n, int k){int sum;for(int i=1;i<=n;i++){sum+=pow(i,k);}return sum;
}

【7-13】

#include<stdio.h>
long sum(int n);
int main(){long int n;printf("请输入 n:\n");scanf("%d",&n);printf("sum=%ld\n",sum(n)); return 0;}
//函数
long sum(int n){int sum;if(n==1||n==2){sum=1;}else if(n>2){sum=2;for(int i=3;i<n;i++){sum*=2;}}else{printf("输入的数据不符合要求!!");}return sum;
}

【7-14】

#include<stdio.h>
int sub(int m);
int main(){int i;printf("满足条件的数值:\n");for(i=1000;i<=2000;i++){if(sub(i)==1)printf("%6d",i);}
return 0;}
int sub(int m){int n;int sum1,sum=0;sum1=m;while(m){n=m%10;sum=sum+n;m=m/10; } if(sum%13==0) return 1;else return 0;
}

【7-15】

#include<stdio.h>
#include<math.h>
int sub(int m);
int main(){int n;printf("请输入一个整数:\n");scanf("%d",&n);printf("%d",sub(n));
}
int sub(int m){int count=0; int sum,sum1,sum2;int a,b;sum1=sum=m;while(m){m=m/10;count++; } a=pow(10,(count-1));b=sum/a;sum2=sum-b*a;return sum2;}

【7-16】

#include<stdio.h>
int main()
{
int a,i,b,n;for(a=66;a<=6000;a++)
{for(b=0,i=1;i<=a/2;i++) if(!(a%i)) b+=i; for(n=0,i=1;i<=b/2;i++)if(!(b%i)) n+=i;if(n==a&&a<b)printf("%4d..%4d \n",a,b); }}

4 、小结

在函数的调用过程中,可以将函数放main函数之前;也可以放在main函数之后,单此时需要先声明函数,否则main函数不能对函数进行引用。不同的函数是一个问题的解决过程可以独立的存在,在使用对应的方法解决问题是需要引用不同的函数。有的函数有返回值有的则没有返回值,无返回值的用void声明。函数体中的方法运用的循环用使用合适的循环。

C语言------函数相关推荐

  1. c语言exit在哪个头文件_C语言函数执行成功时,返回1和返回0,究竟哪个好?

    基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...

  2. c语言s开头的函数以及作用,C语言函数大全-s开头-完整版.doc

    C语言函数大全-s开头-完整版 C语言函数大全(s开头) 函数名: sbrk 功能: 改变数据段空间位置 用法: char *sbrk(int incr); 程序例: #include#include ...

  3. R语言函数:length计算长度、seq生成数据序列、rep将数据对象重复N遍复制、cut将连续变量分割为多水平的因子变量、pretty将连续变量x分成n个区间创建合适的断点、cat数据对象拼接

    R语言函数:length函数计算数据对象的长度.seq函数生成数据序列(sequenceÿ

  4. go语言----函数 结构体 接口 多态

    函数 Go语言 函数是反过来声明 变量类型和  函数返回值 一.一个返回值 package main import "fmt"func max(a int,b int) int { ...

  5. head在c语言中的作用,阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 函数sort (NODE *head)的功能 - 赏学吧...

    阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内. [说明] 函数sort (NODE *head)的功能是:用冒泡排序法对单链表中的元素进行非递减排序.对于两个相邻结点中的元素,若较小的 ...

  6. C语言函数知识体系大学霸IT达人

    C语言函数知识体系大学霸IT达人 C语言中的函数会集成一条或多条命令(语句)用于实现指定的一个或多个功能.简单的可以将函数理解为一个工具,例如,锤子.锤子的功能是砸东西,木柄和锤头两部分就是函数中包含 ...

  7. swift1.2语言函数和闭包函数介绍

    swift1.2语言函数和闭包函数介绍 在编程中,随着处理问题的越来越复杂,代码量飞速增加.其中,大量的代码往往相互重复或者近似重复.如果不采有效方式加以解决,代码将很难维护. swift1.2语言函 ...

  8. Swift 1.1语言函数参数的特殊情况本地参数名外部参数名

    Swift 1.1语言函数参数的特殊情况本地参数名外部参数名 7.4  函数参数的特殊情况 声明定义有参函数时,为函数的每一个参数都定义了参数名称.根据参数名定义的形式不同,函数参数包括本地参数和外部 ...

  9. C语言函数指针 和 OC-Block

    C语言函数指针 和 OC-Block 一. C语言函数指针 关于函数指针的知识详细可参考: http://www.cnblogs.com/mjios/archive/2013/03/19/296703 ...

  10. 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

最新文章

  1. (附视频) | AI奠基人、美国AI科学家特伦斯谈深度学习​
  2. Android - Android Studio 解决访问被墙的问题
  3. 区块链究竟是什么鬼?看完漫画秒懂
  4. linux tail 命令,Linux tail命令的巧妙应用
  5. Javascipt数组去重的几种方式
  6. 软件设计师习题笔记-重点习题二
  7. 单一应用架构 垂直应用架构_如何说应用架构的语言
  8. shell 文件 开头的格式
  9. 具有分页,排序,搜索和导出数据选项的ASP.NET Core CRUD操作
  10. java钟使用dwr_DWR中各种java方法的调用
  11. wps怎么做时间线_时间不够用怎么办?如何做才会更高效
  12. 使用ImageMagick和Tesseract进行简单数字图像识别
  13. 拜山贴(COM+中的连接复用)
  14. Java计算接口请求时间
  15. echarts 生成 迁徙图_百度地图+echarts(迁徙图)
  16. linux wqy字体安装,给openSUSE安装文泉驿字体
  17. 分析EOF究竟是什么
  18. python3调用arcpy地理加权回归_分析地理加权回归分析结果的操作方法
  19. 宽带运营商的dns服务器,给大家介绍 几个常用的公共DNS服务器
  20. matlab norm函数_机器人手眼标定MATLAB及C++实现(二十九)

热门文章

  1. 成功解决mingw下载太慢的问题
  2. zadig对于java的支持
  3. 样本均值和样本方差的无偏性证明、正态分布样本方差的方差
  4. 生成数据库设计文档小技巧
  5. Python3.X下安装Scrapy (转自鱼c论坛作者lumber2388779)
  6. 《协整理论与波动模型-金融时间序列分析及应用(第二版)》
  7. 压缩包打开密码解决办法
  8. chrome80默认SameSite导致iframe无法获取cookie问题解决方法
  9. 将c#窗体从一个项目1移动到另外一个项目2中
  10. Opencv读取网络摄像头的rtsp流