C语言程序设计课件第五章


C程序设计教程
电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环 说明:
(7) 表达式一般是关系表达式(如i<=100)或逻辑表达式 (如a<b && x<y),但也可以是数值表达式或字符表达 式,只要其值为非零,就执行循环体。
C程序设计教程
电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环 说明:
C程序设计教程
运行结果:5050
电气学院康复机器人研究所白殿春
§5.2 用do-while语句实现循环
while语句和用do-while语句的比较: 在一般情况下,用while语句和用do-while语 句处理同一问题时,若二者的循环体部分是一 样的,它们的结果也一样。但是如果while后面 的表达式一开始就为假(0值)时,两种循环的结 果是不同的。
执行for循环之后的语句 C程序设计教程
§ 5.3 用for 语句实现循环
• for语句最简单的应用形式也就是最易理解的如 下形式:
for(循环变量赋初值;循环条件;循环变量增值)
例如: for(i=1;i<=100;i++) sum=sum+i;
它相当于以下语句: i=1; 显 然 , 用 for 语 句 简单、方便。 while(i<=100) {sum=sum+i;i++;}
C程序设计教程 电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环 说明:
(3) 表达式3也可以省略,但此时程序设计者应另外设 法保证循环能正常结束。如: for(i=1;i<=100;) {sum=sum+i;i++;} 在上面的for语句中只有表达式1和表达式2,而没有 表达式3。i++的操作不放在for语句的表达式3的位置 处,而作为循环体的一部分,效果是一样的,都能使 循环正常结束。
C程序设计教程 电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环 说明:
(4) 可以省略表达式1和表达式3,只有表达式2,即只 给循环条件。如: for(;i<=100;) while(i<=100) {sum=sum+i; 相当于 {sum=sum+i; i++;} i++;} 在这种情况下,完全等同于while语句。可见for语句 比while语句功能强,除了可以给出循环条件外,还可 以赋初值,使循环变量自动增值等。
C程序设计教程 电环
执行表达式1 表达式2?
成立 不成立
循环初始条件 循环控制条件
执行语句
执行表达式3
循环体 • for语句等价于下列语句: 表达式1; while (表达式2) { 语句; 表达式3; } 电气学院康复机器人研究所白殿春
表达式1和表达式3可以是一个简单的表达式,也可以 是逗号表达式,即包含一个以上的简单表达式,中间用 逗号间隔。如: for(sum=0,i=1;i<=100;i++) sum=sum+i; 或 for(i=0,j=100;i<=j;i++,j--) k=i+j; 表达式1和表达式3都是逗号表达式,各包含两个赋值 表达式,即同时设两个初值,使两个变量增值.
电气学院康复机器人研究所白殿春
§5.2 用do-while语句实现循环
执行过程:先执行一次指定的循环体语句,然后判 别表达式,当表达式的值为非零(“真”) 时,返 回重新执行循环体语句,如此反复,直到表达式 的值等于0为止,此时循环结束。
do-while语句的特点:先执行循环体,然后判断循环条件 是否成立。
C程序设计教程 电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环 说明:
在逗号表达式内按自左至右顺序求解,整个逗号表达 式的值为其中最右边的表达式的值。如: for(i=1;i<=100;i++,i++) sum=sum+i; 相当于 for(i=1;i<=100;i=i+2) sum=sum+i;
第五章
C程序设计教程
电气学院康复机器人研究所白殿春

本章要点

循环的基本概念


不同形式的循环控制
多重循环问题
C程序设计教程
电气学院康复机器人研究所白殿春

