顺序程序结构
– 不产生编译代码
• 编译预处理命令
>
阅读程序
• 学会阅读程序对于初学者来说很重要,一方面可以巩固所 学的语法知识,另一方面通过阅读别人写好的程序来打开 自己的思路,就所谓见多识广。
• 如果选择有误,就要认真分析原因,是概念方面的错误还 是对程序逻辑理解不对,从而加深对语法规则的理解,提 高程序设计能力。
请注意:C语言允许一行写几个语句,也允许一个语句拆开写在几行上, 书写格式无固定要求。一般将彼此关联的、或表示一个整体的一组较短的 语句写在一行上。
例如{t=a;a=b;b=t;} 在复合语句中,不仅可以有执行语句,也可以有定义部分,定 义本复合语句中的局部变量。
2020/1/18
3.3 复合语句和空语句
2020/1/18
阅读下面简单的源程序,先预测程序的功能和输出结果,再编辑、 编译、运行程序,观察运行结果和自己的预测值是否相符?若不 相符,试分析原因,最后将其以文件名ex1存入你自己的目录下。
main( ) {int a=5,b=8; printf(“Before change:a=%d\t b=%d\n”,a,b); a=a+b; b=a-b; a=a-b; printf(“After change :a=%d\t b=%d\n”,a.b); printf (“\n\n"); printf(“Good bye\n”); }
is
1 计数 scanf(“%f”,cj); 输入成绩
1 累加 s=s+cj;
累加
2
scanf(“%f”,cj);
3
s=s+cj;
3
scanf(“%f”,cj);
6
s=s+cj;
4
scanf(“%f”,cj);
10(1+2+3+4) s=s+cj; s=cj1+cj2+cj3+cj4
2020/1/18
2020/1/18
•
例3.14:从键盘输入一个3位整数,编写程序分别求出
个位、十位、百位数,并分别显示输出。
• #include<stdio.h>
• main()
•{
• int x,b0,b1,b2;
• printf(“please input x:”);
• scanf("%d",&x);
• b2=x/100;
• 函数与主函数
– 程序由一个或多个函数组成
– 必须有且只能有一个主函数main()
– 程序执行从main开始,在main中结束,其它函 数通过嵌套调用得以执行。
• 程序语句
– C程序由语句组成
– 用“;”作为语句终止符
非法
• 注释
– //,/例* : /**T/h为is i注s th释e m,不ain能/嵌* o套f example1.1*/ */
3.3.2 空语句
(1)空循环100次,可能表示一个延时,也可能表示目前还 不必在循环体中做什么事情。
for(i=0;i<100;i++); /* 循环结构要求循环体,但目前什么工 作都不要做。;表示循环体 */
(2)如果条件满足什么都不做,否则完成某些工作。(; 表示if块,什么都不做)
if() ; else { ...... }
int…i …, j …, s…u…m;…
sum=0…; ………..
for(i=1…; i<…1…0;i…++..)
{
………
for(j=1;…j<1…0…;j+.+)
{ ……………
…su…m…+=…i*…j ; .
…} …………….
} ………………..
} printf(“%d\n”,sum);
}
<>
赋值语句
例:变量x,y值的交换 int x,y,t; x=5;y=6; t=x;x=y;y=t; 例:保留两位小数(四舍五入) x=86.4567; x=(int)(x*100+0.5)/100;
2020/1/18
赋值语句
(1)左边一定是变量。 (2)右边可以是变量、常量、函数、运算符和括号。 (3)赋值要相容。 (4)赋值表达式可以位于程序中表达式可以出现的位置。 (5)赋值语句可以位于程序中执行部分作为执行语句的一 种。
当满足某种循环条件时,将一条或多条语句 循环结构 重复执行若干遍,直到不满足循环条件为止
2020/1/18
赋值语句
当同一个变量出现在赋值号两边的时候,对右边的变量进行
的是取(读取)值运算,变量值不变。对左边的变量进行的是赋
(写存)值运算,变量值更新。
例:计数和累加运算
i=0;s=0; i=i+1; s=s+i; i=i+1; s=s+i; i=i+1; s=s+i; i=i+1; s=s+i;
语句
printf(”sum= %d\n",sum);
}
函数
/* This function calculates the sum of x and y */ int add(int x,int y) { int z;
z=x+y; return(z); }
运行结果: sum=34
注释
结构特点
<
2020/1/18
顺序结构程序
2020/1/18
C程序格式和结构特点
– 格式特点
• 习惯用小写字母,大小写敏感 • 不使用行号,无程序行概念 • 可使用空行和空格 • 常用锯齿形书写格式
优秀程序员的素质之一:
使用TAB缩进 {}对齐 有足够的注释 有合适的空行
mmaiani(n)( )
{ { ……………….
• b0=x%10;
• b1=x/10%10;
• printf("bit0=%d,bit1=%d,bit0=%d\n",b0,b1,b2);
•}
2020/1/18
(2)对操作的描述:即操作步 骤,也就是算法。
2020/1/18
程序设计基础
程序的三种基本结构: ·顺序结构 ·选择结构 ·循环结构
2020/1/18
程序设计基础
结构化程序
顺序结构中的语句是按书写的顺序执行的, 顺序结构 语句的执行顺序与书写顺序一致
当程序执行到某一语句时,将根据不同的条 选择结构 件去执行不同分支的语句
3.3.2 空语句
只有一个分号的语句,它什么也不做(表示这里可 以有一个语句,但是目前不需要做任何工作)。
程序中有时需要加一个空语句来表示存在一条语 句,但随意加分号也会导致逻辑上的错误,而且这种 错误十分隐蔽,编译器也不会提示逻辑错误,初学者 一定要小心,需要慎用。
2020/1/18
3.3 复合语句和空语句
2020/1/18
2020/1/18>
/* example1.1 calculate the sum of a and b*/
#include <stdio.h>
预处理命令
/* This is the main program */
main()
{ int a,b,sum;
a=10;
b=24;
sum=add(a,b);
2020/1/18
a=9;a=a=a+1; 则执行此语句后,变量a和表达式的值为10。
3.3 复合语句和空语句
3.3.1 复合语句
用{}把一些语句(语句序列,表示一系列工作)括起来称为复 合语句,又称为“语句块”。
一般情况凡是允许出现语句的地方都允许使用复合语句。在程序结构 上复合语句被看作一个整体的语句,但是内部可能完成了一系列工作。
2020/1/18
3.1 程序设计基础
3.1.1 程序
程序设计语言:描述数据和算法 程序设计目的:进行数据的处理 程序=数据+算法+程序设计方法+ 语言工具和环境
程序就是一条条指令序列的集 合。一条机器语言成为一条指令, 指令是不可分割的最小功能单元。
一个程序应包括两个方面:
(1)对数据的描述。在程序中 要指定数据的类型和数据的组织形 式,即数据结构。