谭浩强C语言总结_第1页
谭浩强C语言总结_第2页
谭浩强C语言总结_第3页
谭浩强C语言总结_第4页
谭浩强C语言总结_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、最新资料推荐c 语言程序设计课程设计报告姓名:杨钧翔学号: 20138110254 区队:四第一部分 c 语言程序设计知识点梳理( 注 c 语言程序设计所涉及到的重要知识点及对这些知识点的理解)一、程序设计1、计算机语言(1)机器语言用二进制表示的, 能被计算机识别、 接受的代码称为机器指令。 机器指令的集合就是计算机语言(如: 10110110000000)(2)汇编语言为客服机器语言的缺点,用符号语言来表示指令(英文字母、数字)的符号语言为符号汇编语言 (又称低级语言) 。 一条符号语言指令对应转换为一条机器指令; 转换的过程称为“代真 ”或 “汇编 ”(3)高级语言客服低级语言的缺点,接

2、近人们习惯用的自然语言和数学语言;用英语单词表示的指令及语句。功能性强,不依赖于具体机器,对任何型号计算机都适用(或做很少修改) 。c语言、 fortran 、 qbasic c 语言特点语言简洁、紧凑,使用方便、灵活运算符丰富数据类型丰富具有结构化的控制语句语法限制不太严格,程序设计自由度大c 语言允许直接访问物理地址,能进行位( bit )操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作用c语言编写的程序可移植性好生成目标代码质量高,程序执行效率高2、运行 c 程序的步骤及方法上机输入和编辑源程序,以文件形式存档。.c 作为后缀,生成源程序文件f.c对源程序进行编译。进行预处理,连

3、接其它部分组成完整的、可进行正式编译的源程序 (检查、转换)进行连接处理。 把所有编译后得到的目标模块连接装配,与函数库想连接成一个整体,生成一个可供计算机执行的目标程序运行可执行程序,得到运行结果。二、算法1、算法的概念广义的说是解决一个问题所采用的方法和步骤(太极拳动作图解、乐谱)计算机算法分为两大类:1.数值运算算法(求数值解)2.非数值运算算法(常用于事务管理领域)2、算法的特性有穷性:一个算法应包含有限的操作步骤确定性:算法中的每一个步骤都应当是确定的,而不是含糊的、模棱两可的(算法的含义应当是唯一的,而不应当产生 “歧义性 ”)有零个或多个输入:在执行算法时需要从外界取得必要的信息

4、1最新资料推荐有一个或多个输出:有效性:算法中的每一个步骤都应当有效的执行,并得到确定的结果3、算法描述( 1)自然语言即人们日常使用的语言。用自然语言表示通俗易懂,但文字冗长,有歧义。在描述包含分支和循环时不方便( 2)流程图流程图是用一些图框来表示各种操作。用图形法表示算法,直观形象,易于理解。流程图包括:表示操作的框带剪头的流程线(流程线不要忘记画箭头,反应流程的先后)框内外必要的文字说明流程图三种基本结构:顺序结构选择结构循环结构: 当型( while )循环 ; 直到 (until) 型循环 n-s 流程图 表示算法:全部算法写在一个矩形框内2最新资料推荐n-s 流程图用以下的流程图

5、符号:(1)顺序结构(2)选择结构(3)循环结构特点:比文字描述直观、形象、易于理解;比传统流程图紧凑易画,废除了流程线,算法由各个基本结构按顺序组成; 流程图中的上下顺序就是执行时的顺序; 表示的算法都是结构化的算法。 结构化的算法是由一些基本结构顺序组成的;在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构范围之内三种基本结构的图示:顺序结构选择结构3最新资料推荐循环结构的图示:当型 (while型 )循环结构直到型(until型 循环)( 3)伪代码:介于自然语言和计算机语言之间的文字和符号来描述算法。 它不用图形符号,书写方便,格式紧凑,修改方便,容易看懂,便于向计算

6、机语言算法过渡。伪代码写算法并无固定的、严格的语法规则,可以用多种语言。只需把意思表达清楚,便于书写和阅读,书写的格式要写成清晰易读的格式用伪代码写的算法易于修改设计算法的目的是为了实现算法,所以不仅要考虑如何设计一个算法,也要考虑如何实现一个算法。在用流程图或伪代码描述一个算法后还要转换成c 语句。三、基本数据类型及c 语句 3.1c的数据类型c语言提供了以下一些数据类型。基本类型数据类型构造类型指针类型整型int字符型char单精度实型float实型(浮点型)数组类型双精度实型double结构类型struct联合类型union枚举类型enum空类型( 无值类型)void4最新资料推荐3.3

7、整型数据? 整数类型的有关数据:类型类型说明符长度数的范围基本型int2字节- 32768 32767短整型short2字节- 215215- 1长整型long4字节- 231231- 1无符号整型unsigned2字节0 65535无符号短整型unsigned short2字节0 65535无符号长整型unsigned long4字节0( 232 - 1)3.4浮点型数据(2) 浮点型变量的分类浮点型变量分为单精度( float 型)、双精度(double 型)和长双精度型( long double )三类形式。类型位数数的范围有效数字float3210- 37 103867 位double

