当前位置:文档之家› 实验八函数应用一daan

实验八函数应用一daan

实验八函数应用一daan
实验八函数应用一daan

实验八函数应用(一)

一?实验目的

1.掌握函数的定义和调用;

2.掌握形参和实参的使用和传值调用;

3.了解函数声明的使用;

4.掌握函数的嵌套调用;

5.了解函数的递归调用,掌握递归函数的编写规律;

6.重点掌握数组作函数参数。

二?实验学时数

3学时

三?实验步骤

(一)阅读程序

1.fun (int x, int y, int z)

{ z=x * x + y * y;

}

main()

{ int a=38;

fun(7,3,a);

printf(“%d”,a);

2.void fun (int x,int y );

main()

{int x=5,y=3;

fun(x,y);

printf(“%d,%d\n”,x,y);

}

void fun (int x,int y )

{ x=x+y;

y=x-y;

x=x-y;

printf(“%d,%d\n”,x,y);

3.int f (int a) ;

main()

{ int s[ 8 ] = {1,2,3,4,5,6} ,i, d=0;

for (i=0; f( s[i] ) ; i++)

d+=s[i];

printf("%d\n",d);

}

int f(int a)

{ return a%2;

}

4.long f( int g)

{ switch(g)

{ case 0:return 0;

case 1:

case 2: return 1;

}

return ( f(g-1)+ f(g-2));

}

main ( )

{ long int k;

k = f(7);

printf("\nk= %d\n",k);

5. int f(int b[ ][4])

{ int i,j,s=0;

for(j=0;j<4;j++)

{ i=j;

if(i>2) i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

printf(“%d\n”,f(a) );

(二)

要求:依据题目要求,分析已给出的语句,填写空白?但是不要增行或删行,改动程序的结构?

1. 请在以下程序第一行的下划线处填写适当内容,使程序能正确运行?

___________________________

main()

{double x,y;

scanf("%lf%lf",&x,&y);

printf("%.8lf\n",max(x,y));

}

double max(double a,double b)

{return (a>b ? a:b) ;

}

double max(double a,double b);

main()

{double x,y;

scanf("%lf%lf",&x,&y);

printf("%.8lf\n",max(x,y));

}

double max(double a,double b)

{return (a>b?a:b) ;

}

2.以下函数的功能是:求x的y次方,请填空,并配写出主调函数。

double fun( double x, int y)

{int i;

double z;

for(i=1, z=x; i

return z;

}

main( )

{

}

double fun( double x, int y)

{int i;

double z;

for(i=1, z=x; i

return z;

}

main( )

{ double a;

int b;

scanf("%lf%d",&a,&b);

printf("%lf的%d次方为%lf",a,b,fun(a,b));

}

3.mystrlen函数的功能是计算字符串的长度,并作为函数值返回。请填空,并配写主调函数。

int mystrlen(char str[ ])

{int i;

for(i=0; ____________!=‘\0';i++);

return(_______);

}

main ( )

{

}

int mystrlen(char str[ ])

{int i;

for(i=0; str[i]!='\0';i++);

return(i);

}

main ( )

{char a[81];

scanf("%s",a);

printf("所输入字符串的长度为%d\n",mystrlen(a));

}

4.通过函数求f(x)的累加和,其中f(x)=x*x*x+1

SunFun(int n) ;

F( int x) ;

main()

{

printf("The sum=%d\n",SunFun(3));

}

SunFun(int n)

{

int x,s=0;

for(x=1;x<=n;x++) s+=F( ____________ );

return s;

}

F( int x)

{ return (___________);}

SunFun(int n) ;

F( int x) ;

main()

{

printf("The sum=%d\n",SunFun(3));

}

SunFun(int n)

{

int x,s=0;

for(x=1;x<=n;x++) s+=F( x );

return s;

}

F( int x)

{ return (x*x*x+1);}

(三)调试程序

要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果?

1.行号

1 void func ( float a , float b )

2 main()

3 { float x , y ;

4 float z ;

5 scanf(“%f , % f”,&x ,&y);

6 z = func ( x , y ) ;

7 printf ( “ z = % f \n” , z ) ;

8 }

9 void func ( float a , float b )

10 { float c ;

11 c = a * a + b * b ;

12 return c ;

13 }

float func ( float a , float b );

main()

{ float x , y ;

float z ;

scanf("%f,%f",&x,&y);

z=func(x,y);

printf ( "z=%f\n",z) ;

}

float func ( float a , float b )

{ float c ;

c = a * a + b * b ;

return c ;

}

2.函数sstrcmp()的功能是对两个字符串进行比较。当s数组中字符串和t数组中字符串相等时,返回值为0;当s数组中字符串大于t数组中字符串时,返回值大于0;当s数组中字符串小于t数组中字符串时,返回值小于0(功能等同于库函数strcmp())。

行号

1 int sstrcmp(char s[ ],char t[])

2 { int i=0 , j=0 ;

3 while(s[i]&&t[j]&& s[i]== t[j] ) ;

4 return s[i]-t[j];

5 }

6 main()

7 { int x;

8 char s1[50],s2[50];

9 scanf("%s%s",s1,s2);

10 x= sstrcmp(s1,s2);

11 printf("\n%d\n",x);

}

int sstrcmp(char s[ ],char t[])

{ int i=0 , j=0 ;

while(s[i]&&t[j]&& s[i]== t[j] )i++,j++;

return s[i]-t[j];

}

main()

{ int x;

char s1[50],s2[50];

scanf("%s%s",s1,s2);

x= sstrcmp(s1,s2);

printf("\n%d\n",x);

}

3.以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第12位学生的年龄。

行号main()

1 { int age( int n) ;

2 int n =12;

3 printf (“ Age is %d\n” , age (n));

4 }

5 int age(int n);

6 { int c;

7 c = age (n-1)+2 ;

8 return ( c ) ;

9 }

main()

{ int age( int n);

int n=12;

printf("Age is %d\n",age (n));

}

int age(int n)

{ int c;

if(n==1) return 10;

c=age(n-1)+2;

return ( c ) ;

}

(四)编写程序

1.编写一个函数,选出能被3整除且至少一位是5的两位数,用主函数调用这个函数,并输出所有这样的两位数。

#include

int f(int x)

{ int a,b;

a=x/10;

b=x%10;

if((a==5||b==5)&&x%3==0)

return 1;

else return 0;

}

main( )

{int i;

for(i=15;i<=95;i++)

if(f(i)) printf("%4d",i);

}

Python 实验8 函数1

实验8 函数(一)实验目的: 1、理解自定义函数过程的定义与调用方法; 2、掌握自定义函数的定义与调用方法; 3、理解函数中的参数的作用; 实验内容: 1、编写一函数Fabonacci(n),其中参数n代表第n 次的迭代。While循环 def fib(n): if n==1 or n==2: return 1 a=1 b=1 i=2 while True: c=a+b a=b b=c i+=1 #第i次迭代,也就就是第i个数 if i==n: return c break def main(): n=input("Enter a number of generation:") print fib(n) main() 或者用for循环 def fib(n): a=1 b=1 c=0 if n==1 or n==2: return 1 else: for i in range(3,n+1): c=a+b a=b b=c return c def main(): n=input("enter n:") print fib(n) main() 2、编写一函数Prime(n),对于已知正整数n,判断该数就是否为素数,如果就是素数,返回True,否则返回 False。 def prime(n): if n<2: return False a=0 for i in range(1,n+1): if n%i==0: a+=1 if a>2: return False else: return True def main(): n=input("Enter a number:") print prime(n) main() Or: def prime(n): if n<2: return False if n==2: return True for i in range(2,n): if n%i==0: return False return True def main(): n=input("Enter a number:") print prime(n) main()

浙师大 C语言 实验10函数2+答案

上机实验十函数与程序结构 学号姓名 一.目的要求 1.掌握函数声明、定义和调用的基本方法 2.掌握用递归函数解决问题的方法。 3.掌握局部变量与全局变量的作用域区别 4.掌握数组作为函数参数的基本方法。 二.实验内容 【实验题1】 分析如下: Line 2中的变量k是_全局_变量;而Line 10中的k是__局部_变量。程序输出结果是k=1,k=1,k=1 。 如果将第10行改为“static int k=1;变量,程序输出结果是k=1,k=2,k=1 。 如果将第10行改为“k=1; ”,该k变量,程序输出结果是k=1,k=1,k=2 。 如果将第10行改为空语句“; ”后,,程序输出结果是k=1,k=2,k=3 。 【实验题2】程序填空:输入一个整数n (1≤n≤10),再输入n个整数,将它们按升序排列后输出。 程序分析_选择法: (1)由于n最大是10,需要定义一个长度为10的整型数组a; (2)整个排序只需要确定前n-1个元素(a[0] ~a[n-2]),最后一个元素a[n-1]无需另外处理; (3)在确定a[i](i=0,1,…,n-2)时,先将a[i]本身看成最小,即令k=i, 并将a[k]与后面的元素a[j](j=i+1, i+2, …, n-1)一一比较, 如果a[j]< a[k],则更新k的值:k =j。找出对应于下标i的最小元素a[k]后,交换a[i]与a[k]。(4)上述排序算法的代码:

运行程序,输入n: 5,输入5个整数:23 -9 14 0 -3,显示结果为: 如果是按从大到小的降序排列,语句行Line 13 应改为:if(a[k]> a[j] ) k=j; [思考题]程序填空: 将上述的程序用函数调用的方式去实现。定义一个sort()函数来实现数组的排序;在main()函数中调用sort()函数来实现数组的排序,并将结果输出。

实验八 公式、序列及函数的使用

实验八公式、序列及函数的使用 一、实验目的 1.熟练掌握序列填充及公式复制的方法; 2.掌握常用函数的功能及使用方法,并能用它们来解决一些实际问题。 二、实验内容与操作步骤 在Excel环境下完成以下各操作: (一)序列填充及公式的使用 1.在Excel中创建一个空白工作簿 2.利用Excel提供的数据填充功能,在Sheet1工作表中输入以下数据: ⑴在区域A1:A9中从上到下填入:2,4,6,8,10,12,14,16,18 ⑵在区域B1:B9中从上到下填入:1,2,4,8,16,32,64,128,256 ⑶在区域C1:C12中从上到下填入:JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC ⑷在区域D1:D7中从上到下填入:星期日,星期一,星期二,星期三,星期四,星期五,星期六 3.在Sheet2工作表中,利用公式计算二次函数ax2+bx+c的值,其中a=2,b=3,c=5,x从-3到4变化,每隔0.5取一个函数值。操作方法写出如下: 4.把工作簿以E81.XLS为文件名存入D:\EX8中。 (二)函数的使用 在Excel环境下打开D:\EX8\E82.XLS文件,依次完成以下各操作后按E83.XLS为文件名存入D:\EX8中。 1、统计函数的使用 ⑴单击“统计函数”工作表;

⑵在区域F3:G8中用“统计函数”计算出各分店的统计值。 操作方法是:先在F3单元及G3单元输入的计算公式,然后选定区域F3:G3后双击其填充柄。其中F3单元的公式为,G3单元的公式为。 ⑶在区域B9:E12用“统计函数”计算出各季度的统计值。 2、条件函数的使用 ⑴单击“条件函数”工作表。 ⑵计算出各学生的平均分; ⑶给定各学生的成绩等级,规则如下:平均分≥90为“A”,80≤平均分<90为“B,70≤平均分<80为“C”,60≤平均分<70为“D”,平均分<60为“E”。以此规则在区域F3:F62用IF函数确定各学生的等级。 ⑷用FREQUENCY函数在区域I2:I5中统计出平均分0~59,60~79,80~99,100各分数段的学生人数。 3、文本函数的使用 ⑴单击“文本函数”工作表; ⑵在区域A2:F32给出的数据清单中,编号的前3位为系别信息,101为数学系,102为物理系,103为化学系,据此在区域B3:B32用函数求出每位教师的系别。其中B3单元使用的公式为。 ⑶已知身份证号的第7至第10位数为出生年份,据此在区域F3:F32用函数求出每位教师的出生年份。其中F3单元使用的公式为。 4、日期函数的使用 ⑴单击“日期函数”工作表; ⑵在区域A2:F32给出的数据清单中,在区域E3:E32用日期函数求出每位职工的工龄。其中E3单元使用的公式为。 ⑶在区域F3:F32用日期函数求出每位职工的工作天数(即自参加工作以来已经过的总天数。其中F3单元使用的公式为。 5、财务函数的使用 使用 PMT 函数完成以下有关的操作: ⑴单击“财务函数”工作表; ⑵某企业向银行贷款5 万元,准备4年还清,假定当前年利率为 4 % ,在 B5 单元 计算每个月应向银行偿还贷款的数额,根据条件在 B2 : B4 补充所需内容。其中单元格B5 使用的公式为。 ⑶假定当前年利率为 5 %,为使 5 年后得到 10 万元的存款,在 D5 单元计算现在开

实验2:函数的应用

实验项目:函数的应用 实验目的: (1)掌握函数的定义和调用方法 (2)练习重载函数的使用 (3)练习使用系统函数 (4)使用debug调试功能,使用step into追踪到函数内部。 实验任务: 1.编写重载函数MAX1可分别求取两个整数,三个整数,两个双精度,三个双精度数的最大值。 2.用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。 实验步骤: 1.分别编写四个同名的函数max1,实现函数重载,在main()中测试函数功能。 int max1(int x, int y) { return (x>y?x:y); } int max1(int x, int y, int z) { int temp1=max1(x,y); return (y>z?y:z); } double max1(double x, double y) { return (x>y?x:y); } double max1(double x, double y, double z) { double temp1=max1(x,y); return (y>z?y:z); } void main() { int x1, x2; double d1, d2; x1 = max1(5,6); x2 = max1(2,3,4); d1 = max1(2.1, 5.6); d2 = max1(12.3, 3.4, 7.8); cout << "x1=" <=1000) {printf("please enter the num again! (num>=100&&num<1000) \n"); scanf("%d",&num);} if(fun(num)==1) printf(" yes \n"); else printf(" no \n");} 编写函数ss(n), 判断n是否为素数,是返回1,否返回0。编写main函数,输入一个数num,调用ss(num)函数,并输出函数的返回值。 #include "stdio.h" int ss(int n) {int i; for(i=2;i=n) return(1); else return(0);} main() { int num; scanf("%d",&num); if(ss(num)==1) printf(" yes \n"); else printf(" no \n");} 编写一个函数fun(n),计算n!,并编写main函数测试,在main函数中输入num,调用fun(num),输出计算的结果。 #include "stdio.h" long fun(int n) {long s=1; int i; for(i=1;i<=n;i++) s=s*i; return(s);}

八年级数学一次函数的应用专题汇编(含详细解析)

八年级数学一次函数的应用专题汇编 一.解答题(共12小题) 1.(?常德模拟)抗战救灾中,某县粮食局为了保证库存粮食的安全,决定将甲、乙两个仓 库的粮食全部转移到具有较强抗震功能的A、B两仓库,已知甲库有粮食80吨,乙库有粮食100吨,而A库的容量为110吨,B库的容量为70吨.从甲、乙两库到A、B两库的路程和运费如下表:(表中“元/吨?千米”表示每吨粮食运送1千米所需人民币) 路程(千米)运费(元/吨?千米) 甲库乙库甲库乙库 A库20 15 13 12 B库25 20 10 8 (1)若甲库运往A库粮食x吨,请写出将粮食运往A、B两库的总运费y(元)与x(吨)的函数关系式; (2)当甲、乙两库各运往A、B两库多少吨粮食时,总运费最省,最省的总运费是多少? 2.(?深圳模拟)某工厂生产一种合金薄板(其厚度忽略不计),这些薄板的形状均为正方形,边长(单位:cm)在5~50之间,每张薄板的成本价(单位:元)与它的面积(单位: cm 2 )成正比例,每张薄板的出厂价(单位:元)由基础价和浮动价两部分组成,其中基础 价与薄板的大小无关,是固定不变的,浮动价与薄板的边长成正比例,在营销过程中得到了表格中的数据. 薄板的边长(cm)20 30 出厂价(元/张)50 70 (1)求一张薄板的出厂价与边长之间满足的函数关系式; (2)40cm的薄板,获得的利润是26元(利润=出厂价﹣成本价). ①求一张薄板的利润与边长之间满足的函数关系式; ②当边长为多少时,出厂一张薄板获得的利润最大?最大利润是多少?

3.(?武昌区校级模拟)某商店购进A型和B型两种电脑进行销售,已知B型电脑比A型电脑的每台进价贵500元,若商店用3万元购进的A型电脑与用 4.5万元购进的B型电脑的数量相等.A型电脑每台的售价为1800元,B型电脑每台的售价为2400元. (1)求A、B两种型号的电脑每台的进价各是多少元? (2)该商店计划用不超过12.5万元购进两种型号的电脑共100台,且A型电脑的进货量不超过B型电脑的. ①该商店有哪几种进货方式? ②若该商店将购进的电脑全部售出,请你用所学的函数知识求出获得的最大利润. 4.(?深圳二模)在“五?一”期间,“佳佳”网店购进A、B两种品牌的服装进行销售,已知B 种品牌服装的进价比A种品牌服装的进价每件高20元,2件A种品牌服装与3件B种品牌服装进价共560元. (1)求购进A、B两种品牌服装的单价; (2)该网站拟以不超过1120元的总价购进这种两品牌服装共100件,并全部售出.其中A 种品牌服装的售价为150元/件,B种品牌服装的售价为200元/件,该网站为了获取最大利润,应分别购进A、B两种品牌服装各多少件?所获取的最大利润是多少?

实验二 函数的应用

实验二函数的应用 一、实验目的 1、掌握函数的定义和调用方法。 2、掌握函数实参与形参的对应关系。 3、掌握函数嵌套调用和递归调用的方法。 二、实验内容与步骤 1、写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。 2、编写重载函数Max可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。 3、递归函数与非递归函数。 编写一个函数,求从n个不同的数中取r个数的所有选择的个数。其个数值为:n! C r n= r!*(n-r)! 其中:n!=n*(n-1)*(n-2)* (1) 要求: (1)分别用递归和非递归两种方式完成程序设计; (2)主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0 0时,程序结束; (3)能检查输入数据的合法性,要求n>=1并且n>=r; (4)注意整数能存放的数据范围有限,如何解决? 提示: (1)可以用double数据类型来存放函数的计算结果。 (2)递归结束条件: 如果r=0,则C(n,r)=1; 如果r=1, 则C(n,r)=n。 测试数据: 输入:5 3 输出:10 输入:10 20 输出:Iput Invalid1 输出:50 3 输出:19600 输入:0 0 程序结束 思考问题:

(1)对各种数据类型的字长是否有了新的认识? (2)递归函数的书写要点是什么? (3)递归和非递归函数各有哪些好处? 4、求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数,用另一个函 数求最小公倍数。 要求: 两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再和两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。

实验6函数习题及答案

实验6 函数 班级:学号: 姓名:日期: 一、实验目的 (1)掌握定义函数的方法; (2)掌握函数实参与形参的对应关系,以及“值传递”的方式; (3)掌握函数的嵌套调用和递归调用的方法; (4)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法; (5)学习对多文件的程序编译和运行。 二、实验内容 1.阅读下面程序,写出程序运行结果,并且上机进行验证。 (1)a1.cpp 变量的虚实耦合,实现的是值传递,是单向传递 #include "stdio.h" int swap(int a,int b) { int c,s; c=a; a=b; b=c; s=a+b; return s; } void main() { int a,b,s; a=3;b=4; s=swap(a,b); printf("a=%d b=%d s=%d\n",a,b,s); } (2)a2.cpp

将十进制数26的各位数字相乘 #include "stdio.h" int fun(int num) { int k=1; do { k*=num %10; / num/=10; }while(num); return(k); } void main() { int n=26; printf("%d\n",fun(n)); } (3)a3.cpp 变量的作用域,当在函数内定义了与全局变量同名的局部变量时,全局变量被屏蔽#include "stdio.h" int a=3,b=5,c; void f(int b) { c=a+b; printf("%d %d %d\n",a,b,c); } void main() { int a=8; f(3); printf("%d %d %d\n",a,b,c); } (4)a4.cpp 递归,将十进制11转换为二进制 #include "stdio.h" void dtob(int n) { int i;

人教版八年级数学下册 一次函数的应用(提高)知识讲解

一次函数的应用(提高) 【学习目标】 1. 能从实际问题的图象中获取所需信息; 2. 能够将实际问题转化为一次函数的问题并准确的列出一次函数的解析式; 3. 能利用一次函数的图象及其性质解决简单的实际问题; 4. 提高解决实际问题的能力.认识数学在现实生活中的意义,发展运用数学知识解决实际问题的能力. 【要点梳理】 【高清课堂:393616 一次函数的应用,知识要点】 要点一、数学建模的一般思路 数学建模的关键是将实际问题数学化,从而得到解决问题的最佳方案、最佳策略.在建模的过程中,为了既合乎实际问题又能求解,这就要求在诸多因素中抓住主要因素进行抽象化简,而这一过程恰是我们的分析、抽象、综合、表达能力的体现.函数建模最困难的环节是将实际情景通过数学转化为什么样的函数模型. 要点二、正确认识实际问题的应用 在实际生活问题中,如何应用函数知识解题,关键是建立函数模型,即列出符合题意的函数解析式,然后根据函数的性质综合方程(组)、不等式(组)及图象求解. 要点诠释:要注意结合实际,确定自变量的取值范围,这是应用中的难点,也是中考的热门考点. 要点三、选择最简方案问题 分析问题的实际背景中包含的变量及对应关系,结合一次函数的解析式及图象,通过比较函数值的大小等,寻求解决问题的最佳方案,体会函数作为一种数学模型在分析解决实际问题中的重要作用. 【典型例题】 类型一、简单的实际问题 1、(2016·四川攀枝花)某市为了鼓励居民节约用水,决定实行两级收费制度.若每月用水量不超过14吨(含14吨),则每吨按政府补贴优惠价m 元收费;若每月用水量超过14吨,则超过部分每吨按市场价n 元收费.小明家3月份用水20吨,交水费49元;4月份用水18吨,交水费42元. (1)求每吨水的政府补贴优惠价和市场价分别是多少? (2)设每月用水量为x 吨,应交水费为y 元,请写出y 与x 之间的函数关系式; (3)小明家5月份用水26吨,则他家应交水费多少元? 【思路点拨】先列方程组求m 和n ,再根据函数关系的变化进行分段,分别求出各段的函数解析式. 【答案与解析】 解:(1)设每吨水的政府补贴优惠价为m 元,市场调节价为n 元. 14(2014)4914(1814)42 m n m n +-=??+-=?,

实验4-1 函数的应用的答案

实验4 函数的应用 【实验目的】 1掌握函数声明、定义和调用的方法; 2了解函数调用的实参与形参的传递,以及参数默认值的设置。 3掌握重载函数的实现方法。 4理解递归和嵌套函数的概念、定义与调用。 【实验内容】 ⒈分别输入整数半径和实数半径,使用函数重载计算圆的面积。 #include #define PI 3.14 int area(int); float area(float); void main() { int r1; cout<<"Input a integer r="; cin>>r1; cout<<"area="< void fun (int x,int y ); main() {int x=5,y=3; fun(x,y); printf("%d,%d\n",x,y); } void fun (int x,int y ) { x=x+y; y=x-y;

x=x-y; printf("%d,%d\n",x,y); 3.#include int f (int a); main() { int s[ 8 ] = {1,2,3,4,5,6} ,i, d=0; for (i=0; f( s[i] ) ; i++) d+=s[i]; printf("%d\n",d); } int f(int a) { return a%2; } 4.#include long f( int g) { switch(g) { case 0:return 0; case 1: case 2: return 1; } return ( f(g-1)+ f(g-2)); } main ( ) { long int k; k = f(7); printf("\nk= %d\n",k); }

实验八 函数含答案

实验八函数 【目的与要求】 1.掌握C语言函数的定义方法、函数的声明及函数的调用方法。 2.了解主调函数和被调函数之间的参数传递方式。 【上机内容】 【一般示例】 【例1】将打印18个"*"组成星形线定义为一个返回值和形参列表都为空的函数,通过主函数调用它。 #include void Star(void) //画星形线。函数没有返回值,形参列表也为空 { int i; for(i=1;i<=18;i++) printf("*"); //18个"*"组成星形线 printf("\n"); return ; //返回值类型为void,return后不带表达式,此句可省略 } int main() { Star( ); //单独的函数调用语句,实参表为空,但必须保留括号 printf("I love C language!\n"); Star( ); return 0; } 【例2】调用prime 函数以每行5个素数的格式输出100到200之间的所有素数。

#include #include int prime(int m) //判断素数函数定义 { int i,k,f=1 ; //函数内定义3个变量 if (m==1) //形参若为1 f=0 ; //形参若为1,非素数 k=(int)sqrt(m); for (i=2; i<=k;i++) if (m%i==0) //m被某除数整除 f=0 ; //则不是素数 return f ; //用return语句返回 } //函数体结束 int main( ) { int i,count=0; for (i=101;i<200;i=i+2) //用i作为循环控制变量,从101开始,步长为2 if (prime(i)) //对每一个i,调用prime函数判断它是否为素数 { printf("%5d",i); //如果是素数,输出该素数i count++ ; //素数个数加1 if (count%5==0 ) //每输出5个素数换一行 printf("\n"); }

C语言:函数的应用实验报告

课程名称:结构化程序设计与C语言开课实验室:年月日 一、实验目的 用C语言编写和调试函数的程序。从而对函数的定义、调用、全局变量的灵活运用有比较深入的了解。 二、内容及结果 1、程序一素数函数 1)程序要求:写一个判断是否是素数的函数,在主函数输入一个整数,调用它后输出结果。2)代码: #include #include int prime(int n) { int i,k; k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0) break; if(i<=k) return 0; else

return 1; } int main() { int prime(int n); int n; printf("Please enter n:"); scanf("%d\n",&n); if(prime(n)==1) printf("%d is a prime number",int(n)); else printf("%d is not a prime number",int(n)); } 3)运行截图: 2、程序二用递归方法求n阶勒让德多项式的值 1)程序要求: 递归公式为: 当n=0,= ) (x P n 1 当n=1, = ) (x P n x; 当n>=1, = ) (x P n((2n-1)x-P n-1(x)-(n-1)P n-2 )x))/n 2)代码: #include

