




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一 基本符号分类 1.大,小写英文字母A-Z,a-z. C+当中区分字母大小写. 2.十进制字符号0-9 3.标点符号 标点符号作用,逗号数据之间的分隔符;分号简单语句结束符单引号字符常量起,止标记符“双引号字符串常量起,止标记符:冒号语句标号结束符或条件运算符空格语句中各成分之间的分隔符左花括号复合语句的开始标记右花括号复合语句的结束标记4.单字符运算符 运算符作用(左圆括号同右括号配对使用,用于表达式和函数运算)右圆括号同左括号配对使用,用于表达式和函数运算左中括号同右中括号配对使用,用于对数组元素的访问右中括号同左中括号配对使用,用于对数组元素的访问+加号或正号两个数加法运算或正数符号减号或负号两个数减法运算或负数符号*乘号或间接访问运算符两个数相乘或对象访问运算符/ 除号两个整数相除取整数部分,一个实型数与另一个数相除取小数%取模运算符号两个整形数相除取余数部分. 小数点或结构成员访问符访问对象属性大于号比较运算符!感叹号逻辑非运算符波折号按位逻辑异取反运算符&取地址或按位与运算符,同时又是引用说明符尖字符按位逻辑异或运算符|竖线按位逻辑或运算符?问号条件表达式运算符二C+中的基本数据类型数 据 类 型说 明所 占 字 节取 值 范 围Bool布尔型1True,falseChar字符型1-128127Unsigned char无符号字符型10255short短整型232 76832 767Unsigned short无符号短整形2065535Int整形42147748364821477483647Unsigned int 无符号整形404294967295Long长整型42147748364821477483647Unsigned long无符号长整型404294967295float浮点型43.410383.41038Double双精度81.7103081.710308Long double长双精度81.7103081.710308三 变量和常量 1.变量 定义格式: 变量名1,变量名2,变量名n; 变量的初始化: 格式1:数据类型 变量名=表达式; 格式2:数据类型 变量名(表达式); 2.常量 a.整形常量: #include void main() const int a=10,b=027,c=0x2a; coutaendlbendlcendl; b.实型常量 表示形式有一般形式和指数形式。 一般形式:11.9,-21.8. 指数形式:0.34E+2表示0.34102,5.3E-3表示5.310-3 整数部分或者小数部分为零可以省略。c.字符常量 字符常量是单引号括起来的一个字符。 c+预定义的转义序列 单引号 双引号 反斜杠0 空字符a 响铃b 后退n 换行r 回车t 水平制表符v 垂直制表符 #include void main()coutthististattestnhello world!n; d.字符串常量 字符串常量是用双引号括起来的字符序列。四 引用 引用是给一个变量建立一个别名,是C+比较常用的一个方法。如果灵活的运能可以使程序更加的简介,高效. 格式: &引用名=被引用变量 #include void main() Int a=1,b=2; int &c=a; c=b; coutaendlb 对象或结构体指针运算符后置+ 自增运算符后置- 自减运算符2! 逻辑非运算符 按位取反运算符前置+ 自增运算符前置- 自减运算符sizeof 长度运算符& 取地址运算符* 指针运算符 负号4+ 加法运算符- 减法运算符5 右移运算符6 关系运算符:小于 关系运算符:大于= 关系运算符:大于等于7= 关系运算符:等于!= 关系运算符:不等于8& 按位与运算符9 按位异或运算符10| 按位或运算符11& 逻辑与运算符12| 逻辑或运算符13? 三目元条件运算符: 三目元条件运算符=&=|=六 表达式 程序中的大部分语句都是由表达式构成的。表达式由运算符、运算对象(操作数,常量或者变量),和括号组成。 使用表达式需要注意以下几点。1. 一个常量或标识对象的标识符是一个最简单的表达式,其值是常量或对象的值。2. 一个表达式的值可以用来参与其他操作,即用作其他运算符的操作数,这就形成了更复杂的表达式; (a+b)*c-d3. 包含在括号中的表达式仍是一个表达式,其类型和值与未加括号时的表达式相同。1.赋值运算符与赋值表达式 赋值运算符是程序当中最基本的运算符。最常用的赋值运算符为”=”.带有赋值运算符的表达式称为赋值表达式。 赋值表达式的作用是把赋值号右边的值赋给等号左边的对象。赋值表达式的结果为等号左边对象被赋值后的值。结合性为自右向左。 A=1; a=b=c=2; 在使用赋值运算符的时候应该保证赋值运算符两边的数据类型是兼容的 除了“=”之外,还有几种复合的赋值运算符“+=,-=,=,/=,%=”等等。 A+=2; /等价于 A=A+2 A*=2; /等价于 A=A*2 A+=A-=a*a /等价于 A=A+A-a*a2. 算术运算符与算术表达式 算术运算符通常为+, *, /, %。 在程序当中的算术运算与我们现实当中的使用是相同的,需要强调的是两个整数相除的结果仍然是整数,小数部分会被舍去。 例如:11/2=5 #include void main() int a=11,b; double c=11,d; b=a/2; coutbendl; d=c/2; coutd,=,=,!=。 对于关系运算符来说,表达式的值只有真和假,真的表达式值为1,假的表达式值为0.例句1. #include void main()int a=54;coutaendl;a=54;coutaendl; 例句2.#include void main()int a=4;int b=3;int c=2;int d=abc;coutdendl;4 逻辑运算符与逻辑表达式 逻辑表达式的结果值也只能是真和假,优先级次序依次为 (非!) (与&) (或|) !是一元运算符,他的作用是对操作数取反。如果操作数A的值为真,则!A的结果为假。相反,如果操作数A的值为假,则!A的结果为真。 &是二元运算符,他的作用是求两个操作数的逻辑与,如果两个操作数的值都为真,则结果为真。其他结果都为假。 |同样是二元运算符,他的作用是求两个操作数的逻辑或,如果两个操作数的值都为假,则结果为假。其他结果都为真。 逻辑运算符的真值表 ab !aa&ba|b真真假真真真假假假真假真真假真假假真假假例句:#include void main()int a=4;int b=3;int c=2;int d=(a=b)&(bc)|(b=c);coutdendl;5. sizeof运算符 Sizeof运算符用于返回变量、对象或者数据类型的字节长度。 使用格式: sizeof(对象)#include void main()int a;double b;char c;coutsizeof(a)endlsizeof(double)endlsizeof(我是纯爷们)endl;6.逗号运算符与逗号表达式 使用格式:,,., 先求表达是1的值,然后求表达式2的值,最后求表达式n的值,最终结果为表达式N的值 例如:#include void main()int a=4;int b=3;int c=2;int d;d=(2*3,a*b);coutdendl;7.三目元运算符与三目元表达式 三目元表达式是由条件运算符和变量构成的。 格式:?: 其中,表达式1的值为bool类型,表达式2和表达式3的值可以是任何类型。条件表达式的执行顺序是:先求结表达式1.若表达式1的值为ture,表达式2的值为结果,若表达式1的值为false则结果为表达式3的值.例如:#include void main()int a=4;int b=3;int c=2;int d;d=ab?a:b;coutdendl; 这个表达式的作用就是求出a和b之中较大的那个值然后赋值给d. 8位运算 计算机中的数据都是用二进制表示的,存储数据是以字节(byte)为单位,一个字节为八个位(bit),位运算是可以直接对二进制进行操作的运算,灵活的运用位运算,可以使程序执行的更加快速。 按位与运算& 按位与运算是指两个数相应的二进位均为1,则结果为1,否则结果为0. 如0&0结果为0,0&1结果为0,1&0结果为0,1&1结果为1。 例如将3和5进行按位与运算 3 00000011 5 000001013&5 00000001 按位或运算 | 按位或运算是将两个操作数对应的每一位分别进行或操作,如果两个二进位都为0则结果为0,否则结果为1。 例如将3和5进行按位或运算 3 00000011 5 00000101 3|5 00000111 按位异或运算 按位异或运算是将两个操作数对应的每一位进行异或操作,如果两个二进位相同则结果为0,否则结果为1。 例如将3和5进行按位异或运算 3 00000011 5 00000101 35 00000110 按位取反运算 按位取反是一个单目运算符,其作用是对一个二进制数的每一位取反。 例如把3按位取反运算 3 00000011 3 11111100 左移运算符 左移运算符用于将二进位左移若干位,右边补0,例如,将10左移两位, Int a =10 右移运算符与左移运算符相反,是将一个数的二进制位右移若干位。例如,将10右移两位, Int a=102; 10 00001010 0000001010 七 表达式语句 在前面的课程我们学习了C+程序中的一些基本要素,主要包括,常量,变量,运算符,表达式等。他们都是构成程序的基本成分。以后的课程我们将学习C+程序的基本语句,语句是程序执行的最小单位,由表达式和分号组成。从结构划分可分为简单语句和复合语句;从功能上划分,可以分为分支语句、循环语句和跳转语句。 1.语句的构成 表达式是指运算符链接各个运算对象,符合语法规则的式子。由表达式组成的语句称为表达式语句,由一个表达式和一个分号构成。 表达式与表达式语句的区别:表达式可以包含在其他表达式中,而表达式语句则不行。 例如:x=(x+y;)*z; 只有一个分号“;”的语句被称为空语句,空语句不执行任何功能,连续出现多个分号也是允许的。虽然空语句对程序不起任何作用,但是会影响程序的运行速度。因此应该避免多余的空语句。#include void main()int a=2,b=3,c=4; coutaendlbendlcendl; 2.复合语句 复合语句也被称为语句块,是由花括号“”和多条语句构成的。#include void main()int a=2,b=3,c=4; a=a+b+c; b=a+b+c; c=a+b+c; coutaendlbendlcendl; 两个花括号如果不包含代码,作用和空语句作用相同。“” 需要注意的是复合语句后面没有分号。两个花括号必须配对使用,在复合语句中定义的变量,其范围只能在括号里面。#include void main()int a=2,b=3,c=4; coutaendlbendlcendl; 复合语句是可以嵌套的,也就是说一个语句里面还可以调用另外一个复合语句。 #include void main() int a=1;int a=2;int a=3;cout第一个A的值为:aendl;cout第二个A的值为:aendl;cout第三个A的值为:aendl;八 分支语句 分支语句又称为选择语句,通过给定的条件进行判断,用来决定执行两个或多个分支中的哪一支。因此在编写选择语句之前应该明确判断条件是什么。C+程序提供的分支语句有if else和switch. 1 if 语句 格式:if(表达式) 语句1; else 语句2; 首先判断表达式的结果为真还是假,如果为真则执行语句1,否则执行语句2。 #include void main() int a=1,b=2;if (ab)couta大于bendl;elsecoutb大于aendl; If 语句是可以嵌套的 #include void main() int max,a=1,b=2,c=3;if (ab)if (ac)max=a;elsemax=c;else if (bc)max=b;elsemax=c;cout最大值为maxendl;2 switch语句 虽然多分支语句使用if语句也可以完成,但是使用switch更加的直观。 格式:switch(表达式) case 常量表达式1:;break; case 常量表达式2:;break; case 常量表达式n:;break; default:; 注意:switch后面括号中的表达式只能是整形,字符型或者枚举类型。 需要使用花括号括起来。 case语句只起标号的作用,并不是在该处进行条件判断,并且不能重名。 各分支中break起退出switch语句的作用。若没有break语句,程序将从匹配的case处开始向后执行所有语句。 例句: #include void main() int a,b;couta;b=a/10;switch(b)case 10: case 9: cout优秀n;break; case 8: case 7: cout良好n;break; case 6: cout及格n;break; default:cout不及格n;九while语句循环格式:while (条件表达式) 循环体; while语句首先对条件表达式进行判断,如果为真则进行循环,如果为假则跳过循环,执行while语句后面的句子。 例句: #include void main() int a=0,b=0; while (a10) b+=a; a+; coutaendlbendl;二 do while语句循环格式: do 循环体 while (条件表达式); do while和while相似,所不同的是do while先执行循环体然后在进行条件的判断,如果条件表达式结果为假,则执行循环体后面的句子,如果为真则继续循环。 例句:#include void main() int a=0,b=0; do b+=a; a+; while (a10); coutaendlbendl;三 for语句循环 格式:for (表达式1;表达式2;表达式3) 循环体; 其中表达式1为初始化表达式,对循环变量进行初始化或赋初值 表达式2称为条件表达式,当它判断条件为真时,就执行循环体语句,否则终止循环。 表达式3称为修正表达式,一般用于每次循环体执行之后,对循环控制变量进行修改。 for语句执行过程: 1 求解表达式1; 2 求解表达式2,若为真则执行循环体 然后求解表达式 3, 3 转回2;表达式2的值 若为假则转到 4; 4 执行for语句下面的一个语句; 例句:#include void main() int a=0,b=0;for (a;a10;a+)b+=a;coutaendlbendl; 注意:1.for语句中的三个表达式可以部分或全部省略,但其中的两个分号不能省略。 2.若表达式1省略,则应在for语句之前给循环变量赋值。 3.若表达式2省略,即认为循环条件始终为真,循环将一直进行,形成死循环,这时候为避免死循环,在for语句的循环体中应该有终止循环的控制语句。 #include void main() int a=0,b=0; for (a;a+) if (a10)b+=a; else break; coutaendlbendl; 4.若表达式3省略,则应该在for语句的循环体中修改循环变量的值,使循环正常结束。 for(a=0;a10;) b+=a; a+; 5.若表达式1和表达式3同时省略,只有表达式2,则此时的for循环等同与while循环。 for(;a10;) while(a10) b+=a; b+=1; a+; a+; 四 循环语句的嵌套 所谓的嵌套就是指一个循环语句中包含另外一个循环。 #include void main()int a=0,b=0,c=0;for (a;a10;a+)for (c=0;c10;c+)b+=c;b+=a;couta=aendlb=bendlc=cendl;十 break语句break语句的作用是结束当前的循环语句(for、while、do while)或者分支语句(switch),而执行这些语句后面的句子。对于嵌套循环break语句只是结束他当前的循环,而不是结束所有循环。 例句:#include void main()int a=1,c;for (a;a=5;a+)couta=0;c-)if (c=2) break; coutc; coutendl; 例子:有一个绳子长800米,每天剪掉一半,需要多少天长度才能小于3米。#include void main () int n=1,day=1,len=800; while (n=1) if (len3) day+; len/=2; else break; cout总共需要:day天endl; 二 continue语句 continue语句的作用是:结束当前正在执行的这一次循环,接着执行下一次循环。 break语句与continue语句的区别是,break语句直接结束本层循环 而continue语句是结束本次循环。三 goto语句 goto语句又称为无条件跳转语句,用于改变语句的执行顺序。由于goto语句会把程序的执行顺序变的很乱,执行效率比较低所以在开发程序的时候尽量不用或者少用。格式 :goto 标号;例句:#include void main()int a=0,b=0;label:a+=b;b+;if (b5)goto label;coutaendlbendl; 注意:每个标号的命名也要遵循标识符的命名规则 每个标号后面必须有执行的代码。比如下面的代码就是错误的: label: goto语句不能越过复合语句之外的 变量定义语句,比如:#include void main()int a=1;goto label;int b=2;label:coutaendl; 四 return语句 return语句的作用是退出当前函数的执行。当程序在当前函数中执行时,遇到return语句将退出当前函数的执行,返回到函数的调用出,继续执行,如果当前函数是主函数,则退出应用程序。#include void main()int a=1,b=2,c=3;coutaendl;coutbendl;coutcendl;五 exit语句 exit语句用于终止当前的进程,通常用于结束当前的应用程序。 exit与return语句的区别,return语句是退出当前的函数,如果当前函数是主函数则退出程序。exit语句则直接退出程序。 十一、一维数组 1 一维数组的定义 格式: 数据类型 标识符表达式; int a10;a4; 数组下标从0开始,长度为N的数组,下标从0到N-1。 注意: 类型必须是已经定义的,下标表达式也必须有确定值,不能为变量名,也不能为实型表达式。 错误的定义:int a7.8; int ab; 2 一维数组的初始化 (1)在定义数组的时候初始化。 int a5=1,2,3,4,5; (2)给数组的一部分元素赋值。 int a5=1,2,3; (3)在对数组元素赋初值时,可以不指定数组的长度。 int a=1,2,3,4,5; 注意:在给数组初始化的时候,花括号内数据的个数不能超过数组的长度。 3 数组元素的引用 数组名下标 下标可以是整型常量或整型表达式。 a2=a2*3-a5+a3 4 例题 (1) 找出5个学生当中的最高分数。分别为433,512,345,631,531。 #include void main() int a5=433,512,345,631,531; int max,b;max=a0;for (b=1;b5;b+) if (maxab)max=ab;cout5个学生分数分别为:endl;for (b=0;b5;b+)coutabendl;cout最高分数为:maxendl;二、二维数组 1 二维数组的定义 数据类型 标识符表达式1表达式2; int a56; a23; 2 二维数组的初始化 (1) 分行给二维数组赋初值,每一行用花括号括起来。 int a22=1,2,3,4; (2) 将所有数据写在一个花括号内。 int a23=1,2,3,4; (3) 对部分元素进行赋值 int a44=1,2,3,4; 3 二维数组的引用 a23=9; a21=b32; 4 例题 输入和输出一个二维数组#include void main()int a34,b,c; for (b=0;b3;b+)for (c=0;c4;c+)cout请输入第b+1行c+1列的元素:abc;cout二维数组的元素为:endl;for (b=0;b3;b+)for (c=0;c4;c+)coutabc,;coutendl; 十二 指针的概念 在程序中,变量实际上就是用来存储数据的内存区域,一个变量有三个基本的属性,变量的类型、变量的值,以及变量在内存中的存放位置。 1.指针的概念 指针是指变量的地址。在C+中使用地址运算符&,可以获取变量的地址。 格式:&变量名; 例子:#include using namespace std;void main() int a;int b;int c10;cout&aendl&bendl&cendl; 2.指针变量的定义 指针变量用于存放其他变量的地址。指针变量也有类型属性,为了在定义该变量时表明他是指针变量,需要在变量名前加上* 定义格式 : 数据类型 *指针变量名; 例子:#include using namespace std;void main() int a,*b;b=&a;cout&aendl;coutbendl; 3.指针变量的应用 在使用指针变量时,一定要记住,指针变量中只能存放地址,不能存放具体的数据,只能将地址赋值给指针变量。 指针运算符*,是获取指针变量所指向的数据。 格式:*指针变量名; 例子:#include using namespace std;void main() int a=10,*b;b=&a;cout*bendl;*b=20;coutaendl; 注意:定义指针变量时要注意指针的类型和指针所指向的变量数据类型相同。二 指针和一维数组 指针和数组之间有着非常密切的关系。一个数组由若干个元素组成,每个数组元素也在内存中占用一定的存储单元,所以数组的每个元素都有相应的地址,而且数组元素在内存中的地址是按照下标连续存放的。指针变量也可以指向数组和数组元素,可以通过定义一个指针变量指向数组起始元素的地址,来达到访问每个数组元素的目的。 int a5=1,2,3,4,5; int *p=&a0; 对于指向数组的指针变量,可以加上或减去一个整数,指针变量加上或减去一个整数的意义是:把指针指向的当前位置向后或向前移动几个位置。#include void main() int a5=1,2,3,4,5,*p; p=a;coutpendl; p+; coutpendl; 注意:指针变量的加减运算只能对数组指针变量进行,对指向其他类型变量的指针变量做加减运算是毫无意义的; 只有指向同一数组的两个指针变量之间才能进行指针变量之间的运算。 两个不同的指针变量不能进行加法运算。 当只用数组名的时候,这个数组名就指向该数组第一个元素的指针#include using namespace std;void main() int a10=1,2,3,4,5,*b;int i;b=a;coutbendl; for (i=0;i5;i+) coutbendl;cout*bendl;b+;三 指针和二维数组 1 二维数组元素的地址表示 前面介绍过,C+语言允许把一个二维数组分解为多个一维数组来处理。 int a34=1,2,3,4,5,6,7,8,9,10,11,12; 假设数组a的首地址是1000,由于a是二维数组名,也是二维数组第一行的首地址,a0是第一个一维数组的数组名和首地址,因此a和a0的值都为1000。 a、*a、a0和&a00是等效的,都是数组元素a00的首地址。#include void main()int a34=1,2,3,4,5,6,7,8,9,10,11,12;couta &a0 &a00endl;couta+1 *(a+1) a1 &a1 &a10endl;couta+2 *(a+2) a2 &a2 &a20endl;couta1+1 *(a+1)+1endl;cout*a0endl;cout*(a1+1) *(*(a+1)+1)endl; 2 指向二维数组的指针变量的定义 数据类型 (* 指针变量名) 长度 int a34; int (*p)4; 从前面分析可以得出*(p+i)+j是二维数组i+1行j+1列的元素的地址,而*(*(p+i)+j)是第i+1行j+1列元素的值。 例题:使用二维数组指针变量来访问二维数组中的元素 #include void main()int a34=1,2,3,4,5,6,7,8,9,10,11,12;int (*p)4;int i,j;p=a;for (i=0;i3;i+)for (j=0;j4;j+)cout*(*(p+i)+j) ; coutendl; 四 指针和字符串 字符串指针变量的定义和与指向字符变量的指针变量说明是相同的。 例如:char c,*p=&c; *c=字符串;#include void main() char *p=hello world; coutpendl; p=p+6; coutpendl; 十三 函数的定义和调用 函数具有相对的独立性,能供其他程序模块调用,并在执行完自己的功能后,返回调用它的模块。函数的定义就是描述函数功能的过程。 定义格式:函数类型 函数名(形式参数) 函数体 函数类型是函数返回值的数据类型,函数没有返回值时,使用关键字void加以说明。默认的返回值类型为int。 例子:sum(int a,int b); double sum(int a,int b); void sum(int a,int b); 返回值通常在函数体的末尾使用return语句来返回一个值,其类型应该与函数类型相同。调用格式:函数名(实际参数) 例子:#include int sum(int a,int b) int x=a+b; return x;void main() int x; x=sum(5,10); coutxendl; 在定义同种类型的多个变量时,可以使用一条语句来定义,在定义函数的时候如果多个参数具有相同的数据类型,则需要分开定义。二 函数的声明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省寻甸回族彝族自治县2025年上半年事业单位公开遴选试题含答案分析
- 拎包入住房屋租赁合同
- 河北省肃宁县2025年上半年公开招聘城市协管员试题含答案分析
- 2025标牌规范建设项目安全管理培训合同
- 2025年度琴行教师学生安全教育与事故处理合同
- 2025版石灰矿产品买卖及资源开发合同
- 2025车库租赁合同附带车位使用权及车位改造工程
- 2025房产抵押贷款合同范本:抵押物价值评估与处置程序
- 2025版外墙真石漆施工与施工图纸规范合同
- 海南省文昌市2025年上半年公开招聘辅警试题含答案分析
- 道教与医学的学习资料
- 大厦消防工程技术标
- 水中总氯的测定方法确认实验报告(HJ586)
- MT 282-1994煤矿用移动式甲烷断电仪通用技术条件
- 第二章-基因工程的载体和工具酶课件
- 政府采购评审专家考试题库(含答案)
- 新教材人教A版高中数学选择性必修第一册全册教学课件
- 75号公告专利收费项目和标准(官费)
- 高中生物第一课-(共24张)课件
- 电气原理图基础知识课件
- 新教师跟岗学习实施方案
评论
0/150
提交评论