资源预览内容
第1页 / 共49页
第2页 / 共49页
第3页 / 共49页
第4页 / 共49页
第5页 / 共49页
第6页 / 共49页
第7页 / 共49页
第8页 / 共49页
第9页 / 共49页
第10页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章 程序控制语句2010东北大学计算机基础教研室 2 目录3.1 c语句概述 3.2 格式输入输出 3.3 字符数据的输入输出 3.4 顺序结构程序设计举例 3.5 选择结构程序设计 3.6 循环控制结构程序设计2010东北大学计算机基础教研室 3 3.1 C语句概述1. 控制语句( 9种) : 完成一定的控制功能if ( ) else 条件语句( 双分支选择语句)switch 多分支选择语句for ( ) while ( ) 循环语句do while ( )continue 结束本次循环语句break 中止语句goto 转向语句return 从函数返回语句 2. 函数调用语句 : 由一个函数调用加一个分号构成如: printf(“very good!“);3. 表达式语句 : 由表达式加分号构成如: x=12 ; ( 赋值表达式语句 ) 4. 空语句 : 由一个分号构成 , 它什么也不做 ; 5. 复合语句 : 用 括起来的语句序列如 int temp ;temp = x ;x = y ;y = temp ; 注意 : 1. 复合语句是一个整体, 相当于一条语句 2. 一个复合语句中可以包含其他的复合语句 3. 在复合语句的花括号后不要再加分号 4. 复合语句中可定义变量 , 但此变量只在该复合语句内有效2010东北大学计算机基础教研室 5 3.2 格式输入输出函数一、 printf函数格式: printf ( 格式控制, 输出列表 ) ; 如: printf(“a=%dn“ , a) ;1. 格式控制: 用“ “ 括起来的字符串 , 包括如下两个部分(1) 普通字符( 包括转义字符) : 需要原样输出的字符 (2) 格式说明: 由%和格式字符组成其作用是将输出数据按指定的格式输出C语言没有提供专门的输入/输出语句,其输入输出操作是 由函数实现的。C语言提供的函数以库的形式存在,这些库 函数定义在头文件stdio.h中。因此在程序中如果用到输入输 出函数,需在程序的头部包含该头文件。#include #include “stdio.h“% 格式字符 l m.n 0 - 格式字符 : 指定输出项的数据类型和输出格式 c d f s 长度修正符 : l 对长整型和double型 域宽及精度描述符 m.n ( m控制域宽, n 控制小数位数 ) 数0用以在指定数字前的空位是否用0填补(对整型,实型可用) 负号用以指定输出项是否为左对齐方式 2. 输出列表 : 输出项可以是常量, 变量, 表达式例: int x=8, y=-2;float a=3.14;printf(“%dn“, 25);printf(“%03dn“, x);printf(“%3.1fn“, a);printf(“%2.3sn“, “C Language“);printf(“x*y=%dn“, x*y);printf(“|y|=%.0fn“, fabs(y);25 008 3.1 C L x*y=-16 |y|=2注意:对整数使用%f输出,或对浮点数使用%d输出,都 会得到错误结果。二、 scanf函数格式: scanf ( 格式控制 , 变量地址表列 ) ;1. 地址参数 : 变量的地址可通过地址运算符“ 3/14/2006 3. 注意问题 (1) 格式控制中出现的除格式说明以外的其他字符, 在输入数据时要输入与其相同的字符如 scanf(“a=%d , b=%d“, 输入: a=12 , b=45 (3) 输入数值数据时,遇到以下情况时输入结束 遇到空格, 或按“回车“键, “跳格“键 按指定的宽度结束如 scanf(“%d%3d%2d“, 输入: 25 1867490 遇到非法输入如scanf(“%d%d“, 输入: 25 , 3(2) 用%c输入字符时, 空格和转义字符都会作为有效字符输入如 scanf(“%c%c“, 输入 : A B 则ch1为字符A , ch2为空格x 为 25 , y 为 186 , z 为 74x 为 25 , y 无正确数据( 因遇到逗号而出错)2010东北大学计算机基础教研室 9 3.3 字符数据的输入和输出一、 字符输出函数( putchar函数)格式 : putchar(参数)功能: 将参数对应的字符输出到显示器上,参数可以是字符型或整型的常量和变量例: #include void main( ) char a=B, b, c;b=O;putchar(a); putchar(b);putchar(Y); 输出: BOY注意: putchar函数只有一个参数二、 字符输入函数( getchar函数)格式 : getchar( ) ( 注意它是无参函数 )功能 : 从键盘输入一个字符例:#include void main( ) char ch;ch=getchar( );getchar( );putchar(ch);putchar(n);putchar(getchar( ) ; 假设输入: ABCD 输出:AC注意:一般连续输入可显示字符,若中间有空格,回车等字符, 在输出时是不可见的若输入: A BC若输入: AB 输出:AB输出:A2010东北大学计算机基础教研室 11 3.4 顺序结构程序设计举例例:输入三角形3边长,求其面积公式 area=s(s-a)(s-b)(s-c)s=(a+b+c)/2 #include #include void main( ) float a,b,c,s,area;scanf(“%f%f%f“,s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s- c);printf(“area=%fn“,area);输入a,b,c 3边长按公式计算s的值按公式计算area的值输出area的值2010东北大学计算机基础教研室 12 3.5 选择结构程序设计1.关系运算符和关系表达式 2.逻辑运算符和逻辑表达式 3.if语句 3.switch语句 5.程序举例2010东北大学计算机基础教研室 13 1.关系运算符和关系表达式注意 : (1) 字符数据按其ASCII码值进行比较(2) 应避免2个实数作 = = 或 != 的比较一、关系运算符 = 278 是允许的 , 它相当于 (52)7)8(4) 可以将关系表达式看成是一种整型表达式2010东北大学计算机基础教研室 14 2.逻辑运算符和逻辑表达式一、 逻辑运算符 ! 进行判断时, 非零值代表“真“, 零值代表“假“例: 表示 x -1,1区间 应写为: x=-1 x = y = z = 0 ;+x | +y printf(“%d ,%d ,%dn“, x,y,z); x = y = z = -1 ;+x printf(“%d ,%d ,%dn“, x,y,z);(+x) | ( (+y)scanf(“%d%d%d“,if (ab) t=a; a=b; b=t; if (ac) t=a; a=c; c=t; if (bc) t=b; b=c; c=t; printf(“%d,%d,%dn“, a, b, c); 2010东北大学计算机基础教研室 19 #include #include void main( ) int x, y; scanf(“%d“, if (x0) y=pow(x, 3)+x+1;printf(“y=%dn“, y); 例:编程求解函数Y= 0 X0#include #include void main( ) int x, y; scanf(“%d“, if (x0方法1 if (x=0) if (x0) y=1;else y=0; else y=-1;y=-1y=0y=1x=0x0真假真假方法3 y=-1; if(x!=0)if(x0) y=1;else y=0; y = -1 x=0 0 x0y=-1 x!=0x0y=1y=0真真假假修改方法3 y=-1; if(x!=0) if(x0) y=1; else y=0; y=-1x!=0x0y=1y=0真真假假方法3等价于2010东北大学计算机基础教研室 23 求学生的分数段等级main() int score;char g;scanf(“%d”,if (score=90) g=A;else if (score=80) g=B;else if(score=70) g=C;else if(score=70) g=D;else g=E;printf(“The grade is %c!”,g); 三、 条件运算 例 max=ab? a : b+1ab? a : cd? c : d 注意: (1) 表达式1, 表达式2和表达式3 的数据类型可以互不相同 (2) 条件表达式的值的数据类型与表达式2, 表达式 3中数据类型较高的那个保持一致如 75? 10 : 1.4 条件表达式的值为10.0 ab? a : (cd? c : d )1. 条件运算符 ? :优先级仅高于赋值类, 是右结合性执行过程: 先计算表达式1 , 若其值为非零值(真), 则计算表达式2 的值, 该条件表达式的值即为表达式2 的值; 若表达式1的值为零(假), 则计算表达式3 的值, 该条件表达式的值即为表达式3 的值2. 条件表达式的一般形式 : 表达式1? 表达式2 : 表达式3 max=(ab? a : b+1)用条件表达式实现#includevoid main( ) int max;max=xy? x : y ;max=zmax? z : max;printf(“max=%d“,max);当if中的语句为简单赋值语句时,我们可以用条件表达式来取代if 语句例 求3个数中的最大数#include void main( ) int max;if (xy) max=x;else max=y;if (zmax) max=z;printf(“max=%d“,max); 2010东北大学计算机基础教研室 26 3.switch语句一、switch语句的格式switch ( 表达式 ) case 常量表达式1 : 语句1case 常量表达式2 : 语句2 : : :case 常量表达式n : 语句n default : 语句n+1
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号