#include int p(int n,int x); void main() { int n,x; scanf("%d",&x); for(n=0;n<=10;n++) printf("p(%d,%d)=%d\n",n,x,p(n,x)); } int p(int n,int x) { if(n==0) return 1; else if(n==1) return x; else return((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n; } 3)运行截图:

C++语言程序设计实验答案-函数的应用

C++语言程序设计实验答案-函数的应用

实验03函数的应用(2学时) (第3章函数) 一、实验目的 (1) 掌握函数的定义和调用方法。 (2) 练习重载函数的使用。 (3) 练习使用系统函数。 (4) 学习使用Visual Studio 2010的调试功能,使用“逐语句”追踪到函数内部。 二、实验任务 3_1(习题3-8)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。 3_2 编写重载函数Max1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。 3_3 使用系统函数pow(x, y)计算x y的值,注意包含头文件cmath。 3_4(习题3-13)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。

三、实验步骤 1.(编程,习题3-8)把华氏温度转换为摄氏温度。 编写函数float Convert(float TempFer),参数和返回值都为float类型,实现算法 C=(F-32)*5/9,在main()函数中实现输入、输出。程序名:lab3_1.cpp。 ★程序及运行结果:(注意:定义的函数头是float Convert(float TempFer)) //lab3_1(习题3-8) #include using namespace std; float Convert(float TempFer); void main(){ float f; cout<<"输入一个华氏温度值:"; cin>>f; cout<<"华氏温度"<