主要内容
5.1 概述 5.2 用while语句实现循环 5.3 用for 语句实现循环 5.4 循环的嵌套 5.5 几种循环的比较 5.6 break语句continue和语句 5.7 程 序 举 例
C程序设计教程 电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环 说明:
运行情况: Computer↙ (输入) ② for( ;(c=getchar())!=′\n′;) Computer (输出) printf(″%c″,c); 而不是 for语句中只有表达式2,而无表达式1和表达式3。 Ccoommppuutteerr 其作用是每读入一个字符后立即输出该字符,直到输入 一个“换行”为止。请注意,从终端键盘向计算机输入 时,是在按Enter键以后才将一批数据一起送到内存缓 冲区中去的。
C程序设计教程
电气学院康复机器人研究所白殿春
例5.3 while和do-while循环的比较 运行结果: (1) #include <stdio.h> (2) #include <stdio.h> 运行结果: void main ( ) void main( 1↙ ) 1↙ {int sum=0,i; {int sum=0,i; sum=55 sum=55 scanf(“%d″,&i); scanf(”%d″,&i); while (i<=10) do再运行一次: 再运行一次: {sum=sum+I; { sum=sum+i; 11↙ 11↙ i++; i++; sum=11 sum=0 } while (i<=10); 说明:(1)当while后面的表达式的 printf(“sum=%d\n″ ,sum); 第一次的值为“真”时,两种循 } printf(“sum=%d\n”,sum); 环得到的结果相同。否则,二者 } 结果不相同。
C程序设计教程
电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环
for语句的执行过程:
(1) 先求解表达式1。 (2) 求解表达式2,若其值为真(值为非0),则执 行for语句中指定的内嵌语句,然后执行下 面第(3)步。若为假(值为0),则结束循环, 转到第(5)步。 (3) 求解表达式3。 (4) 转回上面第(2)步骤继续执行。 (5) 循环结束,执行for语句下面的一个语句
C程序设计教程 。 电气学院康复机器人研究所白殿春
运行结果:5050
§5.2
用while语句实现循环
注意:
(1) 循环体如果包含一个以上的语句,应该用 花括弧括起来,以复合语句形式出现。 (2) 在循环体中应有使循环趋向于结束的语句 。如果无此语句,则i的值始终不改变, 循环永不结束。
C程序设计教程
C程序设计教程 电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环
• C语言中的for语句使用最为灵活,不仅可以用于 循环次数已经确定的情况,而且可以用于循环次 数不确定而只给出循环结束条件的情况,它完全 可以代替while语句。 • 一般形式: for(表达式1;表达式2;表达式3) 语句
C程序设计教程 电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环
注意: C语言中的for语句比其他语言(如BASIC, PASCAL)中的FOR语句功能强得多。可以把循环体 和一些与循环控制无关的操作也作为表达式1或 表达式3出现,这样程序可以短小简洁。但过分 地利用这一特点会使for语句显得杂乱,可读性 降低,最好不要把与循环控制无关的内容放到 for语句中。
C程序设计教程 电气学院康复机器人研究所白殿春
§5.4 循环的嵌套
• 一个循环体内又包含另一个完整的循环结构 称为循环的嵌套。内嵌的循环中还可以嵌套 循环,这就是多层循环。 • 三种循环(while循环、do-while循环和for循 环)可以互相嵌套。
C程序设计教程
电气学院康复机器人研究所白殿春
C程序设计教程
电气学院康复机器人研究所白殿春
§ 5.3 用for 语句实现循环 说明:
(2) 如果表达式2省略,即不判断循环条件,循环无终 止地进行下去。也就是认为表达式2始终为真。 例如:for(i=1; ;i++) sum=sum+i; 表达式1是一个赋值表达式,表达式2空缺。它相当于: i=1; while(1) {sum=sum+1;i++;}
(4) while( ) (5) for(;;) {… {… do{…} while( ) while( ) { } {…} … } } (6) do {…
C程序设计教程
电气学院康复机器人研究所白殿春
§5.1 概述
问题1: y n
n 1 100
什么是循环? 为什么要使用循环?
问题2:求学生平均成绩
分数相加后除以课数
在许多问题中需要用到循环控制。循环结构 是结构化程序设计的基本结构之一,它和顺序 结构、选择结构共同作为各种复杂程序的基本 构造单元。
§ 5.3 用for 语句实现循环 说明:
(6) 表达式1可以是设置循环变量初值的赋值表达式, 也可以是与循环变量无关的其他表达式。如: for (sum=0;i<=100;i++) sum=sum+i; 表达式3也可以是与循环控制无关的任意表达式。
合集下载

C语言程序设计(第5章)课件

C语言程序设计(第5章)课件
}
4
一、模块化设计与函数
本章的学习首先要讨论—— ①什么是函数? ②为什么要使用函数? ③函数有哪些类型? ④如何自己定义一个函数? ⑤如何调用一个函数? ⑥函数学习的难点是什么?
5
一、模块化设计与函数
①什么是函数?
②为什么要使用函数 ?
③函数有哪些类型?
④如何自己定义一个 函数?
⑤如何调用一个函数 ?
以下情况时,被调函数在主调函数中可以不先声明: 被调函数的返回值为整型时函数值是整型(int)或字符型( char)时——系统自动按整型说明; 被调函数的定义出现在主调函数之前时 在所有函数定义之前,在函数的外部已做了函数声明时
调用方式同库函数。
17
三、函数的调用
3、调用外部函数(其他源文件中定义的注函:数)时 函数说明语句 extern 函数名()要;做一个 .prj
将一个大程序分成几个子程序模块自定义函数将常用功能做成标准模块标准函数放在函数库中供其他程序调用如果把编程比做制造一台机器函数就好比其零部可将这些零部件单独设计调试测试好用时拿出来装配再总体调这些零部件可以是自己设计制造别人设计制造现在的标准产品不同的机构都有各自的特点把各种机构按结构加以分类其目的是按其分类建立运动分析和动力分析的一般方法
这些函数现在不编程或还不会
编程,可先放空。
可以多人合作,每人完成若干
个函数(模块化)。
可在另一个源程序文件中定义

