第四章C语言课件

合集下载

C语言程序设计第4章选择结构程序设计ppt课件

C语言程序设计第4章选择结构程序设计ppt课件

8
printf("grade is E" );
9 else if (score >=60 && score<70 )
10
printf( "grade is D");
11 else if (score >=70 && score<80 )
12
printf( "grade is C");
13 else if (score>=80 && score<90 )
printf("a,b="); scanf("%d,%d",&a,&b); if (a>b) max=a; else max=b; printf("max=%d\n",max); }
结束
8
3.if-else if-else语句
(1)语句格式:
if (表达式1) 语句1
else if (表达式2) 语句2
不再判断,顺序执 行下面的语句
21
4.2 switch语句
switch (表达式) {case 常量表达式1:语句1 case 常量表达式2:语句2 …… case 常量表达式n:语句n [default:语句n+1] }
注意:
1. <表达式>可以是整型或字 符型表达式; 2. case后面必须是常量表达 式,不能包含变量; 3. 每个常量表达式的值应互 不相同; 4. case语句先后顺序随意; 5.若从上至下没有找到与表 达式的值相匹配的case,含有 default子句时,执行语句n+1。

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

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

4.8 变量的作用域和生存期
4.8.2 变量的作用域和存在期
4.8.2.2 局部变量的作用域和存在期 2. register 变量 寄存器变量也是自动变量,它与自动变量的区别仅在于:用register说 明的变量建议编译程序将变量的值保留在CPU的寄存器中,而不象一 般变量那样,占内存单元。局部变量的定义必须放在函数体或复合体 中所有可执行语句之前。 讨论寄存器变量的特点和使用注意事项 。 3. static变量 在函数体(或复合体)内部用static说明的变量,称静态局部变量。静 态局部变量的作用域和自动变量、寄存器变量一样,但其存在期与它 们有本质的区别,要一直延长到程序运行结束。 静态局部变量在静态存储区占据永久性的存储单元,函数退出后下次再 进入该函数,静态局部变量仍使用原来的存储单元。 讨论静态变量的特点和使用注意事项
4.8 变量的作用域和生存期
4.8.2 变量的作用域和存在期
变量的作用域:源程序中的某一部分,在这个范围里,变量定义 是有效的,可以使用该变量的名字进行与该变量有关的操作 每个变量都有一个确定“作用域”,由变量定义出现的位置确定。 作用域讲变量的作用范围,一个定义的作用域是源程序中的一段, 可以从源程序正文中把有关的一段划出来。因此作用域是静态 概念。与程序执行过程无干。 存在期:变量在程序中存在的那段时期称为该变量的“”。 存在期是动态概念。讲的是程序执行的一段时期,在一个变量的 存在期里,它所占的存储单元一直保持,只要不对变量重新赋 值,单元中的值就保持不变。 内存中供程序使用的存储空间分为三部分: 程序区、静态存储区和动态存储区。
4.6 递归函数
递归函数是指在函数执行过程中,直接或间接调用函数本身的函 数。前者称简单递归,后者称间接递归。 递归程序的执行过程 递归函数的特点:有一个明确的结束递归的条件。 递归函数的效率 递归与递推的关系

c语言基础 ppt第4章

c语言基础 ppt第4章

mymdl: power()
14/42
模块化设计与应用 函数 • 库函数、自定义函数 • 函数的定义
一般形式: 函数运行完毕后返回值
的类型,无加void 参数表
函数类型 函数名(数据类型 参数1,数据类型 参数2, …) { 函数的唯一标识符合标 函数体 识符命名规则 }
!!函数定义不允许嵌套
15/42
26/42
模块化设计与应用 函数参数的传递方式 值传递方式 – 方式:函数调用时,为形参分配单元,并将实 参的值复制到形参中;调用结束,形参单元 被释放,实参单元仍保留并维持原值 – 特点: »形参与实参占用不同的内存单元 »单向传递
27/42
模块化设计与应用 注意: (1) 在函数没有被调用时,函数中的形参只是一个符 号,系统并不为之分配内存空间,只有该函数被调用时 ,才会为之分配存储空间,并且在调用结束后,形参所 占的内存也被释放。 (2) 在内存中,实参单元与形参单元是不同的单元。 (3) 实参可以是常量、变量或表达式,但要求它们有 确定的值,也就是说,在调用函数时必须给形参赋以确 定的值。 (4) 在被定义的函数中,必须指定形参的类型,并且 实参与形参的类型应一致,否则将发生类型“不匹配的 错误”。 (5) 形参在获得值之后便与实参相脱离,此后无论形 参发生了怎样的改变,都不会影响到实参。 28/42
模块化设计与应用
函数
分析:
• •
c
5 9
( x 32)
确定形参:求 c 必须知道 x 的大小,设形参为x 确定函数:函数的返回值即为 c 的值,设为实型 程序2: float ftoc (float x) { float c ; c =(5.0/9.0)*(x – 32 ); return c ; } 程序1: float ftoc ( void) { float c, x ; x=50.5; c =(5.0/9.0)*( x– 32 ); return c ; }

