C语言程序设计课件ppt及程序代码第5章


请问 a>b>c 的值是? 的值是?
假,表达式的值为0 表达式的值为
4
5.1.2 关系表达式
5_1_1.cpp 5_1_2.cpp
5
5.1.2 关系表达式
6
5.1.2 关系表达式
(x=y)与(x==y)含义不同 (x=y)与(x==y)含义不同
7
5.2 逻辑运算符和逻辑表达式
if (a>b AND x>y) printf(“OK”); 用逻辑运算符将关系表达式或逻辑量连接起 来的式子就是逻辑表达式 逻辑表达式。 逻辑表达式 如果a>b且x>y,则上述逻辑表达式的值 为“真”。
2、a || b || c
只有a为假时,才判别b的值;只有 a和b均为假时,才判别c的值。 只要a为真,就不再判别b和c的值, 直接求得表达式的值为真。
5_2_3.cpp
14
5.3 if语句 if语句
5.3.1 if语句的三种形式 语句的三种形式 表达式) 1. 第一种形式为基本形式 if(表达式) 语句 第一种形式为基本形式:if(表达式 if (x>y) printf(“%d”,x); 语句可以是用{括起来的复合语句, 表达式可以是常 常 变量、 表达式。 量、变量、 表达式 其类型可以是整、实、字符型。 语句可以是一句或复合语句。 其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图。
11
5.2.2 逻辑表达式
C语言 语言 计算逻辑表达 式的值 判断量的真假 1 真 0 0 假
非0
逻辑表达式的值应该是一个逻辑量“ 逻辑表达式的值应该是一个逻辑量“真”或 ‘假”。c语言编译系 假 语言编译系 统在给出逻辑运算结果时,以数值1代表 代表“ 代表“ 统在给出逻辑运算结果时,以数值 代表“真”,以0代表“假”, 代表 但在判断—个量是否为 个量是否为“ 代表“ 以非0代表 但在判断 个量是否为“真”时,以0代表“假”,以非 代表 代表 即将一个非零的数值认作为“ “真”。即将一个非零的数值认作为“真”。
说明: 说明:
1、条件运算符的执行顺序:
例: max=(a>b)?a:b; 相当于 If (a>b) max=a; else max=b
24
5.3 if语句 if语句
2、条件运算符的优先级高于赋值运算符,低于算术 运算符和关系运算符。 max = a>b?a:b a>b?a:b+1 max = ((a>b)?a:b) (a>b)?a:(b+1)
5_3_6.cpp
运行结果 Grade is B Grade is C Grade is D
29
5.4
switch语句 switch语句
6、如果只想执行某个case后的语句,那么就要在 case的语句的最后使用break语句以跳出switch语句。
程序清单 x=‘B'; switch(x) { case 'A':printf("Grade is A\n");break; case 'B':printf("Grade is B\n");break; case 'C':printf("Grade is C\n");break; case 'D':printf("Grade is D\n");break; }
5_2_1.cpp
12
5.2.2 逻辑表达式
编译器在求解逻辑表达式的值时,采用“非 非 完全求解”的方法 完全求解
1、a && b && c 只有a为真时,才判别b的值; 只有a和b均为真时,才判别c的值。 只要a为假,就不再判别b和c 的值,直接求得表达式的值为假。
5_2_2.cpp
13
5.2.2 逻辑表达式
3、条件运算符的结合方向:从右向左
a>b?a:c>d?c:d
a,b,c,d的取值9,8,4,3,求表达式的值?
5_2_4.cpp
25
5.3 if语句 if语句
4、表达式2和表达式3不仅可以式是数值表达式,还可以是 赋值表达式或函数表达式。例如: main( ) { int a,b; scanf(“%d,%d”,&a,&b); a>b ? printf(“max=%x\n”,a) :printf(“max=%d\n”,b); } 输入:3 , 5 输出:max=5
19
5.3 if语句 if语句
嵌套:在if语句中,又包含1到多个if 语句 嵌套 一般形式: 一般形式: if( ) 条件成立时的内嵌语句 if( ) 语句1 else 语句2 else 条件不成立时的内嵌语句 if( ) 语句3 else 语句4
20
5.3 if语句 if语句
使用内嵌的if语句时,应区分表面形式与实际作用 if( ) if( ) 语句1 else if( ) 语句2 else 语句3 在C语言中,if与else 的配对原则是: C ,if else 从最内层开始,else总是与它上面最近的,未曾配对的 从最内层开始, 总是与它上面最近的, if配对。因此,上述问题在编译时的真正效果是: 配对
21
5.3 if语句 if语句
为了使程序清晰,不至出错,采取的方法是: 用{ } 实现,如上述问题可进行如下描述: if( ) { if( ) 语句1 else {if( ) 语句2 else 语句3 } }
22
C
23
5.3 if语句 if语句
5.3.3 条件运算符
条件表达式的一般形式: 条件表达式的一般形式: 表达式1 表达式2 表达式3 表达式1 ? 表达式2 : 表达式3 其中: 其中: ? : 是条件运算符号 (三目 )
1、switch后的表达式,新的ANSI C标准中允许表达式的类型 为任何类型。 2、每个case后的常量表达式只能是常量组成的表达式,当 switch后的表达式的值与某一个常量表达式的值一致时。程序就 转到此case后的语句开始执行。如果没有一个常量表达式的值与 switch后的值一致,就执行default后的语句。
10
5.2 逻辑运算符和逻辑表达式
在一个逻辑表达式中,包含多个逻辑运算符 , 在一个逻辑表达式中, 按如图优先级运算:
f=!a && b || x>y+2 && c f=(!a) && b || x>y+2 && c f=(!a) && b || x>(y+2) && c f=(!a) && b || (x>(y+2)) && c f=((!a) && b || (x>(y+2)) && c)
5 选择结构程序设计
if (5>Байду номын сангаас) y=1;
if (1==5>3) y=1; else y=-1;
1
5.1 关系运算符和关系表达式
5.1.1 关系运算符及其优先次序
关系运算符 < <= > >= == != 含义 小于 小于或等于 优先级相同(高) 结合方向(从左向右) 大于 大于或等于 等于 优先级相同(低) 结合方向(从左向右) 不等于
5_3_7.cpp
27
5.4
switch语句 switch语句
switch(表达式 表达式) 表达式 { case 常量表达式 常量表达式1: 语句 语句1; case 常量表达式 常量表达式2: 语句 语句2; … case 常量表达式n: 语句n; 常量表达式 语句 default : 语句 语句n+1; }
8
5.2 逻辑运算符和逻辑表达式
5.2.1 逻辑运算符及其优先次序
&&
逻辑“与”(AND)
||
逻辑“或”(OR)
“双目运算符”: 要求两个操作数, 如:(a>b) && (x>y)
!
逻辑“非”(NOT)
单目运算符,要 求一个操作数, 如:!(a>b)
9
5.2 逻辑运算符和逻辑表达式
a && b (若a和b均为真,逻辑表达式a&&b为真) a || b (若a或b为真,逻辑表达式a||b为真) !a (若a为真,逻辑表达式!a为假) a 真 真 假 假 b 真 假 真 假 !a 假 假 真 真 !b 假 真 假 真 a && b 真 假 假 假 a || b 真 真 真 假
15
5.3 if语句 if语句
2. 第二种形式为 if-else 第二种形式为: if(表达式 表达式) 表达式 语句1; 语句 ; else 语句2; 语句 ; 其语义是:如果表达式的值为真,则执行语句1,否则 执行语句2 。 其执行过程可表示为下图
16
5.3 if语句 if语句
3. 第三种形式为 第三种形式为if-else-if形式 形式 if(表达式 表达式1) 表达式 语句1; 语句 ; else if(表达式 表达式2) 表达式 语句2; 语句 ; else if(表达式 表达式3) 表达式 语句3; 语句3; … else if(表达式 表达式m) 表达式 语句m; 语句 ; else 语句n; 语句 ;
2
优先级与结合方向
5.1 关系运算符和关系表达式
关系运算符与算术运算符、 关系运算符与算术运算符、赋值运算符的优先 级关系
c>a+b 等效于 a>b!=c 等效于 a==b<c 等效于 a=b>c 等效于
合集下载

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语言程序设计PPT课件 第5章 数组程序设计

C语言程序设计PPT课件 第5章 数组程序设计
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
例5-3 用一维数组生成Fibonacci数列的前20项,并输出。
#include<stdio.h> void main() {
long int fib[21]; int i; fib[1]=1; fib[2]=1; for(i=3;i<=20;i++)
{
if(str[i]>='0'&&str[i]<='9')
digital[j++]=str[i];
i++;
}
digital[j]='\0';
printf("Output: %s\n",digital);
}
C语言程序设计(第3版)张磊编著 清华大学出版社
/* program e5-6.c*/
5.2.1 字符##串iinncc的lluudd输ee<<入ssttrd输iniog出.h.h>>
}
for(i=0;i<N;i++) printf("%d ",a[i]);
}
C语言程序设计(第3版)张磊编著 清华大学出版社
5.1.4 数值型一维数组的初始化
数组的初始化,是在定义数组的时对数组的各个元素赋初值。 1. 全部元素的初始化 格式
数据类型 数组名[数组长度]={数组全部元素值表} 数据类型 数组名[]={数组全部元素值表} int a[6]={10,20,30,40,50,60}; float r[]={12.5,-3.11,8.6}; 2. 部分元素的初始化 格式 数据类型 数组名[数组长度]={数组前部元素值表} int b[10]={1,2,3}

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语言(第五章选择结构) 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章循环结构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语句实现循环