9
一、模块化设计与函数
①什么是函数?
②为什么要使用函数 ?
③函数有哪些类型?
④如何自己定义一个 函数?
⑤如何调用一个函数 ?
⑥函数学习的难点是 什么?
函数有哪些类型? 根据函数的来源,可分为: 库函数(标准函数) 由系统提供,编程时可直接 使用之 自定义函数 由编程者自己编写,使用时 要“先定义后使用”

c语言(第五章选择结构) c语言 教学课件

c语言(第五章选择结构) c语言 教学课件
▪ 非闰年的判别:
• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1

《C语言程序设计》电子课件 第5章课件

《C语言程序设计》电子课件 第5章课件


某个函数所有的输入值的集合被称作这个函数的定义域,包含

所有的输出值的集合被称作值域。

❖ 在计算机中,函数是一个代码块,是一个用于执行某个工作的
过程,函数过程中的这些语句用于完成某些有意义的工作——

通常是处理文本,控制输入或计算数值。通过在程序代码中引

入函数名称和所需的参数,可在该程序中执行(或称调用)该
学 院
❖ 可以说C程序的全部工作都是由各式各样的函数完成的,所以
也把C语言称为函数式语言。由于采用了函数模块式的结构,
C语言易于实现结构化程序设计。使程序的层次结构清晰,便
于程序的编写、阅读和调试。
>
Your site here
重 庆
5.1概述
电 子
整个C语言程序项目大致结构如下图:


职 业
C程序

业 学
2、若无return语句,遇到功能函数最后的}

