程序设计和C语言_第1页
程序设计和C语言_第2页
程序设计和C语言_第3页
程序设计和C语言_第4页
程序设计和C语言_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 C语语言程序言程序设计设计信息信息学学院院计计算机系算机系耿霞耿霞第第1章章 程序程序设计设计和和C语语言言 什什么么是是计计算机程序算机程序1 什什么么是是计计算机算机语语言言 2 C语语言的言的发发展及其特点展及其特点3 最最简单简单的的C语语言程序言程序4 运运行行C程序的步程序的步骤与骤与方法方法5 程序程序设计设计的任的任务务6什么是计算机程序什么是计算机程序n计算机与程序计算机与程序: :要让计算机按照人们的愿望工作,要让计算机按照人们的愿望工作,必须由人们事先编制好程序,并输入到计算机,必须由人们事先编制好程序,并输入到计算机,让计算机执行程序才能产生相应的操作结果。让计算机执

2、行程序才能产生相应的操作结果。n所谓所谓程序程序,就是一组计算机能识别和执行的指令。,就是一组计算机能识别和执行的指令。n只要让计算机执行这个程序,计算机就会只要让计算机执行这个程序,计算机就会自动地自动地、有条不紊地有条不紊地进行工作。进行工作。n程序程序是计算机的是计算机的“灵魂灵魂”,计算机的一切操作都,计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。是由程序控制的,离开程序,计算机将一事无成。第第1章章 程序程序设计设计和和C语语言言 什什么么是是计计算机程序算机程序1 什什么么是是计计算机算机语语言言 2 C语语言的言的发发展及其特点展及其特点3 最最简单简单的的C语语

3、言程序言程序4 运运行行C程序的步程序的步骤与骤与方法方法5 程序程序设计设计的任的任务务6什么是计算机语言什么是计算机语言面向过程面向过程面向对象面向对象机器语言机器语言指令系统,由指令系统,由0 0、1 1序列构成的指令码组成序列构成的指令码组成如:如:10000000 10000000 加加 10010000 10010000 减减用助记符号描述的指令系统用助记符号描述的指令系统如如 ADD A,BADD A,B接近于人的自然语言和数学语言,高级语接近于人的自然语言和数学语言,高级语言易懂,也不难编写。基本上不言易懂,也不难编写。基本上不依赖于具体的机型。如依赖于具体的机型。如BASIC

4、BASIC、C C、PASCALPASCAL等等机机器器语语言言汇汇编编语语言言高高级级语语言言面向机器的语言,是面向机器的语言,是低级语言低级语言什么是计算机语言什么是计算机语言注意注意用高级语言编写的程序,计算机是不能直接用高级语言编写的程序,计算机是不能直接识别和执行的识别和执行的( (计算机只能直接识别二进制的计算机只能直接识别二进制的指令指令) ),必须事先把用高级语言编写的程序翻必须事先把用高级语言编写的程序翻译成机器语言程序译成机器语言程序,这个,这个“翻译翻译”工作是由工作是由称为称为“编译程序编译程序”的软件来实现的。的软件来实现的。 第第1章章 程序程序设计设计和和C语语言

5、言 什什么么是是计计算机程序算机程序1 什什么么是是计计算机算机语语言言 2 C语语言的言的发发展及其特点展及其特点3 最最简单简单的的C语语言程序言程序4 运运行行C程序的步程序的步骤与骤与方法方法5 程序程序设计设计的任的任务务6C语言的发展及其特点语言的发展及其特点发展发展nC C语言是在语言是在B B语言的基础上发展起来的语言的基础上发展起来的nB B(在(在BCPLBCPL语言基础上发展)语言是语言基础上发展)语言是19701970年由美国贝尔实年由美国贝尔实验室设计的验室设计的, , 并用于编写了第一个并用于编写了第一个UNIXUNIX操作系统。优点:操作系统。优点:简单简单, ,