8、 型6410- 307103081516位long double12810- 49311049321819位5最新资料推荐 4.1 c 语句概述c程序源程序文件 1源程序文件 2源程序文件 n预处理命令数据声明函数 1函数n函数首部函数体数据声明执行语句c 语句分为以下 5 类控制语句 if () else (条件语句) for () (循环语句) while () (循环语句) dowhile ()(循环语句) contiune(结束本次循环语句) break(终止执行 switch 或循环语句 ) switch(多分支选择语句) return(从函数返回语句)goto(转向语句,在结构化程

9、序中基本不用goto 语句)函数调用语句。函数调用语句由一个函数加一个分号构成,如:printf ( “how do youdo! ”);表达式语句。 在表达式语句由一个表达式加一个分号构成,最典型的是, 由赋值表达式构成一个赋值语句。如: a=3是一个赋值表达式而 a=3; 是一个赋值语句一个表达式的最后加一个分号就成了一个语句空语句。什么也没有。用来作为流程的转向点,也可以用来作为循环语句中的循环体复合语句。用“”把一些语句和声明括起来成为复合语句6最新资料推荐四、结构化程序设计1、顺序结构:各语句是按从上到下的顺序执行的,执行完上一个语句就自动执行下一个语句,是五条件的,不必作任何判断。

10、2、选择结构:需要根据某个条件是否满足来判断是否执行指定的操作任务,或者从给定的两种或多种操作选择其一。( 1) if 语句【 1】 if (表达式)语句1明有else 句子部分【 2】 if (表达式)语句1else语句2【 3】 if(表达式)语句1else if ( 表达式 2)语句 2else if ( 表达式 3)语句 3else if ( 表达式 m)语句 melse语句 m+1( 2) switch 语句( 3)switch ( 表达式 )7最新资料推荐case常量 1 : 语句 1case常量 2 : 语句 2case常量 n : 语句 ndefault: 语句 n+13、循环

11、结构4、模块化程序设计 函数在前面已经介绍过,源程序是由函数组成虽然在前面各章的程序中大都只有一个主函数 main(),但实用程序往往由多个函数组成。数是源程序的基本模块,通过对函数模块的调用实现特定的功能。 语言中的函数相当于其它 高级语言的子程序。语言不仅提供了极为丰富的库函数 (如 turbo c , ms c 都提供了三百多个库 函数 ) ,还允许用户建立自己定义的函数。把自己的算法编成一个个相对独立的函数模块,然后用调用的方法来使用函数。可以说程序的 全部工作都是由各式各样的函数完成的,所以也把语言称为函数式语言。由于采用了函数模块式的结构,语言易于 实现结构化程序设计。 使程序的层

12、次结构清晰,便于程序的编写、阅读、调试。在语言中可从不同的角度对函数分类。从函数定义的角度看,函数可分为库函数和用户定义函数两种。 1)库函数:由系统提供,用户无须定义,也不必在程序中作类型说明,只需在程 序前包含有该函数原型的头文件即可在 程序中直接调用。 在前面各章的例题中反复用到 printf 、scanf、getchar、 putchar、gets、 puts、 strcat 等函数均属此类。2) 用户定义函数:由用户按需要写的函数。对于用户自定义函数, 不仅要在程序中定义函数本身, 而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。语言的函数兼有其它语言中的函数和过程

13、两种功能, 从这个角度看, 又可把函数分为有返 回值函数和无返回值函数两种。1) 有返回值函数: 此类函数被调用执行完后将向调用者返回一个执行结果,称为函数返回值。如数学函数即属于此类函数。用户定义的这种要返回函数值的函数,必 须在函数定义和函数说明中明确返回值的类型。无返回值函数:此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。 这类函数类似于其它语言的过程。由于函数无须返回值, 用户在定义此 类函数时可指定它的返回为“空类型”, 空类型的说明符为“void ”。从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。1) 无参函数: 函数定义、 函数说明

14、及函数调用中均不带参数。 主调函数和被调函数之间不进行参数传送。此类函数通常用来完成一组指定的功能,可以返回或不返回函数值。2)有参函数:也称为带参函数。 在函数定义及函数说明时都有参数, 称为形式参数 (简称为形参 )。在函数调用时也必须给出参数,称为实际参数(简称为实参 )。进行 函数调用时,主调函数8常量表达式 ;行列最新资料推荐将把实参的值传送给形参,供被调函数使用。语言提供了极为丰富的库函数,这些库函数又可从功能角度作以下分类。1) 字符类型分类函数:用于对字符按ascii码 分类:字母,数字,控制字符,分隔符,大小写字母等。 2) 转换函数:用于字符或字符串的转换;在 字符量和各类

15、数字量(整型, 实型等 )之间进行转换;在大、小写之间进行转换。3) 目录路径函数:用于文件目录和路径操作。4)诊断函数:用于内部错误检测。图形函数:用于屏幕管理和各种图形功5)能。6) 输入输出函数:用于完成输入输出功能。7) 接口函数:用于与dos, bios 和硬件的接口。8) 字符串函数:用于字符串操作和处理。9) 内存管理函数:用于内存管理。 10) 数学函数: 用于数学函数计算。11) 日期和时间函数:用于日期, 时间转换操作。12) 进程控制函数:用于进程管理和控制。13) 其它函数:用于其它各种功能。 8.1 概述一个较大的程序可分为若干个程序模块 ,每一个模块用来实现一个特定

