1、程序设计基础程序设计基础C C程序设计程序设计舒玉舒玉课前做好预习课前做好预习做好课程笔记做好课程笔记保持课堂安静,思维活跃,积极回答问题保持课堂安静,思维活跃,积极回答问题认真认真、独立独立、按时按时完成并提交作业完成并提交作业重视上机实践,有效利用宝贵的上机时间重视上机实践,有效利用宝贵的上机时间作业必须经作业必须经上机调试通过上机调试通过课程要求本课程对学生的要求本课程对学生的要求n请勿迟到和早退 n进行必要的预习、认真听课和作必要的笔记 n课后请及时复习 n请勿在教室吃东西和乱丢纸屑 n认真按时完成上机练习与上机作业,不允许请人代做或代他人做作业,不允许直接抄袭他人的作业n作业要写在笔
2、记本上,上机时用红笔写错。n提倡在上机练习时互相帮助,最大限度利用Internet协作学习,包括利用Web论坛、专题组、BBS和QQ等互助与讨论,以及留下您的建设性意见 教材内容剖析教材内容剖析程序的组织程序的组织基本数据类型和表达式基本数据类型和表达式基本流程结构基本流程结构高级数据类型高级数据类型3、4、5726、8、9第第1章章 C语言概述语言概述文件文件10C语语言言数据结构数据结构算法的实现算法的实现基本数据类型基本数据类型构造数据类型构造数据类型数组数组结构体结构体指针指针共用体共用体顺序程序设计顺序程序设计选择程序设计选择程序设计循环控制循环控制函数函数第2章第6章第8章第9章第
3、3章第4章第5章第7章重点重点重点重点熟悉熟悉了解了解C语言主要内容剖析语言主要内容剖析程序和程序设计语言程序和程序设计语言n什么是程序?n什么是程序设计语言?“日常程序日常程序”实例实例n学生早上起床后的行为:1.起床2.刷牙3.洗脸4.吃饭5.上课特点:特点:简单、顺序形、直线形“日常程序日常程序”实例实例n到图书馆借教学参考书:1.进入图书馆2.查书目3.填写索书单4.交图书馆工作人员取书5.如果该书已借出,可以有两种选择5.1回到第2步(进一步查找其他参考书目)5.2放弃借书,离开图书馆6.(找到要借的书)办理借书手续7.离开图书馆特点:特点:复杂、非平铺直叙程序的概念程序的概念n什么
4、是程序?什么是程序?工作(事务、活动)过程的细节动作描述工作(事务、活动)过程的细节动作描述就是一个程序。就是一个程序。人们为解决某种问题用计算机可以识别人们为解决某种问题用计算机可以识别的代码编排的一系列加工步骤。的代码编排的一系列加工步骤。程序的执行过程实际上是对程序所表达程序的执行过程实际上是对程序所表达的数据进行处理的过程。的数据进行处理的过程。n计算机因计算机因“程序程序”而而“神奇神奇”正是各种各样的程序让计算机具有了正是各种各样的程序让计算机具有了“聪明聪明”与与“智慧智慧”,让它能够完成各种不同的工作。,让它能够完成各种不同的工作。日常程序日常程序 计算机程序计算机程序n执行者
5、:人n描述:自然语言n基本动作:一句话n执行者:计算机n描述:程序设计语言n基本动作:一条指令程序设计语言程序设计语言n概念概念 为了与计算机交流,指挥计算机工作,所使用的描述计算机程序的语言。提供了一种表达数据与处理数据的功能要求程序员按照语言的规范编程n特点特点“人造”语言,不仅人懂得,计算机也“懂得”它。程序设计语言的发展程序设计语言的发展n机器语言n汇编语言n高级语言计算 a x b+c00000000100000010000将单元1000的数据装入寄存器000000000100000100010将单元1010的输入装入寄存器100000010100000000001将寄存器1的数据乘
6、到寄存器0的原有数据上00000001001000000100将单元1100的输入装入寄存器100000100000010000011将寄存器1的数据加到寄存器0的原有数据上00000010000000111000将寄存器0里的数据存入单元1110Load 0 a 将单元a的数据装入寄存器0Load 1 b 将单元b的数据装入寄存器1Mult 0 1 将寄存器1的数据乘到寄存器0的原有数据上Load 1 c 将单元c的数据装入寄存器1Add 0 1 将寄存器1的数据加到寄存器0的原有数据上save 0 d 将寄存器0里的数据存入单元dd=a*b+c;机器语言机器语言汇编语言汇编语言高级语言高级
7、语言高级语言高级语言n常规的常规的Fortran、C+、Pascal、Java等n非常规非常规Lisp、SmallTalk、Prolog、ML等C思考:思考:为什么要学习C语言,而不是其它高级语言?关于描述程序关于描述程序n程序的基本指令有哪些?n对描述语言的要求有哪些?n程序的细节分解到那个层次合适?早起活动起床刷牙洗脸吃早饭上课拿饭盒排队买饭吃饭洗碗去食堂排队选菜刷卡有利于理解程序细节有利于发现程序中的错误易于根据需要修改编程应该从问题的需求出发,从高层开始设计程序,并逐步分解程序的功能。优点:结论:返回思考:思考:计算机只懂机器语言,那高级语言计算机如何懂呢?编程语言的加工、处理编程语言
8、的加工、处理n机器语言n汇编语言n高级语言高级语言系统高级语言系统n编译编译 编写编写源程序,由翻译软件源程序,由翻译软件翻译翻译,再命令,再命令计算机计算机执行执行n解释解释 编写编写源程序,交给运行着源程序,交给运行着解释解释软件的计软件的计算机,即可算机,即可边解释边执行边解释边执行。C程序的加工和执行程序的加工和执行C源源程程序序目目标标模模块块可可执执行行程程序序编译编译连接连接运行系统运行系统C语言函数库语言函数库编写源程序编译连接执行例例1.1 1.1 第一个程序第一个程序 Welcome!Welcome!/*example1.1 The first C Program*/#in
9、clude main()printf(“Welcome!”);注释编译预处理函数语句输出:输出:Welcome!Welcome!1.3 C程序格式和结构特点例1.2/*example1.1 calculate the sum of a and b*/#include/*This is the main program */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=
10、x+y;return(z);运行结果:sum=34函数语句预处理命令注释n习惯用小写字母,大小写敏感n不使用行号,无程序行概念n可使用空行和空格n常用锯齿形书写格式main().main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);优秀程序员的素质之一:使用TAB缩进 对齐 有足够的注释 有合适的空行格式特点main()/*定义变量*/int i;/*xxxxx*/int j;/*xxxxx*/int sum;/*xxxxx*/*初始化变量*/sum=0;/*开始处理*/for(i=1;
11、i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);难读易错不规范n函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。n程序语句C程序由语句组成用“;”作为语句终止符n注释/*/为注释,不能嵌套不产生编译代码例:/*This is the main /*of example1.1*/*/非法n编译
12、预处理命令结构特点编辑链接编译执行1.4 C程序的上机步骤C程序开发步骤 开 始 编 辑 编 译 连 接 执 行 有错?结果正确?结 束有源程序 file.c目 标 程序file.obj库函数和其它目标程序可执行目标程序无正确不正确file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe源程序目标程序可执行程序内容程序设计语言机器语言机器语言可执行不可以不可以可以文件名后缀.c.obj.exe重点重点理解理解回顾本章主要介绍的内容:回顾本章主要介绍的内容:n什么是程序什么是程序n什么是程序设计语言什么是程序设计
13、语言n高级语言的实现高级语言的实现 nC C语言的加工处理语言的加工处理nC C程序集成开发环境程序集成开发环境VC+6.0 VC+6.0 或或Turbo CTurbo C作业作业1、熟悉、熟悉C上机步骤上机步骤2、实验一3、预习第二章内容集成开发环境集成开发环境返回集成开发环境集成开发环境1、启动Turbo C(上机课演示)2、如何用键盘操作菜单3、编辑源程序4、保存程序5、程序编译与连接6、运行程序7、退出Turbo C如何用键盘操作菜单如何用键盘操作菜单n热键 窗口上方的下拉菜单中,都有一个字母为红色,如File中的F,Edit中的E等都称为菜单的热键。按住【Alt】键和热键来打开菜单。
14、nF10 先按【F10】键激活菜单,此时可以看到File菜单为高亮状态,再通过方向键移动高亮的亮条来选择菜单项。参见环境编辑源程序编辑源程序n启动TC后,在File菜单中,使用方向键移动亮条到“New”,按回车创建新文件,此时就可以在编辑窗口中输入程序代码。/*example1.1 The first C Program*/#include void main()printf(“This is a C program.n”);返回保存程序保存程序n按【F10】键激活菜单,选择File菜单下的Save命令,此时弹出窗口提示输入文件的名字,窗口中是默认的文件名路径,删掉默认的C文件名字“NORMA
15、L.C”输入“TC1-1.C”程序编译与连接程序编译与连接n按【F10】键激活菜单,选择Compile下的Make EXE File,或者 按快捷键【F9】运行程序运行程序n按【F10】键激活菜单,选择Run菜单下的Run菜单项,或按【CtrlF9】,可以看到屏幕闪了一下,此时程序已执行完毕。n按【F10】键激活菜单,选择Run菜单下的User Screen,即可看到以下的运行结果。退出退出Turbo Cn查看完结果后,按【回车】键返回编辑窗口,此时再选择“File”菜单下的“Quit”;或者按【AltX】即可退出Turbo C。基本操作:基本操作:F10-调用主菜单F2-保存文件(Save)
16、F3-打开文件(Load)F9-编译和连接(Make EXE File)Ctrl+F9-执行(Run)Alt+F5-查看执行后的结果(User Screen)文本编辑(和文本编辑(和word类似)类似)窗口操作:窗口操作:F6-编辑窗口和消息窗口切换常用快捷键常用快捷键学生早上起床后的行为:1.起床2.刷牙3.洗脸4.吃饭5.上课到图书馆借教学参考书:1.进入图书馆2.查书目3.填写索书单4.交图书馆工作人员取书5.如果该书已借出,可以有两种选择 5.1回到第2步(进一步查找其他参考书目)5.2放弃借书,离开图书馆6.(找到要借的书)办理借书手续7.离开图书馆顺序结构选择结构返回课程的目标课程
17、的目标n程序设计方法n程序语言规范n动手编程能力n等级考试证书程序就是一系列的操作步骤,计算机程序就是由人事先规定的计算机完成某项工作的操作步骤。每一步骤的具体内容由计算机能够理解的指令来描述,这些指令告诉计算机“做什么”和“怎样做”。二、程序设计语言的概念 编写计算机程序所使用的语言称为程序设计语言。一、程序的概念 高级语言是相对低级语言而言的。低级语言是计算机能直接识别的语言(机器语言)或符号化的机器语言(汇编语言),高级语言是一种通用的,面向用户的各类需要,与特定的机器相分离,并遵循一定的严格规定与形式的语言,其语言格式接近于自然语言或接近于数学函数形式。C C语言程序设计基础目录语言程
18、序设计基础目录第一章 C语言概述C语言发展历史C语言特点C程序格式和结构特点C程序上机步骤程序设计语言的发展机器语言机器语言汇编语言汇编语言高级语言高级语言CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A,B面向机器的语言1.1 C语言发展历史语言发展历史高级语言是一种通用的,面向用户的各类需要,与特定的机器相分离,并遵循一定的严格规定与形式的语言,其语言格式接近于自然语言或接近于数学函数形式。52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 9
19、2 94 96AdaALGOL60ALGOL68PascalModula-2CPLBCPL BCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASIC VBFORTRAN90 产生背景 产生过程 时间:19721973 地点:美国贝尔实验室 目的:UNIX操作系统 设计人:Ken.Thompson和Dennis.M.Ritchie C标准 标准C:K&R合著The C Programming Language ANSI C:1983年 87 ANSI C:1987年 1990年国际标
20、准的ANSI CC语言语言发展过程发展过程C语言产生背景语言产生背景系统软件汇编语言高级语言可读性差,可移植性差难于实现汇编语言的功能结合高、低级语言优点于一身=C语言 语言简洁、紧凑、灵活运算符和数据类型丰富 程序设计结构化、模块化 生成目标代码质量高 可移植性好中级语言1.2 C语言特点(auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typ
21、edef unsigned union voidvolatile while32个关键字if()elsefor()while()dowhile()continuebreakswitchgotoreturn9种控制语句C语言语言 Pascal语言语言 含义含义 BEGIN.END 复合语句if(e)s;IF(e)THEN s 条件语句int i;VAR i:INTEGER 定义i为整型变量 int a10;VAR a:ARRAY1.10 OF INTEGER 定义整型数组aint f();FUNCTION f():INTEGER 定义f为返值整型的函数int*p;VAR p:INTEGER 定义
22、p为指向整型变量的指针i+=2;i=i+2 赋值i+2ii+,+i;i=i+1 i自增值结论:C比 Pascal简练,源程序短。C语言与语言与Pascal语言比较语言比较算术运算符:+-*/%+-关系运算符:=!=逻辑运算符:!&|位运算符 :|&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数 :sizeof强制类型转换:(类型)分量运算符:.-下标运算符:其它 :()-34种运算符C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整 型浮点型单精度型float双精度型double短整型short长整型l
23、ong整型int数组结构体struct共用体unionC数据类型例例1.1 1.1 第一个程序第一个程序 Hello,World!Hello,World!/*example1.1 The first C Program*/#include main()printf(“Hello,World!”);注释编译预处理函数语句输出:Hello,World!1.3 C程序格式和结构特点例1.2/*example1.1 calculate the sum of a and b*/#include/*This is the main program */main()int a,b,sum;a=10;b=24
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函数语句预处理命令注释n习惯用小写字母,大小写敏感n不使用行号,无程序行概念n可使用空行和空格n常用锯齿形书写格式main().main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);优秀程序员的素质之一:使用TAB缩进
25、对齐 有足够的注释 有合适的空行格式特点main()/*定义变量*/int i;/*xxxxx*/int j;/*xxxxx*/int sum;/*xxxxx*/*初始化变量*/sum=0;/*开始处理*/for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);难读易错不规范n函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在ma
26、in中结束,其它函数通过嵌套调用得以执行。n程序语句C程序由语句组成用“;”作为语句终止符n注释/*/为注释,不能嵌套不产生编译代码例:/*This is the main /*of example1.1*/*/非法n编译预处理命令结构特点编辑链接编译执行1.4 C程序的上机步骤C程序开发步骤 开 始 编 辑 编 译 连 接 执 行 有错?结果正确?结 束有源程序 file.c目 标 程序file.obj库函数和其它目标程序可执行目标程序无正确不正确file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe源程序
27、目标程序可执行程序内容程序设计语言机器语言机器语言可执行不可以不可以可以文件名后缀.c.obj.exeTurbo C集成开发环境n配置要求UNIX,PC-DOS,MS-DOS,UCDOS操作系统硬盘容量约2M,448K RAM运行空间n安装Turbo C创建子目录Install若不是可安装盘,将文件拷贝到对应的目录下TC*.*INCLUDELIB*.*SYS*.*n进入Turbo C进入DOS方式后,C:WINDOWSCD C C:CTC.exe 主控菜单 文件操作FILE:New Load Save Write to 编辑操作EDIT:插入/修改 块 查找/替换 编译链接COMPILE LI
28、NK MAKE 执行RUNn退出Turbo CAlt +xAlt+F ,Qn帮助HelpF1Ctrl+F1基本操作:F10-调用主菜单F2-存盘F3-打开Alt+F9-CompileCtrl+F9-RunAlt+F5-User Screenn常用热键文本编辑:-移动光标PgUp,PgDn-上下翻页Ctrl+PgUp,Ctrl+PgDn-文件首尾Home End Ddelete Insert Bkspace块操作:Ctrl+KB-块开始标记 Ctrl+KK-块结束标记Ctrl+KC-块拷贝 Ctrl+KV-块移动Ctrl+KY-块删除 Ctrl+KH-块隐藏程序调试:F8-Step over F
29、7-Trace intoF4-Goto Cursor Ctrl+F7-Add WatchCtrl+F8-Toggle Breakpoint Ctrl+F2-Program Reset窗口操作:F5-窗口缩放F6-窗口切换1 学会使用C语言,能用C语言编制程序。2 掌握高级语言的基本特点,为学习其它的高级语言或开发工具打下坚实的基础。同时,为后续有关课程的学习打下基础3 对计算机程序的工作过程有所了解,增强使用程序的能力,而且,在学习C语言过程中所得到的能力,很容易迁移到其它软件的使用中。C语言关键字少,而且与其它高级语言类似,掌握标准C并不难。C语言是基于函数的语言,C语言的大部分功能需要调用
30、库函数去实现。DOS下的C编译器Turbo C 2.0大约有440个函数,BC+2.0大约有500多个函数,VC+除了标准的C运行库之及C语言扩展外,还有600多个Windows API,以及VC+中的类库,Linux的 C也有很多扩展。TCTC库函数速查库函数速查C语言可以直接对硬件进行操作,因此,对计算机的硬件要有一定的了解,否则,就发挥不了C语言的这一特长。C语言的指针使用极为灵活,这往往会给使用者带来困难。C语言的语法不太严格,给熟练的使用者以很大的灵活性,但给初学者带来很多困难,尤其是程序的调试。学会调试程序是非常重要的。学习计算机语言要多实践,学习C语言更要多实践,只有通过大量的上机实践才能真正掌握C语言。