第八章 函数

合集下载

C语言课件:第八章 函数

C语言课件:第八章 函数

所有函数都是平行的,相互独立不能嵌套,但可以相 互调用。 C 函数分标准函数(库函数)和自定义函数。 C 函数本身分有参函数和无参函数。
2
8.2 函数定义的一般形式
1.无参函数的定义形式 类型标识符 函数名( ) { 说明部分 ; 语句; } 2.有参函数的定义形式 类型标识符 函数名(形式参数表) 形式参数说明; { 说明部分 ; 语句; }
例: 用函数调用实现字符串的复制。 void copy_string(from , to) char from[ ], to[ ]; 声明形参from, to为字符数组 { int i = 0 ; while ( from[i] != „\0‟ ) { to[i] = from[i]; i++ ; } to[i] = „\0‟ ; 运行结果: string_a = I am a teacher. } 实参以数组名将数组a, b的起 string_b = I am a teacher. 始地址传递给形参 from 和 to main( ) {char a[ ] = “I am a teacher.” ; char b[ ] = “you are a student.” ; copy_string(a, b); printf( “string_a = %s\nstring_b = %s\n”,a,b); }
7
若函数中没有return语句,则该函数被调用后也会带 回不确定的值。如: { int a, b, c ; a = printstar( ); 均为处理字符串的函数 且均没有 return 语句。 b = print_message( ); c = printstar( ); printf(“%d,%d,%d\n”,a,b,c); } 输出的a, b, c的值将是各个被处理的字符串的长度。

离散数学-第八章函数

离散数学-第八章函数

例8.5 对于以下各题给定的A,B和f,判断是否构成函 数f:A→B。如果是,说明 f:A→B是否为单射,满 射,双射的,并根据要求进行计算。 (1) A={1,2,3,4,5}, B={6,7,8,9,10}, f={<1,8>,<3,9>,<4,10>,<2,6>,<5,9>} 能构成函数f:A→B,但f:A→B既不是单射也不是 满射的。 (2) A,B同(1),f={<1,7>,<2,6>,<4,5>,<1,9>,<5,10>}
令f:A→B,使得f()=f0,f({1})=f1,f({2})=f2,f({3})=f3, f({1,2})=f4,f({1,3})=f5,f({2,3})=f6,f({1,2,3})=f7
(2) A=[0,1],B=[1/4,1/2]
令f:[0,1]→[1/4,1/2],f(x)=(x+1)/4. (3) A=Z,B=N 将Z中元素以下列顺序排列并与N中元素对应:
例8.1 设 F1={<x1,y1>,<x2,y2>,<x3,y2>} F2={<x1,y1>,<x1,y2>} 判断它们是否为函数。 解:F1是函数,F2不是函数。
因为对应于x1存在y1和y2满足x1F2y1和x1F2y2, 与函数定义矛盾。
F 是函数(映射) 对于x1,x2∈A, 如果x1=x2 ,一定有f(x1)=f(x2)。即, 如果对于x1,x2∈A有f(x1) ≠f(x2),则一定有x1≠x2
函数是集合,可以用集合相等来定义函数的相等
定义8.2 设F,G为函数,则 F=G F G∧G F 由以上定义可知,如果两个函数F和G相等,一 定满足下面两个条件: 1.domF=domG 2. x∈domF=domG都有F(x)=G(x)

《C程序设计》(第三版)第8章 函数(嵌套及递归调用)

