1第一章C语言入门3

上传人:hs****ma 文档编号:570018166 上传时间:2024-08-01 格式:PPT 页数:64 大小:1.72MB
返回 下载 相关 举报
1第一章C语言入门3_第1页
第1页 / 共64页
1第一章C语言入门3_第2页
第2页 / 共64页
1第一章C语言入门3_第3页
第3页 / 共64页
1第一章C语言入门3_第4页
第4页 / 共64页
1第一章C语言入门3_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《1第一章C语言入门3》由会员分享,可在线阅读,更多相关《1第一章C语言入门3(64页珍藏版)》请在金锄头文库上搜索。

1、1第一章第一章C语言入门语言入门 (3)2 2本讲主要内容本讲主要内容程序与算法程序与算法C C程序实践程序实践标识符、变量和常量标识符、变量和常量数据类型数据类型C C程序的基本操作程序的基本操作顺序结构程序顺序结构程序C C语言规约语言规约C程序设计|第一章3 3程序:完成特定工作的有序步骤。程序:完成特定工作的有序步骤。如如举办专题举办专题学学术报术报告会告会:张贴张贴张贴张贴海海海海报报报报与会者入与会者入与会者入与会者入场场场场介介介介绍报绍报绍报绍报告人告人告人告人作作作作报报报报告告告告会后交流。会后交流。会后交流。会后交流。要素:动作(张贴要素:动作(张贴要素:动作(张贴要素:

2、动作(张贴 、介绍、介绍、介绍、介绍. .)、对象(海报、与会者、)、对象(海报、与会者、)、对象(海报、与会者、)、对象(海报、与会者、报告人报告人报告人报告人. .)、操作顺序。)、操作顺序。)、操作顺序。)、操作顺序。程序程序计算机程序计算机程序: :为完成特定功能而编写的指令为完成特定功能而编写的指令集合,这组指令依据既定的逻辑控制计算机的集合,这组指令依据既定的逻辑控制计算机的运行。运行。C程序设计|第一章4 4计算机程序溯源计算机程序溯源姓名姓名Ada Byron国籍国籍出生出生1815年12月10日去世去世1852年11月27日身份身份程序员艾达.拜伦,诗人拜伦的女儿,世界上第一

3、位计算机程序员。1843年,艾达拟定了一份用巴贝奇差分机求解伯努利方程的设计图,被公认为世界上第一个计算机程序。艾达预见计算机可以用在纺织机械上,用卡片储存复杂的花样、可以用来绘图、演奏音乐等。这些预言表明了艾达是现代人工智能技术的拓荒者。C程序设计|第一章5 5叙述框叙述框程序的灵魂程序的灵魂算法算法uu解决一个问题而采取的方法和步骤称为解决一个问题而采取的方法和步骤称为算法算法(AlgorithmAlgorithm)。)。uu算法的特性:算法的特性: 1. 1.有穷性有穷性 2. 2.确定性确定性 3. 3.输入输入 4. 4.输出输出 5. 5.有效性有效性任意输入两个数a,bab?ma

4、x=a输出max开始max=b结束描述算法的图形工具:流程图?读一读该流程图描述了怎样的程序功能?流程图的构成要素有什么?C程序设计|第一章6 61.2 C1.2 C程序介绍程序介绍第一章第一章C程序设计|第一章7 7第一章第一章例例1.21.2 在显示器上输出:在显示器上输出:hello worldhello world编辑程序编辑程序#include #include “stdio.hstdio.h” ” main() /*main() /*主函数主函数* */ / printf(“hello world”); printf(“hello world”); C C程序的基本形式为:程序的基

