大学C程序设计教程-西安交通大学.ppt_第1页
大学C程序设计教程-西安交通大学.ppt_第2页
大学C程序设计教程-西安交通大学.ppt_第3页
大学C程序设计教程-西安交通大学.ppt_第4页
大学C程序设计教程-西安交通大学.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,大学C+程序设计教程,C+基础小结 (18章),2,C+程序的基本结构,全局变量说明 #include 子函数1 (形式参数) 子函数局部变量说明 语句序列 。 int main( ) 局部变量说明 语句序列 return 0; ,C+程序由函数组成;至少包括主函数main()和(或)若干个子函数。 一个函数又由变量及参数说明语句和语句序列构成。 每个语句必须用分号结尾。一个语句行可以写多个语句,一个语句可以写在多行上。 C+语言允许在程序中插入注释行。 C+语言提供了包括I/O功能在内的大量标准库函数,但调用这些函数时,必须在程序头部包含头文件。,函数体,3,三大基本结构示意图,顺序结构 选择结构,循环结构,模块(语句)A,模块(语句)B,条件,程序模块1,成立,不成立,程序模块2,条件,程序模块,不成立,成立,(当型循环),程序模块,成立,不成立,条件,(直到型循环),4,1、顺序结构,r = p; p = q; q = r;,5,2、选择结构(之一),一路分支 语句格式: if (表达式) 语句序列,条件?,成立,不成立,语句序列,两路分支 语句格式: if (表达式) 语句序列1 else 语句序列2,条件?,语句序列 1,成立,不成立,语句序列 2,语句序列可以是一个语句,也可以是复合语句结构(分程序),6,分程序, 分程序在语法上是一个整体,相当于一个语句。 分程序中也可以再嵌套新的分程序,用以构成更加复杂的控制结构。,7,选择结构(之二),多路(开关)选择语句 : switch(整数表达式) case 数值1: 语句序列1; . case 数值n: 语句序列n; default : 语句序列n+1; ,计算整型表达式,值 = ?,语句 序列1,.,语句 序列2,语句 序列n,带break语句的多分支结构,8,3、循环结构(之一),当型循环 语句格式: while (表达式) 语句序列 ,直到型循环 语句格式: do 语句序列 while (表达式);,循环体,循环体,条件?,语句序列,成立,不成立,语句序列,不成立,成立,条件?,9,循环结构(之二),for语句用来实现计数循环: for (; ; ) ,10,C+数据类型的分类,11,类型不同的数据之间的混合算术运算,不同类型的数据在参加运算之前会自动转换成相同的类型, 然后再进行运算。 转换规则 转换的原则是由低级向高级转换 char - int - float - double 例: int a; a= 5/2 ,结果a为2 强制类型转换 格式:(类型语句)e 例: int i1=1,i2=2;double d1; d1 = (double)i1/i2;结果d1为0.5,12,数组,数组: 具有相同类型的数据的集合。 数组用数组名来标识。 其中的每个变量(数组元素)通过该变量在数组中的相对位置(下标)来引用。 特点: 常用于处理大批量数据; 数据特点:存在内在联系; 数组具有相同数据类型的变量集合; 这些变量都有相同名字,但下标不同; 称这些变量为数组元素; 只有一个下标一维数组; 有两个下标二维数组。,13,字符型数组和字符串处理库函数,字符 是用单引号括起来的单个字符,它在存储器中占1个字节。例如,A 字符串 是用双引号括起来的一串字符,它在存储器中占n+1个字节,即字符串的结束符0也占1个字节的位置。例如,”abc”; 有效字符的个数称为字符串长度。 例如,”abc”的长度为3,但占4个字节 (0占一位)。 字符串是用字符型数组存放的。,14,字符串长度与字符数组大小的关系,char A10=“China”;,A5,A6,A7,A8,A9,A0,A1,A2,A3,A4,0,?,?,?,?,C,h,i,n,a,15,函数的定义,函数必须先定义,后使用。 定义函数的一般格式为: () ,函数体,16,函数的调用,函数要先定义,后调用。 调用函数时要考虑到函数本身的参数; 调用标准库函数时,要包含相应的头文件 输入/输出函数 iostream.h 字符串函数 string.h 常用数学函数 math.h 调用自定义函数时,要定义相应的实参,并给这些实参赋值。 实参与形参必须一一对应: “类型一致、位置一致、个数一致” 实参与形参有3种结合方式: 值调用、引用调用和地址调用。,17,指针型变量的定义,一般格式: 类型描述符 *指针变量名表; 例:int * ptr; float *array; char *s1,*s2; 指针类型 内存地址值是固定不变的,不同类型的指针本身所占据的存储区域都一样大。 规定了用指针间接访问数据时的访问方式 为指针的算术运算提供依据,18,“*”和“&”运算符,“,19,自顶向下, 逐步求精,结构化程序设计支持“自顶向下, 逐步求精”的程序设计方法。 “自顶向下” 是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。 “逐步求精” 是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。,20,基本思想和方法,基本思想 从问题本身开始,经过逐步求精,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图,据此编写程序。 基本方法 从题目本身开始, 找出解决问题的基本思路, 将其用结构化框图(可能是非常粗糙)表示。 对框图中的比较抽象的、用文字描述的模块进一步分析细化,结果仍用结构化框图表示。 将所求解问题的所有细节都弄清楚后, 再可以根据框图直接写出相应程序代码。,21,完全数,找出210000之内的所有完全数。 所谓完全数,即其各因子之和正好等于本身的数。 如6=1+2+3,28=1+2+4+7+14,所以6,28都是完全数。 #include void main() int k; for(int n=2;n10000;n+) k=0; for(int m=1;m=n/2;m+) if(n%m=0)k=k+m; if(k=n) coutkendl; ,22,自顶向下, 逐步求精的解法,void main() for(int i=2;i=10000;i+) if(iscomplete(i) coutiendl; bool iscomplete(int n) int s=0; for(int i=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论