c语言1-5章知识点.doc_第1页
c语言1-5章知识点.doc_第2页
c语言1-5章知识点.doc_第3页
c语言1-5章知识点.doc_第4页
c语言1-5章知识点.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

第一章 c语言概述1. C的数据类型有:整型,实型,字符型,数组,指针,结构体,共用体等。 C的输入输出使用的是数据流 C程序生成的机器代码质量高, 内存占用少, 运行速度快, 程序执行效率高。 2. 32个关键字:(由系统定义,不能重作其它定义)auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while3. 9种控制语句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn4. 34种运算符:算术运算符:+ - * / % + -关系运算符: = !=逻辑运算符:! & |位运算符 : | &赋值运算符:= 及其扩展条件运算符:?:逗号运算符:,指针运算符:* &求字节数 :sizeof强制类型转换:(类型)分量运算符:. -下标运算符:其它 :( ) -(1) C程序是由一个或多个函数程序模块构成的。 (2)在多个函数中有且只有一个main()函数, main()数通常位于程序之首, 实际上它位于程序的开头、 最后及函数与函数之间均是合法的, 但不管在什么位置,一个C程序总是从main()函数开始执行的。 (3)一个函数由两部分组成: 函数的首部和函数体。函数类型 函数名(形参)形参说明; 内部变量说明;(声明部分) 执行语句部分; (执行部分)函数有“有参函数”和“无参函数”之分无参函数,函数名后的形参和下一行形参说明不存在,但任何情况下,函数名后的一对圆括号不能省略(4) C程序书写格式自由, 一行内可以写几个语句, 一个语句可以分写在多行上,但每个语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。 (5) C语言本身没有输入输出语句,输入和输出的操作是由库函数scanf和printf等函数完成的。 (6) 可以用/* */对C程序中的任何部分作注释, 它可增加程序的可读性。 5. 编写、运行C程序时常用功能键F3(打开源程序)F2(保存当前源程序) F9(编译当前源程序) CTRL+F9(运行当前源程序) ALT+F5(查看运行结果)第二章 程序的灵魂-算法 1.算法的重要性(了解几个基本概念)(1).数据-是计算机程序处理的对象,可以是整数、实 数、 字符, 也可以是图像、声音等的编码表示。(2).数据结构-指的是数据与数据间存在一种或多种特定关系。在程序设计语言中,与数据结构密切相关的便是数据的类型和数据的存放。 (3).软件=程序+文档。(4).程序-把软件设计的结果用程序设计语言表达的结果 。 程序=算法+数据结构(5).程序设计-编写程序的过程。2.程序包括:(1)数据的确定: 确定数据的类型和数据的存放方式。 高级语言中用变量定义来实现。数据是操作的对象。(2)操作步骤(也即算法)的确定: 用语句来实现。操作的目的是对数据进行加工处理,以得到期望结果。3.算法的分类数值运算算法-求数值解非数值运算算法-事务管理领域常用的算法有:迭代法、枚举法、递推法、递归法回朔法(试探法)、贪婪法、分治法、动态规划法4.算法的特性一个算法, 必须具有以下特点: (1) 仅有有限的操作步骤, 即“有穷性”(无死循环)。 (2) 算法的每一个步骤应当是确定的, 即无“二义性”。 (3) 有零个或多个的输入, 即有确定的条件。 (4) 有一个或多个输出。 没有输出的算法是无意义的。(5) 算法中的每一个步骤都应当有效执行(无死语句)。 5.算法的表示方法 用自然语言表示算法用流程图表示算法 6.三种基本结构 顺序结构 分支结构 循环结构 第三章 数据类型、运算符与表达式 1.数据类型总表字符型(char)变量用于存贮ASCII码字符,也可存贮8位二进制数。 整型(int)变量用于存贮整数。因其字长有限,故可表示的整数的范围也有限。 单精度实型(float)和双精度实型(double)变量用于存贮实数,实数具有整数和小数两部分或是带指数的数据。表中的值域用绝对值表示。 枚举只有几种可能的值,将其一一列举出来。实际是用符号来表示若干个可取的整型值,它是整型的一个子集。 2. 类型修饰符 基本数据类型可以带有各种修饰前缀。修饰符用于明确基本数据类型的含义,以准确地适应不同情况下的要求。类型修饰符种类如下: signed 有符号 unsigned 无符号 long 长 short 短 计算机表示有符号数时都使用二进制补码。补码的求法很简单:正数补码即原码;负数的补码是将其对应原码的各位(除符号位外)按位求反,然后加1。基本数据类型类型符号关键字所占位数数的表示范围整型有(signed)int16-3276832767(signed)short16-3276832767(signed)long32-21474836482147483647字符型无unsigned int16065535unsigned short16065535unsigned long3204294967295实型有无floatdouble32643.4e-383.4e381.7e-3081.7e308字符型有charr8-128127无unsigned char802553.构造数据类型 数组是一组连续、有序的存放在一起的具有相同类型的数据。 结构体是将不同类型的数据按一定顺序存放在一起的数据结构。 共用体是将不同类型的数据都存放在同一起始地址的内存单元中, 共用一段内存以节省内存单元。 4.指针类型 指针是C语言中一个重要概念。正确而灵活地运用它,可以有效地表示复杂的数据结构;能动态分配内存;能方便地使用字符串;有效而方便地使用数组; 在调用函数时能得到多于一个的值;能直接处理内存地址等。 指针类型迥异于前述各种数据类型,不管是简单类型的数据,还是构造类型数据,均是代表数据的,而指针类型是代表地址的。 常量与变量 标识符 定义:用来标识变量、常量、函数等的字符序列 组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字 长度:最长32个字符 命名原则: 见名知意 不宜混淆 如l与I, o与0 常量 定义:程序运行时其值不能改变的量(即常数) 分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量 一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量 整型常量(整常数) 三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如0x123,0Xff 整型常量的类型 根据其值所在范围确定其数据类型int/long int/unsigned/unsigned long 在整常量后加字母l或L,认为它是long int 型常量 实型常量(实数或浮点数) 表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型 字符常量 定义:用单引号括起来的单个普通字符或转义字符. 字符常量的值:该字符的ASCII码值转义字符:反斜线后面跟一个字符或一个代码值表示转义字符及其含义:转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符字符串常量 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志 概念:其值可以改变的量 变量名与变量值 变量定义的一般格式: 数据类型 变量1,变量2,变量n; 变量初始化:定义时赋初值 变量的使用:先定义,后使用 整型变量 占字节数随机器不同而不同,一般占一个机器字 shortintlong 可用sizeof(类型标识符)测量 实型变量 float:占4字节,提供7位有效数字 double:占8字节,提供1516位有效数字变量赋初值 程序中常需要对一些变量预先设置初值。 C规定, 可以在定义变量时同时使变量初始化。变量初始化只需定义变量时在变量名后面加一等号及一个常数。它的一般形式是: 类型 变量名=常数; 以下是几个示例: char ch=a; int first=0; float x=123.45; 各种数值型数据间的混合运算 隐式转换 什么情况下发生 运算转换-不同类型数据混合运算时 赋值转换-把一个值赋给与其类型不同的变量时 输出转换-输出时转换成指定的输出格式 函数调用转换-实参与形参类型不一致时转换 运算转换规则:不同类型数据运算时先自动转换成同一类型doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例 int i;float f;double d;long l;例 char ch;int i;float f;double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledouble 显式转换(强制转换) 一般形式:(类型名)(表达式)例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变 各种数值型数据间的混合运算 运算的规则为: (1) 转换的结果必定是3种基本类型:int, long或double型。 因此两个char型的数据运算,也要先转换成int型,运算结果也是int型;只要有一个数据是float型,都要先转换成double型,最后结果也是double型。 (2) 各类型级别由低到高的顺序为char, int, unsigned, long, unsigned long, float, double。除如(1)所述要进行char或short向int, float向double的转换外,其余类型的混合运算均按此顺序由低到高自动转换。另外,C语言规定,有符号类型数据与无符号类型数据进行混合运算,结果为无符号类型。例如,int型数据和unsigned类型数据的运算结果为unsigned型。 算术运算符和算术表达式C运算符 (1) 算术运算符(+, -, *, /, %, +, -)。(2) 关系运算符(, =, =, !=)。(3) 逻辑运算符(!, &, |)。(4) 位运算符(, , |, , &)。(5) 赋值运算符(=, 及其扩展赋值运算符)。(6) 条件运算符(? :)。(7) 逗号运算符(,)。(8) 指针运算符(*, &)。(9) 求字节数运算符(sizeof)。(10) 强制类型转换运算符(类型)。(11) 分量运算符(, -)。(12) 下标运算符( )。(13) 圆括号运算符( )。 学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型 算术运算符和表达式 基本算术运算符: + - * / % 结合方向:从左向右 优先级: - -* / % - + - (2) (3) (4)说明: “-”可为单目运算符时,右结合性 两整数相除,结果为整数 %要求两侧均为整型数据自增、自减运算符+ - 作用:使变量值加1或减1 种类: 前置 +i, -i (先执行i+1或i-1,再使用i值) 后置 i+,i- (先使用i值,再执行i+1或i-1) 说明: + - 不能用于常量和表达式,如5+,(a+b)+ + -结合方向: 自右向左 优先级:- + - -* / % -+ -main( ) int x, y; x=10; y=+x; printf(%d, %dn, x, y); 运算结果为 11, 11此时y的值和x的值都为11。然而换一种写法: main( ) int x, y; x=10; y=x+; printf(%d, %dn, x, y); 运行结果为 11, 10 说明: (1) +, -, *, / 与数学中运算类似, 先乘除后加减, 也就是按优先级顺序进行运算,优先级小的先运算。要改变运算顺序只要加括号就可以了,括号全部为圆括号,必须注意括号的配对,它们适用于C的几乎全部数据类型(指针类除外)的各种运算(+, -除外)。除法运算符(/)在用于两个整型数据运算时,其运算结果也是整数,余数总是被截掉。如1/2的结果是0;10/3的结果是3。 (2) 求余运算符(%)仅用于整型数据,不能用于实型和双精度实型。它的作用是取整数除法的余数。如1%2的结果是1; 10%3的结果也是1。 (3) +, -仅用于整型变量,指针变量。用于整型变量在原值上加1或减1;用于指针变量是取下一地址或上一地址。 关于指针部分的使用在第十章中介绍。 增1和减1运算符用在表达式中时,写法是有差别的:如果运算符在操作数前面, 则在表达式“引用”该操作数前,先对其作加1或减1运算; 如果运算符在操作数之后,则先“引用”该操作数,然后再对它作加1或减1运算。(4) +, -, *, /, % 可以与赋值号=组成复合赋值运算符+=, -=, *=, /=, %=。 赋值运算符和赋值表达式 简单赋值运算符 符号: = 格式: 变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量 复合赋值运算符 种类:+= -= *= /= %= = = &= = |= 含义: exp1 op= exp2 exp1 = exp1 op exp2 说明: 结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式 赋值转换规则:使赋值号右边表达式值自动转换成其赋值表达式的值与变量值相等,且可嵌套 左边变量的类型=两侧类型不一致时,要进行类型转换: 整实:截掉小数部分。int i = 3.56; i 3 不管溢出(只将整数部分的低位存入该整数)。 int i = 65535.45; i -1 实(单、双精度)整:数值不变,存为浮点。 可能损失精度(float long)。 float f = 1234567890; f 1.234568e9 floatdouble :截前面7位有效数值(23个二进制位) 整char:整型低8位char 整型高8位0或符号位扩展(因机器而不同tc 下符号位扩展) charint short long型 只将低八位保留 long intint:符号位扩展 intlong int:intlong int 低16位long intunsigned int:高位补0整型(字节数相同的)unsigned 整型:原样送入。 若超过整型表示范围,会出错。unsigned(字节数相同的)非unsigned整型: 原样送入,符号位也作为数值逗号运算符和逗号表达式 形式:表达式1,表达式2,表达式n 结合性:从左向右 优先级: 15 逗号表达式的值:等于表达式n的值 用途:常用于循环for语句中第四章 最简单的C程序设计 C程序语句的类型(5种): 控制语句-完成一定的控制功能(9种) if(xy) z=x; else z=y; 表达式语句-表达式构成,完成数据操作 i=3; i+; printf(“%d”,i); i+6; 函数调用语句-由一次函数调用加一个分号构成一个语句 printf(“This is a C statement”); 空语句- 什么都不做的语句,仅由一个;构成 空的循环体/控制转向点 复合语句-和它括起来的多个语 控制语句通常要求有一个语句作为其子句,而其功能又不能在一个语句中实现时,就需要使用复合语句。函数调用语句属于表达式语句的一种(1) 逻辑上每个语句最后都必须有一个分号(;), 一个语句可分写成几行, 几个语句也可合写成一行(但不提倡, 因其不利于单步调试)。 (2) 空语句直接由分号(;)组成,常用于控制语句中必须出现语句之处,它不做任何操作,只在逻辑上起到有一个语句的作用。 (3) 复合语句由花括号 括起的若干个语句, 语法上可以看成是一个语句。复合语句中最后一个语句的分号不能省略。 如下面是一个复合语句: z=x+y; y=x/z; x=z-y; (4) 表达式语句是在各种表达式后加一个分号(;)形成一个语句。如赋值语句由赋值表达式加一个分号构成: x=x+y;再如表达式x+后加一个分号构成表达式语句: x+; 表达式和表达式语句的区别是表达式后无分号, 可以出现在其它语句中允许出现表达式的地方;而表达式语句后有分号, 自己独立成一个语句,不能再出现在其它语句的表达式中。 如: if(a=b)0) min=a; (5) 控制语句有条件判断语句(if、 switch), 循环语句(for、 while、 do-while),转移语句(goto、 continue、 break、 return)。 赋值语句 赋值语句是由赋值表达式加上一个分号构成。 如x=a+b;。 C语言的赋值语句具有其它高级语言中赋值语句的一切特点和功能,也有C语言自己的特色: (1) C语言中赋值号“=”作为赋值运算符。 (2) 其它高级语言没有赋值表达式这个概念。作为赋值表达式可以出现在其它表达式能出现的地方,也可出现在其它表达式之中。 例如: if(x=a+b)! =0) t=10; 数据输入输出的概念及在C语言中的实现 C语言的输入和输出由库函数来完成。在C语言中没有用于完成I/O操作的关键字,而是采用I/O操作函数。因此数据的输入输出要调用输入输出库函数。 在ANSI C标准中定义了一组完整的I/O操作函数。这些函数调用时所需的一些预定义类型和常数都在头部文件stdio.h中。C语言无I/O语句,I/O操作由函数实现 #include 一个C程序由若干个源文件组成,而一个源文件还可将另一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中,二者合为一个大些的文件。这个包含进来的文件只是一个文件名,在编译时先进行展开,这个文件名我们用预编译命令“include”来指定,其一般形式为: include 或 include 文件名 因此调用输入输出函数时,在程序前面应加上 include 或 include “stdio.h”如没有该命令指定, 可能造成错误。getchar函数 (字符输入函数 ) getchar函数的调用形式: char ch; ch=getchar( ); getchar( )用于等待从键盘上键入一个字符, 返回它的值并在屏幕上自动回显该字符。使用该函数必须在程序的头部使用文件包含命令: include main( ) char ch; ch=getchar( ); putchar(ch1); putchar(n); include main( ) char ch1,ch2; ch1=getchar( ); ch2=getchar( ); putchar(ch1); putchar(ch2); putchar(n); 经编译后运行, 输入a,经编译后运行, 输入a,b, 最后在屏幕上显示:最后在屏幕上显示:a ab a b a, a,b printf函数(格式输出函数) 函数的调用形式: printf(格式控制, 输出表列); printf(控制字符串, 参量表); 例如: printf(The output x=%dn, x); 若x=10, 则输出为“The output x=10”。 格式输出函数格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据 输出表:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息 格式说明: %修饰符格式字符 ,用于指定输出格式 普通字符或转义序列:原样输出 格式字符d,i十进制整数int a=567;printf ( “%d”,a);567x,X十六进制无符号整数int a=255;printf(“%x”,a);ffo八进制无符号整数int a=65;printf(“%o”,a);101u不带符号十进制整数int a=567;printf(“%u”,a);567c单一字符char a=65;printf(“%c”,a);As字符串printf(“%s”,“ABC”);ABCe,E指数形式浮点小数float a=567.789;printf(“%e”,a);5.677890e+02f小数形式浮点小数float a=567.789;printf(“%f”,a);567.789000ge和f中较短一种float a=567.789;printf(“%g”,a);567.789%百分号本身printf(“%”);%修饰符功 能m输出数据域宽,数据长度m,左补空格;否则按实际输出.n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数_输出数据在域内左对齐(缺省右对齐)+指定在有符号数的正数前显示正号(+)0输出数值时指

温馨提示

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

评论

0/150

提交评论