C语言第5章3.7

合集下载

C语言程序设计教程(第5章 函数)

C语言程序设计教程(第5章 函数)

22
信息科学与工程学院
作用域(可用域)与生存期
C语言中定义的变量都有一个起作用的范 围,称为变量的作用域。 程序运行时,变量被创建和被删除的时间 段,称为变量的生存期。
23
信息科学与工程学院
局部变量和全局变量
在一个函数内部定义的变量是内部变量, 它只在本函数内部范围内有效。也就是说 只有在本函数内才能使用它们。这些变量 称为“局部变量”。 在函数之外定义的变量称为外部变量,也 称为全局变量,在文件内的所有函数都能 使用它。它的有效范围为从定义变量的位 置开始到文件的结束。
4
信息科学与工程学院
5.1 问题的提出
C语言程序是由什么构成的? 函数 什么是函数?
能完成特定功能的功能块; 一般有输入参数 和返回值; 一次定义,可以调用多次。
一个C语言程序为什么需要不同的函数?
一个函数过大难于编写和维护; 一个函数的程序不利于协作; 代码和功能共享的需要。
5
信息科学与工程学院
6. 函数调用举例分析(见下页)
15
信息科学与工程学院
实参到形参是单向值传递 例2 求两个整数中的最大值
int max(int x,int y) /*函数定义*/ { int temp; if (x>y) temp=x; else temp = y; COPY return temp; } void main() { int a,b; scanf("%d,%d",&a,&b); a = max(a,b); /*函数调用*/ printf("\n max= %d \n",a); }
2
信息科学与工程学院
第5章 函数
本章需要掌握的知识点: 函数定义 函数说明 函数调用 形参和实参的关系 变量的存储类别

C语言程序设计第五章