C语言电子课件第4章

C语言电子课件第4章

语句n+1;
在使用switch语句时还应注意以下几点:
(1)在case后的各常量表达式的值不能相同,否则
会出现错误。
(2)在case后,允许有多个语句,可以不用{}括起来。 (3)各case和default子句的先后顺序可以变动,而 不会影响程序执行结果。
(4)default子句可以省略不用。
(5)switch语句与if语句使用场合:当条件是常量比较 时,此时使用switch语句或if语句都可以,但当条件是 在某个范围时,此时使用if语句更方法些。
(2)为了避免这种二义性,C语言规定,else 总是
与它前面最近的if配对。
PPT DESIGN
二、条件运算符和条件表达式 由条件运算符组成条件表达式的一般形式为: 表达式1 ? 表达式2: 表达式3
PPT DESIGN
使用条件表达式时,还应注意以下几点: (1)条件运算符的运算优先级低于关系运算符和算术 运算符,但高于赋值符。 (2)条件运算符?和:是一对运算符,不能分开单独 使用。
一、if语句 1、if (表达式)语句;
2、if (表达式) 语句1;else 语句2; 3、if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; …… else 语句n+1;
PPT DESIGN
PPT DESIGN
4、if语句的嵌套 (1)在嵌套内的if语句可能又是if-else型的,这将会 出现多个if和多个else重叠的情况,这时要特别注意if 和else的配对问题。
PPT DESIGN
4.3.2、关系表达式
关系表达式的一般形式为: 表达式 关系运算符 表达式 注意:关系表达式的值是真”和4.4 逻辑运算符和逻辑表达式 4.4.1、逻辑运算符及其优先次序

《C语言程序设计》课件——第四章

《C语言程序设计》课件——第四章

25
(5) 使用显示分隔符。在格式说明符中还可以有其它字符,在输入 字符时应输入与这些字符相同的字符。 scanf("%d,%d,%d",&a,&b,&c); 输入数据 3,4,5 scanf(”a=%d,b=%d,c=%d",&a,&b,&c); 输入数据 a=3,b=4,c=5 (6)用“%c”格式输入字符时,空格字符和转义字符都作为有效字 符输入: scanf("%c%c%c",&c1,&c2,&c3); 如果输入a b c 则字符‘a‟送给c1,空格送给c2,字符’b‟送给c3
22
2、格式输入函数 formatted input
格式控制与printf 函数中的含义相同。
– 格式:scanf(格式控制,地址表列) – scanf(format, varible1,varible2) – 功能:scanf函数可以从标准输入设备输入 任意类型的多个数据(一般为显示器)。 – 注意:输入数不能规定精度
24
(3) 用隐含的分隔符。在输入数据中用空格或换行符分隔数据。 scanf("%d%d%d",&a,&b,&c); 输入数据 3 4 5 或输入 3 4(回车) 5(回车) 则a=3,b=4,c=5 (4) %后的“*”附加说明符,用来表示跳过它相应的数据。 scanf("%d,%*d,%d",&a,&b); 如果输入 3,4,5 则 a=3,b=5,第二个数据跳过不赋给任何变量。



a)0
b)1
c)3
d)不确定
6) C语言中-8的存储形式()

《C语言程序设计课件》第四章-循环语句

《C语言程序设计课件》第四章-循环语句
scanf("&d",&n); while(n!=0)
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)

C语言课件第四章PPT