《C程序设计》(第三版)第8章 函数(嵌套及递归调用)
数 */ <stdio. #include <stdio.h> void reverse();/* 反序输出一组以0为结束标记的整数。*/ reverse(); 反序输出一组以0为结束标记的整数。 void main() { reverse(); reverse(); } void reverse() /* 反序输出一组整数 */ { n; int n; scanf(“%d”,&n); scanf(“%d”,&n); if (n!=0) { reverse(); 递归调用, reverse();/* 递归调用,以语句形式出现 */ printf(“%4d”,n); printf(“%4d”,n); } /* 结束递归的条件 n==0*/ }
递归算法必须有结束递归条件,否则会产生死机现象! 递归算法必须有结束递归条件,否则会产生死机现象!
11
2.递归函数的执行过程
【例】编一递归函数求n!。 编一递归函数求 。
思路:以求 的阶乘为例 的阶乘为例: 思路:以求4的阶乘为例 4!=4*3!,3!=3*2!,2!=2*1!,1!=1,0!=1。 , , , , 。 递归结束条件: 递归结束条件:当n=1或n=0时,n!=1。 或 时 。 递归公式: 递归公式:
2
(4)函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算: (4)函数 函数fun的功能是计算 2x+6,主函数中将调用fun函数计算 的功能是计算x 函数计算: y1=(x+8)2-2(x+8)+6 y2=sin2x-2sinx+6 请填空。 请填空。 #include<math.h> fun(double x) double ; main() { double x,y1,y2; scanf(“%lf”,&x); x+8 y1=fun( ); sin(x) ); y2=fun( printf(“y1=%lf,y2=%lf\ printf(“y1=%lf,y2=%lf\n”,y1,y2); } double fun(double x) { return (x*x-2*x+6); } (x*x3

第八章-狄拉克函数

第八章-狄拉克函数

若 f (x)为任意连续函数,如果
性质来定义。
数学物理方法
性质 2.(对称性): (x x0 ) (x0 x) 函数是偶函数
证明:设 f (x)为定义在( )的连续函数,则

x0 x
f (x) (x0 x)dx f (x0 ) ( )(d )
数学物理方法
二、 函数的性质
性质 1:若 f (x)是定义在区间(,)的任一连续函数,则

f (x) (x x0)dx f (x0)
—将 (x x0 )乘上 f (x)进行积分,其值为将 f (x)的 x换为 x0或
者说: 函数具有挑选性(把 f (x)在 x x0的值挑选出来)
(x x0)
0
(x x0 ) (x x0 )

(x x0 )dx 1

(5) (6)
数学物理方法
(x x0)
0
(x (x
x0 ) x0 )
(5)

(x x0 )dx 1(6)

根据(5)式,在 x x0时, (x x0 ) 0,所以(6)式左边
——根限形式
证明:(1)当 x 0时,令v xu,且有lim sin v 1 v0 v
sin2 (ux)
lim
v0
x2u
lim u [lim sin(xu)]2
u x0 xu
lim u
u

(2)当 x 为不等于 0 的常数时:
lim
u
sin2 (ux)
数学物理方法
说明:
1. 函数并不是通常意义下的函数,而是广义函数:

函数的定义与性质

函数的定义与性质
27
8.2 函数的复合与反函数
推论2:设f:A→B, g:B→C, 则fg:A→C, 且 x∈A都有fg(x)=g(f(x))
证明:由性质1,fg是函数,由性质2易证 dom(fg)=A, ran(fg)C 由性质3,fg(x)=g(f(x))
28
8.2 函数的复合与反函数
定理:设函数f:A→B, g:B→C 则:
fff={<1,1>,<2,2>,<3,3>} 2
=IA
3
g 1
1
22
33
f 1
1
22
33
26
8.2 函数的复合与反函数
例:A上的三个函数 f(a)=3-a, g(a)=2a+1, h(a)=a/3
我们有:
❖(fg)(a)=g(f(a))=g(3-a) =2(3-a)+1=7-2a
❖(gf)(a)=f(g(a))=f(2a+1)=2-2a ❖h(g(f(a)))=h(7-2a)=(7-2a)/3
b2
c
2
f(d)=1
c2
d1
d
3
8
8.1 函数的定义与性质
皮亚诺后继函数
❖f: N→N, f(n)=n+1
投影函数
❖X和Y是非空集合,f: X×Y→X, f(x,y)=x
9
8.1 函数的定义与性质
A到B的函数集合BA (B上A)
❖ BA ={f | f: A → B}
例:设A={1, 2, 3}, B={a,b},求BA 解:BA={f0,f1,…,f7}
32
8.2 函数的复合与反函数
给定函数F,F-1不一定是函数 例:A={a,b,c},B={1,2,3}

电子科技大学离散数学第8章 函数