C语言程序设计第五章
通过编写程序,实现对数组的访问、修改 、排序等操作。例如,实现一个程序,将 一个数组中的所有元素进行排序,或者找 到数组中的最大值和最小值。
05 案例分析
案例一:条件语句在程序中的应用
总结词
条件语句是C语言中用于根据不同条件执行不同操作的语句,通过if、else if和else关键 字实现。
详细描述
编程练习二:循环语句应用
总结词
理解并掌握while和for循环的使用
详细描述
通过编写程序,实现重复执行某段代 码直到满足特定条件,或者根据需要 重复执行某段代码指定次数。例如, 计算1到100的累加和,或者打印出0 到99的所有偶数。
编程练习三:数组操作应用
总结词
理解并掌握数组的基本操作
VS
详细描述
详细描述
数组在程序中用于存储和处理同一种类型的 数据元素,例如存储一组学生的成绩、计算 一组数据的平均值等。数组操作包括数组的 声明、初始化、访问和修改等。通过循环语 句可以方便地遍历数组元素并进行处理。数 组操作在程序中具有广泛的应用,是C语言
中重要的数据结构和算法之一。
06 总结与展望
本章总结
详细描述
C语言中的数组是一种存储相同类型元素的线性数据结构。可以通过索引访问数 组元素,进行赋值、交换、排序等操作。同时,C语言还提供了字符串操作函数, 如strcpy、strcat、strlen等。
语法点三:数组操作
01
示例代码
02
```c
int array[10]; // 声明一个包含10个整数的数组
详细描述
循环语句在程序中用于重复执行一段代码, 例如打印1到10的数字、计算一定数量的累 加和等。循环语句可以嵌套使用,以实现更 复杂的循环结构和算法。循环语句通常与条 件语句结合使用,以控制循环的执行条件和 次数。

C语言程序设计 第05章 函数

C语言程序设计 第05章 函数
❖ 函数体:一对花括号里面的内容(包括声明部分和语句 部分)又被称为函数体,当函数体为空的时候,该函数 也被叫做空函数,就是说它什么也不做。
8
计算机与信息工程学院
Page 8
C语言程序设计 第 5 章 函数
例1 计算两个整数的平均数的函数。 /* 函数功能:就算平均数 函数入口参数:整型x,存储第一个运算数
7
计算机与信息工程学院
Page 7
C语言程序设计 第 5 章 函数
❖参数:一般用于一个函数把数据传递给另一个函数(调用 者和被调用者之间),实现函数之间的通信。定义函数的 时候,函数的参数是形式参数,是对一件具体事件可能需 要数据的假设。
❖ 返回值: 即函数带回来的值。而返回值的类型是在定义函数 的时指定的,即用“返回值类型”指定函数的类型。 ❖ 1、如果类型标识符为void则表示不需要带回函数值; ❖ 2、如果没有类型标识,则为默认返回值类型,视编译 器的不同而不同。
单向传递,只由实参传给形参,而不能由形参传回 来给实参。 f) 在内存中,实参单元与形参单元是不同的单元。
13
计算机与信息工程学院
Page 13
C语言程序设计 第 5 章 函数
例2 调用函数时的数据(参数)传递。
#include <stdio.h> void main() {
int max(int x, int y); int a, b, c; scanf("%d, %d",&a, &b); c=max(a, b); printf("max is %d", c); }
计算机与信息工程学院
Page 4
C语言程序设计 第 5 章 函数
5.2.1 函数的分类

C语言第五章

C语言第五章
T t=a a=b 开始 输入a,b a>b
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。

《C语言第五章》PPT课件

《C语言第五章》PPT课件
1。
3
循环的嵌套
定义:
一个循环体中又包含一个完整
的循环构造,称为循环的嵌套。
说明:
while 循环、do… while循
环和 for循环都可以进展嵌套,而且
可以相互嵌套。
1 4
几种合法的嵌套构造:
while ( ) {… while ( ) {…} }
while ( ) {… do {…} while ( ); … }
1 2
三种循环的比较(续):
while和do …while循环只在while后面指定循 环条件,且在循环体中应包含使循环趋于完毕的 语句;for循环可以在表达式3中包含使循环趋 于完毕的操作,甚至可以将循环体中的操作全部 放到表达式3中,功能更强。
while 和for循环是先判断表达式,后执行语句 ;do …while循环是先执行语句后判断表达式
do {…
do{…} while ( ); } while ( );
for ( ; ; ) {…
while ( ) {…} … }
for ( ; ; ) {…
for ( ; ; ) {…} }
do {…
for(; ;) {…} … } while ( );
使用循环嵌套时注意:
➢ 要保证嵌套的每一层循环在逻辑上都是完整的, 防止嵌套穿插使用。
3 先判断表达式,后执
表 达式
=0
0
语句 (循 环体)
图6_1
100
【例6.1】求 n 。 n 1
sum =0 i= 1

i< = 1 0 0

sum sum +i i i+ 1
输 出 结 果 sum

C语言程序设计:第5章-循环结构-课件教案

C语言程序设计:第5章-循环结构-课件教案

C语言程序设计课件教案第五章循环结构教学目的掌握循环结构中的while语句、dowhile语句、for语句的用法,掌握中断语句中break和continue语句的用法。

教学要求1.熟练掌握while语句、dowhile语句、for语句2.熟练掌握break语句、continue语句重点和难点1.while语句、dowhile语句、for语句的使用2.break语句、continue语句的使用教学支撑环境与教学资源:1.笔记本电脑2.VC20103.投影仪教学方法讲授法、练习法、讨论法授课课时6课时教学过程AM一、课程引入计算1+2+3+...+n有几种方法,需要多少步骤?、循环结构语句什么时候用到循环结构:处理重复的问题的时候。

循环结构的三大语句:while语句、dowhile语句、for语句。

1.while语句while(循环条件表达式)循环体语句;执行过程:只有循环条件表达式的值为真就执行循环体语句,先判断后执行。

1.输出1---n之间的数intmain(void){inti=1;intn=0;printf("请输入n的值:");scanf("%d",&n);//1015while(i<=n)15printf("%d\n",i);i++;}return0;}2.计算m+...+n 的值intmain(void){inti=1;intn=0;intm=0;intsum=0;printf("请依次输入m 和n 的值:");scanf("%d%d",&m,&n);//m+...n10while(m<=n){sum=sum+m ;m++;}printf("sum=%d\n",sum);return0;}2.do...while 语句do循环体语句;}while(循环条件表达式);执行过程:先执行循环体语句,再检查循环条件表达式的值是否为真,如果为真则继续执行循环体语句,否则结束循环。

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.1 C程序中语句的分类
C语言程序的执行部分是由语句组成的。程序的功能也 语言程序的执行部分是由语句组成的。 是由执行语句实现的。 语言中的语句可以分为以下5 是由执行语句实现的。C语言中的语句可以分为以下5类: 表达式语句 由表达式加上分号“ 组成。其一般形式为:表达式; 由表达式加上分号“;”组成。其一般形式为:表达式; 函数调用语句 a = 10 赋值表达式 由函数名、实际参数加上分号“ 组成。 由函数名、实际参数加上分号“;”组成。其一般形 a = 10; 赋值语句 式为:函数名(实际参数表) 式为:函数名(实际参数表); k++ 表达式 表达式语句 空语句 k++; printf ("C Program") 函数调用; 函数调用; 只有分号“ 组成的语句称为空语句。 只有分号“;”组成的语句称为空语句。空语句是什么 printf (“C Program”); 函数调用语句 也不执行的语句。在程序中空语句可用来作空循环体。 也不执行的语句。在程序中空语句可用来作空循环体。 。 其功能是输出字符串"C Program"。 其功能是输出字符串"C Program" while (getchar( ) != '\n' ) '\ ; 本语句的功能是, 本语句的功能是,只要从键盘输入的字符不是回车则 重新输入。这里的循环体为空语句 空语句。 重新输入。这里的循环体为空语句。
1 结果为 结果为0
例 5 > 2 > 7 > 8在C中是 8在 允许的, 允许的,值为 0
第 五 章 选 择 结 构 程 序 设 计
例 应避免对实数作相等或不等的判断 应避免对实数 实数作相等或不等的判断 如 1.0/3.0*3.0==1.0 结果为 0

C语言 第五章


关系( 关系 后2<前4 ) 前
表达式连接起来的式子 用关系运算符将两个表达式连接起来的式子. 用关系运算符将两个表达式连接起来的式子 5>3 ? 假(0)
已知: 已知 (a=3 b=2 c=1 d=0) a==b>c d==a>b+c 0 1
d=a>b+c?
3
第五章 选择结构程序设计
逻辑运算符 运算规则
B↵ ↵ 70~84
说明
P99
15
第五章 选择结构程序设计
例1 例2
输入一年号,判断这一年是否为闰年 输入一年号 判断这一年是否为闰年. 判断这一年是否为闰年
的解.(各种形式 各种形式) 求方程 ax2+bx+c=0 的解 各种形式
16
第五章 选择结构程序设计
第1题 题 第2题 题
的解.(各种形式 各种形式) 求方程 ax2+bx+c=0 的解 各种形式
1
第五章 选择结构程序设计
一、关系运算符和关系表达式 二、逻辑运算符和逻辑表达式 三、实现选择结构的控制语句 四、选择结构程序举例
2
第五章 选择结构程序设计
关系运算符 优先级 关系表达式 值 举例
真(1) 赋值
< <
<=
>
>=
==
!= (6种) 种 < 算术 算术、关系、 算术、关系、 逻辑、赋值、 逻辑、赋值、 字符。 字符。
在if语句中又包含一个或多个if语句。 if语句中又包含一个或多个if语句。 语句中又包含一个或多个if语句 被嵌套的条件语句和嵌套进 去的条件语句既可是单分支, 去的条件语句既可是单分支, 也可是双分支。 也可是双分支。 语句 语句1 语句1 if (表达式1) 语句1 表达式1 语句1 表达式 else if (表达式2) 语句2 表达式2 语句2 表达式 if (表达式1) 语句1 表达式1 语句1 表达式 else if (表达式2) 表达式2 语句2 表达式 语句 else 语句3 语句

《C语言程序设计》第5章数组、字符串、指针


相当于声明了5个整型变量
说明: ① 数组的所有元素的数据类型都是相同的。 ② 数组取名规则应符合标识符的规定,数组 名不能与同一函数中其它变量名相同: int a; float a[10]; 是错误的。
③ C语言中规定数组的下标从0开始,方括号 中常量表达式表示数组元素的个数。
④ 不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。例如: int n=5,a[n]; 是错误的。
二维数组在内存的存放顺序是“先行后列”
a[0][0] a[0][1] a[0][2] a[0][3] a[1][0]

a[2][3]
5.3.2 二维数组元素的引用
二维数组的元素的引用形式为: 数组名[下标][下标] 使用二维数组的情况举例: 学生多门功课的成绩,如: a[100][3]可以用来记录100个学生3门功 课的成绩。 矩阵,如: a[3][3]可以用来记录3×3的矩阵。一个 数组元素正好存放一个矩阵的元素。
5.2.2 一维数组的初始化
1、数组声明时初始化 在编译阶段进行的。这样将减少运行时间, 提高效率。 数组初始化的一般形式为: 类型符 数组名[常量表达式]={值,值…值}; 例如: int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 相当于a[0]=0; a[1]=1;... a[9]=9;

a[9]
#include <stdio.h> 声明有10个元素 void main() 的一维数组a {int n,i; float s=0, ave, a[10]; a[0] a[1] … a[9] for(i=0;i<10;i++) a[i] { scanf("%f",&a[i]); a[i] s=s+a[i]; } ave=s/10; for(i=0;i<10;i++) a[i] a[i] if (a[i]>ave) printf("%f ",a[i]); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算 1+2+3+ .. .. +100。 (用do-while)
main( ) { int n, sum; n=1; sum=0; do { sum=sum+n; n++; } while(n<=100); printf(“sum=%d \n”,sum); } 运行程序 sum=5050
设: n 为数列项变量和循环控制变量。 sum为累加和变量。
没有熟练掌握,就继续抄写
不熟练吗?
真 抄写


循环结构
重复执行的语句可以写成循环结构 组成

循环体是一组反复执行的语句 循环条件是所依据的条件 while do-while for
三种不同的循环结构:

while循环
格式:
表达式
一个语句或 分程序(程序块 )
while
while ( e )
设: n 为数列项变量和循环控制变量。 sum为累加和变量。
n++ 使循环结束的语句 其最终 n>10,使循环结束
使用do–while循环求两个正整数的最小公倍数 #include "stdio.h" void main() {int m,n,result; printf("input two integers:"); scanf("%d%d",&m,&n); result=m>n?m:n; result--; do{ result++; }while(result%m!=0||result%n!=0); printf("the result is %d\n",result); }
do-while循环结构
while(e)后面的分号不要忘记 不管循环体是否为单一语句,习惯
上都用花括号把它括起来 把while(e) 直接写在“}”的后面,以 免把while(e) 部分误认为一个新的 while 循环的开始
打印0到9的整数
int i = 0; do { printf(“%d\n”, i); i++; } while(i < 10);
for循环结构
for语句比 while 语句功能更强而且更加灵活的一种循环结构。其格式为: 表达 式 e1 for ( e1 ; e2 ; e3 ) 循 环 体
{
S; }
程序语句或 分程序(程序 块)
e3
e2的值等于0 跳出循环体
s
e2
真“非0” 假“0”
其中:e1、e2、e3为表达式。 ▲ e1为初值表达式,用于进入循环之前给某些变量赋处值。 ▲ e2 为循环条件表达式,用于指定循环条件。一般为关系表达式或逻辑表达式。 ▲ e3为修改表达式,用于对循环变量的运算。 ▲ S 可以是单个语句、空语句或分程序 (程序块),又叫循环体。
do-while循环结构
do {
程序语句或 分程序(程序块 )
循 环 体
s; } while ( e ) ;
表达式
s e
真“非0” 假“0”
e的值等于0 退出循环体
其中, e 是表达式用于指定循环条件。 s 可以是单个语句、空语句或分程序 (程序块),又叫循环体。 功能: e 取值非0时, 则执行 s, 否则结束循环(退出循环体)。 特点: 先执行循环体,再计算表达式e, 然后判断它的值, 其值为非0, 则返回执行循环体内的语句, 否则结束循环。
编一个程序求满足下列条件的四位数:该数是一个完全平方数, 并且第一、 三位数字之和为10,第二、四位数字之积为12。
解题思路 设:要找的四位数为 j,根据题意j是一个完全平方数(设这 个数为i)即 j=i*i,那么 i 只能在32-99之间(因为322=1024,992= 9801;312<1000 小于四位数, 1002=10000大于四位数)。 #include "stdio.h" main( ) { int i,j,a,b,c,d; for(i=32;i<=99;i++) { j=i*i; a=j/1000; b=j/100-a*10; c=j/10-a*100-b*10; d=j-a*1000-b*100-c*10; if (a+c==10&&b*d==12) printf("%d ",j); } }5-6
特点: 进入for语句首先执行而且仅执行一次e1。循环体每次执行完后要 继续执行e3。
打印0到9的整数
表达式1 表达式2
定义整数i i=0 假 i<10 真
int i; for(i=0; i<10; i++) 表达式3 printf(“%d\n”, i);
循环体
打印整数i
i++
计算10的阶乘
表达式1 表达式2
定义整数i并 赋初值为0
打印整数i
i++ 真
i<10 假
计算10的阶乘
int i = 10; int s = 1; do { s =s*i; i--; } while(i > 0); printf(“%d\n”, s);
定义变量i,赋初值为10
定义变量s,赋初值为1
s=s*i;
i-真
i>0 假
打印输出s的值
定义变量i,赋初值为10
定义变量s,赋初值为1
i>0 真 s=s*i;

i--
打印输出s的值
计算 1+2+3+ ...+100。(用 while )
main( ) 设: n为数列项变量和循环控制变量。 sum为累加和变量。 { int n, sum; n=1; 给数列项变量和循环控制变量n、累加和变量sum赋初值 sum=0; while(n<=100) { sum=sum+n; 计算累加和 n++; n++ 使循环结束的语句 } 其最终 n>100,使循环结束 printf(“sum=%d \n”,sum); } 5-1 运行程序
运行程序
x=27
用 do-while 语句组织循环
100
计算
Σ 1/ i=?
i=1
main() { int i =0; float sum=0; do { ++i ; sum += 1.0/ i ; 用复合语句 } while (i<100) ; printf("n=%d sum=%-8.3f\n", i , sum); }
用 while 语句组织循环
100
计算
i=1
Σ 1/ i=?
main() { int i =0; float sum=0; while (i<100) { ++i ; 用复合语句 sum += 1.0/ i ; } printf("n=%d sum=%-8.3f\n", i, sum); }
格式:
( n=100)
设: n 为数列项变量和循环控制变量。 sum为累加和变量。
main( ) { int n,sum; for(sum=0,n=1;n<=100;n++) sum+=2*n-1; sum=sum+(2*n-1) printf("sum=%d\n",sum); } 运行程序
sum=10000
sum=5050
循环结构
循环条件:循环结构中的测试表达式 循环体:每个循环周期中都要执行的语句
序列 循环控制变量:在循环条件中控制条件是 真是假的变量。 要写出一个正确的循环循环结构,对控制 变量要做三方面的工作:一是控制变量赋 初值;二是把控制变量写入正确的循环条 件;三是控制变量的更新调整。
从键盘输入整数1-7,输出显示对应英文的星期名。
#include <stdio.h> main( ) { int n; prinrf(“Enter a integer with 1 to 7.\n”); do { scanf("%d",&n); switch(n) { case 1: printf("MON\n"); break; case 2: printf("TUE\n"); break; case 3: printf("WED\n"); break; case 4: printf("THU\n"); break; case 5: printf("FRI\n"); break; case 6: printf("SAT\n"); break; case 7: printf("SUN\n"); break; default: printf("Error\n"); break; } } while(n!=0); 输入数为0时,循环结束 }
循环
课堂测验
请同学们将书合上,拿出一张纸。 给你们3分钟的时间,请将《优先级与 结合性表》默写下来。 惩罚措施: 1、抄写100遍; 2、抄写,直到熟练掌握为止; 3、如果没有熟练掌握,就继续抄写。
抄写100遍
次数为0 假 少于100次
真 抄写
次数加1
抄写,直到熟练掌握为止
抄写 真 不熟练吗 假
{
循 环 体
表达式 真“非0”
循环体语句
s;
}
e的值等于0 跳出循环体
e 是表达式用于指定循环条件。 s 可以是单个语句、空语句或分程序(程序块),又叫循环体。
相关文档
最新文档