1、课程要求课前请做好预习保持课堂安静,头脑清醒,思维活跃认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间参考书目nC程序设计 谭浩强 清华大学出版社nC语言程序设计何钦铭 颜 晖 高等教育出版社第0章 几个重要的术语概念1.数据 凡是能够被计算机接收、识别、处理的一切符号称之为数据。2.指令 在计算机中,指令指示计算机进行什么操作和操作什么。进行什么操作的符号叫操作码,操作的对象叫做操作数。3.程序 程序是为解决某一问题而设计的一系列指令,这些指令能被计算机识别和执行。人们设计程序的最终目的是用它来解决问题。4.程序设计 程序设计指设计、书写及检查程序的过程。具体来说是指包括分
2、析问题、确定解决方法、设计程序结构,使问题内容或解题计划变为计算机能够接受的指令或语句序列的过程。5.语言 语言用于传达信息的表示方法、约定和规则的集合,是人们交流信息的工具和媒介。程序设计语言是人与计算机打交道时交流信息的一类媒介和工具,它由语句组成,包含语法和语义两个方面。语法定义了构造语言表达式或句子所需要的各种规则。语义则是对构成语言成分的含义的定义和说明。C语言程序设计 第第0 0章章 C C语言概述语言概述第一章 C语言概述C语言发展历史C语言特点C程序格式和结构特点C程序开发步骤算法及其表示n1.1 C语言发展历史n程序设计语言的发展CPU指令系统,由0、1序列构成的指令码组成如
3、:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象 C语言程序设计 第一章第一章 C C语言概述语言概述5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPL BCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80
4、BASICANSI-BASICQBASIC VBFORTRAN90nC语言发展过程n产生背景n产生过程n时间:19721973n地点:美国贝尔实验室n目的:UNIX操作系统n设计人:Ken.Thompson和Dennis.M.RitchienC标准n标准C:K&R合著The C Programming LanguagenANSI C:1983年n87 ANSI C:1987年n1990年国际标准的ANSI C C语言程序设计 第一章第一章 C C语言概述语言概述n1.2 C语言特点n语言简洁、紧凑、灵活n运算符和数据类型丰富n程序设计结构化、模块化n生成目标代码质量高n可移植性好n语法限制不太
5、严格,程序设计自由度大nC语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作中级语言 C语言程序设计 第一章第一章 C C语言概述语言概述32个关键字个关键字:(由系统定义,不能重作其它定义由系统定义,不能重作其它定义由系统定义,不能重作其它定义由系统定义,不能重作其它定义)auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static struc
6、tswitch typedef unsigned union voidvolatile while C语言程序设计 第一章第一章 C C语言概述语言概述9 9种控制语句种控制语句:if()elsefor()while()dowhile()continuebreakswitchgotoreturn C语言程序设计 第一章第一章 C C语言概述语言概述例例 C语言与语言与Pascal语言比较语言比较C语言语言 Pascal语言语言 含义含义 BEGIN.END 复合语句复合语句if(e)s;IF(e)THEN s 条件语句条件语句int i;VAR i:INTEGER 定义定义i为整型变量为整型变
7、量 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比比 Pascal简练,源程序短简练,源程序短。C语言程序设计 第一章第一章 C C语言概述语言概述3434种运算符:种运算符:算术运算符:算术运算符:+-*/%+-+-*/%+-关系运算符:关系运算符:=!=!=逻辑运
8、算符:!逻辑运算符:!&|&|位运算符位运算符 :|&|&赋值运算符:赋值运算符:=及其扩展及其扩展条件运算符:条件运算符:?:?:逗号运算符:逗号运算符:,指针运算符:指针运算符:*&求字节数求字节数 :sizeofsizeof强制类型转换:强制类型转换:(类型)类型)分量运算符:分量运算符:.-.-下标运算符:下标运算符:其它其它 :()-()-C语言程序设计 第一章第一章 C C语言概述语言概述C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void定义类型定义类型typedef数值类型数值类型字符类型字符类型char枚举类型枚举类型enum整整 型型浮
9、点型浮点型单精度型单精度型float双精度型双精度型double短整型短整型short长整型长整型long整型整型int数组数组结构体结构体struct共用体共用体union C语言程序设计 第一章第一章 C C语言概述语言概述1.3 C程序格式和结构特点例例1.1 1.1 第一个程序第一个程序 Hello,World!Hello,World!/*example1.1 The first C Program*/#include void main()printf(“Hello,World!”);C语言程序设计 第一章第一章 C C语言概述语言概述注释编译预处理函数语句输出:输出:Hello,W
10、orld!例1.2/*example1.1 calculate the sum of a and b*/#include/*This is the main program */void main()int a,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%dn,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函数语句预处理命令注释 C语言程序设计 第一章第一章 C C语言概述语言概述n格式特点
11、n习惯用小写字母,大小写敏感n不使用行号,无程序行概念n可使用空行和空格n常用锯齿形书写格式 C语言程序设计 第一章第一章 C C语言概述语言概述main().#include void main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);优秀程序员的素质之一:使用TAB缩进对齐有足够的注释有合适的空行n结构特点n函数与主函数n程序由一个或多个函数组成n必须有且只能有一个主函数main()n程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。n程序语句nC程序由语句
12、组成(可分多行书写)n用“;”作为语句终止符n注释n/*/为注释,不能嵌套n不产生编译代码例:/*This is the main /*of example1.1*/*/非法v编译预处理命令 C语言程序设计 第一章第一章 C C语言概述语言概述编辑编辑链接链接编译编译执行执行1.4 C程序的开发步骤C程序开发步骤file.exe C语言程序设计 第一章第一章 C C语言概述语言概述程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe1.4 算法及其表示什么是程序?沃思(N.Wirth)公式:数据结构+算法=程序数据结构(D
13、ata Structure):对数据的数据类型、组成形式、相互关系等的描述算法(Algorithm):对数据结构的操作的描述一般认为:程序=数据结构+算法+程序设计方法+语言工具和环境什么是算法?n算法是解决问题的方法和步骤在计算机上的表示n任何问题的求解都有一定的“算法”n计算机算法有很大不同n 算法是人设计出来的n 计算机算法是严谨的n算法可分为两类:n 数值运算算法:主要用于科学运算n 非数值运算算法:如信息检索、人工智能等算法的特性n有零个或多个执行算法所需要的数据作为输入n有一个或多个经算法处理的数据作为输出n包含有限个步骤,执行算法的时间也是有限时间n算法的每一步所规定的动作应该是
14、唯一确定的,没有二义的。n算法的每个步骤都应当能有效地执行,并得到确定的结果例:求s=1+2+3+100问题:求100个整数的和s,结果是s 这100个整数是从1到100的所有自然数算法一:设算法一:设 s 为累加单元为累加单元1)将将1送到送到S中;中;2)把把2加到加到S中(即中(即S中的内容中的内容1加加2后再送回后再送回S中,下同)中,下同)3)把把3加到加到S中;中;100)把把100加到加到S中;中;101)把把S中的结果输出。中的结果输出。例:求s=1+2+3+100问题:求100个整数的和s,结果是s 这100个整数是从1到100的所有自然数算法二:设算法二:设 n 为计数单元
15、,为计数单元,s 为累加单元为累加单元1)将将 0 送到送到S中,将中,将 0 送到送到 n 中;中;2)将将 n+1 送到送到 n 中,再把中,再把 n 加到加到 s 中;中;3)判断判断 n 的值是否大于等于的值是否大于等于100?4)若若 n sumPRINT a,+,b,=,sumEND2)流程图起止框处理框输入/出框判断框流程线基本图件1=SS+2=SS+3=SS+100=S输出 S0=S,nn+1=nS+n=S输出 Sn SS+2=SS+3 =SS+100 =S输出 S0 =n0=Sn n S+n=S小结理解重要的基本术语和概念了解C语言的特点掌握C程序的格式特点和结构特点了解C程序的开发步骤算法及其表示