计算机程序设计基础
#include <stdio.h> int main() { int n, abs;
入口
真
A
条件 假
出口
printf(“Enter integer: ”); 单分支结构 scanf(“%d”, &n);
abs = n;
if(abs < 0)
abs = –abs;
printf(“Original integer: %d, absolute value: %d\n”, n, abs);
return 0;
}
清华大学计算中心
5
计算机程序设计基础
3.3 分支结构
• 分支结构(选择结构)的含义
– 根据某一条件的判断结果,确定程序的流程,即选择哪 一个程序分支中的处理块去执行
– 最基本的分支结构是二路分支结构
真
A
入口
条件
假 B
分支结构
出口
– 以条件判断为起点,如果判断结果为真,则执行A处理块 的操作,否则执行B处理块的操作
scanf(“%f,%f,%f,%f”, &a, &b, &c, &d);
printf(“Sum: %f + %fi\n”, a + c, b + d);
printf(“Difference: %f + %fi\n”, a – c, b – d);
real = a * c – b * d; imaginary = a * d + b * c;
return 0;
}
清华大学计算中心
9
计算机程序设计基础
if-else if-else 语句
• 语句格式
– if(表达式1) 语句1 else if(表达式2) 语句2 … else 语句n
入口
表达式1 真
假
表达式2 真
复杂分支结构 假
... 假
语句1 语句2
语句n
出口
清华大学计算中心
10
计算机程序设计基础
if-else if-else 示例
• 根据百分制成绩给出优秀、通过或不通过成绩
#include <stdio.h> int main() { float score; printf(“Input score: “); scanf(“%f“, &score); if(score >= 85 && score <= 100) printf(“Excellent.\n“); else if(score >= 60 && score < 85) printf(“Pass.\n“); else if(score >= 0 && score < 60) printf(“No pass.\n“); else printf(“Error score.\n“); return 0; }
c = getchar();
if(c >= 48 && c <= 57)
printf(“It is a number.\n”);
else
printf(“No, it is not a number.\n”);
return 0;
}
清华大学计算中心
8
计算机程序设计基础
if-else 语句示例二
• 输入一个整数,输出其绝对值
顺序结构程序示例
• 分别输入两个复数的实部与虚部,计算两个复数的 和、差、积、商并输出结果
#include <stdio.h>
int main()
实际需要输入4个实数
{
float a, b, c, d, real, imaginary;
printf(“Input reals and imaginaries of two complexes\n”);
3.2 顺序结构
• 顺序结构的含义
– 由一组顺序执行的处理块组成,每个处理块可能包含一 条或一组语句,完成一项任务
– 顺序结构是最基本的算法结构
入口
A
B
顺序结构
出口
• 语句与复合语句(语句块)
– 三种语句结构:单语句(表达式;)、空语句(;)、复合 语句({语句序列})
清华大学计算中心
4
计算机程序设计基础
计算机程序设计基础
Email: qiaolin@ Tel: 62792961
乔林
计算机程序设计基础
清华大学计算中心
1
计算机程序设计习目标
– 了解结构化程序设计的一般概念
– 熟悉顺序结构、分支结构与循环结构等三种程序 流程控制结构
– 掌握 C 语言实现分支结构的 if 语句与 switch 语 句,能熟练应用 if 语句与 switch 语句编写程序
以省略
清华大学计算中心
7
计算机程序设计基础
if-else 语句示例一
• 输入一个字符,判断它是否为0~9之间的数字
#include <stdio.h>
int main() { char c; printf(“Input a character: ”);
因:字符以ASCII码值存储 且数字的ASCII码值48~57 故:比较ASCII码值
– 掌握 C 语言实现循环结构的 while 语句、for 语 句与 do-while 语句,能熟练应用这三种循环控制 结构编写程序
– 了解三种循环结构的关系,掌握在循环结构中控 制程序流程转移的方法
清华大学计算中心
2
计算机程序设计基础
3.1 C 语言结构化程序设计基础
• 程序的控制结构(黑箱)
– 单入口单出口的控制结构易于理解 – 三种基本控制结构:顺序、分支、循环 – 控制结构可以嵌套,以构成更复杂的控制结构
清华大学计算中心
6
计算机程序设计基础
if-else 语句
• 语句格式:if(表达式) 语句1 else 语句2 • 表达式必须位于括号内,一般为关系或逻辑表达式 • 先计算表达式值,若为真则执行语句1,否则执行
语句2 • 语句1与语句2可以为复合语句 • 语句1与语句2只能有一个被执行 • 如果仅仅用于确定某条语句是否执行,else分支可
printf(“Product: %f + %fi\n”, real, imaginary);
real = (a*c + b*d) / (c*c + d*d); imaginary = (b*c – a*d) / (c*c + d*d);
printf(“Quotient: %f + %fi\n”, real, imaginary);
• 程序的结构化
– 三种基本控制结构可以构造任何复杂的结构化算法 – 结构化程序设计原则:自顶向下,逐步求精 – 结构化程序设计过程:首先对任务进行功能分解,然后
使用结构化程序设计思想逐一解决各个子问题,最后构 造原始问题的解
– 好处:逻辑性强,可读性好,维护方便
清华大学计算中心
3
计算机程序设计基础