电子科技大学离散数学第8章 函数
2019/1/31 67-6
如果关系 f 具备下列两种情况之一,那么 f 就不是函数:
例8.2.1
设 A={1,2,3,4} , B={a,b,c,d} ,试判断下列关系哪 些是函数。如果是函数,请写出它的值域。 ( 1 ) f1 = {<1,a>,<1,b>,<2,c>,<3,b>}, 其 中 A = {1,2,3},B={a,b, c}; ( 2 ) f2 = {<a,b>,<b,b>,<c,c>}, 其中 A = {a,b,c},B ={b,c}; (3)f3={<x,y>|y−x=1,x,y∈R},其中A=B=R (4)f4={<x,y>|y−x=1,x,y∈Z+},其中A=B=Z+
离散数学
电子科技大学
2019年1月31日星期四
第8章 函数
1 2
函数的概念 特殊函数
内 容 提 要
3
函数的复合运算
函数的逆运算
4
5
2019/1/31
函数的运算定理
67-2
8.1 本章学习要求
重点掌握 1 1 函数的概念 2 单射、满射 和双射函数的 概念 3 函数的复合 运算和逆运算 2019/1/31 一般掌握
(集合元素的第一个元素存在差别)
3. 每一个函数的基数都为 |A| 个 (|f|=|A|) ,但关 系的基数却为从零一直到|A|×|B|。 (集合基数的差别)
2019/1/31 67-14
8.2.2函数的类型
定义8.2.2 设f是从A到B的函数,
对任意x1,x2∈A,如果x1≠x2,有f(x1)≠f(x2),
2019/1/31 67-26

微积分第八章多元函数笔记

微积分第八章多元函数笔记

微积分第八章多元函数笔记微积分第八章多元函数是在一元函数的基础上拓展而来的,主要涉及多元函数的极限、连续性、偏导数、全微分、多元函数的微分、多元函数的导数以及拉格朗日乘数法等内容。

本文将重点探讨多元函数的微分和拉格朗日乘数法,并尝试用卷积的角度解释其中的概念。

一、多元函数的微分多元函数的微分是一种线性近似,它描述了函数在其中一点附近的变化情况。

多元函数的微分可以通过偏导数来求解。

对于二元函数f(x,y),在点(x0,y0)处可以定义偏微分算子∂=∂/∂x和∂/∂y,其定义为:∂f/∂x=f_x(x0,y0)=(f(x0+Δx,y0)-f(x0,y0))/Δx∂f/∂y=f_y(x0,y0)=(f(x0,y0+Δy)-f(x0,y0))/Δy其中Δx和Δy分别表示变量x和y的增量。

∂f/∂x和∂f/∂y分别表示函数f在点(x0,y0)处对变量x和y的变化率。

考虑函数f(x,y)的微分形式,可以表示为:df=f_x(x_0,y_0)dx+f_y(x_0,y_0)dy其中dx和dy分别表示x和y的增量。

df表示函数f在点(x0,y0)处的全增量。

可以将df看作是函数f的线性近似,其包含了对x和y的变化的线性度量。

二、卷积的思维解释卷积是一种线性运算,它用来描述信号经过系统处理后的结果。

在微积分中,可以将多元函数的微分看作是函数f和无穷小增量dx、dy的卷积操作。

其中,函数f可以看作是输入信号,dx和dy可以看作是脉冲响应。

通过卷积运算,可以得到函数f在(dx,dy)范围内的局部增量。

具体来说,可以将函数f(x,y)表示为一个二维矩阵,矩阵的每个元素对应函数f在不同点的值。

将增量dx、dy表示为一个二维矩阵,矩阵的大小与函数f相同,每个元素都是一个脉冲。

通过卷积运算,将函数f和增量dx、dy进行卷积,可以得到函数f在(dx,dy)范围内的局部增量。

三、拉格朗日乘数法拉格朗日乘数法是一种用于求解约束条件下的极值问题的方法。

第8章 可计算函数

第8章 可计算函数