6、接近硬件,缺点:过于简单接近硬件,缺点:过于简单, ,功能有限功能有限n19721972年至年至19731973年贝尔实验室的年贝尔实验室的D.M.Ritchie D.M.Ritchie 在在B B语言的基语言的基础上设计出了础上设计出了C C语言,并用之改写了原来的语言,并用之改写了原来的UNIXUNIXn随着随着UNIXUNIX在各种机器上实现在各种机器上实现 ,C C语言也迅速得到推广,语言也迅速得到推广,其发展相辅相成其发展相辅相成n19781978年以后,年以后,C C语言先后移植到大、中、小、微型计算机语言先后移植到大、中、小、微型计算机上,风靡世界上,风靡世界, ,成为最广泛的几

7、种计算机语言之一成为最广泛的几种计算机语言之一n常见的常见的C C语言版本有语言版本有Quick CQuick C、Turbo CTurbo C、Borland CBorland CC语言的发展及其特点语言的发展及其特点发展发展n19831983年,美国国家标准协会年,美国国家标准协会(ANSI)(ANSI)成立了一个委员会,成立了一个委员会,根据根据C C语言问世以来各种版本对语言问世以来各种版本对C C语言的发展和扩充,制语言的发展和扩充,制定了第一个定了第一个C C语言标准草案语言标准草案(83 ANSI C)(83 ANSI C)。n19891989年,年,ANSIANSI公布了一个完