5、本形式为:main()main() C程序设计|第一章8 8简单简单C C程序程序程序格式说明:程序格式说明:C C程序都有且仅有一个主函数程序都有且仅有一个主函数mainmain任何程序都从任何程序都从mainmain开始执行开始执行C C程序由函数组成,函数由语句组成程序由函数组成,函数由语句组成函数体的语句写函数体的语句写在在 中中,语句,语句以以分号分号结尾结尾不能不能在变量名、函数名、关键字中插入空格和在变量名、函数名、关键字中插入空格和空行空行没有行的概念,可任意没有行的概念,可任意书写(书写(但要养成良好的但要养成良好的程序书写风格程序书写风格)C程序设计|第一章9 9C C程序

6、的实现要经过以下步骤:程序的实现要经过以下步骤:编辑:编辑:编辑:编辑:在计算机中录入在计算机中录入在计算机中录入在计算机中录入C C C C程序的源代码,程序的源代码,程序的源代码,程序的源代码,C C C C源程源程源程源程序文件扩展名为序文件扩展名为序文件扩展名为序文件扩展名为.C.C.C.C,C+C+C+C+编译环境中也允许以编译环境中也允许以编译环境中也允许以编译环境中也允许以 .CPP.CPP.CPP.CPP为扩展名。为扩展名。为扩展名。为扩展名。编译:编译:编译:编译:经过经过经过经过C C C C语言编译器将源程序编译成目标语言编译器将源程序编译成目标语言编译器将源程序编译成目

7、标语言编译器将源程序编译成目标程序程序程序程序( ( ( (扩展名为扩展名为扩展名为扩展名为.OBJ).OBJ).OBJ).OBJ),并改正编译中出现的语,并改正编译中出现的语,并改正编译中出现的语,并改正编译中出现的语法错误。(法错误。(法错误。(法错误。(别担心,此工作由编译器自动完成别担心,此工作由编译器自动完成别担心,此工作由编译器自动完成别担心,此工作由编译器自动完成)连接:连接:连接:连接:对目标程序进行连接(装载函数),生对目标程序进行连接(装载函数),生对目标程序进行连接(装载函数),生对目标程序进行连接(装载函数),生成可执行文件成可执行文件成可执行文件成可执行文件( ( (

8、 (扩展名为扩展名为扩展名为扩展名为.EXE).EXE).EXE).EXE)。运行运行运行运行: : : : 运行可执行文件得到运行结果。运行可执行文件得到运行结果。运行可执行文件得到运行结果。运行可执行文件得到运行结果。C C程序的实现程序的实现演示演示VCVC6.06.0C程序设计|第一章1010编写编写编写编写输输输输出两个整数之和出两个整数之和出两个整数之和出两个整数之和的的的的C C C C程序,然后上机调程序,然后上机调程序,然后上机调程序,然后上机调试通过试通过试通过试通过 #include stdio.h#include stdio.hmain()main() int a,b,

9、sum;int a,b,sum;a=123;a=123;b=456b=456;sum=a+b;sum=a+b;printf(a+b=%dn,sum)printf(a+b=%dn,sum);输出结果是:输出结果是:a+b=579 a+b=579 C C程序实现举例程序实现举例定义三个整型变量定义三个整型变量变变量赋值量赋值求和求和输出输出C程序设计|第一章1111#include #include “stdio.hstdio.h”main()main()int a,b,sum;int a,b,sum;printf(printf(请输入两个整数请输入两个整数: :););scanf(scanf(“

10、%d,%d%d,%d”,&a,&b);,&a,&b);sum=a*b;sum=a*b;printf(printf(“sum=%dnsum=%dn”,sum); ,sum); 程序运行结果:程序运行结果:请输入两个整数请输入两个整数:12,2:12,2sum=24sum=24C C程序实现举例程序实现举例从键盘输入任意两个整数,从键盘输入任意两个整数,编写编写输输出两出两个数之个数之积积的的C C程序,然后上机调试通过程序,然后上机调试通过 等等待待用用户户从从键键盘盘输输入入两两个个整整数数C程序设计|第一章12121.2.2 1.2.2 标识符、变量和常量标识符、变量和常量1标识符标识符在在

11、C语言中有许多需要命名的对象语言中有许多需要命名的对象(变量名、符号变量名、符号常量名、函数名、数组名、文件名等常量名、函数名、数组名、文件名等) 统称为标统称为标识符。识符。C语言的规定,标识符只能由英文字母、下语言的规定,标识符只能由英文字母、下划划线、线、数字组成,且只能用字母数字组成,且只能用字母或或下下划划线开头。线开头。标识符不能与C的关键字重名。C语言有32个关键字,这些关键字在C中有特定的含义。C程序设计|第一章1313关键字:关键字:是指在是指在C C语言中已预先定义具有特定含语言中已预先定义具有特定含义的标识符义的标识符, ,通常也称为保留字通常也称为保留字, ,编程者不得

12、再编程者不得再重新命名另作他用。重新命名另作他用。关键字关键字C程序设计|第一章14141.2.2 1.2.2 标识符、变量和常量标识符、变量和常量2变量变量在在C程序中,其值可以改变的量叫变量。变量实质程序中,其值可以改变的量叫变量。变量实质就是用来存储数据的内存空间。就是用来存储数据的内存空间。变量必须先定义,后使用。变量必须先定义,后使用。int x; /*定义了一个整型变量定义了一个整型变量x*/y=4;int y; /*错误错误,y=4时,变量时,变量y尚未定义尚未定义*/ C程序设计|第一章1515变量的地址变量的地址定义一个变量后,系统定义一个变量后,系统将根据变量的数据类型将根

13、据变量的数据类型为其分配一定长度的存为其分配一定长度的存储空间。例如:储空间。例如:int a=100;int a=100;float f=12345.67;float f=12345.67; scanf(“%d”,&x); scanf(“%d”,&x);变量变量a a和和f f的地址分别表的地址分别表示为示为&a&a和和&f(&f(如右图)如右图), ,符号符号“&”&”是取地址的是取地址的运算符运算符&a=2500H 2501H&f=2502H 2503H 2504H 2505H 12345.6712345.67100100C程序设计|第一章1616有程序段:有程序段: int a,b;

14、int a,b; a=8; b=9; a=8; b=9; /*a/*a的值为的值为8 8,b b的值为的值为9 9*/*/ a=b+1; a=b+1; /*a/*a的值变为的值变为1010*/*/ a=b; a=b; /*a/*a的值变为的值变为9 9*/*/存储器的存取特点是:取之不尽,一存就变。存储器的存取特点是:取之不尽,一存就变。即变量中的值可以反复读取,其值不会改变。即变量中的值可以反复读取,其值不会改变。而把一个新值赋给变量时,变量中原来的值就而把一个新值赋给变量时,变量中原来的值就被新值所替代。被新值所替代。变量的动态特性变量的动态特性C程序设计|第一章17171.2.2 1.2

15、.2 标识符、变量和常量标识符、变量和常量3常量常量在在C程序中,其值不能改变的量称为常量,数程序中,其值不能改变的量称为常量,数值和字符值本身就是常量,如值和字符值本身就是常量,如3、4.5、A等。等。用标识符代表的常量称为用标识符代表的常量称为符号常量符号常量。【例1.5】已知圆的半径,求圆的面积。#include stdio.h#define PI 3.14 /*/*符号常量符号常量符号常量符号常量PIPI的定义的定义的定义的定义*/*/main()float area1,area2; area1=2*2*PI; /* /*符号常量符号常量符号常量符号常量PIPI的使用的使用的使用的使用

16、*/*/ area2=5*5*PI; printf(area1=%f,area2=%fn,area1,area2);C程序设计|第一章18181.2.3 1.2.3 数据与数据类型数据与数据类型数据数据是程序操作的是程序操作的对象。对象。C C 语言根据数语言根据数据的不同性质和用途据的不同性质和用途将其分为不同的数据将其分为不同的数据类型。各种数据类型类型。各种数据类型具有不同的存储长度、具有不同的存储长度、取值范围及允许的操取值范围及允许的操作。作。C C 数据类型如右数据类型如右图所示:图所示:数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型整型整型 inti

17、nt字符型字符型 charchar浮点型浮点型 floatfloat双精度型双精度型 doubledouble数组数组结构体结构体共用体共用体枚举枚举本讲只介绍基本类型本讲只介绍基本类型C程序设计|第一章1919整型数据整型数据#include stdio.hmain() short x,y,product; x=200; y=300; product=x*y; printf(%dn,product);改错:取值范围问题C程序设计|第一章2020有三种形式的整型常量:有三种形式的整型常量:与习惯相同的十进制整数。如:与习惯相同的十进制整数。如:46,-23,046,-23,0以数字以数字0 0

18、开头的八进制整数。如:开头的八进制整数。如:04560456表示八表示八进制数进制数456,456,即即(456)(456)8 8=4*8=4*82 2+5*8+5*81 1+6*8+6*80 0, ,等于十等于十进制的进制的302302。以数字以数字0 0和和x x开头的十六进制整数。如:开头的十六进制整数。如:0x4560x456表示十六进制整数表示十六进制整数456456,即,即(456)(456)1616=4*16=4*162 2+5*16+5*161 1+6*16+6*160 0, , 等于十进制的等于十进制的11101110整型常量整型常量C程序设计|第一章2121实型数据实型数据

19、#define #define PRICEPRICE 30 30main()main() int num,total; int num,total; float v ,r,h; float v ,r,h; num=10; num=10; total=num*PRICE; total=num*PRICE; printf(total=%d printf(total=%d,total);total); r r=2.5;=2.5; h= h=3.23.2; ; v=3.14159*r*r*h; v=3.14159*r*r*h; printf(“v=%fn” printf(“v=%fn”,v);v);定

20、义实型变量定义实型变量实型变量实型变量符号常量符号常量整型常量整型常量实型常量只有十进制,它有两种表示形式:实型常量只有十进制,它有两种表示形式:小数形式:由数字和小数点组成,如小数形式:由数字和小数点组成,如12.312.3指数形式:即科学计数法,如指数形式:即科学计数法,如123e-3123e-3C程序设计|第一章2222字符型数据字符型数据字符常量字符常量: :一对单引号括起来的一对单引号括起来的一个一个字符,大字符,大小写有区别,如:小写有区别,如:a, a, D,?,$, D,?,$, 。单引号中的字符不。单引号中的字符不能是单引号和反斜杠能是单引号和反斜杠字符变量字符变量: :用来

21、存放字符常量,例:用来存放字符常量,例: char c1,c2;char c1,c2; c1c1=a;=a;c2c2=A;=A;字符数据在内存中以字符数据在内存中以ASCIIASCII码存储,占码存储,占1 1字节字节字符数据的使用方法字符数据的使用方法字符数据和整型数据之间可以通用,可以按字符数据和整型数据之间可以通用,可以按字符形式输出,也可以按整型输出。字符形式输出,也可以按整型输出。字符数据与整型数据可以互相赋值。字符数据与整型数据可以互相赋值。C程序设计|第一章2323字符串型数据字符串型数据字符串常量字符串常量: :用一对双引号括起来的一串字符,用一对双引号括起来的一串字符,区分大

22、小写,如区分大小写,如“C Program”C Program”,“ ”“ ”,“3304035”3304035”,“YES & NO”YES & NO”。双引号括起的。双引号括起的字符串中不能有双引号或反斜杠。字符串中不能有双引号或反斜杠。C C中没有字符串变量,字符串常量可用字符数中没有字符串变量,字符串常量可用字符数组存储组存储字符数据的存储形式字符数据的存储形式是是ASCIIASCII值为值为0 0的字的字符符NULLNULL是空操作符是空操作符是非显示字符是非显示字符C程序设计|第一章2424字符型数据举例字符型数据举例main()main()char c1,c2;char c1,c

23、2; int x; int x; c1=97; c1=97; c2= c2=b b; ; x=c1+2 x=c1+2 printf printf(”%c %dn%c %dn”,c1,c2);,c1,c2); printf printf(”%c %d%c %d”,x,x,x,x); ; 运行结果为运行结果为: : a 98a 98 c 99 c 99字符数据和整型数据之间可字符数据和整型数据之间可以通用,可以按字符形式输以通用,可以按字符形式输出,也可以按整型输出。出,也可以按整型输出。字符数据与整型数据可以互字符数据与整型数据可以互相赋值。相赋值。限制:限制:整数在整数在0-1270-127之

24、间才可以通用之间才可以通用C程序设计|第一章2525转义字符转义字符是是C C语言中表示字符的一种特殊形式。通常用于语言中表示字符的一种特殊形式。通常用于表示表示ASCIIASCII码集中不可打印的控制字符和特定功码集中不可打印的控制字符和特定功能的字符。能的字符。C程序设计|第一章2626变量赋初值变量赋初值变量必须先定义后使用。变量必须先定义后使用。C C语言允许在定义变语言允许在定义变量时对变量进行初始化,即对变量赋初值。量时对变量进行初始化,即对变量赋初值。例如:例如: int a=3;int a=3; float f=3.56 float f=3.56,x=1.0;x=1.0; ch

25、ar c= char c=a a; ; int b,c,d=5,a; int b,c,d=5,a; int x=y=0;int x=y=0; b=c=8;b=c=8; 不能重复定义不能重复定义 不能连写不能连写C程序设计|第一章27271.3 C程序的基本操作2828运算符运算符是表示某种运算的符号是表示某种运算的符号, , 是对数据的操作是对数据的操作表达式表达式是用运算符和括号将运算对象连接起来的是用运算符和括号将运算对象连接起来的符合符合C C语言语法规则的式子语言语法规则的式子运算对象运算对象可以是常量、变量、函数等可以是常量、变量、函数等优先级和结合性优先级和结合性: :优先级是指表

26、达式中各计算的优先级是指表达式中各计算的先后次序;结合性是指当一个运算对象两侧的运先后次序;结合性是指当一个运算对象两侧的运算符的优先级相同时进行运算的结合方向算符的优先级相同时进行运算的结合方向1.3.1 1.3.1 运算符及表达式运算符及表达式C程序设计|第一章2929算术运算符有:算术运算符有:算术运算符有:算术运算符有:单单单单目运算符:目运算符:目运算符:目运算符:- - - -(负负负负)、)、)、)、+ + + +(正),(正),(正),(正),右结合右结合右结合右结合 双双双双目运算符目运算符目运算符目运算符:+ + + +、- - - - 、* * * *、/(/(/(/(整

27、数相除结果取整整数相除结果取整整数相除结果取整整数相除结果取整) ) ) )、% % % %(取余)(取余)(取余)(取余)优先级优先级优先级优先级: : : : 先乘除先乘除先乘除先乘除( ( ( (含取余含取余含取余含取余),),),),后加减后加减后加减后加减, , , ,括号优先括号优先括号优先括号优先结合性结合性结合性结合性: : : : 同级从左至右同级从左至右同级从左至右同级从左至右写出以下面算术表达式的优先级和结合性:写出以下面算术表达式的优先级和结合性:写出以下面算术表达式的优先级和结合性:写出以下面算术表达式的优先级和结合性: a*b/c-1.5+a a*b/c-1.5+a

28、 a/b/c*(3-d)a/b/c*(3-d)要求要求% %两侧均为整形数据两侧均为整形数据算术运算符算术运算符C程序设计|第一章3030用算术运算符和括号将运算对象连接起来的、用算术运算符和括号将运算对象连接起来的、用算术运算符和括号将运算对象连接起来的、用算术运算符和括号将运算对象连接起来的、符合符合符合符合C C C C语法规则的式子。例如:语法规则的式子。例如:语法规则的式子。例如:语法规则的式子。例如:25/4 25/4 25/4 25/4 等于等于等于等于 6 6 6 6, 25.0/4.0 25.0/4.0 25.0/4.0 25.0/4.0 等于等于等于等于 6.25 6.25

29、 6.25 6.25 5/10 5/10 5/10 5/10 等于等于等于等于 0, 5.0/10.0 0, 5.0/10.0 0, 5.0/10.0 0, 5.0/10.0 等于等于等于等于 0.50.50.50.54%9=4 -15%4=-3(4%9=4 -15%4=-3(4%9=4 -15%4=-3(4%9=4 -15%4=-3(% % % %只能对整型数据操作只能对整型数据操作只能对整型数据操作只能对整型数据操作)乘号不能省略,且要根据运算顺序书写,如:乘号不能省略,且要根据运算顺序书写,如:乘号不能省略,且要根据运算顺序书写,如:乘号不能省略,且要根据运算顺序书写,如:数学表达式数学

30、表达式数学表达式数学表达式a(ba(ba(ba(b2 2 2 2+4ac)+4ac)+4ac)+4ac) (a+b)(a+b)(a+b)(a+b)cdcdcdcdC C表达式表达式a*(b*b+4*a*c)a*(b*b+4*a*c)(a+b)/c/d (a+b)/c/d 或或(a+b)/(c*d)(a+b)/(c*d)1.3.2 1.3.2 算术运算符及表达式算术运算符及表达式C程序设计|第一章3131main()main() int i=3;int i=3; float r=2.0; float r=2.0; printf(2*-i:%dn,2*-i); printf(2*-i:%dn,2*

31、-i); printf(“r/i:%fn”,r/i); printf(“r/i:%fn”,r/i); printf(r/i:%dn,r/i); printf(r/i:%dn,r/i); i=r/i; i=r/i; printf(i=r/i:%dn,i); printf(i=r/i:%dn,i); i=2%3; i=2%3; printf(2%3:%d,i); printf(2%3:%d,i); 程序执行结果:程序执行结果:2*-i:-6 2*-i:-6 r/i:0.666667r/i:0.666667r/i:21845r/i:21845i=r/i:0 i=r/i:0 2%3:22%3:2 算术

32、运算举例算术运算举例C程序设计|第一章3232由赋值运算符由赋值运算符由赋值运算符由赋值运算符“=”=”将变量和表达式连接起来的将变量和表达式连接起来的将变量和表达式连接起来的将变量和表达式连接起来的式子。其形式是:式子。其形式是:式子。其形式是:式子。其形式是: = 赋值表达式表达式值赋值表达式表达式值赋值表达式表达式值赋值表达式表达式值 各变量值各变量值各变量值各变量值a=5 a=5 a=5 a=5 5 5 5 5a=b=c=5 a=b=c=5 a=b=c=5 a=b=c=5 5 a,b,c 5 a,b,c 5 a,b,c 5 a,b,c均为均为均为均为5 5 5 5a=5+(c=6)a=

33、5+(c=6)a=5+(c=6)a=5+(c=6) 11 a11 a11 a11 a为为为为11111111,c c c c为为为为6 6 6 6a=(b=4)+(c=6)a=(b=4)+(c=6)a=(b=4)+(c=6)a=(b=4)+(c=6) 10 a 10 a 10 a 10 a为为为为10101010,b b b b为为为为4 4 4 4,c c c c为为为为6 6 6 6a=(b=10)/(c=2)a=(b=10)/(c=2)a=(b=10)/(c=2)a=(b=10)/(c=2) 5 a 5 a 5 a 5 a为为为为5 5 5 5,b b b b为为为为10101010,c

34、 c c c为为为为2 2 2 21.3.31.3.3赋值运算符及表达式赋值运算符及表达式C程序设计|第一章33331.3.4 1.3.4 复合赋值运算符复合赋值运算符C C C C语言中有语言中有语言中有语言中有10101010种复合赋值运算符:种复合赋值运算符:种复合赋值运算符:种复合赋值运算符: +=+=+=+=、 -=-=-=-=、 * * * *= = = =、 /=/=/=/=、 %=%=%=%=、 =、&=&=&=&=、=、|= (|= (|= (|= (位运算符以后讲位运算符以后讲位运算符以后讲位运算符以后讲) ) ) )实例:实例:实例:实例:a/=3a/=3a/=3a/=3

35、 等价于等价于等价于等价于 a=a/3a=a/3a=a/3a=a/3x*=y+8x*=y+8x*=y+8x*=y+8 等价于等价于等价于等价于 x=x*(y+8)x=x*(y+8)x=x*(y+8)x=x*(y+8)a+=a-=a*aa+=a-=a*aa+=a-=a*aa+=a-=a*a 相当于相当于相当于相当于 a=a+(a=a-a*a)a=a+(a=a-a*a)a=a+(a=a-a*a)a=a+(a=a-a*a)y%=8y%=8y%=8y%=8 等价于等价于等价于等价于 y=y%8y=y%8y=y%8y=y%8赋值语句的格式:赋值语句的格式:赋值表达式赋值表达式;赋值表达式可以包含在其它表

36、达式中,而赋值语赋值表达式可以包含在其它表达式中,而赋值语句不能,如:句不能,如: if(if(a=ba=b)0) t=a;)0) t=a;C程序设计|第一章3434例例1.101.10 赋值运算符赋值运算符main()main() int x,y; int x,y; x=3; y=8;x*=y+1; x=3; y=8;x*=y+1; printf(x=%d,y=%dn,x,y); printf(x=%d,y=%dn,x,y); x=3;y=8;x=x*y+1; x=3;y=8;x=x*y+1; printf(x=%d,y=%dn,x,y); printf(x=%d,y=%dn,x,y); 程

37、序执行结果:程序执行结果:x=27,y=8x=27,y=8x=25,y=8x=25,y=8赋值运算举例赋值运算举例C程序设计|第一章3535+(+(自增自增), -(), -(自减自减) ):+n, -m +n, -m 前缀,变量的值前缀,变量的值+ +(- -)1 1n+ , m- n+ , m- 后缀后缀, , 变量的值变量的值+ +(- -)1 1优先级优先级: : 高于双目运算高于双目运算 结合性结合性: : 同级从右至左同级从右至左j=3;j=3;k=+j; k=+j; j=j+1;j=j+1;k=j;k=j;即即j j的为的为4 4,k k的值为的值为4 4k=j+; k=j+;

38、k=j;k=j;j=j+1;j=j+1;即即j j的为的为4 4,k k的值为的值为3 3说说明明:对对于于j j变变量量,j+j+和和+j+j都都使使j j的的值值加加1 1,但但k k的的值值就就不不同同了了, ,所所以以前前缀缀和和后后缀缀运运算算对对变变量量是是一一样的,对表达式的值就不一样样的,对表达式的值就不一样1.3.5 1.3.5 自增、自减运算自增、自减运算C程序设计|第一章3636自增、自减举例自增、自减举例main() main() main() main() int a,b,c; int a,b,c; int a,b,c; int a,b,c; a=b=c=0; a=b

39、=c=0; a=b=c=0; a=b=c=0; a=+b+(+c); a=+b+(+c); a=+b+(+c); a=+b+(+c); printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); a=(b+)+c+; a=(b+)+c+; a=(b+)+c+; a=(b+)+c+; printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c);

40、 printf(“%d,%d,%dn”,a,b,c); a=(+b)+c+; a=(+b)+c+; a=(+b)+c+; a=(+b)+c+; printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); a=(b-)+ (-c); a=(b-)+ (-c); a=(b-)+ (-c); a=(b-)+ (-c); printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); printf(“%d

41、,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c); +c; a=2*(+c); +c; a=2*(+c); +c; a=2*(+c); +c; a=2*(+c); printf(“a=%dn”,a,); printf(“a=%dn”,a,); printf(“a=%dn”,a,); printf(“a=%dn”,a,); 运行结果:运行结果:2,1,12,1,12,2,22,2,25,3,35,3,35,2,25,2,2a=8a=8C程序设计|第一章3737逗号表达式的格式:逗号表达式的格式:逗号表达式的格式:逗号表达式的格式:表达式表达式表达式表达式1 1

42、 1 1,表达式,表达式,表达式,表达式2, ,2, ,2, ,2, ,表达式表达式表达式表达式n n n n逗号表达式的求解顺序及结果:逗号表达式的求解顺序及结果:逗号表达式的求解顺序及结果:逗号表达式的求解顺序及结果:先求解表达式先求解表达式先求解表达式先求解表达式1 1 1 1,再求解表达式,再求解表达式,再求解表达式,再求解表达式2 2 2 2,,最后最后最后最后求解表达式求解表达式求解表达式求解表达式n;n;n;n;逗号表达式的最终结果为表达式逗号表达式的最终结果为表达式逗号表达式的最终结果为表达式逗号表达式的最终结果为表达式n n n n的值。的值。的值。的值。实例实例实例实例:

43、: : :a=3*5,a*4 a=3*5,a*4 a=3*5,a*4 a=3*5,a*4 最终结果为最终结果为最终结果为最终结果为60606060x=(a=10,b=100,c=50)x=(a=10,b=100,c=50)x=(a=10,b=100,c=50)x=(a=10,b=100,c=50) 最终结果为最终结果为最终结果为最终结果为50505050y=(i+, j-, k+2)y=(i+, j-, k+2)y=(i+, j-, k+2)y=(i+, j-, k+2) 最终结果为最终结果为最终结果为最终结果为k+2k+2k+2k+21.3.6 1.3.6 逗号运算和表达式逗号运算和表达式C

44、程序设计|第一章3838自动转换:自动转换:当参加算术运算的数据类型不一当参加算术运算的数据类型不一致时低级向高级转换;赋值运算符两边的数据致时低级向高级转换;赋值运算符两边的数据类型不同时,将右侧表达式的值转换为左侧变类型不同时,将右侧表达式的值转换为左侧变量的类型量的类型强制转换:强制转换:强迫变量或表达式的值转换为某强迫变量或表达式的值转换为某一特定类型。常用在自动类型转换不能达到目一特定类型。常用在自动类型转换不能达到目的时。转换格式为:的时。转换格式为:( (类型说明符类型说明符) )变量变量 ( (类型说明符类型说明符)()(表达式表达式) )(double)a(double)a,

45、 (int)(x+y) (int)(x+y) ,(float)(5%3)(float)(5%3)1.3.7 1.3.7 数据类型转换数据类型转换转换不会改变转换不会改变转换不会改变转换不会改变变量定义时所规变量定义时所规变量定义时所规变量定义时所规定的数据类型定的数据类型定的数据类型定的数据类型C程序设计|第一章3939“=”“=”“=”“=”两侧类型不一致时,要将两侧类型不一致时,要将两侧类型不一致时,要将两侧类型不一致时,要将“=”=”=”=”右侧表达右侧表达右侧表达右侧表达式的值转换为式的值转换为式的值转换为式的值转换为“=”=”=”=”左侧变量的类型,右侧表达左侧变量的类型,右侧表达左

46、侧变量的类型,右侧表达左侧变量的类型,右侧表达式类型的字节超过变量类型的字节时会出错式类型的字节超过变量类型的字节时会出错式类型的字节超过变量类型的字节时会出错式类型的字节超过变量类型的字节时会出错整整整整实:实:实:实:截掉小数部分截掉小数部分截掉小数部分截掉小数部分实实实实整整整整:数值不变,存为浮点:数值不变,存为浮点:数值不变,存为浮点:数值不变,存为浮点整整整整charcharcharchar:整型低整型低整型低整型低8 8 8 8位位位位charcharcharchar整型整型整型整型( ( ( (字节数相同的字节数相同的字节数相同的字节数相同的)unsigned )unsigne

47、d )unsigned )unsigned 整型整型整型整型:原:原:原:原样送入。若超过整型表示范围会出错。样送入。若超过整型表示范围会出错。样送入。若超过整型表示范围会出错。样送入。若超过整型表示范围会出错。unsigned(unsigned(unsigned(unsigned(字节数相同的字节数相同的字节数相同的字节数相同的) ) ) )非非非非unsignedunsignedunsignedunsigned整型:整型:整型:整型:原样送入,符号位也作为数值原样送入,符号位也作为数值原样送入,符号位也作为数值原样送入,符号位也作为数值赋值时的类型转换赋值时的类型转换C程序设计|第一章40

48、40用于了解一个变量或某种类型的量在内存中所占用于了解一个变量或某种类型的量在内存中所占的字节数。它有以下两种用法:的字节数。它有以下两种用法:sizeof(sizeof(表达式表达式) )例如:例如:int x=1;int x=1; float y=5.0;float y=5.0; printf(“%d”,sizeof(x+y);printf(“%d”,sizeof(x+y);结果为:结果为:8 8sizeof(sizeof(类型名类型名) )例如:例如: printf(“%d”, sizeof(int)printf(“%d”, sizeof(int)结果为:结果为: 2 21.3.8 1.

49、3.8 容量运算符容量运算符 sizeofsizeofC程序设计|第一章4141顺序结构:先执行顺序结构:先执行A A操作再执行操作再执行B B操作,两者是操作,两者是顺序关系顺序关系 A AB BA AB BN-SN-S图图入口入口出口出口1.4 1.4 顺序结构顺序结构执行执行A A操作操作执行执行B B操作操作C程序设计|第一章4242例:例:交换交换a,ba,b变量的值变量的值main()main()int a=3,b=5,t;int a=3,b=5,t; t=a; t=a; a=b; a=b; b=t; b=t; printf(“a=%d,b=%dn”,a,b);printf(“a=

50、%d,b=%dn”,a,b); 顺序结构编程顺序结构编程C程序设计|第一章4343C C语言的语句用来向计算机发出操作指令。语言的语句用来向计算机发出操作指令。C C语句语句分为以下四类:分为以下四类:执行语句执行语句: :a+;a+;、printf(“ok”);printf(“ok”);等等声明声明语语句句:float x,y;float x,y;空语句:如:;空语句:如:;复合语句:即用大括号把一些语句括起来复合语句:即用大括号把一些语句括起来1.4.1 C1.4.1 C语句语句 int x=1 int x=1 int x=2; int x=2; int x=3; printf(“%dn”

51、,x); int x=3; printf(“%dn”,x); printf(“%dn”,x); printf(“%dn”,x); printf(“%dn”,x); printf(“%dn”,x); C程序设计|第一章44441.4.2 1.4.2 输入输入/ /输出函数输出函数C C C C语言本身没有输入语言本身没有输入语言本身没有输入语言本身没有输入/ / / /输出语句,所有输入输出语句,所有输入输出语句,所有输入输出语句,所有输入/ / / /输出输出输出输出都由函数来实现都由函数来实现都由函数来实现都由函数来实现C C C C语言的标准库函数语言的标准库函数语言的标准库函数语言的标准

52、库函数是由编译系统提供的一系列子程序是由编译系统提供的一系列子程序是由编译系统提供的一系列子程序是由编译系统提供的一系列子程序调用形式:调用形式:调用形式:调用形式: 函数名函数名函数名函数名( ( ( (参数表参数表参数表参数表) ) ) )输入输出函数在使用前须用预编译命令输入输出函数在使用前须用预编译命令输入输出函数在使用前须用预编译命令输入输出函数在使用前须用预编译命令“#include”#include”#include”#include”将将将将“stdio.h”stdio.h”stdio.h”stdio.h”头文件包含到头文件包含到头文件包含到头文件包含到用户的源文件中。即:用户

53、的源文件中。即:用户的源文件中。即:用户的源文件中。即: #include “stdio.h”#include “stdio.h”#include “stdio.h”#include “stdio.h”C程序设计|第一章4545格式输出函数:格式输出函数:printf(printf(“格式说明格式说明”,输出项目表,输出项目表) )功能:功能:按按“格式说明格式说明” 的输出格式,将的输出格式,将输出项目表中的各输出项依次输出到系统输出项目表中的各输出项依次输出到系统指定的缺省输出设备。指定的缺省输出设备。输出项目表输出项目表是用逗号分隔的是用逗号分隔的0 0n n个表达式个表达式“格式说明格

54、式说明”由由“% %”和格式字符组成,和格式字符组成,格式字符如表中所示格式字符如表中所示格式输出函数格式输出函数C程序设计|第一章4646附加格式字符可加在格式字符附加格式字符可加在格式字符d d、o o、x x、u u前前m: m: 一个正整数一个正整数, ,表示数据的最小宽度表示数据的最小宽度. .n: n: 一个正整数一个正整数, ,表示小数点后面的位数表示小数点后面的位数输出举例输出举例: :a=123;b=12345;a=123;b=12345;printf(“a=%4d,b=%4d”,a,b);printf(“a=%4d,b=%4d”,a,b); 输出输出: a= 123,b=1

55、2345: a= 123,b=12345j=586;y=3.1415;j=586;y=3.1415; printf(“%5dn”,j); printf(“%5dn”,j); 输出输出: : 586 586 printf(“%-5dn”,j); 586 printf(“%-5dn”,j); 586 printf(“%7.2fn”,y); 3.14 printf(“%7.2fn”,y); 3.14附加格式字符附加格式字符C程序设计|第一章4747格式输入函数:格式输入函数:格式输入函数:格式输入函数:scanf(“scanf(“scanf(“scanf(“格式说明格式说明格式说明格式说明”,地址表

56、列,地址表列,地址表列,地址表列) ) ) )功能:功能:功能:功能:从键盘上输入数据,并按照指定的输入从键盘上输入数据,并按照指定的输入从键盘上输入数据,并按照指定的输入从键盘上输入数据,并按照指定的输入格式把数据赋给相应的输入项格式把数据赋给相应的输入项格式把数据赋给相应的输入项格式把数据赋给相应的输入项“ “格式说明格式说明格式说明格式说明” ”由由由由“ “% % % %” ”和格式字符组成,如和格式字符组成,如和格式字符组成,如和格式字符组成,如%c,%d%c,%d%c,%d%c,%d地址表列地址表列地址表列地址表列由变量的地址组成,如:由变量的地址组成,如:由变量的地址组成,如:由

57、变量的地址组成,如:&a,&b&a,&b&a,&b&a,&b,& & & &是是是是取地址运算符取地址运算符取地址运算符取地址运算符实例:实例:实例:实例:scanf(“%d%d”,&a,&b);scanf(“%d%d”,&a,&b);scanf(“%d%d”,&a,&b);scanf(“%d%d”,&a,&b);scanf(“%d,%d”,&a,&b);scanf(“%d,%d”,&a,&b);scanf(“%d,%d”,&a,&b);scanf(“%d,%d”,&a,&b);scanf(“a=%d,b=%d”,&a,&b);scanf(“a=%d,b=%d”,&a,&b);scanf(“a

58、=%d,b=%d”,&a,&b);scanf(“a=%d,b=%d”,&a,&b);输入:输入:3 43 4输入:输入:3,43,4输入:输入:a=3,b=4a=3,b=4格式输入函数格式输入函数C程序设计|第一章4848main()main()main()main()char ch;char ch;char ch;char ch; int i; int i; int i; int i; float x; float x; float x; float x; scanf(“%c %d %f”,&ch,&i,&x); scanf(“%c %d %f”,&ch,&i,&x); scanf(“%c

59、%d %f”,&ch,&i,&x); scanf(“%c %d %f”,&ch,&i,&x); printf(“ch=%c i=%d x=%fn”,ch,i,x); printf(“ch=%c i=%d x=%fn”,ch,i,x); printf(“ch=%c i=%d x=%fn”,ch,i,x); printf(“ch=%c i=%d x=%fn”,ch,i,x); 输入:输入:d 23 12.345d 23 12.345输出:输出:ch=d i=23 x=12.345000ch=d i=23 x=12.345000输入:输入:d 23.645 12.345 d 23.645 12.34

60、5 输出:输出:ch=d i=23 x=0.645000ch=d i=23 x=0.645000输入数据时说明符间的字符也应该输入输入数据时说明符间的字符也应该输入输入的数据类型必须与格式说明的一致输入的数据类型必须与格式说明的一致输入数据的个数不能少于格式说明的个数输入数据的个数不能少于格式说明的个数输入输入/ /输出举例输出举例C程序设计|第一章4949编程编程编程编程: : : :计算从键盘输入的一个数的平方值和立方计算从键盘输入的一个数的平方值和立方计算从键盘输入的一个数的平方值和立方计算从键盘输入的一个数的平方值和立方值,并显示出来。值,并显示出来。值,并显示出来。值,并显示出来。输

61、入:输入:x=5x=5输出:输出:输入值输入值=5=5 平方值平方值=25=25 立方值立方值=125 =125 main() main() int x,y,z;int x,y,z; printf(“nx=”); printf(“nx=”); scanf(“%d”,&x); scanf(“%d”,&x); y=x*x; y=x*x; z=x*x*x; z=x*x*x; printf(“ printf(“输入值输入值=%dn”,x);=%dn”,x); printf(“ printf(“平方值平方值=%dn”,y);=%dn”,y); printf(“ printf(“立方值立方值= =%dn”

62、,z);%dn”,z); 输入输入/ /输出举例输出举例C程序设计|第一章5050编程编程编程编程: : : :将输入的小写字母转换为大写字母后显将输入的小写字母转换为大写字母后显将输入的小写字母转换为大写字母后显将输入的小写字母转换为大写字母后显示出来。示出来。示出来。示出来。输入:输入:c=ac=a输出:输出:输入字符输入字符=a=a 输出字符输出字符=A=A输入:输入:c=pc=p输出:输出:输入字符输入字符=p=p 输出字符输出字符=P=P若要把输入的大写字母转换为小写字母,应若要把输入的大写字母转换为小写字母,应如何修改程序?程序有何缺陷?如何修改程序?程序有何缺陷?main() m

63、ain() char c;char c; printf(“nc=”); printf(“nc=”); scanf(“%c”,&c); scanf(“%c”,&c); printf(“ printf(“输入字符输入字符=%cn”,c);=%cn”,c); printf(“ printf(“输出字符输出字符=%cn”,c-32);=%cn”,c-32);输入输入/ /输出举例输出举例C程序设计|第一章5151例例1.181.18 编一个程序,从键盘输入三角形的三条编一个程序,从键盘输入三角形的三条 边,计算三角形的面积。边,计算三角形的面积。求面积的公式:求面积的公式:area=area=s(s-

64、a)(s-b)(s-c)s(s-a)(s-b)(s-c)其中:其中:s=(a+b+c)/2s=(a+b+c)/2顺序结构程序常有以下几个步骤:顺序结构程序常有以下几个步骤:输入输入/ /输出举例输出举例#include “math.h” #include “math.h” main()main()float a,b,c,s,area;float a,b,c,s,area; printf(“ printf(“输入三角形的边输入三角形的边a,b,c=?”);a,b,c=?”); scanf(“%f,%f,%f”,&a,&b,&c); scanf(“%f,%f,%f”,&a,&b,&c); s=(a

65、+b+c)/2; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“printf(“三角形的面积三角形的面积=%5.2fn”,area); =%5.2fn”,area); C程序设计|第一章5252字符输出函数:字符输出函数:字符输出函数:字符输出函数:putchar(putchar(参数参数) )功能:功能:功能:功能:将一个字符从标准输出设备上输出将一个字符从标准输出设备上输出将一个字符从标准输出设备上输出将一个字符从标准输出设备上输出参数:参数:参数:参数:可以是可以是可以

66、是可以是intintintint型变量、字符型变量、字符码型变量、字符型变量、字符码型变量、字符型变量、字符码型变量、字符型变量、字符码或字符常量或字符常量或字符常量或字符常量返回值:返回值:返回值:返回值:正常时为写入的代码值,出错时为正常时为写入的代码值,出错时为正常时为写入的代码值,出错时为正常时为写入的代码值,出错时为EOFEOFEOFEOF(即(即(即(即-1-1-1-1),),),),intintintint型型型型例如:例如:例如:例如:设设设设ch=k,ch=k,ch=k,ch=k,则下列输出结果为:则下列输出结果为:则下列输出结果为:则下列输出结果为:putchar(ch);

67、putchar(ch);putchar(ch);putchar(ch); 输出字符输出字符输出字符输出字符k k k kputchar(n); putchar(n); putchar(n); putchar(n); 输出一个空行输出一个空行输出一个空行输出一个空行putchar(101);putchar(101);putchar(101);putchar(101); 输出字符输出字符输出字符输出字符A A A Aputchar(007); putchar(007); putchar(007); putchar(007); 响铃一次响铃一次响铃一次响铃一次字符输出函数字符输出函数C程序设计|第一

68、章5353字符输入函数字符输入函数字符输入函数:字符输入函数:字符输入函数:字符输入函数:getchar()getchar()getchar()getchar()功能:功能:功能:功能:从标准输入设备输入一个字符,并将该从标准输入设备输入一个字符,并将该从标准输入设备输入一个字符,并将该从标准输入设备输入一个字符,并将该字符的字符的字符的字符的ASCIIASCIIASCIIASCII码值作为函数的返回值,且常将码值作为函数的返回值,且常将码值作为函数的返回值,且常将码值作为函数的返回值,且常将此值赋给一个字符变量此值赋给一个字符变量此值赋给一个字符变量此值赋给一个字符变量无参数无参数无参数无参

69、数返回值:返回值:返回值:返回值:正常时为读到的代码值,出错时或遇正常时为读到的代码值,出错时或遇正常时为读到的代码值,出错时或遇正常时为读到的代码值,出错时或遇结束(结束(结束(结束(Ctrl+zCtrl+zCtrl+zCtrl+z)为)为)为)为EOFEOFEOFEOF(即(即(即(即-1-1-1-1), int, int, int, int型型型型执行执行执行执行getchargetchargetchargetchar函数时,程序将等待用户输入一函数时,程序将等待用户输入一函数时,程序将等待用户输入一函数时,程序将等待用户输入一个字符。当用户从键盘上输入一个字符并按下个字符。当用户从键盘

70、上输入一个字符并按下个字符。当用户从键盘上输入一个字符并按下个字符。当用户从键盘上输入一个字符并按下回车键后,程序才继续往下执行。回车键后,程序才继续往下执行。回车键后,程序才继续往下执行。回车键后,程序才继续往下执行。C程序设计|第一章5454字符输入字符输入/ /输出举例输出举例#include “stdio.h”#include “stdio.h”#include “stdio.h”#include “stdio.h”main()main()main()main()char c,c1,c2;char c,c1,c2;char c,c1,c2;char c,c1,c2; c=getchar

71、(); c=getchar(); c=getchar(); c=getchar(); c1=c+2; c1=c+2; c1=c+2; c1=c+2; c2=c1-1; c2=c1-1; c2=c1-1; c2=c1-1; putchar(c);putchar(c1); putchar(c);putchar(c1); putchar(c);putchar(c1); putchar(c);putchar(c1); putchar(n);putchar(c2); putchar(n);putchar(c2); putchar(n);putchar(c2); putchar(n);putchar(c2

72、); sleep(2); /* sleep(2); /* sleep(2); /* sleep(2); /*是系统调用,表示睡眠是系统调用,表示睡眠是系统调用,表示睡眠是系统调用,表示睡眠2 2 2 2秒钟秒钟秒钟秒钟* * * */ / / / putchar(007);putchar(n); putchar(007);putchar(n); putchar(007);putchar(n); putchar(007);putchar(n); putchar(101); putchar(101); putchar(101); putchar(101);输入:输入:A A输出:输出:ACAC B

73、 B A A隔隔2 2秒后响铃一次再输出秒后响铃一次再输出A AC程序设计|第一章55551.5 C1.5 C语言规约语言规约程序设计如同用自然语言来书写论文,编制程序程序设计如同用自然语言来书写论文,编制程序程序设计如同用自然语言来书写论文,编制程序程序设计如同用自然语言来书写论文,编制程序同样要讲求明晰、缜密、流畅。同样要讲求明晰、缜密、流畅。同样要讲求明晰、缜密、流畅。同样要讲求明晰、缜密、流畅。C C C C语言的规约不是强制性的,是约定俗成的风格。语言的规约不是强制性的,是约定俗成的风格。语言的规约不是强制性的,是约定俗成的风格。语言的规约不是强制性的,是约定俗成的风格。遵守规约的代

74、码,易被读懂,便于交流、维护、遵守规约的代码,易被读懂,便于交流、维护、遵守规约的代码,易被读懂,便于交流、维护、遵守规约的代码,易被读懂,便于交流、维护、合作。合作。合作。合作。良好的编程风格将有效地提升其程序的品质。良好的编程风格将有效地提升其程序的品质。良好的编程风格将有效地提升其程序的品质。良好的编程风格将有效地提升其程序的品质。C程序设计|第一章56561.5.1 1.5.1 基本规约基本规约 程序结构清晰易懂,单个函数的程序行数建议程序结构清晰易懂,单个函数的程序行数建议程序结构清晰易懂,单个函数的程序行数建议程序结构清晰易懂,单个函数的程序行数建议不得超过不得超过不得超过不得超过

75、100100100100行。行。行。行。 程序要力求简单,避免出现冗余的代码。程序要力求简单,避免出现冗余的代码。程序要力求简单,避免出现冗余的代码。程序要力求简单,避免出现冗余的代码。 尽量使用标准库函数和公共函数,如求解一个尽量使用标准库函数和公共函数,如求解一个尽量使用标准库函数和公共函数,如求解一个尽量使用标准库函数和公共函数,如求解一个数的平方根,可以直接引用数的平方根,可以直接引用数的平方根,可以直接引用数的平方根,可以直接引用math.hmath.hmath.hmath.h函数库中的函数库中的函数库中的函数库中的sqrtsqrtsqrtsqrt()()()()函数。函数。函数。函

76、数。 在表达式中多使用括号以避免二义性。在表达式中多使用括号以避免二义性。在表达式中多使用括号以避免二义性。在表达式中多使用括号以避免二义性。C程序设计|第一章57571.5.2 1.5.2 可读性规约可读性规约 理想情况,理想情况,注释行数(不包括程序头和函数头注释行数(不包括程序头和函数头说明部分)应占总行数的说明部分)应占总行数的 1/51/51/31/3,即,即100100行行程序至少有程序至少有2020行注释。行注释。 利用缩进来显示程序的逻辑结构,缩进量一致利用缩进来显示程序的逻辑结构,缩进量一致并以并以【TabTab】键(制表符)为单位。键(制表符)为单位。 循环、分支层次不要超

77、过循环、分支层次不要超过5 5层。层。 空行和空白字符也是一种特殊注释,即程序在空行和空白字符也是一种特殊注释,即程序在重要的转折与分界处建议添加空行或空白字符重要的转折与分界处建议添加空行或空白字符以以提升视觉的可读性提升视觉的可读性。C程序设计|第一章58581.5.3 1.5.3 结构化规约结构化规约 禁止出现两条等价的分支,避免不必要的禁止出现两条等价的分支,避免不必要的分支。分支。 尽量避免使用尽量避免使用gotogoto语句,该语句没有逻辑语句,该语句没有逻辑关系的约束,将破坏程序的结构。关系的约束,将破坏程序的结构。 尽量用尽量用switchcaseswitchcase语句实现多

78、路分支,语句实现多路分支,而避免使用而避免使用ifif的嵌套或的嵌套或else ifelse if链。链。 函数只有一个出口。函数只有一个出口。 (此部分规约在今后深入学习中再认真体会此部分规约在今后深入学习中再认真体会)C程序设计|第一章59591.5.4 1.5.4 正确性与容错性规约正确性与容错性规约 程序程序首先是正确,其次是优美首先是正确,其次是优美。 在编写完一段程序后,应先回头检查。在编写完一段程序后,应先回头检查。 所有变量在调用前必须被初始化,即完成所有变量在调用前必须被初始化,即完成赋值。赋值。 不要比较浮点数是否相等,不要比较浮点数是否相等, 如:如:10.0 * 0.1

79、 = 1.010.0 * 0.1 = 1.0不可靠。不可靠。C程序设计|第一章6060语法练习语法练习(单选题)(单选题)(单选题)(单选题)1.1. 哪一个是不合法的变量名?哪一个是不合法的变量名? A)A)Lad Lad B)B)n_10 n_10 C)C)_567 _567 D)D)g#k g#k 2.2.哪一个是合法的变量名哪一个是合法的变量名 ? ?A)A)May May B)B)7bn 7bn C)C)long long D)D)shortshort3.3. 哪一个是合法的关键字哪一个是合法的关键字 ? ?A)A)Float Float B)B)unsigned unsigned