院 ,自动返回主调函数;
计 3、若函数类型与return语句中表达式值的类
算 机 学 院
型不一致,按前者为准,自例动转无换返(回函值数函调数
用时的数据转换)
void swap(int x,int
y
)
4re、tuvroni,d型或函用数“是re无tu返rn回;”值函{ i数txne=tm,yte;p可m=不xp;;要


源程序文件1 源程序文件i 源程序文件n

算 机
预编译命令
函数1
函数n


说明部分 执行部分
C程序结构
>
Your site here

C语言第5章循环结构PPT课件

C语言第5章循环结构PPT课件
格式:while (条件1)
3. 用for 语句实现循环 4. 循环的嵌套
5. break语句和continue语句 6. 几种循环的比较 7. 程 序 举 例
第2页/共63页
一、循环概述
3
第3页/共63页
在很多实际问题中会遇到有规律性的重复运算,因 此在程序中就需要将某些语句重复执行。 • 一组被重复执行的语句称为循环体; • 每重复一次,都必须作出是继续还是停止循环的决 定,这个决定所依据的条件称为循环条件;
do {
......
for(;;) { ......
}while();
}
47
第47页/共63页
例7. 打印乘法“九九表”
1 2 3 4 56 7 89 11 22 4 33 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81
循环的概念 用while语句和do-while语句实现循环
用for 语句实现循环 循环的嵌套
break语句和continue语句 几种循环的比较 程序举例
第44页/共63页
循环的嵌环中还可以嵌套循环,这就是多重循环。
循环1
循环2
28
第28页/共63页
29
第29页/共63页
(2):从高位到低位求每一位。
30
第30页/共63页
(3):从低位到高位求每一位。
31
第31页/共63页
循环结构程序设计
1. 循环的概念 2. 用while语句和do-while语句实现循环

《C语言程序设计课件》第五章—函数

《C语言程序设计课件》第五章—函数
这里的表达式有时是常量或变量,有时是复杂 的表达式。return语句返回表达式的值。
float average(float a, float b) {
float c; c=(a+b)/2; return c; }
float average(float a, float b) {
return (a+b)/2; }
如果return语句中表达式的类型和在函数首部 指定的返回值类型不一致,那么系统会把表达 式的类型隐式转换成返回值类型。例如: int ave(float a, float b) { float c; c=(a+b)/2; return c; } 例如函数调用ave(1.0,2.0)的返回结果为1。
a3
b4
【例5-2】显示提示信息 /* 程序5-2 */ #include <stdio.h> void showinfo( ) {
printf(“This is a minus.\n”); } int main( ) {
int a,b; scanf(“%d%d”,&a,&b); if(a<0) showinfo( ); if(b<0) showinfo( ); return 0; }
swap(a, b);
printf("a=%d,b=%d\n", a, b);
}
程序执行过程如下: ①main函数定义变量a、b并初始化。
a3
b4
②main函数调用函数swap,实参a、b将值传 递给形参x、y。
a3
3x
b4
4y
③swap函数交换x、y的值。
4x
3y
④返回main函数,输出a、b的值,a、b的值 没有改变。

第5章 函数与带参数宏 《C语言程序设计及应用教程》课件-PPT课件

第5章 函数与带参数宏  《C语言程序设计及应用教程》课件-PPT课件

5.2 函数的嵌套与递归调用
函数的嵌套调用
不允许嵌套定义,函数间平行的、独立。 C中的函数:
允许嵌套调用。
main( ) 调用函数a 结束
a函数
调用函数b
b函数
【例5-7】 输入两个整数,求平方和
#include <stdio.h>
int fun1(int x,int y)
int fun1(int x,int y);
斐波那契数列");
for(i=0;i<N;i++)
{
printf("%d\t",iF[i]);
if((i+1)%10==0)
printf("\n");
}
printf("\n");
}
int Sum(int iF[],int n); void main() { int i,Fibonacci[N],m,n; //生成斐波那契数列 CreateFibonacci(Fibonacci); //输出斐波那契数列 PrintFibonacci(Fibonacci); //求数列前n项的和 printf(" 请输入要求和的项数 n(n<%d): ",N); scanf("%d",&n); m=Sum(Fibonacci,n); printf("\n 斐波那契数列前 %d项的和:%4d\n",n,m);}
第5章 函数与带参数宏 ?C语言 程序设计及应用教程?课件
5.1 函数的声明、定义与调用
5.1.1 函数的声明与定义 5.1.2 函数调用 5.1.3 函数参数传递 5.1.4 主函数中的参数

C语言程序设计第5章PPT课件

{ ... ... ... c...=...f1... (a,b); }
int f1(int x,int y) { ... ... ...
z...=f2...(m,n...) ; }
第22页/共55页
int f2(int m,int n)
{ ... ... ... }
例 5-3 求S=1K+2K+3K+……+nk的值
一、函数与模块化程序设计
1 模块化程序设计方法:
程序员在设计一个比较复杂的应用程序时,一般采用的方 法是将整个程序分解成若干个功能较为单一的、相对独立的 程序模块分别实现,然后再将所有的程序模块象搭积木一样 装配起来,形成一个完整的程序,这种在程序设计中分而治 之的策略称为模块化程序设计方法。
优点:主要体现在程序编制方便,易于修改和调试,可由 多人共同参与完成,缩短程序的设计时间,并能实现程序 模块的标准化、规范化。
}
第3页/共55页
2 程序模块设计一般原则
① 模块相对独立 一个模块往往要求完成一个单独的功能,并与其他模
块尽量保持一定的独立性,当修改这个模块时,不会引起整 个程序的混乱。同时,在模块内部,尽量将数据局部化,便 于保证数据在不同模块之间的正常传递。
②模块之间关系尽量简单 模块之间关系要尽量简单,且不互相干扰,做到模块之
if(n==1) m=1.0;
if(i<=0)
else if(n%2==0) m=k(n-1)*2; else m=k(n-1)*3; return m;
达式。其一般形式为: 变量名=函数表达式; 这种方式用于调用带返回值的函数,函数的返回值
将参加表达式的运算。 例如程序中的max=maxnum(i, j, k);