第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章--函数


实参可以是常量、变量或表达式,但要求 它们必须要有确定的值,在调用时将实参 的值赋给形参。另外,实参和形参的类型 应相同或兼容。
— 31 —
5.2 函数的参数传递和返回值
➢ 5.2.2 函数的返回值
一般情况下,主调函数调用完被调函数后,都希望能够得到一 个确定的值,这就是函数的返回值。在C语言中,函数返回值 是通过return语句来实现的。return语句的一般形式有3种:
/*函数声明*/
/*调用逆序函数,将a的逆序值赋给b*/ /*调用逆序函数,将b的逆序值赋给c */
— 23 —
5.2 函数的参数传递和返回值
➢ 5.2.1 函数的形参与实参
{
int y=0,sign=1;
/*定义sign表示x的符号,定义变量y代表逆序数据*/
if(x<0)
/*当x小于0时取符号及取反*/
— 18 —
5.1 函数的定义和调用
➢ 5.1.2 函数的调用
另外,按函数在语句中的作用来分,可以有以下3种函数调用方式:
函数表达式
函数语句
函数作为实参
函数作为表达式中的一项出 现,以函数返回值参与表达 式的运算。
函数调用的一般形式加上分 号即构成函数语句。
函数作为另一个函数调用的 实际参数出现,即把该函数 的返回值作为实参进行传送。
#include<stdio.h> int main() {
int x=0,y; y=trans(x); printf("y=%d\n",y); printf("x=%d\n",x); return 0; } trans(int a) { a++; printf("a=%d\n", a); return a; }