8、整的公布了一个完整的C C语言标准语言标准ANSI ANSI X3.159-1989(X3.159-1989(常称常称ANSI CANSI C,或,或C89C89) )。n19991999年,年,ISOISO又对又对C C语言标准进行修订,在基本保留原来语言标准进行修订,在基本保留原来的的C C语言特征的基础上,针对应用的需要,增加了一些功语言特征的基础上,针对应用的需要,增加了一些功能,尤其是能,尤其是C+C+中的一些功能,命名为中的一些功能,命名为ISO/IEC ISO/IEC 9899:19999899:1999。nISO/IEC 9899:1999(ISO/IEC 9899:1999(

9、及其技术修正及其技术修正) )被称为被称为C99C99。C99C99是是C89C89的扩充。的扩充。C语言的发展及其特点语言的发展及其特点发展发展n本书的叙述以本书的叙述以C99C99标准为依据(对标准为依据(对C99C99新增加的功能作新增加的功能作特别的说明)。特别的说明)。n目前不同软件公司提供的各目前不同软件公司提供的各C C语言编译系统多数并未语言编译系统多数并未完全实现完全实现C99C99建议的功能建议的功能n本书中程序基本上都可以在目前所用的编译系统本书中程序基本上都可以在目前所用的编译系统( (如如VC+ 6.0VC+ 6.0,Turbo C+ 3.0,GCC)Turbo C+

10、 3.0,GCC)上编译和运行。上编译和运行。C语言的发展及其特点语言的发展及其特点特点特点中级语言中级语言n语言简洁、紧凑、灵活语言简洁、紧凑、灵活n运算符和数据类型丰富运算符和数据类型丰富n程序设计结构化、模块化程序设计结构化、模块化n生成目标代码质量高生成目标代码质量高n可移植性好可移植性好n允许直接访问物理地址允许直接访问物理地址, ,可直接对硬件进行操可直接对硬件进行操作。兼有高级和低级语言的功能作。兼有高级和低级语言的功能 n语法限制不太严格,程序设计自由度大语法限制不太严格,程序设计自由度大C语言的发展及其特点语言的发展及其特点特点特点3737个关键字个关键字:( (auto b

11、reak case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile whileC语言的发展及其特点语言的发展及其特点特点特点 C语言语言 Pascal语言语言 含义含义 BEGIN.END 复合语句复合语句if(e) s; IF(e) THEN s 条件语句条件语句int i ; VAR i:INTEGER

12、 定义定义i为整型变量为整型变量 int a10; VAR a:ARRAY1.10 OF INTEGER 定义整型数组定义整型数组aint f(); FUNCTION f():INTEGER 定义定义f为返值整型的函数为返值整型的函数int *p; VAR p: INTEGER 定义定义p为指向整型变量的指针为指向整型变量的指针i+= 2; i=i+2 赋值赋值i+2ii+,+i; i=i+1 i自增值自增值C语言的发展及其特点语言的发展及其特点特点特点3434种运算符:种运算符:算术运算符:算术运算符:+ - + - * * / % + - / % + -关系运算符:关系运算符: = !=

13、= !=逻辑运算符:!逻辑运算符:! & |& |位运算符位运算符 : | & | &赋值运算符:赋值运算符:= = 及其扩展及其扩展条件运算符:条件运算符:?:?:逗号运算符:逗号运算符:, ,指针运算符:指针运算符:* * & &求字节数求字节数 :sizeofsizeof强制类型转换:强制类型转换:( (类型)类型)分量运算符:分量运算符:. -. -下标运算符:下标运算符:其它其它 :( ) -( ) -C语言的发展及其特点语言的发展及其特点特点特点C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void

14、void定义类型定义类型typedeftypedef数值类型数值类型字符类型字符类型charchar枚举类型枚举类型enumenum整整 型型浮点型浮点型单精度型单精度型floatfloat双精度型双精度型doubledouble短整型短整型shortshort长整型长整型longlong整型整型intint数组数组结构体结构体structstruct共用体共用体unionunionC语言的发展及其特点语言的发展及其特点特点特点9 9种控制语句种控制语句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn第第1章章 程序

15、程序设计设计和和C语语言言 什什么么是是计计算机程序算机程序1 什什么么是是计计算机算机语语言言 2 C语语言的言的发发展及其特点展及其特点3 最最简单简单的的C语语言程序言程序4 运运行行C程序的步程序的步骤与骤与方法方法5 程序程序设计设计的任的任务务6最简单的最简单的C语言程序举例语言程序举例例例1.11.1要求在屏幕上输出以下一行信息。要求在屏幕上输出以下一行信息。 This is a C program. This is a C program.解题思路:解题思路: 在主函数中用在主函数中用printfprintf函数原样输出以上函数原样输出以上 文字。文字。最简单的最简单的C语言程

16、序举例语言程序举例#include int main( ) printf (”This is a C program.n”); return 0; 函数的名字,表示函数的名字,表示主函数主函数C程序必须有程序必须有且仅有且仅有一个一个 main 函数函数例例1.11.1最简单的最简单的C语言程序举例语言程序举例例例1.11.1#include int main( ) printf (”This is a C program.n”); return 0; 主函数主函数类型类型当当main函数执行结束前将整数函数执行结束前将整数0作作为函数值,返回到调用函数处为函数值,返回到调用函数处最简单的最简

17、单的C语言程序举例语言程序举例例例1.11.1#include int main( ) printf (”This is a C program.n”); return 0; 函数体函数体 是函数开始和结束的标志是函数开始和结束的标志,不可省不可省最简单的最简单的C语言程序举例语言程序举例例例1.11.1#include int main( ) printf (”This is a C program.n”); return 0; 输出函数输出函数输出语句输出语句每个每个C语句以分号结束语句以分号结束最简单的最简单的C语言程序举例语言程序举例例例1.11.1#include int main(

18、 ) printf (”This is a C program.n”); return 0; 换行符换行符最简单的最简单的C语言程序举例语言程序举例例例1.11.1#include int main( ) printf (”This is a C program.n”); return 0; 用到函数库中的输入输出函数用到函数库中的输入输出函数时时最简单的最简单的C语言程序举例语言程序举例C C语言允许用两种注释方式:语言允许用两种注释方式:v/:单行注释单行注释n可单独占一行可单独占一行n可可出现在一行中其他内容的右侧出现在一行中其他内容的右侧v/ /* * */ /:块式注释块式注释n可包

19、含多行可包含多行注释只是给人看的注释只是给人看的, ,用来提高程序的可读性用来提高程序的可读性。对编译和运行不起作用。对编译和运行不起作用, ,不产生编译代码。所不产生编译代码。所以可以用汉字或英文字符表示,注释可以出现以可以用汉字或英文字符表示,注释可以出现在程序中任意行的位置。在程序中任意行的位置。最简单的最简单的C语言程序举例语言程序举例n/ /* * * */ /为注释为注释, ,不能嵌套不能嵌套n/ /* *”和和“* */” /” 必须成对使用,且必须成对使用,且“/”/”和和“* *”、以及、以及“* *”和和“/”/”之间不能有空格,之间不能有空格,否则都出错否则都出错例:例:

20、 /*This is the main /* of example1.1*/ */ 非法非法最简单的最简单的C语言程序举例语言程序举例例例1.21.2求两个整数之和。求两个整数之和。最简单的最简单的C语言程序举例语言程序举例例例1.21.2#include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf(”sum is %dn”,sum); return 0; 定义整型变量定义整型变量a,b,sum对变量对变量a,b赋值赋值将将a与与b的的和赋给和赋给sum最简单的最简单的C语言程序举例语言程序举例例例1.21.2#

21、include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf(”sum is %dn”,sum); return 0; 希望输出的字符希望输出的字符用用sum的值的值替代替代最简单的最简单的C语言程序举例语言程序举例例例1.31.3求两个整数中的较大者。求两个整数中的较大者。解题思路:解题思路:u用一个函数实现求两个整数中的较大者用一个函数实现求两个整数中的较大者u在主函数中调用此函数并输出结果在主函数中调用此函数并输出结果#include int main( ) int max(int x,int y); int

22、 a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);主函数主函数max函数函数#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,i

