C语言整理版打印版

上传人:e****s 文档编号:243684678 上传时间:2024-09-28 格式:PPT 页数:46 大小:630KB
返回 下载 相关 举报
C语言整理版打印版_第1页
第1页 / 共46页
C语言整理版打印版_第2页
第2页 / 共46页
C语言整理版打印版_第3页
第3页 / 共46页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,总体架构,单词,数据类型“桥梁,运算法那么“动词,根本类型,构造类型,指针类型,空类型,标识符,常量,字符串文字量,标点符号,语句“句子,简单句,选择句,循环句,函数“一段话,算法“核心思想,字母,表达式“短句,桥梁,内存关系,内存特点:,加点后才有记忆,加电后并非空白,而是乱七八糟的东西,断电后记忆消失,记忆可读可写,记忆内容读取不变,写入原来消失,机器世界,汇编世界,内存,8bit位二进制=1Byte/B字节,1KB千字节 =1024B,1MB兆字节=1024KB,1GB吉字节 =1024MB,1TB太字节 =1024GB,1PB拍字节 =1024TB,1EB艾字节 =1024PB,数据传输是以大多是以“位bit为单位,一个位就代表一个0或1,数据存储是以“字节Byte为单位,是最小一级的信息单位。,计算机一次可以运算的数据长度称为“字,字的长度称为“字长,一个字可以一个字节也可以多个字节,常用字长,8bit,16bit,32bit,64bit,字节,位,字,8,1/n,8*n,补码、原码等知识,VC+,选择win32 application 图形界面,桥梁,进制转换,.各种进制转换.docx,字母与单词,C语言的字母,大写字母:,A-Z,小写字母:,a-z,数字:,0-9,图形字符:,29,个如,=&,空白字符:空格、水平制表、垂直制表、换页,85,C语言的单词,常量,字符串文字量,标识符,标点符号,关键字,预定义标识符,用户标识符,标识符,关键字,组成,字母,数字,下划线。以字母,下划线开头。,分类,关键字,不可作为用户标识符,预定义标示符,可作为用户标识符,用户标识符,define scanf printf include,注意,变量名,函数名,符号常量名全都是标识符,关,键,字,Auto,,,break,,,case,,,char,,,const,,,continue,,,default,,,do,,,double,,,Else,,,enum,,,extern,,,float,,,for,,,goto,,,if,,,int,,,long,,,switch,,,register,,,return,,,short,,,signed,,,sizeof,,,static,,,struct,,,typedef,,,union,,,unsigned,,,void,,,volatile,,,while,特定字,Define,,,endif,,,ifdef,,,fndef,,,include,,,line,,,endef,C,语言中关键字主要有以下三类:,类型说明符:用来定义变量、函数或其他数据结构的类型,如,unsignedchar,int,long,等,语句定义符:用来标示一个语句的功能,如,if,for,等,预处理命令字:用来表示预处理命令的关键字,如,include,define,等,单词,常量,符号常量:,用一个标识符代表一个常量的符号,区别变量名全部用大写,40 空格,单词,字符串文字量,单词,标点符号,用“括起来的字符序列,只有字符串常量,没有字符串变量,字符串是作为数组处理的。,实实在在原封不动的引用一段语言或文字,共48个, () . - + - = *= /= %= += -= = &= = |= , # #,标识符,变量,存储类别,局部变量内部变量:在一个函数的内部定义的变量,说明:1. 主函数中的变量也是局部变量,2. 不同函数内的变量可以重名,3. 形式参数也是局部变量,4. 函数内部的复合语句中定义的局部变量只在“程序块中使用,全局变量外部变量:程序编译的单位是源程序,一个源程序包含假设干函数,在函数之外定义的变量称为全局变量,有效范围是定义开始到根源文件结束,说明:1. 作用,增加函数间的数据关联,2. 约定,全局变量的第一个字母大写,3. 非必要情况下不要用全局变量,1全部执行过程占用存储单元,而不是使用时才开辟,2函数依赖外部变量,降低了程序的通用性,4. 局部变量与全局变量重名时,优先局部变量。,3,变量名,a,变量值,存储单元,变量有两属性:数据类型,+,数据的存储类别,存储空间分为:程序区、静态存储区、动态存储区,静态存储区:全局变量,动态存储区:函数形式参数、自动变量(未加static的)、函数调用时的现场保护和返回值,每次分配的地址不同,生命周期只是执行的周期。,1. auto:自动变量,不专门声明的存放在动态存储区,2. 用static声明局部变量:存储单元不释放,静态区,使用其情况:1. 需要保存函数上一次调用结果,2. 初始化后,只引用不改变其值,3. register变量:存放器变量,将反复调用的值保存在CPU的存放器中,说明:1. 只有局部自动变量和形式变量可以作为存放器变量,2.计算机存放器变量数目有限,4. 用extern声明外部变量:在函数内部改变变量为全局变量,或在多文件中声明,5. 用static声明外部变量:声明的全局变量只在本文件中使用,标识符,变量,存储类别二,分类原则,分类,分类,按作用域角度,局部变量,自动变量,及动态局部变量(离开函数值消失),静态局部变量(离开函数值保留),寄存器变量(离开函数值消失),形式参数可以定义为自动变量或寄存器变量,全局变量,静态外部变量(只限本文件引用),外部变量(允许全文件引用),存在时间,动态存储,自动变量(本函数内有效),寄存器变量(本函数内有效),形式参数(本函数内有效),静态存储,静态局部变量(函数内有效),静态外部变量(本文件内有效),外部变量(其他文件也有效),按存储位置,内存中静态存储,静态局部变量,静态外部变量,外部变量,内存中动态存储,自动变量和形式参数,CPU,中存储,寄存器变量,数据类型,根本类型,构造类型,指针类型,空类型,-Bool类型本质是宏,数值类型,字符类型,char,1,字节,结构体,struct,共用体,union,数组,枚举类型,enum,整型,浮点型,短整型,short,2,字节,整型,int,4,字节,单精度型,float,4,字节,双精度型,double,8,字节,长整型,long,4,字节,C,数据类型,1.,整型数据,int,可以有修饰符,short,、,long,、,longlong,三种,后面的,int,可省略,默认的整形数据常量为,int,。,2.,整型和浮点型数据,可以加上,signed,和,unsigned,修饰符号,表示数据是否是有符号,默认有符号,3.,浮点型数据可以带小数,默认浮点型数据作为,double,类型来对待。,整形常量数据前缀总结:,0,、,0X,,分别表示,8,进制和,16,进制。,整形常量数据后缀总结:,L,、,LL,;,U,浮点型常量数据后缀总结:,f,、,L,;,U,隐含转化,数据类型根本型,数值类型,字符类型,char,1,字节,整型,浮点型,短整型,short,2,字节,整型,int,4,字节,单精度型,float,4,字节,双精度型,double,8,字节,长整型,long,4,字节,根本型,类型,字节,取值范围,signedint,2(TC)/4(VC),-3276832767,或,-21474836482147483647,(,2,31,),Unsigned int,2(TC)/4(VC),065535,或,04294967295,signed short int,2,-3276832767(-2,15,2,15,-1),Unsigned short int,2,065535,long int,4,-21474836482147483647,unsigned long int,4,04294967295,float,4,-3.4*10,-38,3.4*10,38,double,8,-1.7*10,-308,1.7*10,308,long double,16,-1.2*10,-4932,1.2*10,4932,char,1,-127128,unsigned char,1,0255,字符常量:单括号括起来一个字符或者开头的转义字符,字符变量:只能放一个字符,字符串常量:一对双括号括起来的字符序列,无字符串变量!如果想存放,用数组。,“hello、“$123.34 char c; c=a c=“a c=“chain,a和a区别:字符串常量以0结尾,是系统自动添加的,字符型和数据值转换:ASCII码:48=“0,A=“65,a=“97相差32,数据类型,构造类型数组,数组:用于描述问题中一组性质相同且有序的数据。是一种数据类型相同的数据对象。,数组的元素:数组中每个数据对象叫元素,从0开始编号,使用这些称为和使用int变量一样,一维数组定义: 类型说明符 数组名常量表达式;,1说明数组元素的类型,2说明数组元素的个数,3数组名意味着一块连续的存储空间=元素个数*元素占据内存,数组的引用: 数组名整数类型表达式,一维数组的引用 数组名下标,一维数组赋初值,1定义时赋全值 int a5=0,1,2,3,4; a0=0, a1=1, a2=2, a3=3, a4=4,2定义时赋局部值 int a5=0,1; a0=0, a1=1, a2=0, a3=0, a4=0,3不指定长度赋值 int a =0,1,2,3,4; a0=0, a1=1, a2=2, a3=3, a4=4,4int a 5= 1=1,4,5;a0=0, a1=1, a2=4, a3=5, a4=0,一维数组遍历,int a5;,int i;,for(i=0;i指向运算符,p-n 得到p指向的结构体变量中的成员n的值,p-n+ 得到p指向的结构体变量中的成员n的值,用完该值后+1,+p-n得到p指向的结构体变量中的成员n 的值加1,在使用。,三种等价形式 结构体变量.成员名 *p.成员名p-成员名指向结构体数组的指针:,用结构体和指向结构体的指针作为函数参数,数据类型,构造类型,共同体,共用体:,共用体定义: union 共用体名, 成员表列, 变量表列;,共用体引用:只能引用成员,不能引用变量 共用体变量名.成员名,共用体特点:,同一个内存短可以用来存放几种不同类型的成员,但每一时刻只能存放其中一种,起作用的成员是最后一次放入的成员,共同体的地址和各成员的地址是同一地址 &a=&a.i,不能对共用体变量名赋值,也不能引用变量名得到一个值,不能用共用体作为函数参数,也不能用函数带回共用体变量,但可以用指针同结构体,可以出现在结构体中,也可以定义共用体数组,数据类型,构造类型,枚举、,typedef,定义类型,枚举:如果一个变量只有几种可能的值,可以用枚举变量一一列举出来。,声明:enum 具体值1,具体值2具体值n;,说明:1. 在编译中,枚举类型按照常量处理对不能对它们赋值。例如,不能写:sun=0;,2. 枚举元素作为常量是有值的,按顺序为1,2,3,3. 枚举类型可以用来判断比较,4. 一个整数不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。,5.可以在声明时另行指定枚举元素的值,enum weekdaysun=7,mon=1,tue,wed,thu,fri,sat;,例如:enum weekday,sun,mon,tue,wed,thu,fri,sat;,typedef,:,声明新的类型代替已有的类型名,声明:,typedef,已有类型名 新类型名表,;,例如:,typedef int natural;,natural i1,i2;,数据类型,构造类型指针,初识,含义:,是,C,语言的一种数据类型,其值表示某个内存单元的地址,其用途是完成与地址有关的计算,分类:,1.,指向数据对象的指针,2.,指向函数的指针,3.,指向虚无的指针,运算符:,&,:,取地址运算符,获得某个变量的地址,,&,(变量,、数组,、常量,、表达式,),结果为一块内存(左值表达式),*:,取值运算符,获得地址中存放的数据,*(指针) 间接访问变量,运算对象是指针,结果是指针所指向的那块内存(左值)或内存中数据的值(右值),char a,*p_a;,a=“STIE,*p_a=a;,p_a=“STIE 值当输出格式为%p时为地址,*p_a=S 地址指向的值,&p_a=02021106 地址,数据类型构造类型指针指针操作一,定义:类型说明符 * 变量名,int,*,i,类型说明符 :表示该指针变量能且只能指向的变量的数据类型,*: 表示该变量为指针变量,变量名:表示指针变量的名称,& * p=p; p任何一指针,* & v=v; v任何一变量,赋值初始化:用&让指针指向相应的地址内存单元,指针在使用之前,一定要先定义,再赋值,后使用,引用:,char Stuname,name; /定义字符变量,char *pStu; /定义指针变量,char *pNew;,pStu=& Stuname; /取变量Stuname地址,并赋值给pStu,pNew=pStu; /取指针变量pStu,赋值给pNew,name=*pNew; /把pNew指向的内存单元的值赋给name,赋值,引用,取值,取值:,用*间接访问指针指向的变量,数据类型构造类型指针指针操作二,指针与整数加法:,指针与整数的加法,主要用于数组,且注意是否超出大小。,指针与整数减法:,减法后注意不要超出第一个数组元素,指针与指针减法:,参加运算的指针必须同时指向同一个数组,数组元素值,12,13,14,15,数组元素,Num0,Num1,Num2,Num3,内存地址,2A02,2A03-2A04,2A05-2A06,2A07-2A08,2A09-2A0A,2A10-2A0B,指针指向,指针情况,P_New,初值,P_New+,P_Old,p_New+2,程序语句,(,3,),(,4,),(,6,),(,5,),int Num4=12,13,14,15 ; /定义数组变量,int *p_New,*p_Old; /定义指针变量,p_New=Num; /指针赋值,p_New+; /指针自加1,p_Old=p_New+2; /指针p_New+2,p_Old=p_New-1; /指针p_Old-1,赋值,加法,减法,数据类型,构造类型指针,指针与数组,数组:用于描述问题中一组性质相同且有序的数据。是一种数据类型相同的数据对象。,内存中形式:int day7=1,2,3,4,5,6,7 char str=“see sky,元素值,1,2,3,4,5,6,7,数组元素,day0,day1,day2,day3,day4,day5,day6,内存地址,2A02,2A03/4,2A05/6,2A07/8,2A09/A,2A0B/C,2A0D/E,2A0F/10,2A11,元素值,s,e,e,空格,s,k,y,0,数组元素,str0,str1,str2,str3,str4,str5,str6,str7,内存地址,2A02,2A03,2A04,2A05,2A06,2A07,2A08,2A09,2A10,数组的引用方式,:下标、指针,下标法必须通过额外的一个变量来标记,而指针不必,指针数组:一系列指向同一数据类型的指针变量的集合,元素是指针变量,常用来访问一组字符串,要想输出字符串,需要该字符串的地址,定义:类型说明符 *数组名数组长度,初始化: char *name=“China,Beijing,Longmai;,内容,“,china,”,“,Beijing,”,“,Longmai,”,指向,数组元素,name0,name1,name2,字符串指针:指向字符串的指针变量,定以后,指针指向字符串首地址,定义: char *变量名 同指向字符的指针,引用:不用赋值,定义之后就有初始值,即字符串的首地址,数据类型,构造类型指针,指针与函数,指针函数:,指针用作函数参数,传递的是变量的地址,也可以说是指针变量的值。,假设想通过形参改变实参,其实参要为变量的地址,形参为指针,指针变量作为函数参数时:实际是让形参同时指向参数指向的数据单元,数据类型,构造类型指针,函数指针,函数指针:,用来指向某个函数,一个函数只有一个函数指针,且不能通过函数指针移动访问函数体内语句,定义:数据类型*变量名;,初始化:,数据类型,构造类型指针,指针的指针,指针的指针:,存放指针的地址,定义:,数据类型 *变量名 ;,应用:,指针的指针,=,二维数组,ai = * (a+i),aij = * (ai+j) = * (* (a+i)+j),运算符“动词,运算符,含义,优先级,结合性,类别,(),.,-,+ -,(,类型名,),值列表,数组下标,函数调用,Direct selection,指向结构体成员运算符,(后)自增自减,(,C99,)复合字面值,16,从左到右,后缀,+ -,(前)自增自减,15,从右到左,前缀,&,*,+,-,!,Sizeof,求左值的指针,求指针的对象,求原值,求负值,求按位反值,逻辑非,求长度,从右到左,一元,(类型名),转换值类型,14,从右到左,一元,* / %,乘、除、求余,13,从左到右,二元,+ -,加、减,12,从左到右,二元,左移、右移,11,从左到右,二元, =,小于、小于等于,大于、大于等于,10,从左到右,二元,= !=,等于 不等于,9,从左到右,二元,&,按位于,8,从左到右,二元,按位异或,7,从左到右,二元,|,按位或,6,从左到右,二元,&,逻辑与,5,从左到右,二元,|,逻辑或,4,从左到右,二元,?:,条件运算,3,从右到左,三元,= += -= *=,/= %= = &= = |=,赋值,2,从右到左,二元,顺序求值,1,从左到右,二元,运算符“动词,1、规律发现:自增自减运算+在前先加后用,+在后先用后加符合运算符号位置规律,2、z=2,3,4(整个是赋值表达式) 这个时候z的值为4。,z= 2,3,4 整个是逗号表达式这个时候z的值为2。,3、三种取整丢小数的情况:,1 int a =1.6; 2 (int)a;31/2; 3/2;,4、eg: 00001010&00001000=00001000,00001010|00001000=00001010,108=0000101000001000=00000010 异或:值不相同,结果为1;值相同,结果为0。,初等运算符,() - .,单目运算符,算术运算符先乘除后加减,关系运算符,逻辑运算符不包括!,条件运算符,赋值运算符,逗号运算符,表达式“词组,初等表达式:,变量名或函数名,常量,字符串文字量,左值,=,右值,算术表达式,逻辑表达式,字位表达式,强制类型转换表达式 类型运算符变量,逗号表达式 表达式1,表达式2,表达式n,赋值表达式,条件表达式 逻辑表达式?表达式1:表达式2,指针表达式,语句“句子,break,:结束循环,不能与,if,连用,break,根本不会理睬,if,语句是否存在,直接跳出最内层的循环或,switch,语句块。,continue,:结束本次循环,接着判断是否执行下次循环,语句,预处理命令,预处理功能:,宏定义 #define 标识符参数表 字符串,1约定大写,以区分变量,2不是C语言,不必加;号,3周期为#define开头到根源文件结束,用#undef 标识符 终止,4宏定义可以嵌套引用,文件包含:一个源文件可以将另外一个源文件包含进来,#include “文件名 #include,1区别先从当前路径,在标准库直接标准库,2文件包含可以嵌套,条件编译 在满足某条件时对某一组语句进行编译,不满足另一组,#ifdef,标识符,程序段,1,#else,程序段,2,#endif,#ifndef,标识符,程序段,1,#else,程序段,2,#endif,#if,标识符,程序段,1,#else,程序段,2,#endif,#ifdef 如果标识符已被定义过,那么程序段1,#ifndef 如果标识符未已被定义过,那么程序段1,#if 如果指定的表达式为真,那么程序段1,函数“一段话,函数:,语法上说是用于完成特定任务的一段独立的代码单元,是构成C语言源程序的根本单位。,编程思想上说函数是组织、整理程序设计思路并使之条理化的一种技术手段,即结构化程序设计思想。,函数声明:向编译器说明标识符的含义 语法格式 函数的类型 函数名参量类型列表,main是类型说明符,向编译器说明标识符是一个函数的名字。,mainint,int参数:说明函数的参数数据类型,逗号隔开。,Int mainint,int说明返回函数的数据类型;,函数定义:,语法格式 函数类型 函数名,(,形参列表,),函数内的声明和语句,形参,:不是完成任务所需要的特定参数,只是描述函数任务步骤的形式上的参数,只在紧随其后的函数体中使用,return,表达式:与函数类型一致,把函数结果传递到函数使用处。,函数头(有变量定义),函数体,函数调用:后缀运算,优先级16,结合性左到右,实参:有值的表达式,用逗号间隔,步骤:1计算出各个实参的值,2把计算的实参值依次作为对应形参的初值,3执行被调用函数的函数体局部,4遇见return返回调用函数处,5相应的return语句返回的表达式替代调用函数,函数“简单栗子,#include stdio.h / 声明printf函数,#include stdlib.h / stdlib.h函数中有system函数,int accumulate(int,int) ; /函数声明:函数命名,说清需要什么量求一个什么量,用;结尾,int main(void),printf(2+3)*4=%dn,accumulate(2+3,4); /函数调用,实参与形参一一对应,system (Pause); /调用system函数,return 0;,int accumulate(int a,int b) /函数头,为形参命名,结尾无;其余局部与函数声明一样,return a*b; / return语句,返回计算结果,应与函数类型一致,参数声明中、形参函数头中、实参函数调用中一一对应,步骤:1函数声明,2函数描述,包括函数头、函数体,3需要处函数调用,函数,结构化程序设计,自顶向下,逐步细化,递归!,函数的生命周期,extern,:外部函数,可供其他文件调用。省略的都为,extern,Static,:内部函数静态函数,函数的作用域仅在本文件,修饰函数,Inline:提高函数的执行速度,编译器对inline函数做速度优化处理。,函数“输入输出函数,使用printf和scanf函数时,要在最前面加上#include“stdio.h,调用printf时,float会自动转换成double,scanf注意:,格式控制串可控制截取用户输入的前几个字符给变量,但不能控制输入几位小数给变量,如不能写成scanf(“%4.2f,第二个参数给的是地址,即要么是,考试时注意看题目给你写好的scanf的格式,1假设其格式控制串内各格式符用“,隔开如scanf(“%d,%c,%d,那输入时也要用逗号隔开,如此例输入时应:3,+,5,2假设是这种格式scanf(“%d %d,3假设是这种格式scanf(“%d%c%d,那么输入时应3+5,假设写成3 + 5那么a=3,ch= (空格),b=任意值,4输入函数是,123 和1 2 3是不一样的,用空格隔开。想要完成单个输入的时候用空格间隔,输入的格式符里不要有n,名称,格式,实例,scanf,scanf(“,格式控制串,”,,变量地址表列,);,scanf(,“,%d%c%d,”,,&a,,,&ch,,,printf,printf(“,格式控制串,”,,输出项表列,);,printf(,“,%8.2f,”,,x),getchar,getchar();,char c,;,c=getchar(),;只输入一个字符,putchar,putchar(,字符常量或字符变量名,),;,char c=A,;,putchar(,A,),;只输出一个字符,gets,gets(,字符串变量名,);,char c=c6,;,gets(c),;通过数组输入字符串,puts,puts(,字符串变量名,);,puts(c),;通过数组输出字符串,变量名,类型名,变量定义格式:,格式说明,表示内容,格式说明,表示内容,%d,整型,int,%c,字符,char,%ld,长整型,long int,%s,字符串,x=017,%f,浮点型,float,(,.,后六位),%o,八进制,17,%lf,double,%#o,带前导的八进制,017,%,输出一个百分号,%x,十六进制,整数,f,%u,按无符号输入,%#x,带前导的十六进制,0xf,%g,,,G,用,%f%e,格式中输出宽度较短输出,%e,,,E,指数形式输出,%p,地址,规律说明:整,d,小,f,字符,c,,串起,so8x16e,(指数),printf,的附加格式说明符,l,用于长整形、可加在格式符号,d,、,o,、,x,、,u,前面,m,(代表一个正整数),数据最小宽度,n(,代表一个整数数,),对实数,表示输出,n,位小数,对字符串,表示截取的字符个数,-,输出的数字或字符在域内向左靠,scanf,的附加格式说明符,l,用于输入长整形数据,以及,double,数据,h,用于输入短整型数据(可用,%hd,,,%ho,,,%hx,),宽域,指定输入数据所占宽度(列数)域宽应为正整数,*,表示本输入项在读入后不赋给相应的变量,标识符,变量,输出格式,标识符,变量,输出格式,printf,输出格式说明,printf,(“,%2d,”,,123,);,第二部分有三位,大于指定的两位,原样输出,123,printf,(“,%5d,”,,123,);,第二部分有三位,小于指定的五位,左边补两个空格,123,printf,(“,%10f,”,,1.25,);,小数要求补足,6,位的,没有六位的补,0,。结果为,1.250000,printf,(“,%5.3f,”,,125,);,小数三位,整个五位,结果为,1.250,(,小数点算一位,),printf,(“,%3.1f,”,,1.25,);,小数一位,整个三位,结果为,1.3,(要进行四舍五入),printf,(“,%e,”,,12.3456789,);,1.23456e+001,printf,(“,%ms,”),printf(%12s%dn,hello,1);,输出字符占,m,位(含小数点),,m,,全部输出,1234567hello1,printf,(“,%-ms,”),printf(%-12s%dn,hello,1);,m,,则,m,自动取,n,值,保证,n,个字符正常输出,he1231,函数,C,库标准函数,1. 数学函数 #include ,函数名,函数原型,功能,返回值,abs,int abs (int x);,求整数,x,的绝对值,计算结果,asin,double asin (double x);,计算,sin,-1,(,x,)的值,计算结果,sin,double sin(double x);,计算,sinx,(,x,)的值,计算结果,sinh,double sinh(double x);,计算,x,的双曲正弦函数,计算结果,exp,double exp (double x);,求,e,x,的值,计算结果,fabs,double fabs (double x);,求,x,的绝对值,计算结果,floor,double floor (double x);,求出不大于,x,的最大整数,该整数双精度实型,fmod,double fmod (double x,double y);,求整除,x/y,的余数,该余数的双精度实型,log,double log (double x);,求,log,e,x,即,lnx,计算结果,modf,double modf (double val,double*iptr);,把,val,分为整数小数,整数储存到*,iptr,val,的小数部分,pow,double pow(double x,double y);,计算,x,y,的值,计算结果,rand,int rand (void);,产生,-9032767,的随机数,随机整数,sqrt,double sqrt (double x);,计算,x,1/2,计算结果,函数,C,库标准函数,函数名,函数原型,功能,返回值,isalnum,int,isalnum(int ch);,检查,ch,是否是字母,(alpha),或数字,(numeric),是返回,1,,否则,0,isalpha,int,isalpha(int ch);,检查,ch,是否是字符,是返回,1,,否则,0,iscntrl,int,iscntrl(int ch);,检查,ch,是否是控制字符(,ASCII,在,0,和,0xlF,之间),是返回,1,,否则,0,isdigit,int,isdigit(int ch);,检查,ch,是否是数字,是返回,1,,否则,0,isgraph,int,isgraph(int ch);,检查,ch,是否是可打印字符,不包括空格,是返回,1,,否则,0,islower,int,islower(int ch);,检查是否小写,是返回,1,,否则,0,isprint,int,isprint(int ch);,检查,ch,是否是可打印字符,包括空格,是返回,1,,否则,0,ispunct,int,ispunct(int ch);,检查,ch,是否是标点符号,是返回,1,,否则,0,isspace,int,isspace(int ch);,检查是否是空格,是返回,1,,否则,0,isupper,int,isupper(int ch);,检查是否大写,是返回,1,,否则,0,isxdigit,int,isxdigit(int ch);,检查是否是十六进制,是返回,1,,否则,0,2. 字符函数 #include ,函数,C,库标准函数,函数名,函数原型,功能,返回值,strcat,char *strcat(char *str1,char *str2);,str2,接到,str1,后面,str1,strchr,char *strchr(char *str1,int ch);,找出,str1,中第一次出现,ch,位置,返回指针位置,找不到,返空指针,strcmp,char *strcmpchar *str, int ch);,比较,str1,和,str2,小于,负数;等于,0,strcpy,char *strcpy(char *str1,char *str2);,把,str2,复制到,str1,str1,strlen,unsigned int strlen(char *str);,统计个数,不含,0,字符个数,strstr,char *strstr(char *str1,char *str2);,找出,str2,在,str1,第一次出现位置,返回指针位置,找不到,返空指针,tolower,int tolower(int ch);,转为小写,str1,toupper,int toupper(int ch);,转为大写,str1,3. 字符串函数 #include ,函数,C,库函数,4. 输入输出函数 #include ,函数名,函数原型,功能,返回值,cleareer,void cleareer(FILE *fp);,使,fp,所指文件的错误,标志和文件结束标志置,0,无,close,int close(int fp);,关闭文件,成功,0,,否则,-1,creat,int creat (char *filenam,int mode);,以,mode,所指定的方式建立文件,成功正数,否则,-1,eof,int eof(int fd);,检查文件是否结束,文件结束,1,,否则,0,cflose,int fclose(FILE *fp);,关闭,fp,所指文件,释放文件缓冲区,有错非,0,,否则,0,feof,int feof(FILE *fp);,检查文件是否结束,文件结束非,0,,否则,0,fgetc,int fgetc(FILE *fp);,从,fp,所指定文件中取得下一个字符,返回所得字符,读入错误返回,EOF,fgets,char *fgets(char *buf,int n,FILE *fp);,fopen,FILE *fopen(char *filenam,char* mode);,fprintf,int fprintf(FILE *fp,char *format ,args,);,fputc,int fputc(char ch,FILE *fp);,fputs,int fputs(char *str,FILE *fp);,fread,int fread(char *pt,unsigned size,unsigned size,FILE *fp);,fscanf,int fscanf(FILE *fp,char format,args,);,fseek,int fseek(FILE *fp,long offset,int base);,函数,C,库函数,4. 输入输出函数 #include ,函数名,函数原型,功能,返回值,ftell,fwrite,getc,getchar,getw,open,printf,int printf,(,char,*,format,,,args,),按照,format,输出,输出字符的个数,出错返回负数,putc,putchar,putw,read,rename,rewind,scanf,int scanf,(,char,*,format,,,args,),按照,format,输入,读入数据,文件结束返回,EOF,,出错返回,0,write,函数,C,库标准函数,5. 动态存储分配 #include .h,函数名,函数原型,功能,返回值,calloc,void,*,calloc(insigned n,unisign size),分配,n,个数据项的内存连续空间,没个大小为,size,分配内存单元的起始地址,如不成功返,0,free,viod free(void *p),释放,p,所指的内存区,无,malloc,void *malloc(unisigned size),分配,size,字节的存储区,所分配的内存区起始地址,内存不够返,0,realloc,void *realloc(void *p,unisgned size),将,p,所指出的已分配内存区的大小改为,size,返回指向该内存的指针,system,stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。,编写的任何.cpp文件都必须首先包含stdafx.h。,预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch,所以编译结果文件是projectname.pch。,所有的MFC实现文件第一条语句都是:#include stdafx.h。,算法,数据结构,+,算法,=,程序,算法的几种描述,:,1.,自然语言,2.,流程图,3. N-S,图,4.,伪代码,A,B,A,B,P,成立,不成立,当,p1,成立,A,直到,p1,成立,A,多文件结构,文件使用方式,含义,“,r,” (只读),为输入打开一个文本文件,“,w,” (只写),为输出打开一个文本文件,“,a,” (追加),向文本文件尾添加数据,“,rb,” (只读),为输入打开一个二进制文件,“,wb,” (只写),为输出打开一个二进制文件,“,ab,” (追加),向二进制文件尾添加数据,“,r+,” (读写),为读写打开一个文本文件,“,w+,” (读写),为读写新建一个文本文件,“,a+,” (读写),为读写打开一个文本文件,“,rb+,” (读写),为读写打开一个二进制文件,“,wb+,”(读写),为读写新建一个二进制文件,“,ab+,” (读写),为读写打开一个二进制文件,一个源程序可以划分为多个源文件:,类声明文件.h文件,类实现文件.cpp文件,类的使用文件main()所在的.cpp文件利用工程来组合各个文件。,多文件结构,分类,函数名,功能,打开文件,fopen(),打开文件,关闭文件,fclose(),关闭文件,文件定位,fseek(),改变文件位置指针的位置,rewind(),使文件位置指针重新置于文件开头,ftell(),返回文件位置指针的当前值,文件读写,fgetc()getc(),从指定文件取得一个字符,fput()putc(),把字符输出到指定文件,fgets(),从指定文件读取字符串,fputs(),把字符串输出到指定文件,getw(),从指定文件读取一个字(,int,型),putw(),把一个字(,int,型)输出到指定文件,fread(),从指定文件中读取数据项,fwrite(),把数据项写到指定文件,fscanf(),从指定文件按格式输入数据,fprintf(),按指定格式将数据写入到文件,文件状态,feof(),若到文件末尾,函数值为真,ferror(),若对文件操作出错,函数值为真,cleareer(),是,feor,()和,feeror,()值为零,算法,交换:借助第三个变量,数按位别离及合并: % / 各位%,十位/10,百位/100,素数:只能被1和本身整除 ,外循环遍历22/m,内循环%判断,四舍五入:intx*100+0.5/100,保存两位,第三位四舍五入,符号变换累加:1+2-3+4-5 flag=-flag sum+=flag*date,从键盘输入假设干整数 whilescanf%d,&x=1,逆序输出:考虑符号-,printf%d,a%10 a/=10,最大公约数,最小公倍数:辗转相除法,whiletmp=m%n!=0, m=n;,n=tmp;,return n;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!