当前位置:首页 >> 幼儿读物 >>

C语言一日一学第8课——函数(3)


1.7.2 数组名作函数参数 可以用数组名作函数参数,此时形参应当用数组名或用指针变量 。 例 1.11 有一个一维数组 score,内放 10 个学生成绩,求平均成绩。
& ^7 G4 x: s; z" d2 q, i& h

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 1

5. 16. 17. 18. 19. 20. 21. 22.

#include <stdio.h> void main() { float average(float array[10]); /* 函数声明 */ float score[10] , aver; int i; printf('input 10 scores:\n"); for(i = 0 ; i < 10 ; i ++) scanf("%f",&score[i]); printf("\n"); aver=average( score ); printf (" average score is %5.2f\n″, aver); } float average (float array[10]) { int i; float aver, sum = array[0]; for (i = 1 ; 1< 10; i ++) sum = sum + array[i];s aver = sum/10; return(aver); }

复制代码

运行情况如下:

1. 2. 3.

input 10 scores: 100 56 78 98.5 76 87 99 67.5 75 97 ↙? average score is 83.40

复制代码

例 1.12 形参数组不定义长度

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

#include <stdio.h> void main() { float average(float array[],int n)

float score_1[5] ={98.5 , 97 , 91.5 , 60 , 55}; float score_2[10]={67.5 , 89.5 , 99 , 69.5 , 77 , 89.5 , 76.5 , 54 , 60 , 99.5}; printf("the average of class A is %6.2f\n",average(score_1,5)); printf("the average of class B is %6.2f\n",average(score_2,10)); } float { int i; float aver , sum = array[0]; for(i = 1 ; i < n ; i ++) sum=sum + array[i]; aver=sum/n; return(aver); } average(float array[] , int n)

复制代码

运行结果如下:

1. 2.

the average of class A is 80.40 The average of class B is 78.20

复制代码

例 8.13 用选择法对数组中 10 个整数按由小到大排序。 所谓选择法就是先将 10 个数中最小 的数与 a[0]对换;再将 a[1]到 a[9]中最小的数与 a[1]对换??每比较一轮,找出一个未经排 序的数中最小的一个。共比较 9 轮。 a[0] 3 a[1] a[2] 6 1 a[3] a[4] 9
1 ~$ F/ s* x9 G$ w

r+ v+ w" f6 z% b8 _# d3 H* t9 C

4

未排序时的情况

1

6

3

9

4

! h" `9 r. V7 C

R: `0 h" R! o

将 5 个数中最小的数 1 与 a[0]对换 1 3 6 9 4
+ s0 D. h: a6 U/ X9 E6 F

7 h" y+ B3 b& @" z1 ?: F: [7 P

将余下的 4 个数中最小的数 3 与 a[1]对换 1 3 4 9 6
" j8 A$ y. u Z

将余下的 3 个数中最小的数 4 与 a[2]对换 1 3 4 6 9
n2 s. L6 J# l# C- C4 E5 S

: `& @- b3 ^9 @/ P# {. [

将余下的 2 个数中最小的数 6 与 a[3]对换,至此完成排序 程序实例

- a: m6 h' o% E- r+ A/ d9 [

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

#include <stdio.h> void main() { void sort(int array[] , int n);

int a[10] , i ; printf("enter the array\n"); for(i = 0 ; i < 10 ; i ++) scanf(%d" , &a[i]); sort9 a , 10 ); printf("the sorted array:\n"); for(i = 0 ; i < 10 ; i ++) printf("%d", a[i]); printf("\n"); } void sort9int array[] , int n) { int i , j , k , t ; for(i = 0 ; i < n - 1 ; i ++) { k=i; for(j = i + 1 ; j < n ; j ++) if(array[j] < array[k] = k = j) t=array[k];

24. 25. 26. 27. } }

array[k]=array[i]; array[i]=t;

复制代码

程序如下:

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

#include <stdio.h> void main() { max_value ( int array[][4]); int [3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}}; printf("max value is %d\n",max_value(a) ); } max_value ( int array[][4]) { int i , j , k , max ; max = array[0][0]; for(i = 0 ; i < 3 ; i ++) for(j = 0 ; j < 4 ; j ++) if(array[i][j] > max) max = array[i][j]; return(max); }