f ( g1 ( y),, gn ( y))也是初等函数。
( x) 是初等函数,那么
xu
g (u ) = f ( x) ,
g (u ) = f ( x) 也是初等函数。
x u
(5) 只有有限次使用上述条款确定的函数是初等函数。
离散数学 第8章 可计算函数 8.2 初等函数
x1x x2
8.2.1 初等函数集
sg( x ) =
0 当x > 0 1 当x = 0
sg( x ) = 1 * x
右边是常数函数、投影函数合成于二元差函数。
离散数学 第8章 可计算函数
8.2 初等函数
x1x x2
8.2.1 初等函数集
EF4. 符号函数 sg(x) =
1 当x>0 0 当x=0
sg( x ) = 1 * - sg( x )
x u

为迭乘操作。
x u
离散数学 第8章 可计算函数
8.2 初等函数
x1x x2
8.2.1 初等函数集
定义8.2 归纳定义初等函数集:
(1) 本原函数是初等函数。 (2) 二元差函数是初等函数:
x
y=
0 x- y
当x ≤ y 当 y < x , 这里的- 是通常的算术减
(3) 如果f ( x1 , , xn ) 与g1 ( y) , , gn ( y) 都是初等函数,那么它们 的合成 (4) 如果f
1 1 m m m 1
离散数学 第8章 可计算函数
8.2 初等函数
8.2.2 初等谓词
定理8.4 下列判定函数 con(x,y,s,t)是初等函数:
s 当x y con( x , y , s , t ) t 当x y

C语言程序设计 第3版 第8章 函数

C语言程序设计 第3版 第8章 函数

s=a+b;
return s;
}
main()
//主函数
{
int s;
s=sum();
printf("s=%d\n",s);
}
运行结果
2 3↙ s=5
C语言程序设计
2.函数的定义
无返回值无参数 无返回值有参数
有返回值无参数 有返回值有参数
一般形式:
类型标识符 函数名(形式参数表列) {
函数体; return 表达式; }
调用方式
函数调用的一般形式:
函数名(实际参数表) 实际参数表中的参数可以是常数、变量或表达式,各实参之间用逗号分隔。
调用方式:
(1)函数表达式:函数作为表达式中的一项出现在表达式中,这种方式要求函数有返回值。 例如:s=sum(x,y);把sum的返回值赋予变量s。
(2)函数语句:函数调用的一般形式加上分号即构成函数语句,这种方式不要求函数有返回值。 例如:sum(x,y);以函数语句的方式调用函数。
void sum(int a,int b) //自定义函数
{
int s;
s=a+b;
ห้องสมุดไป่ตู้
printf("s=%d\n",s);
} main()
//主函数
{
int x=2,y=3;
sum(x,y);
}
运行结果
s=5
C语言程序设计
2.函数的定义
无返回值无参数 无返回值有参数
有返回值无参数 有返回值有参数
一般形式:
类型标识符 函数名( ) {
函数体; return 表达式; }
注意说明:
(1)函数的类型实际上是函数返回值的类型。

第八章第8节多元函数的极值

第八章第8节多元函数的极值

三、条件极值
极值问题 无条件极值: 自变量 只有限制定义域内
条件极值 : 自变量 除了限制定义域内, 还有其它条件限制 例如, 在条件 ( x, y) 0 下, 求函数 z f ( x , y ) 的极值 条件极值的求法: 方法1 代入法. 从条件 ( x, y) 0 中解出 y y( x )
故极值点 必须满足
dy dx
dz dx
f x ( x , y ) f y ( x , y ) f x ( x, y) f y ( x, y)
dy dx
0 0
x ( x, y)
, y ( x, y)
x ( x, y)
y ( x, y)

f y ( x, y)


3
定理2 (充分条件)若函数 在点 的某邻域内 具有二阶连续偏导数, 且
f x ( x0 , y0 )
f y ( x0 , y0 )

A f xx ( x0 , y0 )
B f xy ( x0 , y0 ) C f yy ( x0 , y0 )
具有极值 则:1)当 AC B 0时,
( x, y) 0
这是极值点 必须满足的条件。
求函数 z f ( x , y ) 在条件 ( x , y ) 0 下的极值. 引入辅助函数 L f ( x , y ) ( x , y ) Lx f x ( x , y ) x ( x , y ) 0 则极值点满足: Ly f y ( x , y ) y ( x , y ) 0
2
不是极值;
5
6 x 6,
在点(3,0) 处
6 y 6,

