1 / 12

杨凌职业技术学院电子信息工程系

项目十八. 计算 1 k +2 k +3 k + …… +N k. 杨凌职业技术学院电子信息工程系. 计算 s=1k+2k+3k+ …… +Nk. 项目内容. 项目分析. 定义函数 f1 ,求计算 n 的 k 次方;自定义函数 f2 ,计算 1 到 n 的 k 次方的累加和 ;再通过函数之间的嵌套调用来完成。. 杨凌职业技术学院电子信息工程系. 过程与源代码. /* 计算 s=1k+2k+3k+……+Nk*/ #define K 4 /* 宏定义* / #define N 5 /* 宏定义* /

helga
Download Presentation

杨凌职业技术学院电子信息工程系

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 项目十八 计算1k+2k+3k+……+Nk 杨凌职业技术学院电子信息工程系

  2. 计算s=1k+2k+3k+……+Nk 项目内容

  3. 项目分析 • 定义函数f1,求计算n的k次方;自定义函数f2,计算1到n的k次方的累加和;再通过函数之间的嵌套调用来完成。 杨凌职业技术学院电子信息工程系

  4. 过程与源代码 /*计算s=1k+2k+3k+……+Nk*/ #define K 4 /*宏定义*/ #define N 5 /*宏定义*/ long f1(int n,int k) /*自定义函数f1,求计算n的k次方的函数*/ { long power = 1; /*定义1个长整型变量power并赋给初值1*/ int i; /*定义1个循环控制变量i*/ for(i = 1;i<=k;i++) /*循环控制语句*/ power *= n; /* return power; /*返回power的值到主调函数*/ } long f2 (int n,int k) /*自定义函数f2,计算1到n的k次方的累加和*/ { long sum = 0; /*定义1个局部长整型变量sum并赋给初值0*/ int i; /*定义1个整型变量i*/ for(i =1;i<=n;i++) sum += f1(i, k); /*循环控制语句*/ return sum; /*返回sum的值到主调函数*/ } main( ) { printf("Sum of %d powers of integers from 1 to %d = ",K,N); /*输出K,N的值*/ printf("%d\n",f2(N,K)); /*输出结果*/ } 杨凌职业技术学院电子信息工程系

  5. 运行结果

  6. 学生评价 教师评价 项目过程实施与评价

  7. 1.了解函数嵌套调用过程; 2.了解递归函数的设计思想: 知识点 杨凌职业技术学院电子信息工程系

  8. 上图的执行过程是: (1)执行main函数的开头部分; (2)遇函数调用f1的操作语句,流程转去f1函数; (3)执行f1函数的开头部分; (4)遇调用f2函数的操作语句,流程转去f2函数; (5)执行f2函数,如果无其他嵌套的函数,完成f2函数的全部操作; (6)返回调用f2函数处,即返回f1函数; (7)继续执行f1函数中尚未执行的部分,知道f1函数结束; (8)返回main函数中的调用f1函数处; (9)继续执行main函数的剩余部分直到结束。 杨凌职业技术学院电子信息工程系

  9. 3.掌握编译预处理的基本方法 预处理指令 预处理发生在编译之前,其可能的动作包括文件包含(即将其他文件包含到要编译的文件之中),定义符号常量和宏,对程序代码的条件编译和预处理指令的条件执行等。 与文件包含相关的预处理指令有#include。 预处理指令的前面不能有其它的字符。 杨凌职业技术学院电子信息工程系

  10. 1.有如下程序 long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main( ) { printf(“%ld\n”,fib(3)); } 该程序的输出结果是__________。 A.2 B.4 C.6 D.8 习题

  11. 2.有以下函数定义: void fun(int n, double x) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确掉用语句是________。 A.fun(int y,double m) B.k=fun(10,12.5) C.fun(x,n) D.void fun(n,x) 3.若以数组名作为函数调用的实参,传递给形参的是( ) A.数组的首地址 B.数组第一个元素的值  C.数组中的全部元素的值   D.数组元素的个数

  12. 4.填空题 (1)函数的调用方式有___﹑___和___。 (2)函数可以嵌套调用,但不可以嵌套______。 (3)函数类型是指____,而函数的返回值是通过_____带回到主调函数的。 5.编程题    编制函数,在主调函数的一维数组中查找最大值及该元素小标﹑最小值及该元素小标。请适当选择参数,使所求结果能传递到主调函数。

More Related