文档介绍:第五讲 C程序设计导引(II)
北京大学信息科学技术学院
主要内容
语句与控制流
输入输出控制
标准库函数
程序风格
程序示例
1、语句与控制流
高级程序设计语言的运行单位是语句。
在C语言中,诸如表达式:x = 1、i++,…等之后加上
分号就构成了简单的语句(所有的表达式加上分号之后都
可以形成语句,但它们并不都是有效的语句,如:x + 5)。
C语言中的语句种类大致包括:
赋值语句,如:x = y + z;
变量定义与初始化语句,如:int x, y = 1;
函数调用语句,如:scanf(“%d”, &n);
自增(减)语句,如:i++; - -i;
程序控制语句
空语句
……
1、语句与控制流
程序的执行顺序是由程序中的程序控制语句规定
的。一般情况下,程序顺序地执行语句,语句出现
的顺序就是其执行顺序(顺序程序结构)。
程序控制语句包括循环控制语句,使得程序能够
反复执行某些语句(循环程序结构,将n条相同的语
句简单地复制会使程序变得不合理的冗长)。此外,
还包括分支控制语句,用于控制多路选一的分支情
况(分支程序结构)。
1、语句与控制流
程序控制语句及其控制说明:
分支控制语句:if-else, switch-case/default
循环控制语句:while, do-while, for
这2种语句都是用大括号({……})把修饰性描述和语句组合
在一起的,称为复合语句。复合语句在语法上和简单语句是一
样的(代码段:也包括不含有修饰性描述的情况)
此外,还有一些与程序转移控制有关的语句:
break, continue, return, goto
1、语句与控制流
分支控制语句包括:
条件语句:if-else
多分支语句(开关语句): switch-case/default
1、语句与控制流
——条件语句 if-else的形式
假
expression
if (expression1)
真 if (expression1)
{ {
statements1 statements1; statements1;
} }
else else if (expression2)
{
if (expression1) {
statements2; statements2;
{ }
statements1; }
} …
真假
exp1 else if (expressionN)
{
真假 stmts1 exp2 statementsN;
expression }
stmts1 … else
statements1 statements1 {
… Statements(N+1);
}
1、语句与控制流
——条件语句 if-else
表达式expression的值应该是数值(0表示假,非0表示真)。
每个单一语句后面都要有分号。为了增强程序的可读性,
应将if或else后的语句用{}括起来。
else if和else子句是任选的,不能单独作为语句使用,它必
须和if语句配对使用,并且总是与离它最近的if配对。
1、语句与控制流
——条件语句 if-else示例
//判断一个数是否偶数//求3个数的最大者
int a = 123; int a = 123;
if( a%2==0 ) int b = 456;
{ int c = 237;
printf(“%d is an even.”, a); if( a>b && a>c )
} {
printf(“The biggest one is: %d”, a);
//求2个数的最大者}
int a = 123; else if( b>a && b>c)
int b = 456; {
if( a>b ) printf(“The biggest one is: %d”, b);
{ }
printf(“The bigger one is: %d”, a); else
} {
else printf(“The biggest one is: %d”, c);
{ }
printf(“The bigger one is: %d”, b);
} 给定一个年份,判断是否闰年?
1、语句与控制流
——条件语句 if-else
条件表达式“? :”能够部分替代if-else语句,如:
x = (a>b) ? (a-b) : (b-a);