资源描述:
《北航c语言课件第2节》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高级语言程序设计(一)(CProgramming)第二讲:C程序设计基础(二)本章目标掌握函数的定义及调用方式掌握函数参数传递方式掌握一维数组的定义和使用掌握简单的文件输入/输出C程序设计基础(二)模块化程序设计将复杂问题分解为简单问题的程序设计方法称为结构化程序设计,其特点为:自顶向下(top-downdesign);逐步细化(stepwiserefinement);模块化(modularprogramming);模块化的好处:功能分解的需要;代码重用;C程序设计基础(二)#includemain(){inta,b,s
2、um;scanf(“%d%d”,&a,&b);sum=a+b;printf(“Sum=%d”,sum);}tmainmainmainscanfprintf标准输入/输出库函数C程序设计基础(二)标准(库)函数标准I/O库函数#include(scanf,printf,getchar,putchar…)标准数学函数#include(sin,cos,sqrt…)…C程序设计基础(二)问题2.1问题:已知一组三角形的三边(如(2.0,2.0,2.0)、(3.0,4.0,5.0)、(2.5,3.1,3.8))
3、,计算其面积。计算三角形面积的公式为:#include#includemain(){doubles;s=(2.0+2.0+2.0)/2;printf(“(2.0,2.0,2.0)area=%f”,sqrt(s*(s-2.0)*(s-2.0)*(s-2.0)));s=(3.0+4.0+5.0)/2;printf(“(3.0,4.0,5.0)area=%f”,sqrt(s*(s-3.0)*(s-4.0)*(s-5.0)));s=(2.5+3.1+3.8)/2;printf(“(2.5,3.1,3.8)
4、area=%f”,sqrt(s*(s-2.5)*(s-3.1)*(s-3.8)));}对于这样的有规律的重复计算,可以用更好的方法:函数来解决doublesqrt(doublex)为标准数学库中函数,使用前应加上#includeC程序设计基础(二)定义求三角形面积函数tri_area()doublea,doubleb,doublecdouble{}函数名需要传递给函数的数据(参数):数据类型、数据名称函数计算结果(返回)类型double函数是如何对数据进行计算(函数体)doublea,doubleb,doublectr
5、i_area计算语句C程序设计基础(二)tri_area函数定义doubletri_area(doublea,doubleb,doublec){doubles,area;s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));return(area);}函数定义头部,其中double为函数类型tri_area为函数名a,b,c为函数参数函数体局部变量函数返回(return)语句,返回计算结果C程序设计基础(二)函数定义与调用在ANSIC标准中,函数定义形式为:类型函数名(参数说明){[局部变量定义或说明]
6、语句}可以没有,多个参数以逗号分隔C程序设计基础(二)函数定义与调用(续)函数名一般是标识符,一个程序只有一个main函数,其它函数名可随意取,当然最好是有助于记忆的名字,如getchar函数。在ANSIC标准中,函数(返回值)类型不允许省略,即使是返回整型值(int),当函数无返回值时,应其类型说明为void类型。局部变量定义或说明可有可无。注意:在C语言中,函数定义不允许嵌套,即在一个函数体内不能包含有其它函数的定义。若无返回值,函数用:return;或者函数中没有return语句C程序设计基础(二)问题2.1:代码实现doublet
7、ri_area(doublea,doubleb,doublec){doubles,area;s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));return(area);}#include#includeintmain(){printf(“(2.0,2.0,2.0)area=%f”,tri_area(2.0,2.0,2.0));printf(“(3.0,4.0,5.0)area=%f”,tri_area(3.0,4.0,5.0));printf(“(2.5,3
8、.1,3.8)area=%f”,tri_area(2.5,3.1,3.8));return0;}doubletri_area(doublea,doubleb,doublec);函数调用函数