第6章 函数

合集下载

C语言程序设计 第六章 函数 试题及答案

C语言程序设计 第六章 函数 试题及答案
A)实参可以是常量、变量或表达式
B)形参可以是常量、变量或表达式
C)实参可以是任意类型
D)实参应与其对应的形参类型一致
参考答案:B
6.8以下正确的说法是。
A)定义函数时,形参的类型说明可以放在函数体内
B)return后面的值不能为表达式
C)如果函数的类型与返回值类型不一致,以函数类型为准
D)如果形参与实参的类型不一致,以实参类型为准
A)float型B)int型C)long型D)double型
参考答案:B
6.12 C语言规定,函数返回值的类型是由所决定。
A)return语句中的表达式类型
B)调用该函数时的主调函数类型
C)调用该函数是系统临时指定
D)在定义该函数时所指定的函数类型
参考答案:D
*6.13下面函数调用语句含有实参的个数为。
if(m!=-1) n=m;
}
printf("\nn=%d",n);
}
【1】A)k*10 B)k%10 C)k/10 D)k*10%10
【2】A)a2*10 B)a2 C)a2/10 D)a2%10
参考答案:【1】C【2】A
6.18以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A','B','C');则符合程序段运行结果的选项是。
A-->C A-->C B-->C B-->C
A-->B A-->B A-->C A-->C
参考答案:C
6.19若用数组名作为函数调用的实参,传递给形参的是。
A)数组的首地址B)数组第一个元素的值
C)数组中全部元素的值D)数组元素的个数

C语言第6章习题解答

C语言第6章习题解答

第6章函数和模块设计【习题6-1】更正下面函数中的错误。

(1)返回求x和y平方和的函数。

(2)返回求x和y为直角边的斜边的函数。

sum_of_sq(x,y) hypot(double x,double y){ {double x,y; h=sqrt(x*x+y*y);return(x*x+y*y); return(h);} }程序如下:/*c6_1(1).c*/ /*c6_1(2).c*/(1) (2)double sum_of_sq(double x,double y) double hypot(double x,double y) { {return(x*x+y*y); double h;} h=sqrt(x*x+y*y);return(h);}【习题6-2】说明下面函数的功能。

(1)itoa(int n,char s[ ])(2)int htod(char hex [ ]){ { int i,dec=0;static int i=0,j=0; for(i=0;hex[i]!='\0';i++)int c; { if(hex[i]>='0'&&hex[i]<='9') if(n!=0) dec=dec*16+hex[i]-'0';{ if(hex[i]>='A'&&hex[i]<='F') j++; dec=dec*16+hex[i]-'A'+10;c=n%10+'0'; if(hex[i]>='a'&&hex[i]<='f') itoa(n/10,s); dec=dec*16+hex[i]-'a'+10;s[i++]=c; }} return(dec);else }{ (3)void stod(int n)if(j==0) s[j++]='0'; { int i;s[j]='\0'; if(n<0){ putchar('-');n=-n;} i=j=0; if((i=n/10)!=0) stod(i);} putchar(n%10+'0');} }功能:(1)(略)(2)(略)【习题6-3】编写已知三角形三边求面积的函数,对于给定的3个量(正值),按两边之和大于第三边的规定,判别其能否构成三角形,若能构成三角形,输出对应的三角形面积。

离散数学06函数

离散数学06函数

f-1(B)=f-1({3,4})={f-1(3),f-1(4)}={2,3}
6.1 函数的基本概念
练习1 试证明若AB,则ACBC。
6.1 函数的基本概念
练习2 设有函数f:A∪BC
(1)证明:f(A)∪f(B)=f(A∪B)
(2)试问f(A)∩f(B)=f(A∩B)成立吗?为什么?
6.1 函数的基本概念
6.3 函数的运算
例6.6 设有函数f:RR和g:RR,且有f(x)=2x+1 ,g(x)=x2+1,试求复合函数f g,g f,f f, g g。 解 f

g(x)=f(g(x))=2(x2+1)+1=2x2+3
g
f

f(x)=g(f(x))=(2x+1)2+1=4x2+4x+2
集合A上的恒等关系IA符合函数的定义条件, 它使得A中每一个元素均以自身为像,因此又称IA 为集合A上的恒等函数。 定义6.4 设A是集合,令IA={(x,x)|xA},则称IA 为A上的恒等函数。
6.1 函数的基本概念
练习3 设有函数f:AA,试证明
(1)若fIA,则f=IA;
(2)若IAf,则f=IA。
(1)若g
(2)若g (3)若g
f是内射,则f是内射。
f是满射,则g是满射。 f是双射,则f是内射,g是满射。


6.3 函数的运算
练习7 设有函数f:AA,g:AA和h:AA,使得复 合函数h f=h g,试证明若h是一内射,则f=g。
6.3 函数的运算
6.3.2 逆函数
定理6.6 若f:X→Y是双射函数,则关系f的逆关系 也是Y到X的函数,记为f-1 ,且f-1:Y→X也是双射。

06第六章 三角函数【讲义】

06第六章  三角函数【讲义】

第六章 三角函数一、基础知识定义1 角,一条射线绕着它的端点旋转得到的图形叫做角。

若旋转方向为逆时针方向,则角为正角,若旋转方向为顺时针方向,则角为负角,若不旋转则为零角。

角的大小是任意的。

定义2 角度制,把一周角360等分,每一等价为一度,弧度制:把等于半径长的圆弧所对的圆心角叫做一弧度。

360度=2π弧度。

若圆心角的弧长为L ,则其弧度数的绝对值|α|=rL ,其中r 是圆的半径。