高等数学第八章课件.ppt

高等数学第八章课件.ppt
x x0 y y0 z z0 . x(t0 ) y(t0 ) z(t0 ) 切向量:切线的方向向量称为曲线的切向量.
T x(t0), y(t0), z(t0)
法平面:过M点且与切线垂直的平面.
x(t0 )(x x0 ) y(t0 )( y y0 ) z(t0 )(z z0 ) 0
限,记为
lim f( x, y) A,
( x, y x0 , y0 )
或 f(x,y) A,( x, y)( x0, y0 )
例 考察函数
g( x,
y)
xy
x2 y2
,
x2 y2 0 ,
0 , x2 y2 0
当 ( x, y ) ( 0 , 0 ) 时的极限
解 当 ( x, y ) 沿 y 轴趋向于原点,即当 y 0 而
若函数 u u(x, y), v v(x, y) 在点(x, y) 处有偏导 数,则 z f (u) 在对应点(u, v) 处有连续偏导数, 则复合函数 z f [u(x, y), v(x, y)] 在点(x, y) 处也存 在偏导数,并且
两种特殊情况:
(二) 隐函数的求导法则
设方程 F (x , y) = 0 确定了函数 y = y(x),两端 对 x 求导,得
f(x0,y0)=C
第二节 偏导数
一、偏导数的概念及几何意义 二、高阶偏导数 三、复合函数与隐函数的求导法则
一、偏导数的概念及几何意义
(一) 偏导数的概念
定义 设函数
在点
的某邻域内极限
存在,则称此极限为函数 的偏导数,记为
注意:
同样可定义对 y 的偏导数为
若函数 z f ( x, y)在域 D 内每一点 ( x, y)处对 x

高等数学第八章 多元函数微分法及其应用

高等数学第八章  多元函数微分法及其应用