23、nt y) int z; if (x y) z = x; else z = y; return(z);将将x和和y中较大者中较大者值值返回给主函数返回给主函数#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);#include int main( ) int max(

24、int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);因因max函数的定义函数的定义在在main函数之后函数之后,需声明,需声明#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); pr

25、intf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);输入函数输入函数#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);输入语句输入语句

26、#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);输入的数据输入的数据放到放到a,b中中输入格式输入格式a的地址的地址#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a

27、,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);调用调用max函数函数#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; e

28、lse z = y; return(z);8588#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);8588#include int main( ) int max(int x,int y); int a,b,c; scanf(”%d,%d”,&a,&

29、;b); c = max(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if (x y) z = x; else z = y; return(z);实际参数实际参数形式参数形式参数C语言程序的结构语言程序的结构u 小程序往往只包括一个源程序文件小程序往往只包括一个源程序文件例例1.11.1,例,例1.21.2只有一个函数只有一个函数例例1.31.3有两个函数有两个函数C C语言程序的结构特点:语言程序的结构特点:只包括一个源程序文件只包括一个源程序文件1.1.一个程序由一个或多个源程序文件组成一个程序由一个或多个源程

30、序文件组成C语言程序的结构语言程序的结构u 一个源程序文件中可以包括三个部分:一个源程序文件中可以包括三个部分:预处理指令预处理指令全局声明全局声明函数定义函数定义C C语言程序的结构特点:语言程序的结构特点:#include 等等在函数之外进行的数据声明在函数之外进行的数据声明每个函数用来实现一定的功能每个函数用来实现一定的功能1.1.一个程序由一个或多个源程序文件组成一个程序由一个或多个源程序文件组成C语言程序的结构语言程序的结构u 一个一个C C程序是由一个或多个函数组成的程序是由一个或多个函数组成的u 必须包含一个必须包含一个mainmain函数(只能有一个)函数(只能有一个)u 每个

31、函数都用来实现一个或几个特定功能每个函数都用来实现一个或几个特定功能u 被调用的函数可以是库函数,也可以是自己编被调用的函数可以是库函数,也可以是自己编制设计的函数制设计的函数C C语言程序的结构特点:语言程序的结构特点:2.2.函数是函数是C C程序的主要组成部分程序的主要组成部分C语言程序的结构语言程序的结构u 程序执行从程序执行从mainmain函数函数开始,在开始,在mainmain函数函数中结束中结束,其它函数通过嵌套调用得以执行其它函数通过嵌套调用得以执行u C C语言程序总是从语言程序总是从main()main()函数开始执行而函数开始执行而不论其不论其在程序中的位置在程序中的位

32、置。当主函数执行完毕时,亦即。当主函数执行完毕时,亦即程序执行完毕。程序执行完毕。习惯上,将主函数习惯上,将主函数main()main()放在最前头。放在最前头。C C语言程序的结构特点:语言程序的结构特点:2.2.函数是函数是C C程序的主要组成部分程序的主要组成部分C语言程序的结构语言程序的结构C C语言程序的结构特点:语言程序的结构特点:3 3. . 一个函数包括两个部分:一个函数包括两个部分:函数函数首部和函数体首部和函数体 例如例如, int max ( int x, int y ) 函数首部函数首部若函数无参,在括弧中写若函数无参,在括弧中写voidvoid或空括弧或空括弧函数体函

33、数体函数类型函数类型 函数名函数名(函数参数表函数参数表) 声明部分;声明部分; 执行部分;执行部分; 函数类型函数类型函数名函数名参数类型参数类型参数参数名名int main( void) 或或 int main()C语言程序的结构语言程序的结构u 函数体函数体声明部分声明部分:定义所用到的变量和对所调用函数定义所用到的变量和对所调用函数的声明的声明执行部分执行部分:由若干个语句组成,指定在函数中:由若干个语句组成,指定在函数中所进行的操作所进行的操作例:例: int main() int a,b; a=10; b=16; printf(”a= %dn,a); printf(”b= %dn,

34、b); 执行部分执行部分声明部分声明部分C语言程序的结构语言程序的结构(1 1)函数体中的声明部分(如变量定义等),必须)函数体中的声明部分(如变量定义等),必须在所有可执行部分之前。在所有可执行部分之前。 试判断:试判断: void main() int a; a=10; printf(”a= %dn,a); int b; b=16; printf(”b= %dn,b); C语言程序的结构语言程序的结构(2 2)如果不需要,也)如果不需要,也可以缺省声明部分可以缺省声明部分。甚至可以。甚至可以既无声明部分,又无执行部分。既无声明部分,又无执行部分。 例:例: void dump( ) 这是一

