ch01-基本知识

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C程序设计陈娟2005-2006第二学期联系方式电子邮件:christ800@sohu.com课程组成课堂讲授–十二章64学时上机实验–八个实验32学时–第七周开始课程设计–C的词法分析器–短学期进行助课老师答疑–每周二晚6点至7点–在逸420教室课程资源softlab.jlu.edu.cn→教学信息→高级语言程序设计–用户名:cstudent–密码:cstudentACM大赛–acm.jlu.edu.cn课程要求讲授内容–平时成绩出勤+作业完成题目数20分–期末考试闭卷实验–平时:出勤+实验报告–上机考试:优、良、中、及格、不及课程特点不同于“解释程序设计语言”强调“程序设计”,“编程能力”的培养讲授内容基础知识程序设计数据组织第一章基本知识介绍程序设计基本概念、BNF、PAD图第二章数据信息介绍C基本符号、单词、数据及其类型第三章简单程序介绍常量、变量、表达式、简单程序、赋值、I/0。基础知识程序设计第四章函数–简单介绍模块化程序设计思想,引进子程序和函数概念第五章流程控制–讲述结构化程序设计的顺序、分支、循环三种程序逻辑第八章再论函数–进一步介绍函数,讲述参数、递归程序设计第九章程序开发和结构化程序设计–程序风格、自顶向下逐步求精的程序设计技术、程序的文档,以及穷举法和试探法;数据组织第六章数组第七章指针第十章文件及其操作第十一章结构体和共用体第十二章动态数据结构第一章基本知识程序设计语言C语言简况程序设计语言形式化描述C程序结构算法及其描述工具PAD本章小结作业程序设计语言(1)YX+15若 X<YX-15若 X≥Y机器语言101010010001011000000001001111000001100000000001…………………00000000000000000000000000000000程序设计语言(2)汇编语言MOVAX,XCMPAX,YJLS1SUBAX,15JMPS2S1:ADDAX,15S2:MOVY,AX………………XDW?YDW?程序设计语言(3)高级语言if(XY)Y=X+15;elseY=X-15;注意高级语言并不单单指C语言,如VC,BASIC等语言也属于高级语言范畴。程序设计语言(4)—程序的执行用汇编语言或高级语言编出程序将源程序录入计算机由翻译器(汇编程序或编译程序)将源程序翻译成机器语言程序由连接程序将机器语言程序连接生成计算机可执行的程序将可执行程序送入计算机并启动计算机执行得到最后结果C语言的历史背景70年代初,C语言在美国贝尔实验室诞生。它的前身可以追朔到ALGOL60、CPL、BCPL、B。1982年C标准化工作开始。1989年ISO公布ISO/IEC9899:1990,简称“C89”。1995年对C89作修改和补充,称为“C95”。1999对C进行更大的修订后,公布ISO/IEC9899:1999,简称“C99”。我国于1994年12月4日公布了“中华人民共和国国家标准GB/T15272-94程序设计语言C”。C语言的优点1.语言简洁、紧凑,使用方便、灵活;2.C本身是模块式,便于集体分工合作开发大型程序3.运算符丰富4.数据结构丰富5.具有结构化控制结构6.与计算机硬件联系紧密,可以直接访问计算机内存,具有位操作7.生成目标代码质量高。C语言的缺点1.语法不严格2.类型机制不严密,比如字符类型与整数类型没有区别、不检查下标超界3.程序设计自由度太大,不利于保证程序的正确性4.若程序与计算机硬件联系太密切,则可移植性不好5.有些语言成分太复杂,比如运算符6.语言本身不能保证程序设计的结构化。程序设计语言形式化描述组成–语法——规则巴克斯-脑尔范式(BNF)–语义——意义if(XY)Y=X+15;elseY=X-15;BNF自然语言–字单词句子语言计算机语言–字符词法单位(token)程序语言BNF–一种形式化描述语法的工具,一种表示方法thebigelephantatethepeanut<冠词><形容词><名词><动词><冠词><名词><主语><谓语><宾语><英语句子>G:<英语句子>∷=<主语><谓语><宾语><主语>∷=<冠词><形容词><名词><冠词>∷=the<形容词>∷=big<谓语>∷=<动词><动词>∷=ate<宾语>∷=<冠词><名词><名词>∷=peanut<名词>∷=elephantthebigelephantatethepeanut<冠词><形容词><名词><动词><冠词><名词><主语><谓语><宾语><英语句子>thebigelephantatetheelephant<冠词><形容词><名词><动词><冠词><名词><主语><谓语><宾语><英语句子>thebigpeanutatethepeanut<冠词><形容词><名词><动词><冠词><名词><主语><谓语><宾语><英语句子>thebigpeanutatetheelephant<冠词><形容词><名词><动词><冠词><名词><主语><谓语><宾语><英语句子>文法G对应的句子有:ThebigelephantatethepeanutThebigpeanutatetheelephantThebigpeanutatethepeanutThebigelephantatetheelephantL(G)={ThebigelephantatethepeanutThebigpeanutatetheelephantThebigpeanutatethepeanutThebigelephantatetheelephant}G:<英语句子>∷=<主语><谓语><宾语><主语>∷=<冠词><形容词><名词><冠词>∷=the<形容词>∷=big<谓语>∷=<动词><动词>∷=ate<宾语>∷=<冠词><名词><名词>∷=peanut<名词>∷=elephant文法的组成文法开始符规则/产生式非终极符终极符例1.1—无符号整数集合G:N∷=DN∷=NDD∷=0D∷=5D∷=1D∷=6D∷=2D∷=7D∷=3D∷=8D∷=4D∷=9符号“│”表示“或者”文法可简写成:G:N∷=D│NDD∷=0│1│2│3│4│5│6│7│8│9例1.2集合{0n1n|n0}对应的文法G1G1:S∷=01│0S1将符号∷=用→代替G1:S→01│0S1例1.3—标识符标识符由字母或开头,后跟任意多个字母或数字组成的字符串<标识符>→<字母>|<标识符><字母>|<标识符><数字>例1.4—标识符表标识符表–一个标识符是标识符表–标识符表后边跟一个逗号“,”和一个标识符还是标识符表<标识符表>→<标识符>│<标识符表>,<标识符>C程序结构<程序>→<编译单元表><编译单元表>→<编译单元>▌<编译单元><编译单元表><编译单元>→<顶层声明表><顶层声明表>→<顶层声明>▌<顶层声明表><顶层声明><顶层声明>→<声明>▌<函数定义><函数定义>→<函数定义说明符><复合语句>C程序实例文件hello.c#includestdio.hvoidhello(void){printf(“Hello!\n”);}程序执行过程文件startup.cexternvoidhello(void)intmain(void){hello();return0}hello.chello.objstartup.exestartup.cstartup.obj软件开发一般过程可行性研究需求分析设计–概要设计–详细设计建立数学模型找出计算方法进行算法分析实现–写出程序–调试程序测试–组装测试–确认测试使用维护算法算法是一个计算过程,具体指明应该进行的操作,描述解决问题的方法和途径,它是程序设计的基础和精髓。一个有效的算法具有如下特点:–有穷性–确定性–有效性PAD(ProblemAnalysisDiagram)基本操作控制结构–顺序结构–分支结构–循环控制结构–函数操作顺序控制结构操作1操作2操作3操作1操作2操作3分支控制结构单分支–如果XX条件为真,执行操作–如果XX条件为真,执行操作1;否则执行操作2条件操作条件操作1操作2多分支如果表达式e–满足条件1,执行操作1–满足条件2,执行操作2–…………–满足条件n,执行操作n条件2条件n操作1操作n操作n-1操作2表达式...条件1条件...循环控制结构先判断条件循环操作重复条件F结束重复条件要重复执行的操作后判断条件操作重复条件T结束重复条件要重复执行的操作函数函数定义函数体函数名(形参表)RETURNdef函数调用名(实参表)PAD的例子将A、B两瓶分别盛放的米醋和酱油互换–将A中的米醋放到C中–将B中的酱油放到A中–将C中的米醋放到B中ABCC←AA←BB←CYX+15若 X<YX-15若 X≥YXYY=X+15Y=X-15本章小结程序设计语言C语言简况程序设计语言形式化描述C程序结构算法及其描述工具PAD图作业①1.1②1.2③1.4④1.5⑤1.12⑥1.26(1)(2)选作(4)

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功