第4章顺序程序设计 教学目与要求: 了解C语句的分类,理解输入输出的概念及在C中的实现, 掌握赋值语句,字符数据及格式输入输出。 教学内容: ·C语句概述;赋值语句;数据输入输出的概念及在C语言 中的实现;字符数据的输入输出;格式输入与输出;顺 序结构程序设计举例 ,赋值语句的格式及作用,字符数据的输入输出, printf和 教学难点与重点 scanf函数的功能,格式及使用方法
1 第4章 顺序程序设计 ▪ 教学目与要求: • 了解C语句的分类,理解输入输出的概念及在C中的实现, 掌握赋值语句,字符数据及格式输入输出。 ▪ 教学内容: • C语句概述;赋值语句;数据输入输出的概念及在C语言 中的实现;字符数据的输入输出;格式输入与输出;顺 序结构程序设计举例 ▪ 教学难点与重点: • 赋值语句的格式及作用,字符数据的输入输出,printf和 scanf函数的功能,格式及使用方法
§41c语句概述 C程序 源程序文件1 源程序文件2。。。。源程序文件N 顸处理命令全局变量声明函数1 函数N 函数首部 函数体 局部变量声明 执行语句 C语句:以分号作分隔符 编译后产生机器指令,完 成一定操作任务
2 § 4.1 C语句概述 C程序 源程序文件1 源程序文件2 。。。。 源程序文件N 预处理命令 全局变量声明 函数1 。。。。函数N 函数首部 函数体 局部变量声明 执行语句 C语句:以分号作分隔符, 编译后产生机器指令,完 成一定操作任务
(1)程序控制语句 选择「f(-ese-(条件) (分支) switch (多分支) 循环 for(" (循环) while()~(循环) (重复)Ldo~ while()(循环) continue(结束本次循环) 辅助控制| break (终止 switch或循环语句) goto (转向) return (从函数返回)
3 for( )~ (循环) while( )~ (循环) do~while( ) (循环) 选择 (分支) 循环 (重复) if( )~else~ (条件) switch (多分支) continue (结束本次循环) break (终止switch或循环语句) goto (转向) return (从函数返回) 辅助控制 (1) 程序控制语句
控制语句:用于完成一定的控制功能 ●顺序:按语句顺序执行 例如: 语句A 各语句 float a.b.csarea: 依次顺 序执行 scanf(%f,of, %of", &a, &b, &c) 语句B|s=10/2*( a+b+c); area=sqrt(s*(s-a) (s-b) (S-c)); 顺序结构
4 控制语句:用于完成一定的控制功能. 顺序:按语句顺序执行 例如: 顺序结构 语句A 语句B float a,b,c,s,area; scanf(“%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); 各语句 依次顺 序执行
选择结构:if(表达式)∴ else 真 假 例如: 表达式 int a, b; if(a>b) 语句A 语句 b printf(%d”,a) else printf(%d”,b); 选择结构
5 ▪ 选择结构:if(表达式)……else ▪ 表达式 语句A 语句B 真 假 选择结构 int a,b; if(a>b) printf(“%d”,a); else printf(“%d”,b); 例如:
循环结构:do.Whi|e或 while或for 当型循环 例 main() 假 f int t=l, i =2: while(i<=5) 真 it=t*i; A i++ printi(t=%d”,t);}
6 ▪ 循环结构:do……while或while或for ▪ P A 真 假 当型循环 例: main( ) { int t=1,i=2; while (i<=5) { t=t*i; i++; } printf(“t=%d”,t);}
循环结构:do. while或 while或for 例 直到型循环 main() fint t=l, i=2; A do P while(i<=5); 真 printi(t=%d”,t);} 假
7 ▪ 循环结构:do……while或while或for A P 直到型循环 假 真 例: main( ) { int t=1,i=2; do { t=t*i; i++; } while (i<=5); printf(“t=%d”,t);}
2函数调用语句: 如: printf(" This is a c programe”); 3简单表达式语句 赋值语句: 如:i=1;x=sin(y); 4空语句: 如 问题:既然空语句什么都不作,为什么还要它? (空语句可用来作被转向点,或循环语句中的循环体)
8 3.简单表达式语句 赋值语句: 如:i=1;x=sin(y); 4.空语句: 如: ; 问题:既然空语句什么都不作,为什么还要它? (空语句可用来作被转向点,或 循环语句中的循环体) 2.函数调用语句: 如:printf(“This is a c programe”);
(5)复合语句 将几个表达式组合在一起,形成一个复合表达式语句。 例如:++i,++j;i=1j=2 用{}把一些语句括起来成为复合语句。 如:{z=x+y;tz/100; printf(“%f”,t)} !注意:}后无分号,其余各行均有分号。 例41main()「说明:花括号配对规则,从后 ★b的作用 i int a; 向前配对,一个后花括号和它 域只在内{intb; 最近的前花括号配对。 层大括号 这样一个 b=3 ∥复合语句(分程序) 局部 printf(%odn”a+b 由于b是复合语句中定义的,在 =1;}令 它之外使用是错误的 4-1C
9 (5) 复合语句 将几个表达式组合在一起,形成一个复合表达式语句。 例如:++i,++j; i=1,j=2; 用{ }把一些语句括起来成为复合语句。 如:{ z=x+y; t=z/100; printf(“%f”,t);} 注意:} 后无分号,其余各行均有分号。 例4.1 main( ) { int a; { int b; b=3; //复合语句(分程序) printf(“%d\n”,a+b); } b=1; } ★b的作用 域只在内 层大括号 这样一个 局部 由于 b是复合语句中定义的,在 它之外使用是错误的 4-1.c 说明:花括号配对规则,从后 向前配对,一个后花括号和它 最近的前花括号配对
§4.2赋值语句 赋值语句是由赋值表达式加上一个分号构成 1c语言中的赋值号“=”是一个运算符而其它大多数语 言中赋值号不是运算符。 2注意在变量说明中给变量赋初值和赋值语句的区别。 在变量说明中,不允许连续给多个变量赋初值。 如说明是错误的:inta=b=c=5 必须写为inta=5b=5c=5 ·而赋值语句允许连续赋值 下述语句是合法的:if(x=y+5)>0)zx; 语句的功能是,若表达式x=y+5大于0则zx。 下述语句是非法的:if(x=y+5;)>0)zx; 因为x=y+5;是语句,不能出现在表达式中
10 § 4.2 赋值语句 赋值语句是由赋值表达式加上一个分号构成 1.C语言中的赋值号“=”是一个运算符,而其它大多数语 言中赋值号不是运算符。 2.注意在变量说明中给变量赋初值和赋值语句的区别。 • 在变量说明中,不允许连续给多个变量赋初值。 如说明是错误的: int a=b=c=5 必须写为 int a=5,b=5,c=5; • 而赋值语句允许连续赋值。 下述语句是合法的: if((x=y+5)>0) z=x; 语句的功能是,若表达式x=y+5大于0则z=x。 下述语句是非法的: if((x=y+5;)>0) z=x; 因为x=y+5;是语句,不能出现在表达式中