度的值是"< using namespace std; int Max1(int a,i n t b){

实验三 函数的应用

实验三 函数的应用(2学时) 一、实验目的 1.掌握函数的定义和调用方法。 2.练习重载函数的使用。 3.练习函数模板的使用。 4.练习使用系统函数。 5.学习使用VC++的debug调试功能,使用step into追踪到函数内部。 二、实验任务 1.编写一个函数把华氏温度转换为摄氏温度,转换公式为..C=(F一32)*5/9。 2.编写重载函数Maxl可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。 3.使用重载函数模板重新实现上小题中的函数Maxl。 4.使用系统函数pow(X,y)计算芷的值,注意包含头文件math·h。 5.用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。 三、实验步骤 1.编写函数float Convert(float TempFer),参数和返回值都为float类型,实现算法C=(F一32)*5/9,在main()函数中实现输入、输出。程序名:lab3_1.cpp。 2.分别编写四个同名函数maxl,实现函数重载,在main()函数中测试函数功能。程序名:lab3_2.cpp。 3.使用函数模板实现求任意类型数的最大值,针对不同的参数个数,编写两个同名 函数模板maxl,其参数个数不同,实现函数重载,在main()函数中测试函数功能。程序名:lab3_3.cpp。 4.在main()函数中提示输入两个整数x、y,使用cin语句得到x、y的值,调用 pow(x,y)函数计算x的Y次幂的结果,再显示出来。程序名.1ab3_4.cpp。 5.编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算 Fibonacci级数。公式为fib(n)=fib(n一1)+fib(n一2),n>2;fib(1)=fib(2)=1。 使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名: lab3_5.cpp。 6.使用debug中的Step Into追踪到函数内部,观察函数的调用过程,参考程序 如下: //lab3_5 #include int fib(int n); int main() { int n,answer; cout<<”Enter number”;