复制代码

运行结果如下:

1.

Max value is 34

复制代码

1.8 局部变量和全局变量 1.8.1 局部变量

6 q, W) p; Y4 N% ]

在一个函数内部定义的变量是内部变量, 它只在本函数范围内有效, 也就是说只有在本函数 内才能使用它们,在此函数以外是不能使用这些变量的。这称为“局部变量”。

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

float f1( int a) {int b,c; … } char f2(int x,int y) {int i,j; } void main( ) {int m,n; … }

/*? 函数 f1? */

a、b、c 有效

/*? 函数 f2 */ x、y、i、j 有效

/*? 主函数?*/

m、n 有效

复制代码

说明

: Q" k9 L, I) c$ [$ [

(1) 主函数中定义的变量(m,n)也只在主函数中有效,而不因为在主函数中定义而在整个文 件或程序中有效。主函数也不能使用其他函数中定义的变量。 (2) 不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。例如, 上面在 f1 函数中定义了变量 b 和 c,倘若在 f2 函数中也定义变量 b 和 c,它们在内存中占不同的单 元,互不混淆。
+ ` B. L$ m# w7 [

(3) 形式参数也是局部变量。例如上面 f1 函数中的形参 a,也只在 f1 函数中有效。其他函 数可以调用 f1 函数,但不能引用 f1 函数的形参 a。
9 |+ u" n) [+ l. l

(4) 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复 合语句也称为“分程序”或“程序块”。

1. 2. 3. 4. 5. 6. 7.

void main ( ) { int a,b; … { int c; c=a+b; c 在此范围内有效 a,b 在此范围内有效

8. 9. 10. 11. } … }



复制代码

1.8.2 全局变量

5 M" X# O% ^0 o$ b4 u& P

在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量,外部变量是全局 变量(也称全程变量)。 全局变量可以为本文件中其他函数所共用。 它的有效范围为从定义变 量的位置开始到本源文件结束。

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

int p=1,q=5; float f1(int a) { int b,c; … } char c1,c2; char f2 (int x, int y) { int i,j; … } void main ( ) { int m,n; … }

/* 外部变量 */ /* 定义函数 f1 */

/* 外部变量?*/ /* 定义函数 f2 */

全局变量 p,q 的作用范围 全局变量 c1,c2 的作用范围

/*? 主函数?*/

复制代码

例 1.15 有一个一维数组,内放 10 个学生成绩,写一个函数,求出平均分、最高分和最低 分。

1.

#include <stdio.h>

2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.

float

Max=0 ,Min=0 ;

/*? 全局变量?*/

void main() { float float int i; for(i = 0 ; i < 10 ; i ++) scanf("%f", &score[i]); ave = average(score , 10); printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max , Min , ave); } float average(float array[], int n) { int i; float aver, sum=array[0]; /* 定义函数,形参为数组 */ average(float array[] , int n ); ave , score[10];

Max=Min=array[0]; for(i = 1 ; i < n ; i ++) { if(array[i] > Max) Max=array[i]; else if(array[i] < Min) Min= array[i]; sum=sum+array[i]; } aver=sum/n; return(aver); }

复制代码

运行情况如下:

1.

99 45 78 97 100 67.5 89 92 66 43 ↙?

2. 3. 4.

max = 100.00 min = 43.00 average = 77.65

复制代码
2 l. o" d8 L3 O0 C

建议不在必要时不要使用全局变量,原因如下:

8 m: j& a

K4 q0 I4 V

① 全局变量在程序的全部执行过程中都占用存储单元,而不是仅在需要时才开辟单元。
D0 H

9 n) t }- p

~1 ?7 ?9

② 使用全局变量过多,会降低程序的清晰性,人们往往难以清楚地判断出每个瞬时各个外 部变量的值。在各个函数执行时都可能改变外部变量的值,程序容易出错。因此,要限制使 用全局变量。
S- Z& S+ X- g! _& _, k

③它使函数的通用性降低了, 因为函数在执行时要依赖于其所在的外部变量。 如果将一个函 数移到另一个文件中, 还要将有关的外部变量及其值一起移过去。 但若该外部变量与其他文 件的变量同名时,就会出现问题,降低了程序的可靠性和通用性。一般要求把C程序中的函 数做成一个封闭体, 除了可以通过“实参——形参”的渠道与外界发生联系外, 没有其他渠 道。 例 1.16 外部变量与局部变量同名

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

#include <stdio.h> int a=3,b=5; void main ( ) { int a=8; /*a 为局部变量 */ 局部变量 a 作用范围 /* a,b 为外部变量*/ a,b 作用范围

printf (″%d″, max (a,b)); } max (int a, int b) { int c; c=a>b?a∶b; return (c); }

全局变量 b 的作用范围

/*a,b 为局部变量 */

形参 a、b 作用范围

复制代码

运行结果为

1.

8

复制代码

1.9 变量的存储类别 1.9.1 动态存储方式与静态存储方式 前面已介绍了从变量的作用域(即从空间)角度来分, 可以分为全局变量和局部变量。 那么从 变量值存在的时间(即生存期)角度来分,又可以分为静态存储方式和动态存储方式。 所谓静态存储方式是指在程序运行期间由系统分配固定的存储空间的方式。 而动态存储方式 则是在程序运行期间根据需要进行动态的分配存储空间的方式。 这个存储空间可以分为三部 分: ? ? ?
# |/ I2 z7 X# m K3 \ y c

程序区

2 R( Z6 x

q2 w! U* F

静态存储区 动态存储区

$ B4 ~4 I. [; F% R

- g$ @0 S+ S5 x' `% u* D7 ?