定义3 三角函数,在直角坐标平面内,把角α的顶点放在原点,始边与x 轴的正半轴重合,在角的终边上任意取一个不同于原点的点P ,设它的坐标为(x ,y ),到原点的距离为r,则正弦函数s in α=r y ,余弦函数co s α=r x ,正切函数tan α=x y ,余切函数cot α=yx,正割函数se cα=x r ,余割函数c s c α=.yr定理1 同角三角函数的基本关系式,倒数关系:tan α=αcot 1,s in α=αcsc 1,co s α=αsec 1;商数关系:tan α=αααααsin cos cot ,cos sin =;乘积关系:tan α×co s α=s in α,cot α×s in α=co s α;平方关系:s in 2α+co s 2α=1, tan 2α+1=se c 2α, cot 2α+1=c s c 2α.定理2 诱导公式(Ⅰ)s in (α+π)=-s in α, co s(π+α)=-co s α, tan (π+α)=tan α, cot (π+α)=cot α;(Ⅱ)s in (-α)=-s in α, co s(-α)=co s α, tan (-α)=-tan α, cot (-α)=cot α; (Ⅲ)s in (π-α)=s in α, co s(π-α)=-co s α, tan =(π-α)=-tan α, cot (π-α)=-cot α; (Ⅳ)s in ⎪⎭⎫⎝⎛-απ2=co s α, co s ⎪⎭⎫⎝⎛-απ2=s in α, tan ⎪⎭⎫⎝⎛-απ2=cot α(奇变偶不变,符号看象限)。

第六章 函数的概念和图象

第六章 函数的概念和图象

第六章函数的概念和图象一、内容综述:1.函数的有关概念:一般地,设在某变化过程中有两个变量x,y。

如果对于x在某一范围内的每一个确定的值,y都有唯一确定的值与它对应,那么就说y是x的函数,x叫做自变量,y叫因变量。

对于函数的意义,应从以下几个方面去理解:(1)我们是在某一变化过程中研究两个变量的函数关系,在不同研究过程中,变量与常量是可以相互转换的,即常量和变量是对某一过程来说的,是相对的。

(2)对于变量x允许取的每一个值,合在一起组成了x的取值范围。

(3)变量x与y有确定的对应关系,即对于x允许取的每一个值,y都有唯一确定的值与它对应。

2.函数值与函数值有关的问题可以转化为求代数式的值。

二、例题分析:例1.判断y=x与y=是否是同一函数。

解:∵ y==|x|当x≥0时,y=x,当x<0时, y=-x.∴ y=x与y=不是同一函数。

说明:虽然这两个函数的自变量取值范围都是全体实数,但当x<0时,两个函数的对应关系不同(如当x=-2时,y=x=-2, 而y==2), 所以它们不是同一个函数。

例2.不画图象,求函数y=-x+的图象上一点P,使点P到x轴,y轴的距离相等。

解:当点P在第一,三象限内,依题意,设P(a,a)∴ a=-a+解得:a=1.当点P在第二,四象限内,设P(b,-b)∴ -b=-b+解得:b=-3,∴点P坐标为(1,1)或(-3,3)。

说明:由点P到x轴、y轴的距离相等知点P在各象限角平分线上,由于第一,三象限角平分线上的点M(x,y)满足x=y的关系,而第二,四象限角平分线上的点N(x,y)满足x=-y的关系,所以可根据点P的位置特点来设点P的坐标,通过此例训练分类讨论思想。

例3.某自行车保管站在某个星期日接受保管的自行车共有3500辆次,其中变速车保管费是每辆一次0.5元,一般车保管费是每辆一次0.3元. 若设一般车停放的辆次数为x,总的保管费收入为y元,试写出y关于x的函数关系式;分析:由一般车辆停放次数x表示变速停放的辆次数,由保管费列出函数关系再化简,但要在函数式后注明自变量x的取值范围。

高等数学第6章第5节函数的凹凸性个与拐点

高等数学第6章第5节函数的凹凸性个与拐点

