煜儿出品,必属精品你只管精彩,生命自有安排。1《C程序设计》课本总结一、概述(一)程序:所谓程序,就是一组计算机能识别和执行的指令。(二)计算机语言1.机器语言·机器指令:计算机能直接识别和接受的二进制代码称为机器指令。·机器语言:机器指令的集合就是该计算机的机器语言。2.符号语言(符号汇编语言、汇编语言)·符号语言:用一些英文字母和数字表示一个指令。·一般一条符号语言的指令对应转换为一条机器指令。·不同型号的计算机的机器语言和汇编语言是互不通用的。·机器语言和符号语言称为计算机低级语言。3.高级语言·高级语言:以人类日常语言为基础的一种编程语言。·高级语言的语言功能很强。·高级语言的一个语句往往对应多条机器指令。·高级语言写出的程序对任何型号的计算机都适用。·通用语言:fortran;basic;c数据库语言:foxbase;FoxPro网页制作语言:HTML;Java(三)C语言特点1.语言简洁、紧凑,使用方便、灵活。C语言一共只有37个关键字、9种控制语句。·C语言中的37个关键字auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、inline、int、long、register、restrict、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while、_bool、_Complex、_Imaginary关键字分类关键字功能数据类型关键字(12)char声明字符型变量或函数double声明双精度变量或函数煜儿出品,必属精品你只管精彩,生命自有安排。2enum声明枚举类型float声明浮点型变量或函数int声明整型变量或函数long声明长整型变量或函数short声明短整型变量或函数signed声明有符号类型变量或函数struct声明结构体变量或函数union声明共用体(联合)数据类型unsigned声明无符号类型变量或函数void声明函数无返回值或无参数,声明无类型指针控制语句关键字(12)循环语句fordo循环语句的循环体while循环语句的循环条件break跳出当前循环continue结束当前循环,开始下一轮循环条件语句if条件语句else条件语句否定分支goto无条件跳转语句开关语句switch用于开关语句case开关语句分支default开关语句中“其他”分支返回语句return子程序返回语句储蓄类型关键字(4)auto声明自动变量extern声明变量是在其他文件正声明register声明寄存器变量static声明静态变量其他关键字(4)const声明只读变量sizeof计算数据类型长度typedef用已给数据类型取别名volatile说明变量在程序执行中可被隐含地改变C99新增(5)inline用来定义一个类的内联函数restrict用于限定指针_Bool表示布尔值_Complexand_Imaginary定义的复数类型·9种控制语句goto语句(转向语句)、if语句(条件语句)、while语句(循环语句)、do-while语句(循环语句)、for语句(循环语句)、break语句(中止执行switch语句或循环语句)、continue语句(结束本次循环语句)、switch语句(多分支选择语句)、return语句(从函数返回语句)煜儿出品,必属精品你只管精彩,生命自有安排。32.运算符丰富。C语言共有34种运算符3.数据类型丰富。4.具有结构化的控制语句。5.语法限制不太严格,程序设计自由度大。6.C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。7.用C语言编写的程序可移植性好。8.生成目标代码质量高,程序执行效率高。(四)C语言程序的结构1.一个程序由一个或多个源程序文件组成。·在一个源程序文件中可以包括3个部分:a)预处理指令。如#includestdio.h指令是将stdio.h头文件的内容读进来,放在#include指令行。(stdio是standardinput&output的缩写,h是header的缩写)b)全局声明。即在函数之外进行的数据声明。·在函数外面声明的变量称为全局变量。在函数中声明的变量是局部变量,只在函数范围内有效。c)函数定义。2.函数是C程序的主要组成部分。1)一个C程序有且只有一个main函数。程序总是从main函数开始执行的。不论main函数在整个程序中的位置。2)一个函数包括两个部分。a)函数首部。即函数的第1行,包括函数名、函数类型、函数属性、函数参数名、参数类型。·注:一个函数名后面必须跟一对圆括号(),括号内写函数的参数名及其类型。如果函数没有参数,可以在括号中写void或者是空括号。b)函数体。即函数首部下面的花括号内的部分。·函数体一般包括声明部分(定义在本函数中所用到的变量+对本函数所调用函数进行声明)和执行部分。3)程序中对计算机的操作是由函数中的C语句完成的。4)在每个数据声明和语句的最后必须有一个分号“;”(且必须是英文输入状态下的分号)5)C语言本身不提供输入输出语句。输入和输出操作是由C标准函数库中的函数实现的。a)标准输入输出函数:putchar(输出字符)、getchar(输入字符)、printf(格式输出)、scanf(格式输入)、puts(输出字符串)、gets(输入字符串)。b)printf函数i.一般形式printf(格式控制,输出表列)煜儿出品,必属精品你只管精彩,生命自有安排。4ii.格式控制(转换控制字符串、格式字符串):用双撇号括起来的一个字符串。iii.格式控制=格式声明(%附加字符格式字符)+普通字符(原样输出地字符)printf函数中用到的格式字符格式字符说明d,i以带符号的十进制形式输出整数(正数不输出符号)o以八进制无符号形式输出整数x,X以十六进制无符号形式输出整数u以无符号十进制形式输出整数c以字符形式输出,只输出一个字符s输出字符串f以小数形式输出单、双精度数,隐含输出6位小数e,E以指数形式输出实数g,G选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0printf函数中用到的格式附加字符字符说明l用于长整型整数,可加在格式符d、o、x、u前面m(正整数)数据最小宽度n(正整数)对实数,表示输出n位小数;对字符串,表示截取的字符个数-输出的数字或字符在域内向左靠iv.如果想输出字符“%”,则在“格式控制字符串”中用连续两个“%”表示。c)scanf函数i.一般形式scanf(格式控制,地址表列)ii.地址表列是变量地址,不是变量名。记得加“&”取地址。iii.输入数据时应在对应位置上输入除了格式声明以外的其他字符。(一一对应,必须对应)iv.输入数值时,在两个数值之间需要插入空格(或其他分隔符);连续输入字符是,在两个字符之间不要插入空格或其他分隔符。v.输入数值数据时,输入空格、回车、Tab键或遇到非法字符(不属于数值的字符),认为该数据结束。d)putchar函数(输出一个字符)i.一般形式putchar(c)ii.putchar输出一个字符。c可以是字符常量、整型常量、字符变量、整型变量(其值在字符的ASCII代码范围内)。iii.putchar也可以输出转义字符。e)gerchar()函数(输入一个字符)i.一般形式getchar()煜儿出品,必属精品你只管精彩,生命自有安排。5ii.gerchar函数没有参数,从计算机终端输入一个字符。iii.只能接收一个字符,想输入多个字符要用多个getchar函数。f)puts函数(输出一个字符串)i.一般形式puts(字符数组)ii.用puts函数输出的字符串中可以包含转义字符。g)gets函数(输入一个字符串)i.一般形式gets(字符数组)ii.向字符数组输入一个字符串。送给数组的’\0’占一个字符。3.程序应当包含注释。·C语言允许用两种注释方式:1)以//开始的单行注释。这种注释的范围从//开始,以换行符结束。这种注释不能跨行。注释内容一行写不下,可以用多个单行注释。2)以/*开始,以*/结束的块式注释。编译系统在发现一个/*后,开始找注释结束符*/,把二者间的内容作为注释。·注释只给人看,计算机不执行。(在程序进行预编译处理时将每个注释替换为一个空格,在编译时注释部分不产生目标代码。)(五)运行C程序源程序目标程序可执行程序内容程序设计语言机器语言机器语言可执行否否是文件名后缀.c.obj.exe煜儿出品,必属精品你只管精彩,生命自有安排。6二、算法算法+数据结构=程序求解问题的步骤分析问题→算法分析→程序设计→程序调试→运行与维护分类计算计算法分为数值运算算法和非数值运算算法。特点1.有穷性。一个算法应包含有限的操作步骤,不能是无限的。2.确定性。算法中的每一个步骤应当是确定的,不能含糊不清。3.有零个或多个输入。4.有一个或多个输出。没有输出的算法是没有意义的。5.有效性。(比如不能让0做除数)表示方法1.自然语言2.流程图1)流程图符号2)三种基本结构·顺序结构·选择结构·循环结构起止框输入输出框处理框判断框连接点流程线注释框煜儿出品,必属精品你只管精彩,生命自有安排。7当型(while型)循环结构直到型(until型)循环结构3)N-S流程图4)伪代码·伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。(只要把意思表达清楚就行)5)计算机语言三、数据类型(一)常量1.直接常量1)整型常量2)实型常量(a)十进制小数形式(b)指数形式(e或E之前必须有数字,之后必须为整数)3)字符常量(a)普通字符。用单撇号括起来的一个字符。如’a’(b)转义字符转义字符及其作用转义字符字符值输出结果煜儿出品,必属精品你只管精彩,生命自有安排。8\'一个单撇号(')具有此八进制码的字符\一个双撇号()输出此字符\?一个问号(?)输出此字符\\一个反斜线(\)输出此字符\a警告(alert)产生声音或视觉信号\b退格(backspace)将当前位置后退一个字符\f换页(formfeed)将当前位置移到下一页的开头\n换行将当前位置移到下一行的开头\r回车(carriagereturn)将当前位置移到本行的开头\t水平制表符将当前位置移到下一个tab位置\v垂直制表符将当前位置移到下一个垂直制表对齐点\o,\oo,\oo其中o代表一个八进制数字与该八进制码对应的ASCII字符与该八进制码对应的字符\xh[h…]其中h代表一个十六进制数字与该十六进制码对应的ASCII字符与该十六进制码对应的字符4)字符串常量。用双撇号把若干个字符括起来,字符串常量是双撇号中的全部字符(不包括双撇号本身)。如:”boy”2.符号常量。用#define指令,指定用一个符号名称代表一个常量。如:#definePI3.1416//注意行末没有分号好处:①“见名知意”②“一改全改”·符号常量在程序中不能重新赋值。·注:区分符号常量和变量。符号常量不占内存,只是一个临时符号,在预编译后这个符号就不存在了,不能对符号常量赋新值。(二)变量1.定义:在程序运行过程中,其值可以改变的量称为变量。变量代表一个有名字、具有特定属性的一个储存单元。2.2个要素变量名:以一个名字代表的一个储存地址。变量值:变量值储存在内存中。3.变量必须先定义、后使用.......。(三)常变量如:constinta=3表示a被定义为一个整型变量,指定其值为3,而且在变量存在期间其值不能改变。1.常变量具有变量的基本属性:有类型,占储存单元,便于在程序中被引用。2.常变量与常量的区别常变量是有名字的不变量,常量是没有名字的不变量。煜儿出品,必属精品你只管精彩,生命自有安排。9(四)标识符1.定义:在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符。2