在 C 语言中每一个变量和函数有两个属性:数据类型和数据的存储类别。对数据类型,读者 已熟悉(如整型、字符型等)。存储类别指的是数据在内存中存储的方式。存储方式分为两大 类:静态存储类和动态存储类。具体包含四种:自动的(auto),静态的(static),寄存器的 (register),外部的(extern)。根据变量的存储类别,可以知道变量的作用域和生存期。 1.9.2 auto 变量
/ G- G' E) i( G

函数中的局部变量,如不专门声明为 static 存储类别,都是动态地分配存储空间的,数据存 储在动态存储区中。函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量), 都属此类,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些 存储空间。因此这类局部变量称为自动变量。自动变量用关键字 auto 作存储类别的声明。
C9 @. M+ f7 r, [' F7 n$ R % I.

例如:

1. 2. 3. 4. 5.

int f(int a) /*定义 f 函数,a 为形参 */ { auto int b , c = 3; /*定义 b 、c 为自动变量 */ … }

复制代码

1.9.3 用 static 声明局部变量 有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值, 即其占用的存储单元 不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。这时就 应该指定该局部变量为“静态局部变量”,用关键字 static 进行声明。通过下面简单的例

子可以了解它的特点。 例 1.17 考察静态局部变量的值。

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

#include <stdio.h> void main() { int f(int); int a = 2 , i ; for(i = 0 ; i < 3 ; i ++) printf("%d",f(a)); } int f(int a) { auto int b = 0; static c = 3; b = b + 1; c = c + 1; return(a + b + c); }

复制代码

对静态局部变量的说明:

3 L% |. ?

X 3 x9 M

(1) 静态局部变量属于静态存储类别, 在静态存储区内分配存储单元。 在程序整个运行期间 都不释放。 而自动变量(即动态局部变量)属于动态存储类别, 占动态存储区空间而不占静态 存储区空间,函数调用结束后即释放。 (2) 对静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以 后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。 而对自动变量赋初 值,不是在编译时进行的,而是在函数调用时进行,每调用一次函数重新给一次初值,相当 于执行一次赋值语句。
# X! i A& v3 t1 O: s) J5 ^8 x( ?

(3)如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值 0(对数 值型变量)或空字符(对字符变量)。而对自动变量来说,如果不赋初值则它的值是一个不确 定的值。 这是由于每次函数调用结束后存储单元已释放, 下次调用时又重新另分配存储单元, 而所分配的单元中的值是不确定的。

(4) 虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。 例 1.18 输出 1 到 5 的阶乘值。

8 F6 y( [& v, V8 {2 f2 B

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

#include <stdio.h> void main() { int fac(int n); int i ; for(i = 1 ; 1 <= 5 ; i ++) printf("%d!=%d\n", i , fac(i)) } Int fac(int n) { static int f = 1 ; f=f*n; return(f); }

复制代码

1.9.4 register 变量

# O8 R6 d1 P" {0 w* u4 C! _+ K

一般情况下, 变量(包括静态存储方式和动态存储方式)的值是存放在内存中的。 当程序中用 到哪一个变量的值时,由控制器发出指令将内存中该变量的值送到运算器中。 经过运算器 进行运算,如果需要存数,再从运算器将数据送到内存存放。
# ]5 ?+ V! n) K

如果有一些变量使用频繁(例如在一个函数中执行 10000 次循环,每次循环中都要引用某局 部变量),则为存取变量的值要花费不少时间。为提高执行效率,C 语言允许将局部变量的 值放在 CPU 中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。 由于对寄存器的存取速度远高于对内存的存取速度, 因此这样做可以提高执行效率。 这种变 量叫做寄存器变量,用关键字 register 作声明。例如,例 1.19 中的程序是输出 1 到 n 的 阶乘的值。 例 1.19 使用寄存器变量

1. 2. 3.

#include <stdio.h> void main ( ) {

4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. } }

long fac(long); long i,n; scanf("%ld",&n); for(i=1;i<=n;i++) printf("%ld!=%ld\n",i,fac(i));

long fac(long n) { register long i,f=1; for (i=1;i<=n;i++) f=f*i; return (f); /*? 定义寄存器变量?*/

复制代码

1.9.5 用 extern 声明外部变量 外部变量是在函数的外部定义的全局变量, 它的作用域是从变量的定义处开始, 到本程序文 件的末尾。在此作用域内,全局变量可以为程序中各个函数所引用。编译时将外部变量分配 在静态存储区。 有时需要用 extern 来声明外部变量,以扩展外部变量的作用城。 1. 在一个文件内声明外部变量
5 o& E' N' b% g8 l$ L

例 1.20 用 extern 声明外部变量,扩展它在程序文件中的作用域。

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

#include <stdio.h> void main() { int max(int,int); extern A,B; printf("%d\n",max(A,B)); } int A=13,B=-8; int max(int x,int y) { /*定义外部变量*/ /*定义 max 函数 */ /*外部变量声明*/

11. 12. 13. 14. }

int z; z=x>y?x:y; return(z);

复制代码

2. 在多文件的程序中声明外部变量 例 1.21 用 extern 将外部变量的作用域扩展到其他文件。 本程序的作用是给定 b 的值,输 入 a 和 m, 求 a×b 和 am 的值。文件 file1.c 中的内容为:

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

#include <stdio.h> int A; void main() { int power(int); /*函数声明*/ /*定义外部变量*/

int b = 3 , c , d , m ;; printf("enter the number a and its power m:\n"); scanf("%d , %d", %A, %m); c =A*b; printf("%d * %d = %d\n", A , b , c); d = power(m); printf("%d ** %d + %d\n",A , m , d); }

复制代码

文件 file2.c 中的内容为: extern A; /*声明 A 为一个已定义的外部变量*/

1. 2. 3. 4. 5. 6.

int power(int n); { int i , y = 1 ; for(i = 1 ; i <= n ; i ++) y *= A; return(y);

7.

}

复制代码

1.9.6 用 static 声明外部变量

$ ?; k# ]; w: {8 }# n

有时在程序设计中希望某些外部变量只限于被本文件引用, 而不能被其他文件引用。 这时可 以在定义外部变量时加一个 static 声明。
) y; u5 s. _& ^+ {& \ / {( Y+ ]9 i0 B! U5 k \/ N- Y

例如:

1. 2. 3. 4. 5. 6.

file1.c static int A; void main ( ) { … }

file2.c extern int A; void fun (int n) {… A=A*n;

复制代码

1.9.7 关于变量的声明和定义 对变量而言,声明与定义的关系稍微复杂一些。在声明部分出现的变量有两种情况:一种是 需要建立存储空间的(如:int a; ),另一种是不需要建立存储空间的(如:extern a;)。前 者称为“定义性声明”(defining declaration) ,或简称定义(definition)。 后者称为 “引用性声明”(referencing declaration)。广义地说,声明包括定义,但并非所有的声 明都是定义。对“int a;” 而言,它既是声明,又是定义。而对“extern a;” 而言,它 是声明而不是定义。 一般为了叙述方便, 把建立存储空间的声明称定义, 而把不需要建立存储空间的声明称为声 明。显然这里指的声明是狭义的,即非定义性声明。 例如:
3 d( A( y' I4 J: q

1. 2. 3. 4. 5. 6. 7.

void main() { extern A; /*是声明不是定义。声明 A 是一 个已定义的外部变量*/ … } int A;

复制代码

1.9.8 存储类别小结

r% ]; t# a: d

~1 Z( \

(1) 从作用域角度分,有局部变量和全局变量。它们采用的存储类别如下: 局部变量 |自动变量,即动态局部变量(离开函数,值就消失) |静态局部变量(离开函数,值仍保留) |寄存器变量(离开函数,值就消失)
4 ^& N2 d. q0 z0 U! u

" Y, \% X( V

b' {

|(形式参数可以定义为自动变量或寄存器变量) 全局变量 |静态外部变量(只限本文件引用)
# ]8 E! m, g+ S9 w5 t' }7 e

8 c+ k6 O* e6 a3 @7 l

|外部变量(即非静态的外部变量,允许其他文件引用) (2) 从变量存在的时间(生存期)来区分,有动态存储和静态存储两种类型。静态存储是程序 整个运行时间都存在,而动态存储则是在调用函数时临时分配单元。 动态存储 |自动变量(本函数内有效)
- u1 j O( s& r( z+ a

|寄存器变量(本函数内有效) |形式参数(本函数内有效) 静态存储 |静态局部变量(函数内有效)

# y$ O) L* j, f% X# n

|静态外部变量(本文件内有效) |外部变量(其他文件可引用) (3) 从变量值存放的位置来区分,可分为: 内存中静态存储区 |静态局部变量 |静态外部变量(函数外部静态变量) |外部变量(可为其他文件引用)
5 I- r5 Y0 [ H. C

内存中动态存储区:自动变量和形式参数 CPU 中的寄存器:寄存器变量 (4) 关于作用域和生存期的概念。 从前面叙述可以知道, 对一个变量的性质可以从两个方面 分析,一是变量的作用域,一是变量值存在时间的长短,即生存期。前者是从空间的角度, 后者是从时间的角度。二者有联系但不是同一回事。
# w& \: E% s" K+ i

(5) static 对局部变量和全局变量的作用不同。对局部变量来说,它使变量由动态存储方式 改变为静态存储方式。 而对全局变量来说,它使变量局部化(局部于本文件),但仍为静态存储 方式。从作用域角度看,凡有 static 声明的,其作用域都是局限的,或者是局限于本函数内 (静态局部变量),或者局限于本文件内(静态外部变量)。 1.10 内部函数和外部函数
; f: R* _# R) S 1 P( @ B/ b 0 Y5 H

函数本质上是全局的,因为一个函数要被另外的函数调用,但是,也可以指定函数不能被其他 文件调用。根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。 1.10.1 内部函数
# a+ Q5 {1 Z( n/ m

如果一个函数只能被本文件中其他函数所调用,它称为内部函数。 在定义内部函数时,在函数 名和函数类型的前面加 static。
4 K- ?9 \. O7 `7 A4 A# m: s- s

即 static 类型标识符 函数名(形参表) 如

1.

static int fun ( int a , int b )

复制代码

1.10.2 外部函数

0 n& D/ e3 Z) x ; i8 } 5 L

(1) 在定义函数时,如果在函数首部的最左端加关键字 extern,则表示此函数是外部函数, 可供其他文件调用。如函数首部可以写为 extern int fun (int a, int b)
3 X( Q- }* e& p- p& H) a# r

这样,函数 fun 就可以为其他文件调用。C 语言规定,如果在定义函数时省略 extern,则隐 含为外部函数。本书前面所用的函数都是外部函数。
# F0 Q/ T0 U, O$ v- Y2 |

(2) 在需要调用此函数的文件中,用 extern 对函数作声明, 表示该函数是在其他文件中定义 的外部函数 例 1.22 有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删 去。用外部函数实现 File.c(文件 1)

1. 2. 3. 4. 5. 6.

#include <stdio.h> void main() { extern void enter_string(char str[]); extern void detele_string(char str[],char ch); extern void print_string(char str[]);/*以上 3 行声明在本函数中将要调用的在其他文件中定义的 3 个 函数*/

7. 8. 9. 10. 11. 12. }

char c; char str[80]; scanf("%c",&c); detele_string(str,c); print_string(str);

复制代码

file2.c(文件 2)

1.

#include <stdio.h>

2. 3. 4. 5.

void enter_string(char str[80]) /* 定义外部函数 enter-string*/ { gets(str); } /*向字符数组输入字符串*/

复制代码

file3.c(文件 3)

1. 2. 3. 4. 5. 6. 7. 8.

void delete_string(char str[],char ch) /*定义外部函数 delete_string */ { int i,j; for(i=j=0;str[i]!='\0';i++) if(str[i]!=ch) str[j++]=str[i]; str[i]='\0'; }

复制代码

file4.c(文件 4)

1. 2. 3. 4. 5.

#include <stdio.h> void print_string(char str[]) { printf("%s\n",str); }

复制代码

运行情况如下: abcdefgc↙? (输入 str) c↙ ? (输入要删去的字符) abdefg (输出已删去指定字符的字符串)
( r8 K0 k2 o" W5 F7 A% j2 Q2 l & H7 Y' ~+ q) N; n, M- f1 a

0 S" B: [# L2 K) \: s/ o+ P

作业: 1.写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。 2.写几个函数:①输个职工的姓名和职工号;②按职工号由小到大顺序排序,姓名顺序也随 之调整;③要求输入一个职工号,用折半法找出该职工的姓名,从主函数输入要查找的职工 号,输出该职工姓名。


相关文章:
C语言一日一学第8课——函数(3)
C语言一日一学第8课——函数(3) C语言一日一学C语言一日一学隐藏>> 1.7.2 数组名作函数参数 可以用数组名作函数参数,此时形参应当用数组名或用指针变量 ...
C语言一日一学第8课——函数(1)
C语言一日一学第8课——函数(1)_理学_高等教育_教育专区。C语言一日一学1...(3)C 程序的执行是从 main 函数开始的,如是在 main 函数中调用其他函数,在...
C语言一日一学第8课——函数(2)
C语言一日一学第8课——函数(2) C语言一日一学C语言一日一学隐藏>> 1.4...y( T/ q y2 |3 r (3) 如果使用用户自己定义的函数,而该函数的位置在...
第8讲_第八章 函数
C语言C语言隐藏>> 第八函数 一、授课内容 1、科目:C 语言程序设计 2、授课内容:第八函数 3、授课类型:讲授 4、授课时间:10 学时 5、主讲教师: 肖...
C语言一日一学第10课——指针(3)
C语言 第10章指针 83页 免费 第10章 C语言 指针与函数 8页 免费喜欢...[课程]C 语言一日一学第 10 课——指针(3) 10.4 字符串与指针 10.4.1...
第8课 数组
第1课 C语言程序设计 第2课 C程序的初步知识 第3课 顺序结构 第4课 选择结构...函数对具有 10 个整数的数组进行如下操作: 1、 从第 1 个元素直到最后一个...
第 8 章 函数
第八章 多元函数微分学 8-... 45页 1财富值 第...熟练C语言函数才能更好的去编写程序熟练C语言函数才能...(3)形式参数是各种类型的变量,各参数之间用逗号间隔...
C语言第8章习题及答案
C语言第8章习题及答案_IT/计算机_专业资料。C语言...[i].loaned); } } 8.3 编写一个函数, 统计并...[max].score_all/3); } 8.7 请编程序建立一...
c语言第8章函数
百度文库 教育专区 高等教育 工学上传文档...C语言函数练习题1 3页 2财富值如要投诉违规内容,...第二次调用的实参是第一次调用的返回值和变量 a ...
c语言课后答案 (3)
8页 1下载券 C语言课后答案3 暂无评价 1页 1下载...构造函数是类的一种特殊成员函数,一般情况下,它是...中医护理学基础重点 执业医师实践技能考试模拟试题 102898...
更多相关标签:
c语言函数课件 | c语言数学函数 | c语言数学函数库 | c语言中的数学函数 | c语言数学函数大全 | c语言函数教学视频 | c语言中数学函数 | c语言的数学函数 |