§5.函数的凹凸性个与拐点引言上面已经讨论了函数的升降与极值,这对函数性状的了解是有很大作用的.为了更深入和较精确地掌握函数的性状,我们在这里再讲述一下有关函数凸性的概念及其与函数二阶导数的关系.什么叫函数的凸性呢?我们先以两个具体函数为例,从直观上看一看何谓函数的凸性.如函数y 所表示的曲线是向上凸的,而2y x =所表示的曲线是向下凸的,这与我们日常习惯上的称呼是相类似的.或更准确地说:从几何上看,若y =f(x)的图形在区间I 上是凸的,那么连接曲线上任意两点所得的弦在曲线的上方;若y =f(x)的图形在区间I 上是凹的,那么连接曲线上任意两点所得的弦在曲线的下方.如何把此直观的想法用数量关系表示出来呢?在曲线上任取两点A 、B ,设其坐标分别为11(,())x f x 、22(,())x f x ,弦AB 在曲线上方⇔12(,)x x x ∀∈,有211121()()()()()f x f x f x f x x x x x -≤+--,可简化为(0,1)λ∀∈,12,x x I ∀∈都有1212((1))()(1)()f x x f x f x λλλλ+-≤+-,从而有以下定义:一、 凸(凹)函数的定义及判定1 凸(凹)函数的定义定义1 设函数f 为定义在区间I 上的函数,若对I 上任意两点1x 、2x 和任意实数(0,1)λ∈总有1212((1))()(1)()f x x f x f x λλλλ+-≤+-,则称f 为I 上的凸函数.反之,如果总有1212((1))()(1)()f x x f x f x λλλλ+-≥+-,则称f 为I 上的凹函数.注 易证:若一f 为区间I 上的凸函数,则f 为区间I 上的凹函数,因此,今后只讨论凸函数的性质即可.2、凸函数的判定1引理 f 为I 上的凸函数⇔对于I 上任意三点123x x x <<总有:32212132()()()()f x f x f x f x x x x x --≤-- 注 同理可证:有上任意三点对上的凸函数为,321x x x I I f <<⇔232313131212)()()()()()(x x x f x f x x x f x f x x x f x f --≤--≤-- (4) 如果f 是I 上的可导函数,则进一步有:2 定理6.13(可导函数为凸函数的等价命题) 设f 为区间I 上的可导函数,则下述论断互相等价:(1)f 为I 上的凸函数;(2)f '为I 上的增函数;(3)对I 上的任意两点12,x x 总有21121()()()()f x f x f x x x '≥+-如果f 在I 上二阶可导,则进一步有:3定理6.14(凸函数与二阶导数的关系) 设f 为I 上的二阶可导函数,则在I 上f 为凸(凹)函数⇔()0f x ''>(()0f x ''<),x I ∈. 二、 曲线的拐点定义及判定1 定义2 设曲线y =f(x)在点(00,()x f x )处有穿过曲线的切线,且在切点近旁,曲线在切线的两侧分别是严格凸或严格凹的,这时称(00,()x f x )为曲线y =f(x)的拐点.注:拐点是严格凸与严格凹的分界点2定理6.15(拐点必要条件) 若f 在0x 二阶可导,则(00,()x f x )为曲线y =f(x)的拐点的必要条件是0()0f x ''=.综上知:(00,()x f x )的拐点,则要么(1)0()0f x ''=;要么(2)f 在0x 点不可导.3定理6.16 设f 在点0x 可导,在某邻域0()U x 内二阶可导,若在0()U x +和0()U x -上()f x ''的符号相反,则(00,()x f x )为曲线y =f(x)的拐点.;注:(00,()x f x )是曲线y=f (x)的一个拐点,但y =f(x)在点0x的导数不一定存在,如y =在x =0的情形.三、应用举例(1)利用上述等价命题验证函数的凹凸性,确定凹凸区间.例1 讨论函数()arctan f x x =的凸(凹)性及拐点.(2)证明不等式例2:(Jensen 不等式)若f 为],[b a 上凸函数,则对任意),,2,1(0],,[n i b a x i i =>∈λ11=∑=n i i λ,有)()(11ini i i n i i x f x f ∑∑==≤λλ 例3 证明均值不等式:,,,21+∈∀R a a a n 有na a a a a a a a a nn n n n +++≤≤+++ 212121111 作业:P153 1(2)(4),2,3,4,5。

第六章 传递函数

第六章 传递函数

第六章 传递函数对于线性定常系统,传递函数是常用的一种数学模型,它是在拉氏变换的基础上建立的。

用传递函数描述系统可以免去求解微分方程的麻烦,间接地分析系统结构及参数与系统性能的关系,并且可以根据传递函数在复平面上的形状直接判断系统的动态性能,找出改善系统品质的方法。

因此,传递函数是经典控制理论的基础,是一个极其重要的基本概念。

第一节 传递函数的定义一、传递函数的定义1、定义对于线性定常系统,在零初始条件下,系统输出量的拉氏变换与输入量的拉()()C s R s ==零初始条件输出信号的拉氏变换传递函数输入信号的拉氏变换2、推导设线性定常系统的微分方程的一般形式为1011110111()()()()()()()()n n n n nn m m m m mm d d d a c t a c t a c t a c t dtdtdtd d d b r t b r t b r t b r t dtdtdt------++⋅⋅⋅++=++⋅⋅⋅++◆ 式中c(t)是系统输出量,r(t)是系统输入量,r(t)、c(t)及其各阶导数在t=0时的值均为零,即零初始条件。

◆a , 1a ,…,na 及b , 1b ,…,mb 均为系统结构参数所决定的实常数。

对上式中各项分别求拉氏变换,并令C(s)=L[c(t)],R(s)=L[r(t)],可得s 的代数方程为:11011011[]()[]()nn mm n n m m a s a sa s a C sb sb sb s b R s ----++⋅⋅⋅++=++⋅⋅⋅++于是,由定义得到系统的传递函数为:10111011()()()()()m m m m nn n nb s b sb s b C s M s G s R s a s a sa s a N s ----++⋅⋅⋅++===++⋅⋅⋅++其中,1011()m m m m M s b s b s b s b --=++⋅⋅⋅++ 1011()n n n n N s a s a s a s a --=++⋅⋅⋅++ N(s)=0称为系统的特征方程,其根称为系统特征根。

高中信息技术 信息学奥赛C语言第六章 函数课件

高中信息技术 信息学奥赛C语言第六章 函数课件
此处要注意一个“假象”,数组名作为参数传 递的是数组的首地址,严格地说其传递的也 是“值(地址)”。后面所说的指针变量作为 参数也是如样,传的也是值(地址值)。
※重点提示:主调函数在调用函数时,需要 把相应的实际参数传给相应的形式参数,实 际参数的个数和类型要和形式参数的个数和 类型必须一致。
•1、书籍是朋友,虽然没有热情,但是非常忠实。2022年3月4日星期五2022/3/42022/3/42022/3/4 •2、科学的灵感,决不是坐等可以等来的。如果说,科学上的发现有什么偶然的机遇的话,那么这种‘偶然的机遇’只能给那些学有素养的人,给那些善于独 立思考的人,给那些具有锲而不舍的人。2022年3月2022/3/42022/3/42022/3/43/4/2022 •3、书籍—通过心灵观察世界的窗口.住宅里没有书,犹如房间里没有窗户。2022/3/42022/3/4March 4, 2022 •4、享受阅读快乐,提高生活质量。2022/3/42022/3/42022/3/42022/3/4
printf(“***&&&\n”); 就是调用了printf函数,且调用之后加了分号, 构成了一条独立的语句,完成该输出操作。
(3)各个库函数的功能、参数的个数和类型、 函数值的类型都有其规定,用户在调用时 根据需要选择合适的库函数,并严格按照 该库函数的规则,正确的进行调用。
※重点提示:库函数的调用需要注意的是: 函数的功能,函数的参数个数、类型,函 数的返回值,对参数的一些特殊要求。
(2)在程序执行到return语句时,流程就 返回到调用该函数处,并带回函数值。在 同一个函数内,可以在多处出现return语句。
(3)return语句也可以不含表达式。此 时,它只是使流程返回到调用函数,并没 有确定的函数值。

九年级数学上册第6章 反比例函数

九年级数学上册第6章 反比例函数

乙地,则汽车行驶时间t(h)关于行驶速度v(km/h)的函数关系 式是( B )
A.t=20v
B.t=2v0
C.t=2v0
D.t=1v0
数学 知识要点9 反比例函数的跨学科应用 【例10】在一个可以改变体积的密闭容器内装有一定质量的 某种气体,当改变容器的体积时,气体的密度也随之改
变.密度ρ(kg/m3)与体积V(m3)满足函数关系式ρ=Vk (k为常 数,k≠0),其图象如图所示,则k的值为( A )
B.第一、三象限
C.第三、四象限
D.第二、四象限
数学
6.如图的曲线是一个反比例函数图象的一支,点A在此曲线 上,则该反比例函数的表达式为 y=3x .
数学
7.已知两点P1(x1,y1),P2(x2,y2)在函数y=5x的图象上,当x1
>x2>0时,下列结论正确的是( A )
A.0<y1<y2
B.0<y2<y1
数学
10.水平地面上重1500 N的物体,与地面的接触面积为x m2,
那么该物体对地面的压强y(单位:N/m2)与地面的接触面积
x(m2)之间的函数关系可以表示为
y=1
500 x.
数学 11.反比例函数y=xk(k≠0)与一次函数y=k(x+1)在同一坐标系
中的图象可能是( B )
数学
综合训练
数学
知识要点3 建立反比例函数模型
【例4】小华以每分钟x个字的速度书写,y分钟写完300个
字,则y与x的函数关系式为( B )
A.y=30x0
B.y=3x00
C.y=300-x
D.y=300x-x
数学 知识要点4 反比例函数的图象 【例5】反比例函数y=kx(k>0)的大致图象是( A )

C语言教案:第6章 函数

C语言教案:第6章  函数
说明:
1、在主调函数中说明被调函数的类型。 2、几种情况除外: (1)被调函数的返回值是int或char型时 (2)被调函数的定义出现在主调函数之前时
2013-8-6 20
如:
如:
long f()
{ …… }
float a();
main() {………… a(); ………....} float a() {…………}
§6.4函数调用 一、函数调用形式
函数名(实际参数表)
二、函数调用方式 1、作为语句调用 max(a,b); 调用无返回值函数
2、作为表达式调用 c=2*max(a,b);
调用有返回值函数 3、函数参数 m=max(a,max(b,c));
2013-8-6 18
三、对被调函数的说明
例:调用函数求n!。
2、数组元素作函数参数
例: 用数组元素作实参,输出1 ~ 5的平方。
2013-8-6
main() {int a[5],i; for(i=0;i<5,i++) { a[i]=i+1; sq(a[i]);} } sq(int n) {printf("%d\n",n*n); }
10
3、数组名作参数 注意:实参和形参的类型都必须是数组
15
例3: 将一组学生成绩从高分到低分排序。
#difine STUDENT_NUM 10 main() { int score[11],i; void sort(); 主函数: printf("输入学生的成绩:\n"); for(i=1;i<=STUDENT_NUM;i++) scnaf("%d",&score[i]); sort(score,STUDENT_NUM); printf(“从高到低的排列顺序为:\n"); for(i=1;i<=STUDENT_NUM;i++) printf("%d",score[i]); 2013-8-6 16 }

第6章函数

第6章函数

function getSum() // 定义加法函数 { function sum( a, b ) // 定义私有函数 { return a+b; // 返回两个数之和 } return sum; // 返回私有函数的地址 } var sumOfTwo = getSum(); // 取得私有函数地址 var total = sumOfTwo( 1, 2 ); // 求和
// 名单
// 测试

返回函数 :函数可以返回一个函数指针 。
– 外部代码可以通过指针调用其引用的函数对象,调用方 式和一般函数完全一样。 – 一般情况下私有函数不能被外界直接调用,因此可以将 一个私有函数的地址作为结果返回给外界使用,如下代 码所示:
01 02 03 04 05 06 07 08 09 10
定义函数


JavaScript的函数属于Function对象,因此可以使用 Function对象的构造函数来创建一个函数 。 可以使用function关键字以普通的形式来定义一个函数
函数的普通定义方式

普通定义方式使用关键 function 函数名( [ 参数1, [ 参数2, [ 参数N ] ] ] ) 字function,也是最常 { [ 语句组 ]; 用的方式,形式上跟其 [ return [表达式] ]; 它编程语言一样。语法 } 格式如下:

引用类型返回的是数据的地址,而不是数据本身 。
– 引用传递的优点是速度快,但系统会为维护数据而付出 额外的开销。通常返回复合类型数据时使用引用传递方 式,如下代码所示 :
函数返回类型
01 02 03 04 05 06 07 fcuntion getNameList() 定义函数,以获取名单 { var List = new Array(“Lily”, “Petter”, “Jetson” ); return List; // 返回名单引用 } var nameList = getNameList(); nameList = null; // 删除引用

第6章 函数

第6章 函数

• 函数定义的一般形式
函数名(形式参数表列) 类型标识符 函数名(形式参数表列) {声明部分 执行部分 } 例6.2 •函数名符合标识符的命名规则,同一程序中函数不能重名。 •对于无参函数,形参表是空的,但“()”不能省略。对于有 参函数,需要说明每一个形式参数的类型;若多于一个形参, 则形参之间用逗号分隔。 •函数名前的类型标识符用来说明函数返回值的类型,函数 返回值通过return语句得到。若函数无返回值,可用类型标 识符“void”表示. •花括弧内部分称为“函数体”,由声明部分和执行部分构 成。声明部分对函数内变量的类型和被调函数的原型进行定 义和声明;执行部分是实现函数功能语句序列。 上一页
• 函数的调用
–形式: 函数名(实际参数表列) 函数名(实际参数表列) –调用函数的过程是:
• 为函数的所有形参分配内存单元,计算各个实参表达式 的值,一一对应的赋值给相应形参。 • 进入函数体,执行函数中的语句,实现函数的功能,执 行到return语句时,计算return语句中表达式的值,释 放形参及本函数内的局部变量所占内存,返回主调函数。 • 继续执行主调函数中的后继语句。 例6.4 例6.5
– 可采用递归算法解决的问题的特点:原始的问
上一页
例6.9
–递归调用的过程分为:
① 递归过程:将原始问题不断转化为规模小了一级的新问题, 从未知向已知推进,最终达到递归终结条件; ② 回溯过程:从已知条件出发,沿递归的逆过程,逐一求值返 回,直至递归初始处,完成递归调用。 上一页
6.4 变量的作用域和存储类别
– 外部变量的声明(extern声明) 声明) 外部变量的声明(extern声明
•定义性声明:需要分配存储空间,既是声明又是定义。 •引用性声明:说明函数中将要使用该函数外已定义的变量。 •外部变量的定义在函数的外部,使用在函数的内部。外部 变量应该在使用前先声明。外部变量的定义只有一次,但 声明可以有多次。 •采用extern说明符来声明外部变量。对外部变量的声明可 上一页 以在函数的内部,也可以在函数的外部。

第6章 递归(C++版)

第6章  递归(C++版)

• 例6.18 用递归方法求两个数m和n的最大公约数。(m>0,n>0) 【分析】求两个数的最大公约数,可以用枚举因子的方法,从两者中 较小的数枚举到能被两个数同时整除且是最大的约数的方法;也可以 用辗转相除法,这里采用递归实现辗转相除算法: ①求m除以n的余数; ②如果余数不为0,则让m=n,n=余数,重复步骤①,即调用子程序; ③如果余数为0,则终止调用子程序; ④输出此时的n值。
2.函数的调用 声明了函数原型之后,便可以按如下形式调用函数: 函数名(实参列表) 例如语句sum+=js(i); 实参列表中应给出与函数原型形参个数相同、类型相 符的实参。在主调函数中的参数称为实参,实参一般应具 有确定的值。实参可以是常量、表达式,也可以是已有确 定值的变量,数组或指针名。函数调用可以作为一条语句 ,这时函数可以没有返回值。函数调用也可以出现在表达 式中,这时就必须有一个明确的返回值。
它的执行流程如下图所示:
采用有参函数编写程序如下: #include<iostream> using namespace std; int fac(int ); int main() { int x; cin>>x; cout<<x<<"!="<<fac(x)<<endl; //主程序调用fac(x) 求x ! return 0; } int fac(int n) //函数fac(n) 求n ! { return n==0 ? 1 : n*fac(n-1); //调用函数fac(n-1)递归求(n-1) ! } 【说明】: 这里出现了一个小东西,三元运算符“?:”。a?b:c的含义是:如果 a为真,则表达式的值是b,否则是c。所以n==0 ? 1 : n*fac(n-1)很好地 表达了刚才的递归定义。

离散数学函数复习题答案

离散数学函数复习题答案

第6章 函数一、选择题(每题3分)1、设{,,},{1,2,3}A a b c B ==,则下列关系中能构成A 到B 函数的是( C ) A 、1{,1,,2,,3}f a a a =<><><> B 、2{,1,,1,,2}f a b b =<><><> C 、4{,1,,1,,1}f a b c =<><><> D 、1{,1,,2,,2,,3}f a a b c =<><><><>2、设R Z N 、、分别为实数集、整数集,自然数集,则下列关系中能构成函数的是( B ) A 、)}10(),(|,{<+∧∈><y x N y x y x B 、)}(),(|,{2x y R y x y x =∧∈>< C 、)}(),(|,{2x y R y x y x =∧∈>< D 、{,|(,)(m o d 3)}x y x y Z x y <>∈∧≡3、设Z 为整数集,则二元关系{,23}f a b a Z b Z b a =<>∈∧∈∧=+ ( B ) A 、不能构成Z 上的函数 B 、能构成Z 上的函数 C 、能构成Z 上的单射 D 、能构成Z 上的满射4、设f 为自然数集N 上的函数,且1()0x f x x ⎧=⎨⎩若为奇数若为偶数,则f ( D )A 、为单射而非满B 、为满射而非单射C 、为双射D 、既非单射又非满射 5、设f 为整数集Z 上的函数,且()f x 为x 除以5的余数 ,则f ( D )A 、为单射而非满B 、为满射而非单射C 、为双射D 、既非单射又非满射 6、设R Z 、分别为实数集、整数集,则下列函数为满射而非单射的是( C ) A 、:,()6f R R f x x →=+ B 、2:,()(6)f R R f x x →=+ C 、:,()[]f R Z f x x →= D 、6:,()6f R R f x x x →=+7、设R R Z +、、分别为实数集、非负实数集、正整数集,下列函数为单射而非满射的是( B )A 、2:,()71f R R f x x x →=-+- B 、x x f R Zf ln )(,:=→+;C 、:,()f R R f x x →= D 、:,()71f R R f x x →=+8、设Z N E 、、分别为整数集,自然数集,偶数集,则下列函数是双射的为( A ) A 、f : Z E → , ()2f x x = B 、f : Z E → , ()8f x x =C 、f : Z Z →, ()8f x =D 、f : N N N →⨯, (),1f n n n =<+> 9、设3,4X Y ==,则从X 到Y 可以生成不同的单射个数为( B ). A 、12 B 、24 C 、64 D 、81 10、设3,2X Y ==,则从X 到Y 可以生成不同的满射个数为( B ).A 、6B 、8C 、9D 、64 11、设函数:f B C →,:g A B →都是单射,则:f g A C → ( A )A 、是单射B 、是满射C 、是双射D 、既非单射又非满射 12、设函数:f B C →,:g A B →都是满射,则:f g A C → ( B )A 、是单射B 、是满射C 、是双射D 、既非单射又非满射 13、设函数:f B C →,:g A B →都是双射,则:f g A C → ( C )A 、是单射B 、是满射C 、是双射D 、既非单射又非满射 14、设函数:f B C →,:g A B →,若:f g A C → 是单射,则( B ) A 、f 是单射 B 、g 是单射 C 、f 是满射 D 、g 是满射 15、设函数:f B C →,:g A B →,若:f g A C → 是满射,则( C ) A 、f 是单射 B 、g 是单射 C 、f 是满射 D 、g 是满射 16、设函数:f B C →,:g A B →,若:f g A C → 是双射,则( D )A 、,f g 都是单射B 、,f g 都是满射C 、f 是单射, g 是满射D 、f 是满射, g 是单射二、填充题(每题4分)1、设,X m Y n ==,则从X 到Y 有2m n 种不同的关系,有m n 种不同的函数.2、设,X m Y n ==,且m n ≤,则从X 到Y 有m n A 种不同的单射.3、在一个有n 个元素的集合上,可以有22n种不同的关系,有n n 种不同的函数,有!n 种不同的双射.4、设f 为自然数集N 上的函数,且1()2x f x xx ⎧⎪=⎨⎪⎩,若为奇数若为偶数,,则(0)f =0,[{0}]f ={0} ,[{1,2,3}]f ={1},[{0,2,4,6,}]f = N .5、设,f g 是自然数集N 上的函数,x x g x x f N x 2)(,1)(,=+=∈∀,则()f g x = 21x +,()g f x = 2(1)x +.三、问答计算题(每题10分)1、设{234}A =,,,}12,10742{,,,=B ,从A 到B 的关系},,,{b a B b A a b a R 整除且∈∈><=,试给出R 的关系图和关系矩阵,并说明此关系R 及其逆关系1R -是否为函数?为什么?解:}12,4,4,4,12,3,12,2,10,2,4,2,2,2{><><><><><><><=R ,则R 的关系图为:R 的关系矩阵为 1101100001011RM⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦关系R 不是A 到B 的函数, 因为元素2,4的象不唯一逆关系1R -也不是B 到A 的函数 因为元素7的象不存在.2、设Z 为整数集,函数f :Z Z Z ⨯→,且(,)f x y x y =+,问f 是单射还是满射? 为什么?并求(,),f x x (,)f x x -.解:x Z ∀∈, 0,x Z Z ∃<>∈⨯,总有(0,)f x x =,则f 是满射; 对于1,2,2,1,Z Z <><>∈⨯,有(1,2)3(2,1)f f ==,而1,22,1<>≠<>,则f 非单射;(,)2,(,)0f x x x f x x =-=.3、设{1,2}A =,A 上所有函数的集合记为A A , “ ”是函数的复合运算,试给出A A 上运算“ ”的运算表,并指出A A 中是否有幺元,哪些元素有逆元?解:因为2A =,所以A 上共有224=个不同函数,令},,,{4321f f f f A A =,其中:14(1)1,(2)2;(1)1,(2)1;(1)2,(2)2;(1)2,(2)1f f f f f f f f ========1f 为AA 中的幺元,1f 和4f 有逆元.4、设R 为实数集,函数f :R R R R ⨯→⨯,且(,),f x y x y x y <>=<+->, 问f 是双射吗?为什么?并求其逆函数1(,)fx y -<>及(,)f f x y <> .解: 1122,,,x y x y R R ∀<><>∈⨯,若1122(,)(,)f x y f x y <>=<>, 有11112222,,x y x y x y x y <+->=<+->,则1122,,x y x y <>=<>,故f 是单射;,u v R R ∀<>∈⨯,令2u v x +=,2u v y -=,则,x y R R <>∈⨯,且(,),,f x y x y x y u v <>=<+->=<>,则f 是满射,故为双射;1(,),22x y x y fx y -+-<>=<> ;(,)(,)(2,2)f f x y f x y x y f x y <>=<+->=<> .四、证明题(每题10分)1、设函数f :A B →,g :B C →,g 和f 的复合函数g f :A C →, 试证明:如果g f 是双射,那么f 是单射,g 是满射. 证明:12,x x A ∀∈且12()()f x f x B =∈,则1122()[()][()]()g f x g f x g f x g f x === ,因g f 是单射,有12x x =,故f 是单射;c C ∀∈,因g f 是满射,a A ∃∈,使()[()]c g f a g f a == ,而()f a B ∈,故g 是满射.注:如果g f 是单射,那么f 是单射;如果g f 是满射,那么g 是满射. 2、设f 是A 上的满射,且f f f = ,证明:A f I =.证明:因f 是满射,则对A a ∈∀,存在A a ∈1,使得1()f a a =, 则11()[()]()f f a f f a f a == ,由 f f f = ,知1a a =, 于是()f a a =,由a 的任意性知A f I =. 3、设函数f :A B →,g :B A →,证明:若11,f g f g--==,则,A B g f I f g I == .证明: 因1f g -=,则y B ∀∈,1()()g y fy x A -==∈,有(),()g y x f x y ==,于是,对y B ∀∈,有()[()]()()B f g y f g y f x y I y ==== ,知B f g I = ;又1f g-=,则对x A ∀∈,1()()f x gx y -==,有(),()f x y g y x ==,于是,对x A ∀∈,有()[()]()()A g f x g f x g y x I x ==== ,知A g f I = . 4、设函数f :A B →,g :B A →,证明:若,A B g f I f g I == ,则11,fg f g--==.证明:因恒等函数A I 是双射,则g f 是A 上的双射,有f 是单射,g 是满射; 同样,恒等函数B I 是双射,则g f 是B 上的双射,有f 是满射,g 是单射; 所以,f 和g 都是双射函数,其反函数都存在,故有11,f g f g--==.注:设函数f :A B →,g :B A →,证明: 11,fg f g--==⇔ ,A B g f I f g I == .5、设函数f :A B →,g :()B A ρ→,对于b B ∈,(){()}g b x x A f x b =∈∧=,()A ρ为A 的幂集,证明:如果f 是A 到B 的满射,则g 是B 到()A ρ的单射.证明:12x x B ∀≠∈,因f 是满射,12,y y A ∃∈,使1122()(),f y x x f y =≠=则12y y ≠; 又由g 的定义知,1122(),()y g x y g x ∈∈,故有12()()g x g x ≠,则g 是B 到()A ρ的单射.。

第6章 组函数

第6章 组函数
网络数据库程序设计 2
6.1 组函数的概念
SQL语言提供以下几个组函数(e为NUMBER类型表达式): (1)AVG(e)——计算一组行中e值的平均值 (2)COUNT(e)——计算一组行中e值为非空值的行数 (3)COUNT(*)——计算表中的行数(包括重复值和空值) (4)MAX(e)——计算一组行中e值的最大值 (5)MIN(e)——计算一组行中e值的最小值 (6)STDDEV(e)——计算一组行中e值的标准差 (7)SUM(e)——计算一组行中e值的总和 (8)VARIANCE(e)——计算一组行中e值的方差
网络数据库程序设计 25
6.3 使用GROUP BY子句
例6.14 SQL> select customer#,order#, 2 sum(quantity*retail) "order Total" 3 from orders natural join orderitems 4 natural join books 5 group by customer#,order# 6 order by customer# desc,order#;
网络数据库程序设计 18
6.3 使用GROUP BY子句
说明: • SELECT:SELECT子句中的每个表达式必须是以下内容之一: (1)一个常量。 (2)一个没有参数的函数(如Sysdate,User)。 (3)组函数,如SUM、AVG、MIN、MAX、COUNT。 (4)与GROUP BY子句中的表达式相匹配的内容。 • GROUP BY:对查询结果进行分组。GROUP BY子句总是和组函 数一起使用的。 • HAVING:利用HAVING关键字为分组统计进一步设置条件,找 出每一类别的组中满足指定条件的数据。

第六章函数——精选推荐

第六章函数——精选推荐

一、概念题1. C语言程序执行的开始处是。

2. C程序中的一个函数由两部分组成,即和。

3. 为了保证被调用函数不返回任何值,其函数定义的类型应为。

4. 若一个局部变量的存储类型是static,则该变量的值在时被释放。

5. 预处理命令#include的作用是。

6. 定义一个宏,功能是判断两个数是否相等,相等为1,不等为0。

#define EQU(a,b) 。

7. 变量的存储类别有、、、和共4种,它们分别用、、、标识。

8. 定义函数时,若缺省函数类型标识符,函数类型为。

9. 函数之间参数传递的方式有和。

10. 参数采用值传递调用方式时,若实参与形参不同类型,C的处理是:。

11. 调用时形参值的改变对实参变量有副作用的参数传递方式是。

12. 定义一个带参数的宏,若变量中的字符为大写字母,则转换为小写字母。

13. 定义一个带参数的宏,将两个参数值交换:#define swap(a, b) {double t;}。

二、判断题1. C程序的执行是从主函数开始的( )。

2. 函数的函数体可以是空语句()。

3. 只有main函数才能调用其他函数。

()4. return语句中表达式的类型必须与函数定义的类型一致。

()5. 函数的实参和形参可以是相同的名字。

()6. 函数调用中,形参与实参的类型和个数必须保持一致。

()7. 若定义的函数没有参数,则函数名后的圆括号可以省略。

()8. 在定义函数中指定的形参,在未出现函数调用时。

他们并不占用内存中的存储单元()。

9. 实际参数可以是常量、变量或表达式()。

10. 在C语言中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参()。

11. C程序中有调用关系的所有函数必须放在同一个源程序文件中()。

12. C的所有函数都是平行的,函数既可以嵌套定义,也可以嵌套调用()。

13. 函数必须有返回值,否则不能使用函数()。

14. 外部类型的变量只能定义一次,但可在不同地方声明多次。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

n
n
n-1
n为偶数
n
n为奇数
C=
k n
n! k!(n k )!
#include <stdio.h>
int f(int n) { int i,nf=1;
/*求n!*/
for(i=1;i<=n;i++)nf*=i;
return(nf);
}
计算机基础教学实验中心
int c(int n,int k)
/*求C */
main( ) float max(float a,float b) { { printf(“%f\n”,max(3,4)); return (a>b)?a:b; } } 注意:参数传递是单向值传递。 通过参数传递传入值 被调函数 调用函数 通过return返回值
8
计算机基础教学实验中心
[例]: 求两数的最大 值。注意函数 的定义形式。
计算机基础教学实验中心
数组名作函数实参
void main() void f(int b[3]) { int a[3]={4,5,6}; { b[0]=8; f(a);//数组名作实参 b[1]=9; printf(“%d,%d,%d”,a[0],a[1],a[2]); b[2]=10; } }
当用数组名作为函数实参时,函数形参会接收到 此数组的首地址。这就意味着函数形参数组首地址 等于实参数组首地址。 在函数中对形参数组的操作直接作用于实参数组。 用数组名作函数参数,必须在主调函数和被调函 数中分别定义数组,并保证类型一致。
• 一个C源程序由一个或若干个函数组成,其中必有
main函数。
• 程序的执行从main函数开始,也从main函数终止。
• 源程序中所有的函数在结构上都是平行的,互相独 立的。 • main函数可以调用其他函数,其他函数之间可以互 相调用。
计算机基础教学实验中心
函数的分类
• 从使用角度分:
1. 标准库函数:以程序库的形式直接提供给用户 使用。 2. 用户自定义函数:由用户自己建立定义。
计算机基础教学实验中心
注意: 形参在定义时不占内存空间,只在调用函数时为 其分配存储单元,且在调用结束后释放内存空间。 实参可以是常量、变量、表达式,但必须预先有 确定值。 实参和形参的顺序应该一致且个数相等;数据类型 应尽量保持一致。 实参变量与形参变量发生“单向值传递”,发生 函数调用时,只是将实参的“值”传给形参,在函 数中即使改变了形参的值也不会影响实参原来的值。 但当数组名作为实参进行传递时,传递的是数组的 首地址。 10
#include <stdio.h>
int isprime(int x) /*该函数判断是否素数*/ { int i; for (i=2;i<=x/2;i++) if (x%i==0) return (0); return (1); }
计算机基础教学实验中心
void main() { int i,a[10],sum=0,n=0; float aver=0; printf("Enter 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=0;i<10;i++) if(isprime(a[i])==1) /*若a[i]素数*/ { printf("%d ",a[i]); sum+=a[i]; /*求素数和*/ n++; /*统计素数个数*/ } if(n)aver=(float)sum/n; /*求素数平均值*/ printf("\nsum=%d,aver=%f\n",sum,aver); }
例:计算5个学生成绩的平均分,学生成绩已在数组中存放。
14
计算机基础教学实验中心 float a1(float a,float b,float c,float d,float e) { return (a+b+c+d+e)/5; 数组元素作实参。调用函数时需要 }
传递多个实参,效率低、通用性差。
float a2(float score[5]) { float result=0; int i; for (i=0;i<5;i++) result+=score[i]; return result/5; 数组名(数组首地址)作实参。调用 } 函数时只需传递一个实参,效率高。
int main() { float avg();//提前说明后面有avg这个函数 float a, b; scanf(“%f %f”, &a, &b); printf(“%f”, avg(a, b));//调用后面定义的avg函数 return 0; } float avg(float x, float y) { return (x+y)/2; }
计算机基础教学实验中心
函数的递归调用
C语言允许函数在定义中直接或间接地调用自己, 即函数的递归调用。 直接调用指在被 调函数中直接调 用本函数。 f( ) { ... f( ); ... } 间接调用指在f1函数中调用了f2 函数,但在f2函数中又调用了f1 函数。 f1( ) { ... f2( ); ... } f2( ) { ... f1( ); ... }
• 从函数形式分:
1. 无参函数:调用函数时主调函数不将数据传送 给被调函数。用于完成特定功能的操作。例如: getchar( ) 2. 有参函数:调用函数时在主调函数和被调函数 之间有参数传递。例如:sqrt(4)
计算机基础教学实验中心
§6.1 函数的定义
无参数函数的定义:
类型名 函数名() { 函数体; }
计算机基础教学实验中心
函数的嵌套调用 • 嵌套调用:在一个函数的内部调用另一 个函数.
main函数
1 2
函数a
3 4
函数b
5 6
调用a
9
调用b
8
7
结束
返回
返回
注意:函数不能嵌套定义,但能嵌套调用
22
计算机基础教学实验中心
[例]:计算Sn={
k=Leabharlann + C + C + … + C },其中:
3 5
k n
例:void print_star( ) { printf(“*****”); }
5
函数头
计算机基础教学实验中心
有参函数的定义:
定义形式(一): 类型标识符 函数名(形式参数列表) 形式参数说明; 例如: { int max(x,y) 函数体; int x,y; { …… } }
定义形式(二): 类型标识符 函数名(类型名 参数1,…,类型名 参数n) { 例如: 函数体; int max(int x,int y) } { …… }
15
计算机基础教学实验中心
§6.3 函数的返回值
一般形式: 或
功能: (1)立即从所在的函数体中退出,返回到调用它的程序中去;
return 表达式; return (表达式);
(2)返回一个值给调用它的函数。
有两种常用方法可以让函数终止运行并返回到调用它 的函数中去: (1)当执行到函数的最后一条语句后返回; (2)当执行到return语句时返回。
20
计算机基础教学实验中心
[例]:编程计算下式:
a×f(b) y= a<b
b×f(a)
a≥b
1 其中:f(x)= 0 -1
x>0 x=0 x<0
#include <stdio.h> void main( ) float f(float x) { { float z; float a,b,y; if(x>0)z=1; scanf(“%f%f”,&a,&b); y=(a<b)?a*f(b):b*f(a); else if(x==0)z=0; printf(“%f”,y); else z=-1; } return(z); }
计算机基础教学实验中心
第六章
函数
C o m p a n y
LOGO
计算机基础教学实验中心
主要内容
1 2
3 4 5 6 7
函数的定义 参数传递
函数的返回值
函数的调用
变量的作用域
变量的存储类别 内部函数与外部函数
2
计算机基础教学实验中心
• C函数的功能相当于其它程序设计语言中的一个程 序模块或子程序。 • C函数是C程序的组成部分,是由完成一特定任务 的说明语句和执行语句组成的基本功能单元。
计算机基础教学实验中心
注意: 函数的定义在程序中都是平行的,不允许在一个函数的内 部再定义另一个函数。
“函数名”是用户自定义标识符,命名时尽可能使之“见 名知意”。 “类型标识符”是函数计算结果的数据类型,即函数类型。 当函数值为整型时类型名可省略(不推荐省略);当函数不 需要向调用处返回值时,使用void类型名。
形参表中的形参是用户自定义标识符,没有参数时,圆括 号不能省略,此时函数为无参函数。
只在函数内部使用的变量,因为不参与主调函数与被调函 数之间的参数传递,必须放在{ }内部的说明部分。
7
计算机基础教学实验中心
§6.2 参数传递
实际参数、形式参数
调用max时给出实际参数。
定义max时使用形式参数。
函数出现在表达式中。
如:v2=max(x,y)*10;
函数作其它函数的实参。
如:num=max(max(max(a,b),c),d);
相关文档
最新文档