35、个空函数这是一个空函数, ,什么也不做什么也不做, ,但是合法的函数。但是合法的函数。 C语言程序的结构语言程序的结构u 一行内可以写几个语句一行内可以写几个语句u 一个语句可以分写在多行上一个语句可以分写在多行上u 为清晰起见,习惯上每行只写一个语句为清晰起见,习惯上每行只写一个语句C C语言程序的结构特点:语言程序的结构特点:4. C4. C程序书写格式是比较自由的程序书写格式是比较自由的C语言程序的结构语言程序的结构u 分号是分号是C C语句的必要组成部分语句的必要组成部分u 即使是程序中最后一个语句也应包含分号即使是程序中最后一个语句也应包含分号C C语言程序的结构特点:语言程序的结构

36、特点:5. 5. 在每个数据声明和语句的最后必须有分号在每个数据声明和语句的最后必须有分号6. C6. C语言本身不提供输入输出语句语言本身不提供输入输出语句u 输入和输出的操作是由库函数输入和输出的操作是由库函数scanfscanf和和printfprintf等等函数来完成的函数来完成的u C C对输入输出实行对输入输出实行“函数化函数化”7. 7. 程序应当包含注释程序应当包含注释C语言程序的结构语言程序的结构u 逗号主要用在类型说明和函数参数表中,分隔各个逗号主要用在类型说明和函数参数表中,分隔各个变量变量u 空格多用于语句各单词之间,作间隔符空格多用于语句各单词之间,作间隔符u 在关键字和标识符之间必须要有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论