16、的功能。在高级语言中用子程序 实现模块的功能。子程序由函数来完成。一个程序可由一个主函数和若干个其他函数构成。函数间的调用关系由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。五、派生数据类型1、数组:一批具有同名的同属性的数据组成一个数组。一维数组类型符数组名 常量表达式 数组名的命名规则和变量名相同,遵循标识符命名规则在定义数组时,需要指定数组中元素的个数, 中的常量表达式用来表示元素个数,即数组长度。常量表达式中可以包括常量和符号常量。如:int a 4+5引用数组名下标定义数组时用到的 数组名常量表达式和引用数组元素时用的数组名下标形式相同,但含

17、义不同。初始化时给数组中的一部分元素赋值,系统会给其余元素赋值为 0。二维数组:类型说明符,数组名常量表达式9最新资料推荐用矩阵行式表示二维数组,是逻辑上的概念,能形象地表示出行列关系,而在内存中,各元素是连续存放的,不是二维的,是线性的。引用数组名下标 下标。如果对所有元素赋初值(即提供全部初始数据) ,则定义数组时对第一组的长度可以不指定,但第二维的长度不能省。字符数组(用来存放字符数据的数组)如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元自动定为空字符(即0)如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。在

18、 c 语言中,是将字符串作为字符数组来处理的。以字符0作为结束标志,用字符常量可使字符数组初始化字符数组的输入输出:.逐个字符输入输出; .将整个字符串一次输入或输出。系统把空格字符作为输入的字符串之间的的分隔符scanf 函数中的输入项如果是字符数组名,不要再加地址符&字符串处理函数 puts (字符数组) 用 puts 函数输出的字符串可以包含转义字符gets(字符数组) 从终端输入一个字符串到字符数组,并且得到一个函数值,该涵数值是字符数组的起始地址。 用 puts 和 gets 函数只能输出或输入一个字符串字符串连接函数strcat(字符数组 1,字符数组2)把两个字符数组中的字符串连

19、接起来,把字符串2 接到字符串1 的后面,结果放在字符数组 1 中,函数调用后得到一个函数值 字符数组 1 的地址 strcpy(字符数组 1,字符串 2)将字符串 2 复制到字符数组 1 中去。不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。可以用strncpy 函数将字符串2 中前几个字符复制到字符数组1 中去,但复制的字符数n 不应多余str1 中原有的字符(不包括0) strcmp(字符串,字符串2)如全部相同,则认为两个字符串相;若出现不相同的字符,则以第一对不相同的字符比较结果为准,在英文字典中位置在后面的“大 ” strlen(字符数组)测试字符串的长度 strlur

20、 (字符串)将字符串中大写字母换成小写字母 strupr (字符串)将字符串中小写字母换成大写字母在使用字符串处理函数时,应当在程序文件的开头用#include “string.h”2、指针指针是一个地址,而指针变量是存放地址的变量“* 表”示 “指向 ” 类型名* 指针变量名。指针变量中只能存放地址(指针),不要将一个整数赋给一个指针变量指针变量作为函数参数函数的调用可以(只可以)得到一个返回值(即函数值)而使用指针变量作参数可以得到多个变化了的值。通过指针引用数组:p+1 指向同一数组中的下一个元素;p-1 指向同一数组中的上一个元素。直接用p2-p1 就可以知道他们所指元素的相对距离*

21、( p-)相当于先对p 进行 “* ”运算,在使p 自减二维数组a 的有关指针* ( 1 +2), * ( *( a+1) +2),a 1 2表示 1 行 2 列元素的值。注意:不要把 &a i 简单地理解为a i 元素的物理地址,因为并不存在ai 这样一个实际的数据存储单元。它只是一种地址的计算方法,能得到第i 行的首地址。 &a i和ai 的值是一样的,但他们的含义是不相同的。&a i 或 a+i 指向行,而a i 或 * a+i指向列。当列下标为0 时, &a i和 a i (即 a i +j )值相同,即他们表示同一地址,但应注意他们所指的对象是不同的,即指针的基类型是不同的,* ( a+i)只是 a i 的另一种表示形式,不要简单的认为* (a+i )是 “a+i 所”指单元中的内容。在一维数组中a+i 所指的10最新资料推荐是一个数组元素的存储单元,在该单元中有具体值。对二维数组a+i 不是指向具体存储单元而是指向行。在二维数组中a+i;a i ;* ( a+i) ;&a i ;&a i 0的值相同通过指针引用字符串。在c 语言中,字符串是存放在字符数组中的。用字符数存放一个字符串, 可以通过数组名和下标引用字符串一个字符,也可以通过数组名和格式声明“%s”输出该字符串用字符指针变量指向一个字符串常量,通过字符指针变量引用字符串常量。“wh

温馨提示

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

评论

0/150

提交评论