80、C)C)integer integer D)D)CharChar4.4. 哪一个是非法的字符常量?哪一个是非法的字符常量? A)A)h h B)B)x7 x7 C)C) D)D)4834835.5. 不正确的字符串常量是哪个?不正确的字符串常量是哪个?A)A)abc abc B)B)”1212” ”1212” C)C)”0” ”0” D)D)“ ”“ ”C程序设计|第一章61612.2. main()main() int a,b; int a,b; a=32767; b=a+1; a=32767; b=a+1; printf(“a=%d, b=%dn”,a,b); printf(“a=%d,

81、b=%dn”,a,b); 3.3. main()main() float a,b; float a,b; a=123456.789e5; b=a+20; a=123456.789e5; b=a+20; printf(“a=%d, b=%dn”,a,b); printf(“a=%d, b=%dn”,a,b); 4.4. main()main() printf(“ ab ct derftgn”); printf(“ ab ct derftgn”); printf(“htibbj k”); printf(“htibbj k”); 语法练习语法练习(读程序)(读程序)(读程序)(读程序)C程序设计|第

82、一章62624 4输输入入一一个个华华氏氏温温度度F F,计计算算输输出出对对应应的的摄摄氏氏温温度度,公公式式为为:c=5(F-32)/9c=5(F-32)/9,要要求求输输入入要要有提示,输出要有说明,取两位小数。有提示,输出要有说明,取两位小数。要要求求:在在VCVC6.06.0环环境境下下,通通过过师师生生互互动动的形式完成该题的编程的形式完成该题的编程 编程练习编程练习C程序设计|第一章6363小结小结本章是入门篇,主要介绍了本章是入门篇,主要介绍了C C程序的基本程序的基本语法规则,基本数据类型的定义与使用,语法规则,基本数据类型的定义与使用,运算符和表达式的正确使用,以及输出运算符和表达式的正确使用,以及输出/ /输入函数的使用。同时也介绍了编制顺输入函数的使用。同时也介绍了编制顺序结构程序的方法。序结构程序的方法。C程序设计|第一章6464v复习教材第一章内容复习教材第一章内容v预习教材第二章内容预习教材第二章内容v上机实习内容:上机实习内容: 实验一实验一 熟悉开发环境熟悉开发环境实验二实验二 数据的基本操作数据的基本操作实验三实验三 数据的输入和输出数据的输入和输出v完成第一章的全部习题完成第一章的全部习题本章课后作业本章课后作业C程序设计|第一章

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号