C语言第五章课件


scanf(“%d”,&x);
if(x<0) y=-1; else if(x==0) y=0; else y=1; printf(“y=%d\n”,y); }


/* 魔数的另一种解法 */ main() { int magic=123, guess;
clrscr(); scanf("%d", &guess); if(guess==magic){ printf("** Right **\n"); printf("%d is the magic number\n", magic); } else if(guess>magic) printf( " ** Wrong ** Too High \n"); else printf("** Wrong ** Too Low\n");
条件运算
是一种在两个表达式的值中选择一个的操作。
格式: e1 ? e2 :e3 条件表达式 含义: 若表达式e1为真(非零),则此条件表达式的值为e2的值, e1为 假, 则表达式取e3的值. 条件运算符 "? :" 要三个操作数, 三元(目)运算符.
If (a>b) max=a;
Else max=b;
5.3
if语句
一、if语句的一般形式 if(表达式) 语句 else 语句
语句项可为单独语句,也可为复合语句(必须加花括号),else从句可 选。 执行顺序: 表达式取真值(除零以外的任何值),执行if语句序列, 否则 执行else语句序列(没有else,则向下执行)。
If语句形式之一:
if (表达式) 语句;
个 相 等 Else b b 4ac x1 2a 实根: if b^2-4ac=0 -b/(2a)

C语言课件 第5章

如果x<y, max=y, min=x ③ 输出最大值max、 最小值min
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float

C语言课件第5章循环结构程序设计2

18
思考 1、如果去掉循环体 中的大括号会怎样? 2、在循环体中,使 循环条件趋向于不满 足(假)的语句是哪 条?
第5章
循环结构程序设计
举例
while和do-while循环的比较。
此程序的 功能?
#include <stdio.h> int main() { int i,sum=0; scanf("%d",&i); while(i<=10) { sum=sum+i; i++; } printf("sum=%d\n",sum); return 0; }
第5章
循环结构程序设计
举例
现有某班20名学生的C语言成绩,求该班学生的C语 言的平均成绩。即:输入20个学生的成绩,计算平 均值,输出平均值。
分析:定义变量表示学生的成绩、全班总和、平均成绩。 如果定义20个变量保存20 算法设计: 个成绩,程序中计算成绩 第一步:输入20个学生的成绩 总和会有什么问题? 第二步:计算成绩总和 (用累加求和的方法)
运行结果:凵2550
#include <stdio.h> int main() { int i=1, n; float fac=1; printf("请输入n:"); scanf ("%d",&n); while (i<=n) { fac=fac*i; i++; } printf("%.0f\n",fac); return 0; } 请输入n:5
分析
求1~100的累加和。
换一种思路:
sum=sum+n;
首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次 取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n;”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累 计和。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档