




已阅读5页,还剩71页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/5/30,1,本书内容,第1章基础知识第2章C语言的基本要素第3章变量名、数据类型、运算符和表达式第4章C程序基本控制结构第5章函数第6章数组和指针第7章递归第8章结构、联合、位运算和枚举类型第9章预处理命令第10章文件第11章高级话题第12章C89VsC99实验(待安排),2020/5/30,2,变量定义、算术表达式、赋值语句和while语句,本章主要内容,ARMVectorTable,FIQ,IRQ,(Reserved),DataAbort,PrefetchAbort,SoftwareInterrupt,UndefinedInstruction,Reset,1,3,2,第一个C语言程序,C语言程序的开发过程,4,for循环语句、常量,5,字符的输入和输出操作、函数,6,字符、整型数组和外部变量,2020/5/30,3,本章的节本要求,本章主要介绍C语言的核心要素,通过本章的学习读者会对C语言有一个整体的基本概念,并能够编制基本的C程序。本章将主要集中在以下基本内容上:变量、常量、运算符、表达式、控制流、函数、以及基本的输入输出库函数等。让初学者快速建立对C语言程序设计的整体概念,并能够编制一些简单有趣的C程序。,最常使用的20元素,2020/5/30,4,学习或者教学C语言最重要的第一步是让学习者能够动手。动手能够增强学习者的信心,而信心对学好C语言来说是重要的。在阅读过程中,作者希望初学者把主要精力放在基本要素上,感觉有难度的内容可以先放一放。,2020/5/30,5,2.1C语言程序的开发过程,第一步:编辑得到源程序。第二步:编译得到目标码。第三步:连接得到可执行代码。第四步:装载运行程序得到结果。,程序开发调试过程,2020/5/30,6,2.2第一个C语言程序,开发工具:VC+工具,或者Dev-C+工具等。其次,学会该工具的基本使用方法。下面以“HelloWorld”程序为例:例题2.1输出“HelloWorld!”,2020/5/30,7,#includeintmain(void)printf(HelloWorld!n);return0;,预处理命令,主函数,被调函数,函数参数,函数返回值,2020/5/30,8,main()函数是特殊函数。任何C程序必须有且只能有一个main()函数。main()函数可以放在C程序的任意位置。C程序的运行必须从main()函数开始,而且也在main()函数中结束。通过main这个名字才能找到将要执行的程序入口。,main,2020/5/30,9,函数就是组成C语言程序的一个一个的功能模块,就像房子是由一块块砖头搭建起来的一样,C程序就是由一个个的函数组建而来的。函数是C程序的基本单位,一般一个函数完成某一个相对独立的功能。在C语言中,满足函数定义格式要求的就是一个函数。函数包括函数头和函数体两部分。,2020/5/30,10,图2.1函数定义的基本形式及函数调用的传值过程,函数参数的对应关系,2020/5/30,11,例题2.2比较两个整数的大小,intMax(intx,inty);c=Max(a,b);intMax(intx,inty);,声明时有类型,调用时无类型,定义时有类型,2020/5/30,12,C程序的基本结构,1.C语言程序的注释/*和*/中间所包含的任何内容即为注释部分。2.main()函数及其返回值是主函数的函数名,main()函数名是操作系统调用C程序的入口。3.函数参数和返回值intMax(intx,inty)”则有两个参数,一个是x,一个是y。,2020/5/30,13,2020/5/30,14,4.函数体包含在函数名后面的一对大括弧“”之间的部分就是函数体。构成函数体的基本要素,一般分为两种:一种是变量定义、声明语句;一种是可执行语句。变量定义语句:inta,b,c;intz;,函数体大括弧之间的内容。,2020/5/30,15,C程序的运行过程,假设例题22的每一条语句所对应的机器指令都只占据一个字节。那么程序编译、连接、装载以后所对应的程序内存空间将抽象为如图2.2所示的结构。同时,假定:1.假定计算机有两个读写头,一个是程序读写头;另一个是数据读写头。2.假定变量定义语句也会在程序中产生可执行代码,对应PC,对应SP,2020/5/30,16,PC,SP,2020/5/30,17,变量定义、算术表达式、赋值语句和while语句,完成一段数据转换任务:它按照公式m=(1+3n+3n2+n3),计算m的值。当正整数n从0变化到99时,要求在终端上显示表格2.1的内容:,2020/5/30,18,表2.1例题2.3的数值转换表,2020/5/30,19,例题2.3数值转换程序(第一版):,在程序中,设计了两个函数:一个是必不可少的main()函数,另一个是数据转换函数Convert(),它完成公式m=(1+3n+3n2+n3)的计算。,注意结果的取值范围。,2020/5/30,20,将int改为long有什么好处?,intConvert(intx);intmain(void)while(n=bottom)m=Convert(n);intConvert(intx)intz;z=1+3*x+3*x*x+x*x*x;return(z);,2020/5/30,21,变量定义语句:变量类型和变量名列表inttop;intbottom;intstep;inta,b,c;,变量类型,变量名列表,2020/5/30,22,表2.2几种不同的数据类型,2020/5/30,23,赋值语句:top=0;bottom=99;step=1;n=top;,将0赋值给top变量,并非代数运算的等于符号。,2020/5/30,24,算术表达式:z=1+3*x+3*x*x+x*x*x;/*算术表达式*/,注意3x需要写为3*x。C语言中3x时错误的。,2020/5/30,25,当时,while循环语句:while(n=bottom)m=Convert(n);printf(%dt%dn,n,m);n=n+step;,当型循环结构。,2020/5/30,26,while循环操作步骤:1.测试while后的条件表达式,如果条件不成立则退出while循环语句;2.如果条件表达式成立,则执行while后面的循环体部分(也就是while后大括弧之间的内容,如果循环体只有一个语句,也可以去掉大括弧,此时循环体就是while后的第一条语句)。3.转入1(进行下一次while循环)。,2020/5/30,27,表2.3while循环时内存的变换过程,2020/5/30,28,显示输出函数printf()printf()是一个通用的格式输出函数。它有两个输出参数,第一个参数是格式输出控制字符串,第二个参数是输出项,第二个参数可以缺省,也可以有多个输出项。在第一个参数中的是格式控制字符,它控制后面参数中对应的输出项以后面字符对应的格式输出。,2020/5/30,29,d,n,t表示跳8个空格,2020/5/30,30,表2.4常用的输出格式控制字符,数字表示输出的域宽,字母表示输出数据类型,2020/5/30,31,2.4for循环语句,用for()循环实现while。如下:for(n=top;n=bottom;n=n+step)m=Convert(n);printf(%dt%dn,n,m);,For型循环,2020/5/30,32,基本语法格式如下:for(循环初值条件;循环终止条件;循环步进表达式).,两个“;”号分隔三个表达式。,2020/5/30,33,例题2.4用for循环计算1到100的和。,sum=0;for(i=1;i=100;i=i+1)sum=sum+i;,注意循环边界,2020/5/30,34,for循环的执行步骤一共四步,如下:1.首先执行循环初值表达式(只在进入for循环时执行一次,以后的每一次循环不再执行循环初值表达式),2.其次判断循环终止条件表达式。如果条件不满足则退出for循环语句。3.如果条件满足则执行循环体(for后大括弧之间的内容,当只有一个语句时,可以不加大括弧,此时循环体就是for后第一条语句)。4.执行循环步进表达式,转入2(进行下一次循环条件判断)。,2020/5/30,35,2.5常量,程序中恒定不变的量,就是常量。但是,直接在程序中使用数字表示常量,会给编程带来更大的麻烦:第一,数目字的意义不明确,不便阅读;第二,一旦这些常量有变化时,需要找到每一个数目字并进行修改,这不但麻烦而且容易出错。,有什么办法表示数目字常量吗?,2020/5/30,36,用#define定义宏,宏的定义格式如下:#defineNAME替换字符串程序在编译预处理时,自动用“替换字符串”取代NAME。例题2.5数值转换(第2版):#defineTOP0#defineBOTTOM99#defineSTEP1,符号表示常量,2020/5/30,37,for(n=TOP;n0)if(lengthmaxLen)StrCpy(longest,line);maxLen=length;,数组的定义形式,2020/5/30,63,图2.4字符数组和指针,指针指向数组的首地址,2020/5/30,64,图2.5字符数组存放字符串常量Goodn,注意0的存在,它有用吗?,2020/5/30,65,2.9.2字符指针,所谓指针,实际上就是内存单元的地址。由于内存单元存放的数据类型不同,因而指针的类型也有所不同。字符指针(也就是char型指针)就是一个指向字符的指针,它实际上就是字符变量在内存单元的地址。指针变量则是这样一个变量它专门用来存放变量的地址。某种类型的指针变量只能用于存放该种类型的指针。,2020/5/30,66,定义指针变量的方法如下:charch;/*定义了两个指针变量,其名字分别为p1、p2,它们可以指向char型变量*/char*p1,*p2;p1=,指针就是地址,2020/5/30,67,p1和p2都指向了ch,2020/5/30,68,StrCpy:将指针pSrc所指向的字符复制到指针pDest所指向的位置,voidStrCpy(char*pDest,char*pSrc)inti;i=0;while(*pDest+=*pSrc+)!=0);,该语句的语义实什么?,2020/5/30,69,2.10整型数组,编写程序统计从键盘输入的各个大写字母,以及数字、空字符(space、tab和换行符)以及其他字符出现的次数。总共有30种输入情况,其中大写字母的情况有26种,因此用一个数组来记录各种大写字母输入的次数比较方便。*例题2.15统计各大写字母的输入次数。,2020/5/30,70,while(ch=getchar()!=EOF)if(ch=A,elseif(ch=|ch=n|ch=t)+iCountWhite;else+iCountOther;,2020/5/30,71,2020/5/30,72,在以下if语句中:if(ch=A对字符ch的输入值,通过if语句后面的条件表达式作了一定的限定,字符ch的ASCII码值在65到90之间时才执行+iUpperCasech-A语句。,ch-A意义?,2020/5/30,73,elseif语句,if(条件表达式1)语句1;elseif(条件表达式2)语句2;.,elseif(条件表达式n)语句n;else语句n+1;,2020/5/30,74,2.11外部变量及变量的作用域,在主函数main()中定义的数组:line、longest等,是主函数main()的私有数组,也是主函数main()的内部数组。这些
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿里地区2025-2026学年八年级下学期语文期末模拟试卷
- 2025 年小升初天津市初一新生分班考试数学试卷(带答案解析)-(冀教版)
- emshkm2025年河南省建设工程造价员资格认证考试试卷
- 社区节前安全知识培训课件
- 山东省聊城市东昌府区王口小学2024-2025学年二年级下学期数学期末检测卷(无答案)
- 北师大版五年级上册数学第二单元 轴对称和平移 检测卷(无答案)
- 退休人员应聘合同范本
- 燃气施工安装合同范本
- 社区春季消防知识培训课件
- 建材维修安装合同范本
- 煤矿地面安全管理课件
- 我国军兵种介绍课件
- 公路水运工程施工安全风险评估指南 第6部分:航道工程JT∕T 1375
- 出租车车辆GPS定位承包合同范本
- 2025年四川省眉山市【辅警协警】笔试真题(含答案)
- 医院医德医风管理制度
- 城市污水处理厂运行承诺及保障措施
- 焊接机器人教学培训课件
- 加强教师反思促进专业成长
- 农村教育现状分析
- QGDW11970.7-2023输变电工程水土保持技术规程第7部分水土保持设施质量检验及评定
评论
0/150
提交评论