其中是曲面在M的法向量
n {Fx ( x0 , y0 , z0 ), Fy ( x0 , y0 , z0 ), Fz ( x0 , y0 , z0 )}
2、曲面方程:z=f(x,y)
它在点M( x0 , y0 , z0 )的切平面方程
z z0 f x ( x0 , y0 )( x x0 ) f y ( x0 , y0 )( y y0 )
第五节 隐函数的求导公式
存在定理1:设函数F(x,y)在点 P( x0 , y0 ) 的某一邻
域内具有连续的偏导数,且F ( x0 , y0 ) 0, Fy ( x0 , y0 ) 0,
则方程F(x,y)=0在点( x0 , y0 ) 的某一邻域内恒能确定
一个单值连续且具有连续导数的函数y=f(x),它满足
性质:(介值定理)在有界闭区域D上的多元连续函 数,若在D上取得两个不同的函数值,则它在D 上取得介于这两个值之间的任何值至少一次。
一切多元初等函数在其定义区域内是连续的。
第二节 偏导数
一、偏导数的定义及其计算法
定义 :设函数z=f(x,y)在点(x0, y0 )的某一邻域内有定
义有存,增在当量,则yf固(称x定0此在极xy限,0而y0为x) 在函xf数(0处xz0=,有yf(0增x),,量如y)果在x 时点lxi,m(0x相f0,(y应x00)处地x对函x,x数y的0 )
,
y
|x x0 , z y y y0
|x x0 y y0
或f y ( x0 ,
y0 )
类似导数,函数z=f(x,y)对自变量x的偏导函数为
z x
,
f x
,
z
x或f
x
(
x,

第八章 函数1函数概述

第八章 函数1函数概述

第八章函数8、1 函数概述1、C语言的函数:C语言的函数是子程序的总称,包括函数和过程。

(有返回值、无返回值,教材中称为:有返回值函数,无返回值函数)。

C语言函数可以分为库函数、用户自定义函数。

库函数由系统提供,程序员只需要使用(调用),用户自定义函数需要程序员自己编制。

2、C语言的程序由函数组成,函数是C语言程序的基本单位。

前面章节介绍的所有程序都是由一个主函数main组成的。

程序的所有操作都在主函数中完成。

事实上,C语言程序可以包含一个main函数,也可以包含一个main函数和若干个其它函数。

C语言程序的结构如图所示。

在每个程序中,主函数main是必须的,它是所有程序的执行起点,main函数只调用其它函数,不能为其它函数调用。

如果不考虑函数的功能和逻辑,其它函数没有主从关系,可以相互调用。

所有函数都可以调用库函数。

程序的总体功能通过函数的调用来实现。

3、使用函数的意义(补充)有些同学提出,我只用一个main函数就可以编程,为什么这么复杂,还要将程序分解到函数,还要掌握这么多概念,太麻烦了?我们说对于小程序可以这样做,但是对于一个有一定规模的程序这样做就不合适了。

使用函数的几个原因:(1)使用函数可以控制任务的规模一般应用程序都具有较大的规模。

例如:一个齿轮误差分析软件系统的源程序行数要数千行。

一个传动链计算机辅助设计系统的源程序行数5万多行。

使用函数可以将程序划分为若干功能相对独立的模块,这些模块还可以再划分为更小的模块,直到各个模块达到程序员所能够控制的规模。

然后程序员再进行各个模块的编制。

因为各个模块功能相对独立,步骤有限,所以流程容易控制,程序容易编制,修改。

一般一个模块的规模控制在源程序60行以内(但是也不必教条化)。

(2)使用函数可以控制变量的作用范围变量在整个模块范围内全局有效,如果将一个程序全部写在main()函数内,大家可以想象,变量可以在main函数内任何位置不加控制地被修改。

c语言第八章 函数

c语言第八章 函数

教学进程
8.2
函数的调用
【练习题 】
用函数实现求两个实数的和。
#include <stdio.h> void main() /*主调函数*/ { float add(float x, float y); /*函数声明*/ float a,b,c; printf("Please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); 因函数声明与函数首 printf("sum is %f\n",c); 部一致,故把函数声 } 明称为函数原型。 float add(float x,float y) /*被调函数首部*/ { float z; z=x+y; 用函数原型来声明函数,能减少 return(z); 编写程序时可能出现的错误。 }
教学进程
8.2.3 函数的调用
定义函数时,函数名后括号中的变量称为形式参数,即形参。 定义函数时,函数名后括号中的变量称为形式参数,即形参。 在主函数中调用函数时,函数名后括号中的表达式称为实际 参数,简称实参。
【例 】 输入两个整数,要求用一个函数求出其中的大者,并 在主函数中输出此数。
教学进程
a
b
c
d
e
f
教学进程
运行结果: 【例】 函数调用的简单例子。
**************** How do you do! ****************
/*主调函数*/ /*主调函数* #include <stdio.h> void main() { void printstar(); printstar(); void print_message(); print_message(); printstar(); print_message(); printstar(); }

《高等数学》 第八章(下)多元函数微积分简介

《高等数学》 第八章(下)多元函数微积分简介

x2
y2
xdy x2
ydx
x2
y
y2
dx
x2
x

2.全微分在近似计算中的应用
设函数 z f (x ,y) 在点 P0(x0 ,y0 ) 可微,则函数在点 P0(x0 ,y0 ) 的全增量为 z f (x0 x ,y0 y) f (x0 ,y0 ) fx(x0 ,y0 )x f y(x0 ,y0 )y () ,
1
y x2
y2

所以 全微分为
z 1 ,z 1 . x (1,1) 3 y (1,1) 3 dz z x z y 1 x 1 y .
x y 3 3
第二节 多元函数微分学
例 16 求 z arctan y 的全微分. x

dz
d arctan
y x
1
1 y x
2
d
y x
x2
x y dz z x z y .
x y 在一元函数里,可微和可导是等价的,定理 1 告诉我们,二元函数可微一定 存在偏导数,反过来,是否成立呢?也就是就,若二元函数 z f (x ,y) 在点 P(x ,y) 处存在偏导数,那么二元函数 z f (x ,y) 在点 P(x ,y) 是否可微呢?回 答是否定的.
第二节 多元函数微分学
定理 4 (充分性)若函数 z f (x ,y) 在点 P(x ,y) 邻域内存在关于 x , y 的两 个偏导数 z ,z ,且它们在该点连续,则函数 z f (x ,y) 在点 P(x ,y) 处可微.
x y 此定理说明,只有当二元函数的两个偏导数在该点连续,才能保证其可微. 习惯上,把自变量的改变量 x , y 分别记作 dx ,dy ,并称为自变量的微分, 所以二元函数的全微分可以表示为 dz fxdx f ydy . 类似地,二元函数的微分及性质可以推广到三元以及三元以上的函数.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章函数一、选择题:1、在C语言中,以下说法中正确的是:()A. 实参与其对应的形参各占用独立的存储单元B. 实参与其对应的形参占用同一个存储单元C. 只有当实参与形参同名时才占用同一个存储单元D. 实参占用存储单元,但形参是虚拟的,不占用存储单元2、以下正确的函数形式是:()A. double fun(int x, int y) { z=x+y; return z;}B. fun(int x,y) { int z; return z;}C. fun(x,y) { int x,y; double z; z=x+y; return z;}D. double fun(int x, int y) { double z; z=x+y; return z;}3、以下正确的函数定义形式是()A. double fun(int x, int y)B. double fun(int x ;int y)C. d ouble fun(int x, int y);D. d ouble fun(int x,y);4、定义为void类型的函数,其含义是()A. 调用函数后,被调用的函数没有返回值B. 调用函数后,被调用的函数不返回C. 调用函数后,被调用的函数的返回值为任意的类型D. 以上三种说法都是错误的5、定义C语言函数时,形参可以是:()A. 常量B. 变量C. 表达式D. 宏定义6、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是:()A. float型B. int型C. long型D. double型7、下面函数f(double x){printf(“%6d”,x);}的类型为: ( ) A. 实型 B. void 类型 C. int 类型 D. 均不正确8、有以下程序void f(int x,int y){ int t;if(x<y){ t=x; x=y; y=t; }}main(){ int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}执行后输出的结果是:()A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,59、C语言中,简单变量做实参时,它和对应的形参之间的数据传递方式是()。

(A)地址传递(B)单向值传递(C)由实参传给形参,再由形参传递给实参(D)同用户指定传递方式10、有以下程序#include <stdio.h>int f(int x,int y){ return ((y-x)*x);}main(){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d",d);}程序运行后的输出结果是:()A. 10B. 9C. 8D. 711、数组名作为实参传递给被调用的函数时,形参获得的是()A. 该数组第一个元素的值B. 该数组所有元素的值C. 该数组第一个元素的首地址D. 该数组所有元素的首地址12、若使用一维数组名作函数实参, 则以下正确的说法是:()A. 必须在主调函数中说明此数组的大小B. 实参数组类型与形参数组类型可以不匹配C. 在被调用函数中, 要设置形参数组的大小D. 实参数组名与形参数组名必须一致13、下列程序的输出结果是()。

f (int b[ ] , int m , int n){ int i , s=0;for(i=m ; i<=n ; i++)s=s+b[i] ;return s ; }main(){ int x , a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9};x=f (a , 3 ,5 );printf("%d\n " , x) ; }(A)15 (B)22 (C)30 (D)014、为了提高程序的运行速度,在函数中对于整型或指针可以使用的变量类型是:()A. autoB. registerC. staticD. extern15、若函数中有定义语句:int k;,则下列说法正确的是:()A. 系统将自动给k赋初值0B. 这时k中的值不确定C. 系统将自动给k赋初值-1D. 这时k中无任何值16、C语言中形参的缺省存储类别是()A.自动(auto)B.静态(static)C. 寄存器(register)D. 外部(extern)17. 下列叙述中错误的是:()A. 引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。

B. 不能用extern定义一个外部变量、数组。

C. 无论在函数外还是在函数内部引用自定义的函数,都可以不写extern关键字。

D. 用extern说明引用一个外部数组时,可以不给出数组大小。

18.在一个源文件中定义的全局变量的作用域为:()A. 本文件的全部范围B. 从定义该变量开始至本文件结束C. 本函数的全部范围D. 本程序的全部范围二、填空题:1、在C语言中,函数默认是。

(填“全局的”或“局部的”)2、已知函数定义为:int stat(int a,float *p){……………}则此函数的两个参数类型分别是、。

3、选择法排序函数:void sort(int array[],int n){ int i,j,k,t;for(i=0;i<n-1;i++){ k=i;for(; j<n;j++)if(array[j]<array[k]) k=j;t=array[k];;array[i]=t; } }三、看程序写结果:1、以下程序的运行结果是。

void fun(int i,int j){int x=7;pirntf("i=%d; j=%d; x=%d",i,j,x);}void main(){int i=2,x=5,j=7;fun(j,6);printf("i=%d; j=%d; x=%d",i,j,x);}2、以下程序的运行结果是。

max(int x, int y){int z;z=(x>y)?x:y;return(z);}void main(){int a=1,b=2,c;c=max(a,b);printf("max is %d",c);}3、以下程序的运行结果是。

void increment(){int x=0;x+=1;printf("%d",x);}void main(){increment();increment();increment();}4、以下程序的运行结果是。

int age(int n ){ int c;if(n= =1) c=20;else c=age(n-1)+2;return(c) ; }main( ){int x=4;printf("%d" ,age(x) ) ;}5、以下程序的运行结果是。

#include <stdio.h>main( ){ int x=10;{ int x=20;printf ("%d,", x);}printf("%d\n", x);}6、以下程序的运行结果是。

int f( int x ){static int b=0;b=b+1;return x+b ; }main( ){ int i;for(i=0; i<3; i++)p rintf(“% d ”, f(5)) ;}7、以下程序输出的结果是。

int w=2;int f(int x){ int y=1;static int z=3;y++;z++;return(x+y+z);}main(){ int k;for(k=0;k<3;k++)printf(“%4d”,f(w++);}8、以下程序输出的结果是。

fun(int a, int b){ if(a>b) return (a);Else return (b); }main(){ int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf(“%d\n”,r); }9、以下程序输出的结果是。

f (int m){static int k=2;m+=k;k+=m;return (k);}main ( ){ int i=4;while (i<6) printf(“%d \n”, f(i++));}10、以下程序输出的结果是。

int f(int n ){ int c;if(n= =1) c=1;else c=f(n-1) *n;return(c) ;}main( ){int x=4;printf("%d" ,f(x)) ;}11、以下程序输出的结果是。

long sub(int num){ int i;long subsum=1;for(i=1;i<=num;i++)subsum*=i;return(subsum);}main(){int i;long sum=0;for(i=1;i<=4;i++){sum+=sub( i );}printf("sum%1d=%ld\n",i,sum);}四、判断:1. 从作用域角度分,变量有局部变量和全局变量。

()2. 按变量存在的时间分,变量有动态存储和有静态存储方式。

()五、编程题:1、.编写一个求两个自然数的最大公约数的函数,通过主函数调用该函数来实现两数的最大公约数的判断。

函数定义格式如下:int gongyueshu(int m,int n){}2、现有函数prime(int m)其功能为判断m是否为素数。

请完成此函数,并在主函数中调用。

3、写一个函数计算2012以内最大的10个能被13或17整除的自然数之和(要求使用循环实现)。

输出格式:sum=234564、编写一个函数long newdata(long s)将长整型数s中每一位上为偶数的数码依次取出,构成一个新数放在t中。

高位仍放在高位,低位仍放在低位。

例如:当s中的数为87653142时,t中的数为8642。

在主函数中输入s,调用newdata。

5、编写一函数,要求输入一个整数字符串(即,字符串里全是整数字符,不含其他字符),返回该字符串对应的整数值,函数的原型:int tran(char s[ ])。

6、编写一函数,用选择排序法实现排序功能,原型如下。

(要求按元素值的升序排列)。

void selSort(int a[], int n)。

相关文档
最新文档