C语言第十一讲课件.ppt
文本预览下载声明
第十一讲 函数(2) 计算机信息与工程学院 学习目标 掌握如何使用局部变量和全局变量 了解静态变量的定义 5.2 使用函数编写程序 例5-4 输入精度e,使用格里高利公式求π的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数 funpi(e) 求π的近似值。 例5-4 源程序 /* 用格里高利公式计算π的近似值,精度为e */ #include stdio.h #include math.h int main (void) { double e, pi; double funpi (double e); printf (Enter e:); scanf (%lf, e); pi = funpi (e); printf (pi = %f\n, pi); return 0; } 例5-5 判断素数的函数 例5-5 求100以内的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 要求定义和调用函数prime (m)判断m是否为素数,当m为素数时返回1,否则返回0。 算法描述:对2~100之间的每个数进行判断,若是素数,则输出该数。 for(m = 2; m = 100; m++) if (m是素数) printf(%d , m); 例5-5 源程序 #include stdio.h #include math.h int main(void) { int count, m; int prime (int m); count = 0; for(m = 2; m = 100; m++){ if ( prime(m) != 0 ){ printf(%6d, m ); count++; if (count %10 == 0) printf (\n); } } printf (\n); } 5.3 变量与函数 5.3.1 局部变量和全局变量 5.3.2 变量生命周期和静态局部变量 5.3.1 局部变量和全局变量 局部变量 在函数内定义的变量(包括形参) 作用范围:本函数内部 定义在复合语句内的变量 作用范围:复合语句内部 全局变量 在函数以外定义的变量,不从属于任一函数。 作用范围:从定义处到源文件结束(包括各函数) 例5-6 在复合语句中定义局部变量。 #include stdio.h int main (void) { int a; a = 1; { /* 复合语句开始 */ int b = 2; b = a + b; a = a + b; } /* 复合语句结束 */ printf (%d , a ); return 0; } 例5-7 全局变量定义 #include stdio.h int x; /* 定义全局变量x */ int f( ) { int x = 4; /* x为局部变量 */ return x; } int main(void) { int a = 1; x = a; /* 对全局变量 x 赋值 */ a = f( ); /* a的值为4 */ { int b = 2; b = a + b; /* b的值为6 */ x = x + b; /* 全局变量运算 */ } printf(%d %d , a, x); return 0; } 变量作用范围示例 int x=1; void main( ) { int a=2; …….. { int b=3; ….. } f( ); ……….. } int t=4 ; void f( ) { int x=5, b=6; ……. } int a=7; 5.3.2 变量生命周期和静态局部变量 自动变量(auto): 普通的局部变量 int x, y; ?? auto int x, y; char c1; ??
显示全部