实验8 函数——递归函数

淮海工学院计算机科学系实验报告书 课程名:《C语言程序设计A 》 题目:实验8 函数 ——递归函数 班级:软嵌151 学号:2015123349 姓名:陈正宁

1、实验内容或题目 (1)用递归编写n!的函数,并在main主函数中调用此函数。 (2)有n个大小不同的盘片从大到小放在A柱上,另有B和C两个空柱,要求将这n个盘片从A柱搬到C柱上,在搬动过程中,每次只能搬一个盘片,而且小的不能放在大的之下。编写hanio函数实现搬迁过程。 (3)编写一个程序,求解皇后问题:在n×n的方格棋盘上,放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线。 2、实验目的与要求 (1)要求熟练掌握函数的定义和调用,熟悉函数返回值的使用。 (2)熟悉函数调用的方式和过程。 (3)重点掌握递归函数的使用。 (4)要求实验的第2题采用递归函数编写,盘片的数目在main主函数中输入。提示:函数的参数定义如hanio(n,A,C,B),表示将n个盘片从A柱通过C柱搬到B柱。 (5)要求实验的第3题采用递归函数编写皇后的个数n由用户输入,其值不能超过20;采用整数数组q[N]求解结果,因为每列只能放一个皇后,q[i]的值表示第i个皇后所在的行号,即该皇后放在(q[i],i)的位置上。求解皇后问题的递归模型如下:place(i,n):若i=n,则n个皇后放置完毕,输出解(输出q数组元素) place(k,n):在第k列找一个合适位置i,放置一个皇后(即q[k]=i);place(k+1,n);其中,place(k,n)表示前面的第1,…,k-1个皇后放置好后,现在用于放置k,…,n的皇后。 3、实验步骤与源程序 ⑴实验步骤 ⑵源代码 (1)、 #include long fac(int n) { long f; if(n==0||n==1)

