电1C语言实验报告(6)
《计算方法与程序设计实验》
{if(a[i]!=0)m++; /*对未出局者计数*/
if(m==3)a[i]=0,n=i,m=0;/*对出局者编号为0,并保存原编号,计数从0开始*/ }
printf(\最后出局者的编号*/ 学生练习:要求用数组进行编程
1. 已知F(0)=F(1)=0 F(2)=1 F(n)=F(n-1)-2F(n-2)+F(n-3) (n>2) 求F(0)到F(100)中正数的个数。
2 . 计算A15的值,已知A1=1,A2=1/(1+A1),A3=1/(1+A2),A4=1/(1+A3)…(结果保留10位小数)。 【实验总结】通过做这个实验,我掌握了一维数组和二维数组的定义、初始化、赋值和输入输出操作;掌握与数组有关的算法:冒泡法、筛选法、二分查找法、矩阵和猴子选大王问题。
实验名称:实验7 函数及其应用
实验时间:第13周周三 实验地点:5423
【实验目的】掌握C语言中定义、调用函数的方法;掌握函数形参与实参的参数传递关系;加强
常用算法的使用。
【实验内容】
1.调试程序,掌握函数的定义形式,分析函数调用过程中形参和实参的关系。 #include \void swap(int x, int y) { int t;
t=x; x=y; y=t;
printf(\}
main( ) {
int a=10, b=20;
printf(\(1)a=%d, b=%d\\n \swap(a,b);
printf(\(2)a=%d, b=%d\\n \}
Key:分析:C语言中由于实参和形参是不同的变量,实参到形参是单向的值传递,swap函数中形 参值的改变不影响主函数中实参的值。 运行结果:main(1)a=10,b=20 swap***x=20,y=10
main(2)a=10,b=20
2.调试程序,分析程序中函数的调用过程,分析程序的运行结果。 #include \int fun(int x) { int y;
if(x==0||x==1) return 3; y=x*x-fun(x-2); return y; }
main()
16
《计算方法与程序设计实验》
{
printf(\}
Key:分析:C语言中递归调用是先递推再回推,主函数中实参3先送给fun函数中形参x,得到y=3*3-fun(1);在未执行return y;返回主函数之前再用1自已调用自已,这时就到了递归出口,返回3到fun(1)处,因而y=3*3-3; 返回值6到主函数的fun(3)处,所以主函数输出6。
3.排错题:下列给定程序中函数fun 的功能是:用递归算法求形参a 的平方根。请改正 程序中的错误,使它能计算出正确的结果。注意:源程序不得增行或删行,也不得更改程序 的结构!
例如,a 为2 时,平方根值为:1.414214。 #include
/**********found**********/ void fun(double a, double x0) { double x1, y; x1=(x0+a/x0)/2.0;
/**********found**********/ if( fabs(x1-x0)<=0.00001 ) y=fun(a,x1); else y=x1; return y; }
main( ) { double x;
printf(\
printf(\}
Key:第一个错误:void fun(double a, double x0) 应改为:double fun(double a, double x0) 因根据题意,需通过调用fun()函数返回a的平方根,故必须将void改为double,否则不能用带值的return语句。自增。
第二个错误:if( fabs(x1-x0)<=0.00001 ) 应改为:if( fabs(x1-x0)>=0.00001 ) 因只有 fabs(x1-x0)>=0.00001才须递归。
4.设计一个程序,判断一个整数n 是否是素数。 具体要求如下:
(1)编制一个函数int prime(number),判断整数number 是否是素数。
(2)编制主函数,由键盘输入整数number,调用(1)中的函数,若返回值为真则是素 数,否则不是素数。
(3)分别用以下数据运行该程序:103,117。
【程序源代码】 #include \main() { int number;
printf(\请输入一个正整数:\\n\scanf(\if (prime(number))
printf(\是素数. \else
printf(\不是素数. \}
17
《计算方法与程序设计实验》
int prime(number) int number; {int flag=1,n;
for(n=2;n 5.编写程序,通过两个自定义函数分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个正数由键盘输入。 具体要求如下: (1)用辗转相除法实现。 (2)输出要有文字说明,输出形式为:最大公约数=具体值,最小公倍数=具体值 (3)分别用以下数据运行该程序: 8 和26, 64 和258 (4) 辗转相除法:对于两个数m 和n,将大数放在m 中,小数放在n 中,用n 去除m, 若余数为0,则n 为最大公约数,否则将n 作为m,余数作为n,再用n 去除m, 直到余数为0,则n 为最大公约数。 【程序源代码】 #include \hcf(u,v) int u,v; {int a,b,t,r; a=u; b=v; while((r=b%a)!=0) {b=a; a=r;} return(a);} lcd(u,v,h) int u,v,h; {return(u*v/h);} main() {int u,v,h,l; scanf(\h=hcf(u,v); printf(\l=lcd(u,v,h); printf(\ 6.请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维 数组中的值在主函数中赋予。例如,若二维数组中的值为 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。 18 《计算方法与程序设计实验》 【程序源代码】 #include int fun( int a [M][N]) {int i,j,s=0; for(i=0;i for(j=0;j if(i==0||j==0||i==M-1||j==N-1) s+=a[i][j];; return s; } void main() { int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}}; int i, j, y; printf (\ for(i=0; i {for (j=0; j 【实验总结】通过做这个实验,我掌握了C语言中定义、调用函数的方法;掌握函数形参与实参的参数传递关系;加强常用算法(递归算法求算术根;用函数编程判断素数、求最大公约数和最小公倍数及求二维数组周边元素之和)的使用。 实验名称:实验8 作用域和存储类型应用 实验时间:第14周周三 实验地点:5423 【实验目的】理解C语言中变量的作用域和存储类型;掌握函数调用时它们产生的作用。 【实验内容】 1.调试程序,在程序中观察变量值的变化,掌握在函数调用时变量的作用域和存储类型的作用。 #include \int fun(int a) { auto int y=0; static int z=3; y=y+1; z=z+1; return (x+y+z); } main() { int x=2,i; for (i=0;i<3;i++) printf(“=”,fun(x)); } Key:编译时出错(8):error 'x' : undeclared identifier 将fun(int a)改为fun(int x) 因x是main函数定义的变量,在fun()中没定义,故在fun()函数中不能引用。运行结果: 5 6 7 19 《计算方法与程序设计实验》 分析:主函数3次调用fun()函数,由于y是fun()中定义的自动变量,z是fun()中定义的静态
…… 此处隐藏:2598字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