c语言程序设计5(函数)


参数的传递
1. 函数调用时,被调函数中的形参被分配 临时的存储单元,实参的值赋给形参变量 2. 实参可以是常量、变量或表达式 3. 实参的个数、类型和顺序必须与形参一致 4. 形参与实参各占一个独立的存储空间,调 用结束后,形参单元被释放
形参值的改变不会影响实参-----值传递
例:P134 main( ) { int v1=10, v2=20; printf(“v1=%d v2=%d\n”,v1,v2); printf(“_ do swap _\n”); swap(v1,v2); printf(“v1=%d v2=%d\n”,v1,v2); } void swap(int x, int y) { int temp; v1=10 v2=20 temp=x; _ do swap _ x=y; y=temp; v1=10 v2=20 }
自定义函数的应用实例
P136 例3:输出“九 九表”。 它是一个
9行9列的二维表格,
加上一个行标题和一
个列标题,显示出来
应该是10行10列。
#include <stdio.h> void drawLine(int n,char ch); /* 连续显示n个ch字符 */ main() { int i,j; printf("\n 9.9 table\n"); /* 显示表名 */ drawLine(30, '='); /* 显示每列的标题 */ printf("\n 1 2 3 4 5 6 7 8 9"); drawLine(30, '='); for (i=1; i<=9; i++) { /* 显示每行的内容 */ printf("\n%3d", i); for (j=1; j<=9; j++) printf("%3d", i*j); if (i<9) drawLine(30, '-'); else drawLine(30, '='); } void drawLine(int n, char ch) /*连续显示n个ch字符*/ } { int i; putchar('\n'); /*换行*/ for (i=1; i<=n; i++) putchar(ch); /*连续显示n个字符ch*/ }

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章数组.ppt

冒泡法排序
2019/3/19
F
冒泡法排序 (续)
程序如下:
#define N 6 #include "stdio.h" void main( ) {int a[N]; int i,j,t; printf("请输入%d个成绩,用空格隔开:\n",N); for (i=0; i<N; i++) scanf("%d",&a[i]);
2019/3/19
5.2.2 数组元素的引用(续)
2.说明
① 下标从0开始(下界为0),数组的最大下标 (上界)是数组长度减1。 例如: int a[10],i; scanf ("%d",&a[10]); /* 下标越界 */ C编译系统不做越界检查。
2019/3/19
5.2.2 数组元素的引用(续)
【例5-4】用冒泡法(也称起泡法)对输入的一组 成绩按从低分到高分的顺序排序并输出。
例如将6个数:4、7、5、6、8、1按从小到大顺序用冒泡 法排序,方法如下: 在第一趟排序中, 6个数比较了5次,把6个数中 第一趟排序情况如下: 的最大数8排在最后。 4 7 5 6 8 1 第一次 4和7比较,不交换 4 7 5 6 8 1 第二次 7和5比较,交换 457681 第三次 7和6比较,交换 456781 第四次 7和8比较,不交换 4 5 6 7 8 1 第五次 8和1比较,交换 456718
2019/3/19
5.1概述(续)
2.数组与数组元素的概念
数组:是用一个名字表示的一组相同类型的数据的集合, 这个名字就称为数组名。 如定义:float a[10]; a是数组名。 下标变量(或数组元素):数组中的数据分别存储在用下 标区分的变量中,这些变量称为下标变量或数组元素。 如:a[0]、a[1]…a[i]。 每个下标变量相当于一个简单变量,数组的类型也就是该 数组的下标变量的数据类型。 数组属于构造类型。构造类型的数据是由基本类型数据按 一定规则构成的。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档