人教版数学八年级下《一次函数的应用》专题练习题含答案

人版数学八年级下册 第十九章 一次函数 一次函数的应用 专题练习题 1.在一条笔直的公路上有A ,B ,C 三地,C 地位于A ,B 两地之间,甲、乙两车分别从A ,B 两地出发,沿这条公路匀速行驶至C 地停止.从甲车出发至甲车到达C 地的过程,甲、乙两车各自与C 地的距离y(km )与甲车行驶时间t(h )之间的函数关系如图所示,当甲车出发____h 时,两车相距350 km . 2.小亮家与姥姥家相距24 km ,小亮8:00从家出发,骑自行车去姥姥家.妈妈8:30从家出发,乘车沿相同路线去姥姥家.在同一直角坐标系中,小亮和妈妈的行进路程s(km)与时间t(h)的函数图象如图所示.根据图象得出下列结论,其中错误的是( ) A .小亮骑自行车的平均速度是12 km/h B .妈妈比小亮提前0.5 h 到达姥姥家 C .妈妈在距家12 km 处追上小亮 D .9:30妈妈追上小亮 3.甲骑摩托车从A 地去B 地,乙开汽车从B 地去A 地,同时出发,匀速行驶,各自到达终点后停止,设甲、乙两人间距离为s(千米),甲行驶的时间为t(小时),s 与t 之间的函数关系如图所示,有下列结论:①出发1小时时,甲、乙在途中相遇;②出发1.5小时时,乙比甲多行驶了60千米;③出发3小时时,甲、乙同时到达终点;④甲的速度是乙速度的一半.其中正确结论的个数是( ) A .4 B .3 C .2 D .1 4.设甲、乙两车在同一直线公路上匀速行驶,开始甲车在乙车的前面,当乙车追上甲车后,两车停下来,把乙车的货物转给甲车,然后甲车继续前行,乙车向原地返回.设x 秒后两车间的距离为y 米,关于y 与x 的函数关系如图所示,则甲车的速度是____米/秒. 5.周末,小明骑自行车从家里出发到野外郊游,从家出发1 h 后到达南亚所(景点),游玩 一段时间后按原速前往湖光岩.小明离家116 h 后,妈妈驾车沿相同路线前往湖光岩.如图 是他们离家的路程y(km )与小明离家时间x(h )的函数图象. (1)求小明骑车的速度和在南亚所游玩的时间;

相关主题
文本预览
相关文档 最新文档