版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、推荐(tujin)参考资料 C语言程序设计林小茶编著 中国铁 道出版社 C程序设计(第二版)谭浩强著 清华大学出版社 C语言程序设计黄锐军 编写(binxi) 人民邮电出版社 C语言基础教程张晓蕾主编 人民邮电出版社第1页/共49页第一页,共50页。项目一:商人货币交换(jiohun)问题请编制程序实现,来解决以下问题(wnt): 古时候有两个商人,一个赵国人,一个秦国人,要进行货币交换,那时候秦国还没有统一六国,货币还不一样,二个秦国货币铜钱等价于三个赵国的货币铜钱,现在这个赵国人手上有18个赵国铜币,秦国人手上有20个秦国铜币,请问如何用程序来模拟两个商人交换货币的过程。第2页/共49页第
2、二页,共50页。涉及(shj)到的知识点如下: 单元一:初识C语言程序 单元二:基本字符、标示符和关键字、数据 类型及常量、变量(binling) 单元三:数据的格式化输出语句 单元四:数据的格式化输入语句 单元五:运算符与表达式 单元六:数据交换的设计与实现第3页/共49页第三页,共50页。单元(dnyun)一:初识C语言程序C语言发展历史C语言特点简单的C程序介绍C程序上机步骤程序(chngx)算法基础软件(run jin)编程规范编译预处理第4页/共49页第四页,共50页。 开发能力最强,应用最广泛开发能力最强,应用最广泛 操作系统开发、应用程序开发、单片机程序开发、操作系统开发、应用程
3、序开发、单片机程序开发、网络程序设计网络程序设计 专业水平的试金石专业水平的试金石 各种各种( zhn)专业考试首选程序设计语言:研专业考试首选程序设计语言:研究生入学考试、程序员考试、等级考试究生入学考试、程序员考试、等级考试 后续主干课程的重要基础后续主干课程的重要基础 数据结构、数据库程序设计、数据结构、数据库程序设计、Java程序设计、可程序设计、可视化程序设计、网络编程、单片机开发视化程序设计、网络编程、单片机开发1.1 C语言发展历史(lsh)为什么从C语言开始第5页/共49页第五页,共50页。如何(rh)学习C语言编程? 编程似写作编程似写作 先学先学“字词句字词句”和和“语法语
4、法”,目标是,目标是“写作写作”。 学习数据类型、控制结构、语法规则学习数据类型、控制结构、语法规则(guz)(guz)等等 学语句学语句 掌握程序分析、算法与编程掌握程序分析、算法与编程 写文章写文章 仅仅读书是不够的仅仅读书是不够的 程序是编出来的,程序是调出来程序是编出来的,程序是调出来 在编程实践中消化知识。在编程实践中消化知识。 没有天生的程序员没有天生的程序员 初学者:有点难。初学者:有点难。 没有学不会的,只有学不精的没有学不会的,只有学不精的除非自己放弃。除非自己放弃。 青出于蓝胜于蓝:超过你的老师完全可能。青出于蓝胜于蓝:超过你的老师完全可能。 循次渐近很重要循次渐近很重要
5、阅读阅读/ /分析程序分析程序摹仿编程摹仿编程掌握常见程序模块掌握常见程序模块简单程序简单程序复杂编程复杂编程 仅是起点,而非终点仅是起点,而非终点 从此编程与你相伴而行从此编程与你相伴而行真正的程序员从此起步。真正的程序员从此起步。第6页/共49页第六页,共50页。程序(chngx)与程序(chngx)设计语言 程序 日常生活中的“程序”是指完成某一件事情的工序,或者一系列的步骤。 计算机来说,程序就是由计算机指令构成(guchng)的序列。计算机按照 程序中的指令逐条执行,就可以完成相应的操作。 实际上程序需要人来编写,使用的工具就是程序设计语言。第7页/共49页第七页,共50页。 程序设
6、计语言(yyn)的发展机器语言机器语言汇编语言汇编语言高级语言高级语言面向过程面向过程面向对象面向对象CPU指令系统,由0、1序列构成(guchng)的指令码组成如:10000000 加 10010000 减用助记符号描述(mio sh)的指令系统如 ADD A, B面向机器的语言C语言等等JAVA 、 C+ 、 VB 、VC、 DELPHI冯.诺依曼结构:计算机运算器控制器存储器主机:I/O设备:键盘、显示器等中央处理器CPU C语言程序设计 第一章第一章 C C语言概述语言概述第8页/共49页第八页,共50页。 C语言发展过程 产生背景 产生过程 时间:19721973 地点:美国贝尔实验
7、室 目的:UNIX操作系统 设计人: Ken.Thompson和Dennis.M.Ritchie C标准(biozhn) 78年标准(biozhn)C: K&R合著The C Programming Language ANSI C: 1983年 87 ANSI /ISO C: 1987年 1990年国际标准(biozhn)的ANSI C 1994年 ISO修订了 C,称ISO C C语言程序设计(chn x sh j) 第一章 C语言概述第9页/共49页第九页,共50页。 1.2 C语言特点 语言简洁、紧凑、灵活 运算符和数据类型丰富 程序设计结构化、模块化 生成(shn chn)目标
8、代码质量高 可移植性好 同时具备高级语言和低级语言的特征 有大量的库函数中级语言 C语言程序设计(chn x sh j) 第一章 C语言概述第10页/共49页第十页,共50页。32个关键字:(由系统(xtng)定义,不能重作其它定义)auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolati
9、le while C语言程序设计(chn x sh j) 第一章 C语言概述第11页/共49页第十一页,共50页。9种控制(kngzh)语句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn C语言程序设计(chn x sh j) 第一章 C语言概述第12页/共49页第十二页,共50页。例例 C语言与语言与Pascal语言比较语言比较C语言语言 Pascal语言语言 含义含义 BEGIN.END 复合语句复合语句if(e) s; IF(e) THEN s 条件语句条件语句int i ; VAR i:INTEGER 定义
10、定义i为整型变量为整型变量 int a10; VAR a:ARRAY1.10 OF INTEGER int f(); FUNCTION f():INTEGER int *p; VAR p:INTEGER i+= 2; i=i+2 赋值赋值i+2ii+,+i; i=i+1 i自增值自增值结论结论(jiln):C比比 Pascal简练,源程序短。简练,源程序短。 C语言程序设计(chn x sh j) 第一章 C语言概述第13页/共49页第十三页,共50页。3434种运算符:算术运算符:+ - + - * * / % + - / % + -关系运算符: = != = !=逻辑运算符:! &
11、 | & |位运算符 : | & | &赋值运算符:= = 及其扩展条件运算符:?:?:逗号运算符:, ,指针运算符:* * & &求字节数 :sizeofsizeof强制类型转换:( (类型)分量运算符:. -. -下标(xi bio)(xi bio)运算符:其它 :( ) -( ) - C语言程序设计(chn x sh j) 第一章 C语言概述第14页/共49页第十四页,共50页。C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void定义类型定义类型typedef数值类型数值类型字符类型字符类型char枚举类型枚举
12、类型enum整整 型型浮点型浮点型单精度型单精度型float双精度型双精度型double短整型短整型short长整型长整型long整型整型int数组数组结构体结构体struct共用体共用体union C语言程序设计(chn x sh j) 第一章 C语言概述第15页/共49页第十五页,共50页。1.3 简单(jindn)C程序介绍例1.1 第一个程序 Hello,World!/* example1.1 The first C Program*/#include main() printf(“Hello,World!”); C语言程序设计(chn x sh j) 第一章 C语言概述注释编译预处理
13、函数语句输出(shch):Hello,World!第16页/共49页第十六页,共50页。例例1.2: /1.2: /* * Example for add program Example for add program * */ /#include #include main ( ) main ( ) int a, b, sum; / int a, b, sum; /* *这是定义变量这是定义变量(binling)(binling)* */ / a=123; b=456; / a=123; b=456; /* *给变量给变量(binling)(binling)赋值赋值* */ / sum=a+
14、b; / sum=a+b; /* *求两个数之和求两个数之和* */ / printf(a+b= %dn, sum); printf(a+b= %dn, sum); 运行运行(ynxng)结果结果:a+b=579注释编译预处理语句主函数第17页/共49页第十七页,共50页。例1.3/* 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
15、function calculates the sum of x and y */int add(int x,int y) int z; z=x+y; return(z);运行(ynxng)结果:sum=34函数语句预处理命令预处理命令注释注释 C语言程序设计(chn x sh j) 第一章 C语言概述第18页/共49页第十八页,共50页。 格式特点 习惯(xgun)用小写字母,大小写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式 C语言程序设计(chn x sh j) 第一章 C语言概述main( ) . . . . . . .main( ) int i , j , s
16、um; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum);优秀程序员的素质之一:使用TAB缩进对齐(du q)有足够的注释有合适的空行第19页/共49页第十九页,共50页。 结构特点 函数与主函数 程序由一个或多个函数组成 必须有且只能有一个主函数main() 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。 程序语句(yj) C程序由语句(yj)组成 用“;”作为语句(yj)终止符 注释 /* */为注释,不能嵌套 不产生编译代码例: /*This is the main /* o
17、f example1.1*/ */ 非法v编译(biny)预处理命令 C语言程序设计(chn x sh j) 第一章 C语言概述例:# include 第20页/共49页第二十页,共50页。编辑链接编译执行1.4 C程序(chngx)的上机步骤C程序(chngx)开发步骤 开 始 编 辑 编 译 连 接 执 行 有错?结果正确? 结 束有源程序 file.c目 标 程序file.obj库函数和其它目标程序可执行目标程序无正确不正确file.exe C语言程序设计(chn x sh j) 第一章 C语言概述程序代码的录入(l r),生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目
18、标程序或库链接装配,生成可执行程序*.exe源程序目标程序可执行程序内容程序设计语言机器语言机器语言可执行不可以不可以可以文件名后缀.c.obj.exe第21页/共49页第二十一页,共50页。 C程序开发步骤 源程序(.c) 目标程序(.obj)可执行程序(.exe) (你编写的) 编译 (中间(zhngjin)产品) 连接 (你出售的) compile linkFile1.cFile1.objFile1.exeFile1.cstdio.h整合(zhn h)/* example1.1 The first C Program*/#include main() printf(“Hello,Worl
19、d!”);File1.c库函数编译(biny)预处理编译连接第22页/共49页第二十二页,共50页。 C语言程序设计(chn x sh j) 第一章 C语言概述 WIN-TC开发(kif)环境第23页/共49页第二十三页,共50页。 WIN-TC集成( j chn)开发环境 C语言程序设计(chn x sh j) 第一章 C语言概述WIN-TC安装目录*.*INCLUDELIBSYS*.*.*第24页/共49页第二十四页,共50页。1.5 程序算法(sun f)基础程序设计(chn x sh j)的基本流程用计算机解决某一个(y )问题。例如,求三个数的和。设计算法根据算法写出程序(通俗的叫“
20、代码”)算法 :为解决一个问题而采取的方法和步骤,就称为算法 (注意:有一些列的步骤或者动作)对计算机来讲“程序”就是为让计算机完成特定任务而设计的指令序列。程序设计语言:C、JAVA、Delphi、VisualBasic等算法程序( “代码”)问题第25页/共49页第二十五页,共50页。最原始方法:步骤1:先求12,得到(d do)结果2。步骤2:将步骤1得到(d do)的乘积2乘以3,得到(d do)结果6。步骤3:将6再乘以4,得24。步骤4:将24再乘以5,得120。这样的算法虽然正确,但太繁。【例1.5.1】求12345 算法(sun f)设计第26页/共49页第二十六页,共50页。
21、改进的算法:S1: 使t=1S2: 使i=2S3: 使ti, 乘积仍然放在在变量t中,可表示为titS4: 使i的值+1,即i+1iS5: 如果i5, 返回重新执行(zhxng)步骤S3以及其后的S4和S5;否则,算法结束。 如果计算100!只需将S5中 若i5改成i100即可。第27页/共49页第二十七页,共50页。如果改求1357911,算法也只需做很少的改动:S1: 1tS2: 3iS3: titS4: i+2tS5:若i11, 返回S3,否则,结束。 该算法不仅正确,而且是计算机较好的算法,因为计算机是高速运算(yn sun)的自动机器,实现循环轻而易举。 思考:若将 S5写成:若i1
22、1, 返回S3;否则,结束。第28页/共49页第二十八页,共50页。【例1.5.2】有50个学生(xu sheng),要求将他们之中成绩在80分以上者打印出来。如果,n表示学生学号,ni表示第个学生学号;g表示学生成绩(chngj),gi表示第个学生成绩(chngj);则算法可表示如下:S1: 1iS2: 如果gi80,则打印ni和gi,否则不打印S3: i+1iS4:若i50, 返回S2,否则,结束。第29页/共49页第二十九页,共50页。润年的条件:能被400整除(zhngch)不能被400整除(zhngch),但是能被4整除(zhngch),不能被100整除(zhngch)的年份;【例1
23、.5.3】判定2000 2500年中的每一年是否闰年(rnnin),将结果输出。第30页/共49页第三十页,共50页。设y为被检测的年份,则算法可表示如下:S1: 2000yS2:若y能被400整除,则输出y“是闰年”S3:若y不能被400整除,进入(jnr)下一步S4S4:如果不能被4整除则输出y“不是闰年”,否则,进入(jnr)第五步S5S5:如果能被100整除,则输出y“不是闰年”,否则说明不能被100整除,则输出y“是闰年”S6:y+1yS7:当y2500时, 返回S2继续执行,否则,结束。第31页/共49页第三十一页,共50页。 分析:从键盘输入的三个数值必须用三个变量来保存,分析:
24、从键盘输入的三个数值必须用三个变量来保存,假定这三个变量分别为假定这三个变量分别为a、b、c,另外,另外(ln wi),还需,还需要一个变量要一个变量min来装最小的那个数。来装最小的那个数。 先比较先比较a和和b的值,把数值小的放入的值,把数值小的放入min中,再将中,再将min与与C比较,又把数值小的放入比较,又把数值小的放入min中。中。 经过两次比较,经过两次比较,min中已存放的是中已存放的是a,b,c三个数中三个数中最小的数,把最小的数,把min的值输出就是所需结果。的值输出就是所需结果。【例1.5.4】从键盘输入三个数,找出其中(qzhng)最小的那个数。 第32页/共49页第三
25、十二页,共50页。算法算法(sun f)步骤:步骤: 1输入三个数,其值分别输入三个数,其值分别(fnbi)赋给三个变量赋给三个变量a,b,c。 2把把a与与b中较小的那个中较小的那个(n ge)数放入变量数放入变量min中。中。 3把把c与与min中较小的那个数放入变量中较小的那个数放入变量min中。中。 4输出最后结果输出最后结果min的值。的值。 细化后的算法步骤为:细化后的算法步骤为: 1输入三个数,其值分别赋给三个变量输入三个数,其值分别赋给三个变量a,b,c。2比较比较a与与b的值,如果的值,如果ab, 则则min=a; 否则否则min=b。3比较比较c与与min的值,如果的值,如
26、果cmin, 则则min=c。4输出最后结果输出最后结果min的值。的值。 第33页/共49页第三十三页,共50页。 算法(sun f)描述 算法可采用自然语言、流程图、算法可采用自然语言、流程图、NS图、图、PAD图、图、伪代码等方法伪代码等方法(fngf)来描述。来描述。 第34页/共49页第三十四页,共50页。流程图 流程图是用不同的几何图来代表不同性质的操作,用流程线来指示算法的执行(zhxng)方向,所有的流程图用一带箭头的流程线相连。 常用的流程图符号:第35页/共49页第三十五页,共50页。三种(sn zhn)结构的流程图一顺序结构 如:右图 语句(yj)的执行顺序为:ABC 第
27、36页/共49页第三十六页,共50页。二选择(xunz)结构 (a)的执行顺序为:先判断条件,当条件为真时,执行的执行顺序为:先判断条件,当条件为真时,执行A,否则,否则(fuz)执行执行B。(b)的执行顺序为:先判断条件,当条件为真时,执行的执行顺序为:先判断条件,当条件为真时,执行A,否则,否则(fuz)什么也不执行。什么也不执行。 第37页/共49页第三十七页,共50页。三循环(xnhun)结构 第38页/共49页第三十八页,共50页。例1.5.4流程图第39页/共49页第三十九页,共50页。第40页/共49页第四十页,共50页。1.6软件(run jin)编程规范 软件产业不是江湖软件
28、产业不是江湖(jingh),程序员不同于武林人士,我们不崇拜邪派高手,按照,程序员不同于武林人士,我们不崇拜邪派高手,按照规范编写程序可以帮助程序员写出高质量的程序。规范编写程序可以帮助程序员写出高质量的程序。第41页/共49页第四十一页,共50页。 作用:对源程序编译之前做一些处理,生成(shn chn)扩展名为.c源程序 种类 宏定义 #define 文件包含 #include 格式: “#”开头 占单独书写行 语句尾不加分号1.7C语言的编译(biny)预处理第42页/共49页第四十二页,共50页。 文件包含(bohn) 功能:一个源文件可将另一个源文件的内容全部包含(bohn)进来 一
29、般形式: #include “文件名” 或 #include #include “file2.c”file1.cfile2.cfile1.cBABA处理过程:预编译(biny)时,用被包含文件的内容取代该预处理命令,再对“包含”后的文件作一个源文件编译(biny)第43页/共49页第四十三页,共50页。例如(lr):/* file1.c */ /* file2.c */#include “file2.c” max(int x, int y) main() int z; int a,b,c; z=xy?x:y; scanf(“%d,%d”,&a,&b); return(z); c=max(a,b); printf(“Max is :%d”,c);运行程序时,在编译前执行预处理命令(mng lng),结果为: max(int x, int y) int z; z=xy?x:y; return(z); main() int a,b,c; scanf(“%d,%d”,&a,&b); c=max(a,b); printf(“Max is :%d”,c);第44页/共49页第四十四页,共50页。 宏定义(dngy)#de
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024产品销售区域代理合同模板
- 2024租车合同协议书公司单位租车协议书
- 2024版独家代理合同样本
- 2024年广场文化建设施工合同
- 2024年度货物采购与供应协议
- 陀螺课件图片教学课件
- 2024年度劳动合同标的:高级管理人员雇佣
- 2024解除土地流转合同
- 2024年度环保项目技术研发与许可使用合同
- 2024年度房屋买卖合同(高档住宅)
- 传染病实验室检查的质量控制
- 期中测试卷(1~3单元)(试题)2024-2025学年五年级上册数学人教版
- 四川省成都市2024年七年级上学期期中数学试卷【附答案】
- 期中易错密押卷(第1-5单元)(试题)-2024-2025学年五年级上册数学人教版
- 咸宁房地产市场月报2024年08月
- 2024-2030年中国艾草行业供需分析及发展前景研究报告
- GB/T 37342-2024国家森林城市评价指标
- 北京市海淀区2022-2023学年七年级上学期期末语文试题
- 人教版生物八年级下册 8.1.1传染病及其预防-教案
- 煤矿安全生产知识培训考试题库(800题)
- 旧桥拆除监理细则
评论
0/150
提交评论