C语言课件第四章PPT
break; case 1: printf (“**2**\n”);
break; }
case 2: printf (“**3**\n”); } 运行结果为:**1**
5) case语句的嵌套。
**3**
else if (s<2000) d=.08;
else if (s<3000) d=.1;
else
d=.15;
f=p*w*s*(1-d); printf("\n w=%-f s=%-f f=%-f ",w,s,f);
}
条件运算符及条件表达式
条件运算符要求有三个运算量,这是一个三 目运算符,其表达式的一般格式:
流程图
程序如下: (c507)
main()
{ float f,p,w,s,d;
printf("input p,w,s : "); scanf("%f,%f,%f",&p,&w,&s);
if (s<250.) d=0.;
else if (s<500.) d=.02;
else if (s<1000.) d=.05;
。根
先程
看序
一,
下考
流虑
程系
图数
例:
程序c506:
#include <math.h> main() { float a,b,c,p,q,t,x1,x2;
printf("input a,b,c: "); scanf("%f,%f,%f",&a,&b,&c); if (a==0.) printf("a==0!!! return."); else { p=-b/(2.*a); t=b*b-4*a*c; q=sqrt(fabs(t))/(2.*a);

c语言 第四章 选择结构课件

c语言 第四章 选择结构课件

if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
if ~ else 配对原则:缺省{ }时,else 总是和它上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…...
else…...
例: if (a==b) if(b==c) printf("a==b==c");
else printf("a!=b");
if(x>y) printf("X>Y\n");
else printf("X<Y\n");
else printf("X==Y\n");
}
运行:Enter integer x,y:12,23 X<Y Enter integer x,y:12,6 X>Y Enter integer x,y:12,12 X==Y
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
main() { int x,y;
printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-8-4 26
printf()函数格式的进一步说明:
printf( ―„„‖,输出项1,输出项2,„ ,输出项n ); 例:printf( ―x=%d,y=%f\n‖ , x , x+3 );
格式控制 (转换控制字符串)
输出表列 (用逗号分隔的数据组,可选项)
格式控制分为两个部分: 格式说明—%+格式字符 (替换输出) 普通字符—原样输出(转义字符按表3.3输出)
Learning is not attained by chance, it must be sought for with ardor and attended to with diligence. ------Abigail Adams 学问不是随随便便就来的,必须热 情地去追求,努力地去获得。
------阿比盖尔· 亚当斯
2013-8-4 1
第四章 最简单的C程序设计
顺序程序设计
内容提要:
C语句概述 赋值语句
基本的数据输入/输出函数
简单的C程序设计
2013-8-4 2
4.1 C语句概述
一、语句
用来对数据进行加工(完成操作任务)。 语句是构成程序的基本单位。 通常,C程序由若干个函数(系统函数、 用户自编函数)组成。 每一个函数由若干条语句组成。每条语 句总是以分号;结束。
2013-8-4 14 stderr:标准错误输出(standard error output)
二、数据输入输出在C语言中的实现 1.调用输入输出函数实现输入输出操作
C语言本身不提供输入输出语句,输入和输 出操作是通过调用C语言库函数中的输入输 出函数来实现的。
putchar:输出单个字符 putchar(‗A‘);
不能加“;‖
不能省略
① 复合语句中的每一个语句还可以是复合语句;
② 复合语句尽管可由多个语句组合,但它只相当 于一个语句,在任何单一语句可以存在的地方, 复合语句都可以存在。 2013-8-4 10
4.2 赋值语句
即赋值表达式后面跟一个分号;构成赋值语句
要注意区分赋值表达式与赋值语句
如: if ((a = b)>0) 赋值表达式 t = a; 赋值语句
2013-8-4 3
C程序的基本结构
C程序 源程序文件1 源程序文件2
• • • •

源程序文件n
• • • •
预处理命令
全局变量声明
函数首部
函数1
函数n
函数体
局部变量声明
2013-8-4
执行语句
4
二、C语句的分类 1. 2. 3. 4. 5. 控制语句 函数调用语句 表达式语句 空语句 复合语句
2013-8-4 27
printf()函数格式的进一步说明: %为引导符号,d为格式符号 main( ) { 格式说明(格式字符) int a=3,b=4; printf(―a=%d b=%d\n ‖, a, b ); }
普通字符 转义字符 输出表列
输出结果: a=3 b=4
2013-8-4 28
putchar 函数(字符输出函数)实例
#include <stdio.h> /*必须有头文件*/ #include <stdio.h> /*必须有头文件*/ main() { main() { char a,b,c; putchar(‗B‘); /*字符型常量*/ a=‗B‘; putchar(‗O‘); /*字符型常量*/ b=‗O‘; putchar(‗Y‘); /*字符型常量*/ c=‗Y‘; putchar(‗\n‘); /*转义字符*/ putchar(a); /*a为字符型变量*/ putchar(‗\101‘); /*转义字符*/ putchar(b); /*b为字符型变量*/ putchar(‗\‘‘);/*c为字符型变量*/ /*转义字符*/ putchar(c); putchar(65); /*整型常量*/ 输出结果: BOY } putchar(‗A‘+(‗f‘-‗a‘+2)); /*表达式*/ BOY 输出结果: } A‘AH
注意: getchar()函数得到的字符可以赋给 一个字符变量或者整型变量,也可以不赋给 任何变量,而作为表达式的一部分。
#include<stdio.h> main() { char c; c = getchar() + 32; putchar(c); }
2013-8-4
A a
24
4.5 格式输入输出函数
其执行过程是:先进行赋值运算(将b的值赋给a), 然后判断a是否大于0,如大于0,执行t=a。
2013-8-4 11
4.2 赋值语句
C语言中的赋值号“ = ‖是一个运算符。
赋值表达式和赋值语句不同,赋值表达式 可以被包含在其它表达式之中,而赋值语句 则不行。
(a=b)>0是一个关系表达式 如: if ( ( a=b )>0 ) t=a; a=b是一个赋值表达式 如果写成: if ((a=b ; )>0) t=a;
2013-8-4 29
printf()函数格式的进一步说明:
【例二】求运行结果。 结果: 格式字符(规定了输出的数据形式): main() -30,177742,ffe2,65506,Γ { %d 输出十进制整数 int a= -30; %x 以十六进制无符号形式输出整数 printf("%d,%o,%x,%u,%c",a,a,a,a,a); %o 以八进制无符号形式输出整数 }
%u %f %s %c
以无符号十进制数形式输出整数 【例一】求运行结果。 输出小数形式浮点数(double型用%lf) main() 结果: { 输出字符串 30,36,1e,30,▲ int a=30; 输出单字符printf("%d,%o,%x,%u,%c",a,a,a,a,a);
}
2013-8-4
2013-8-4 22
二、getchar函数(字符输入函数)
注意: 当输入多个字符时,多余字符作废 (按回车后才开始接收字符)
#include<stdio.h> main() { char c; c = getchar(); putchar(c);
aaa a
23
}
2013-8-4
二、getchar函数(字符输入函数)
getchar:输入单个字符
printf:格式输出函数 scanf:格式输入函数 puts:输出字符串
2013-8-4 gets:输入字符串
getchar();
printf(―%c‖, ‗A‘); scanf(―%d‖,&radius); puts(―Hello!‖); gets();
15
C语言库函数已被编译成目标文件(二进制形 式)
源程序必须先编译成目标文件(.OBJ),源程 序中的输入输出函数等库函数,在编译时并 不被翻译成目标指令。
生成好的目标文件(.OBJ )必须与与系统的函 数库(以及其他的目标文件)进行连接,形成 可执行文件(EXE ) 运行EXE文件时,调用已被连接的函数库中 的系统函数。 2013-8-4 16
2013-8-4
8
4.空语句
由一个 “ ; ‖构成。 即: ;
作用:①程序转向点; ②什么也不做的循环体(待开 发)。 while (i<=11); for( i = 0;i<100;i++);
2013-8-4 9
5.复合语句
用 { } 括起的一组语句 。 如:if (x1>x2) { y=x1*x1+x2 ; printf("y=%d",y) ; }
系统函数库 main()
printf()的目标代码
{ int a,b;
a=10; b=20; printf(―a=%d,b=%d‖,a,b); }
2013-8-4
…………… ….
17
2.文件开头应有“#include‖命令
在调用标准输入输出库函数时,文件开头应有 预编译命令: #include <stdio.h> 或 #include ―stdio.h‖ stdio.h是“头文件”,包含了与用到的标准输 入输出函数有关的信息。 系统允许在使用 printf 和 scanf 两个函数时可 以不加“#include‖命令。
30
#include<stdio.h>
main() { char c1=‗a‘, c2=‗b‘, c3=‗c‘, c4=‗\101‘, c5=‗\116‘; printf(―a%c□b%c\tc%c\tabc\n‖,c1,c2,c3); printf(―\t\b%c□%c‖,c4,c5); }
错了。在if的条件中不能包含赋值语句a=b;
2013-8-4 12
4.2 赋值语句
赋值语句只能作为一条单独的语句, 或者放在复合语句中。 赋值语句用途很广。
2013-8-4
13
4.3 数据输入输出的概念及在C语言中的实现 一、数据输入输出的概念
计算机的输入输出是以计算机主机为主体而言 输入:从外部通过输入设备(键盘,磁盘,光盘, 扫描仪等)向计算机输入数据。 输出:从计算机向外部设备(显示屏,打印机, 磁盘等)输出数据。 stdin:标准输入(standard input) stdout:标准输出(standard output)
2.函数调用语句 由一次函数调用加一个“ ; ‖构成。
如:printf(“Hello World!”) ;
函数调用 分号
2013-8-4
7
3.表达式语句
由表达式加上“ ; ‖构成。
x+4*y; /*算术表达式语句*/ 4*7,4+8; /*逗号表达式语句*/ x=4*7; /*赋值表达式语句*/
相关文档
最新文档