资源预览内容
第1页 / 共67页
第2页 / 共67页
第3页 / 共67页
第4页 / 共67页
第5页 / 共67页
第6页 / 共67页
第7页 / 共67页
第8页 / 共67页
第9页 / 共67页
第10页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第一部分第一部分 C+C+结构化程序设计结构化程序设计第一章第一章 C+程序设计基础程序设计基础本章内容本章内容 C+C+语言概述语言概述 计算机中的数据与编码计算机中的数据与编码 C+C+程序开发过程程序开发过程 C+C+程序实例程序实例 基本数据类型基本数据类型 常量、变量及引用常量、变量及引用 运算符与表达式运算符与表达式 基本输入基本输入/ /输出输出1.1C+语言概述语言概述1.C+语言与程序设计语言与程序设计 语言语言: 人类交流思想的工具人类交流思想的工具 程序设计:程序设计:就是将解决某个问题的就是将解决某个问题的过程过程用程序设计语言用程序设计语言描描 述出来,计算机按这个描述去逐步实现。述出来,计算机按这个描述去逐步实现。 程序设计语言程序设计语言:编写程序的编写程序的语言语言。与与+语言语言2.程序设计语言分为程序设计语言分为结构化程序设计语言(第结构化程序设计语言(第14章)章)面向对象程序设计语言(第面向对象程序设计语言(第511章)章)计算机中的信息可以分为两大类:计算机中的信息可以分为两大类:控制信息控制信息: :是是控制控制 计算机完成各种操作的指令和控制字。计算机完成各种操作的指令和控制字。 数据信息数据信息: :计算机加工的对。包括数字信息、文字信息 以及各种图形、图像、声音等。 1.2 计算机中的数据计算机中的数据 无论是那种数据,在计算机内部都要转换成二无论是那种数据,在计算机内部都要转换成二进制数后,计算机才能对其进行传送、存储和加进制数后,计算机才能对其进行传送、存储和加工处理。工处理。1.2.1 进位计数制进位计数制在计算机中使用的数据有二进制、十进制、八进制和十六在计算机中使用的数据有二进制、十进制、八进制和十六进制。进制。无论哪种数制,它们的共同之处都是进位计数制。无论哪种数制,它们的共同之处都是进位计数制。 如果数如果数制仅采用制仅采用R个基本符号,称为个基本符号,称为R进制。其中进制。其中R称为基数。称为基数。任意一个任意一个R进制数进制数N都可以用一个式子展开:都可以用一个式子展开:其中:其中:m、n是正整数,是正整数,m是每个数位上的值,是每个数位上的值,m的取值范围的取值范围0R-1。 进制进制基数基数进位进位使用符号使用符号二进制二进制2逢逢2进位进位0、1八进制八进制8逢逢8进位进位0、1、2、3、4、5、6、7 十进制十进制10逢逢10进位进位0、1、2、3、4、5、6、7、8、9 十六进制十六进制16逢逢16进位进位0、1、2、3、4、 5、6、7、8、9、 A、B、C、D、E、F 常用进位计数制常用进位计数制 1 1)R R制数到十进制数的转换方法是:制数到十进制数的转换方法是: 将要转换的数按权展开,各位数字与它的权相乘,最后将要转换的数按权展开,各位数字与它的权相乘,最后求的和就是十进制数。求的和就是十进制数。例如:例如:(1101.01)2=123+12202112002 -112-2 =(13.25)10(205.4)8=28208158 048 1=(133. 5)10 (AF.8)16= 1016 1 15160816 -1 =(175. 5)101.2.2不同数制之间的转换不同数制之间的转换2 2)十进制数到)十进制数到R R制数的转换方法是:制数的转换方法是:十进制的十进制的整数部份和小数部份分别转换,然后再拼接起来。整数部份和小数部份分别转换,然后再拼接起来。整数部份和小数部份分别转换,然后再拼接起来。整数部份和小数部份分别转换,然后再拼接起来。整数部份:整数部份:连续除以连续除以R R进制的进制的R R,直到商为直到商为0 0,将每次除以,将每次除以R R的的 余数自下而上排列,即构成余数自下而上排列,即构成R R进制的整数部分。进制的整数部分。小数部份:小数部份:小数部分连续乘以小数部分连续乘以R R进制的进制的R R,每次取积的整数,每次取积的整数, 并将其自上而下排列,直到小数部份为并将其自上而下排列,直到小数部份为0 0或规定精或规定精 度为止。度为止。例如:例如:将将(237.625)(237.625)1010 转换为二进制转换为二进制整数部分除整数部分除2 2取余取余 余余 数数 整数整数 小数部分乘小数部分乘2 2取整取整 2 2 |2 3 7 |2 3 7 1 0. 6 2 5 1 0. 6 2 5 2 2 |1 1 8|1 1 8 0 0 取取 2 2 2 2 |5 9|5 9 1 1 1. 2 5 0 1 1 1. 2 5 0 2 2 |2 9|2 9 1 1 值值 0. 2 50. 2 5 2 2 |1 4|1 4 0 0 2 2 2 | 7 1 2 | 7 1 方方 0 0. 5 0 0 0. 5 0 2 2 | 3| 3 1 1 2 2 2 2 | 1 | 1 1 1 向向 1 1. 01 1. 0 0 0转换结果为:转换结果为:(237.625)(237.625)1010=(11101101.101)=(11101101.101)2 2例如:将例如:将(237.625)(237.625)1010转换为十六进制:转换为十六进制:整数部分除整数部分除1616取余取余 余数余数 整数整数 小数部分乘小数部分乘1616取整取整 16 16 |2 3 7 |2 3 7 D (13) D (13) 取取 0. 6 2 50. 6 2 5 16 16 |1 4|1 4 E (14) E (14) 值值 1 6 1 6 0 0 方方 A 10. 0 0 0 A 10. 0 0 0 向向 转换结果为:转换结果为:(237.625)(237.625)1010=(ED.A)=(ED.A)16163 3)二、八、十六进制之间的转换)二、八、十六进制之间的转换 二进制与八进制之间转换方法:二进制与八进制之间转换方法: 以小数点为界,左右分别按以小数点为界,左右分别按3位一划分,两头不够位一划分,两头不够3位时补位时补0,将划分的将划分的3位数按八进制数读出即可。位数按八进制数读出即可。例如:将二进制例如:将二进制10100110101.0111转换成八进制:转换成八进制:010100110101. . 0111002465. .34 因此:因此:(10100110101.01110)2=(2465.34).34)8 8 将八进制转换成二进制时,将每位八进制数用将八进制转换成二进制时,将每位八进制数用3位二进位二进制表示出来即可。制表示出来即可。 二进制与十六进制之间转换方法:二进制与十六进制之间转换方法: 以小数点为界,左右分别按以小数点为界,左右分别按4 4位一划分,两头不够位一划分,两头不够4 4位时补位时补0 0,将划分的将划分的4 4位数按十六进制数读出即可。位数按十六进制数读出即可。例如将二进制例如将二进制11110110101.101转换成十六进制:转换成十六进制:011110110101. 1 0107B5. A 因此:因此:(11110110101.101)2=(7B5.A).A)1616 将十六进制转换成二进制时,将每位十六进制数用将十六进制转换成二进制时,将每位十六进制数用4位二位二进制表示出来即可。进制表示出来即可。 1.2.2二进制信息的存储单位二进制信息的存储单位 位位(bit)(bit):二进制的二进制的1 1位,是计算机中数据处理的最小单位。位,是计算机中数据处理的最小单位。字节字节(Byte)(Byte):8 8位二进制位组成一个字节(位二进制位组成一个字节(1Byte=8bit1Byte=8bit)。)。常用来描述容量的单位有:常用来描述容量的单位有:千字节(千字节(KBKB),),1KB=1024bit1KB=1024bit兆字节(兆字节(MBMB),),1MB=1024KB1MB=1024KB千兆字节(千兆字节(GBGB),),1GB=1024MB1GB=1024MB 字字(Word)(Word):独立的信息处理单位,又称为计算机字。独立的信息处理单位,又称为计算机字。 1.2.3 1.2.3 非数值数据的表示非数值数据的表示 字符编码:字符编码:ASCII(AmericanSandardCodeforInformationInterchange)码。码。ASCII用一个字节中的用一个字节中的7位二进制位来表示一个字符,每个位二进制位来表示一个字符,每个 字符唯一对应一个字符唯一对应一个ASCII码,最多可表示码,最多可表示27=128个字符。个字符。 汉字编码汉字编码: :1)1)汉字在计算机内部也采用二进制的数字化编码。汉字在计算机内部也采用二进制的数字化编码。2)2)广泛应用广泛应用GB2312-80(国家标准信息交换用汉字编码国家标准信息交换用汉字编码) ),3)3) 简称国标码,采用二字节编码简称国标码,采用二字节编码. .3) 3) 国标码共编码了国标码共编码了7445个图形字符,其中个图形字符,其中6763个汉字和个汉字和682 个非汉字符号。个非汉字符号。1.3C程序开发过程:程序开发过程:出错出错编辑源程序预处理程序编译程序连接程序装入程序输出结果执行程序输入、修改源程序出错出错出错出错磁盘磁盘输入数据1.41.4 程序实例程序实例 例例1:在屏幕输出在屏幕输出Hello,youarewelcome!/*Helloprogram*/#includevoidmain()coutHello,youarewelcome!;/你好你好,欢迎你欢迎你!程序说明程序说明: :两种注释两种注释 编译预处理行编译预处理行 main( )main( )函数:函数: voidvoid、函数体函数体、程序执行处、程序执行处语句语句: :一行可以写若干条语句,每个语句用一行可以写若干条语句,每个语句用“;”;”作为结束。作为结束。例例2:编写程序从键盘任意输入编写程序从键盘任意输入2个数,输出这个数,输出这2个数的和。个数的和。#include void main() int a,b,n; cout ab; n=a+b; couta+b=nendl;程序说明:程序说明:第行为第行为变量定义变量定义第第4行是行是输出语句输出语句第行第行输入输入 第行是第行是赋值运算赋值运算 第行中第行中endlendl也可以用也可以用“ ”代替,表示代替,表示换行换行。 例例3:由两个函数组成的由两个函数组成的+程序程序 #includeintfmax(inta,intb)if(ab)returna;elsereturnb;main()intv1,v2;coutv1v2;cout两个数中较大数是:两个数中较大数是:fmax(v1,v2)endl;return0;1.5 1.5 基本数据类型基本数据类型 程序中处理的数据分为不同的类型。类型不同,存储方式程序中处理的数据分为不同的类型。类型不同,存储方式 和使用的场合也不同。和使用的场合也不同。 数据类型数据类型基本数据类型基本数据类型整型(整型(int)字符型(字符型(char)符点型(符点型(float、double)布尔型(布尔型(bool)非基本数据类型非基本数据类型构造类型构造类型指针类型指针类型空类型(空类型(void)数组类型数组类型结构类型(结构类型(struct)联合类型(联合类型(union)枚举类型(枚举类型(enum)类类型类类型(class)基本数据类型基本数据类型:+系统已定义的类型。可以直接利用这些系统已定义的类型。可以直接利用这些 类型名来定义数据。类型名来定义数据。 类型名类型名说明说明字节字节取值范围取值范围bool布尔型布尔型1true,falsesingnedchar有符号字符型有符号字符型1-128+127unsignedchar无符号字符型无符号字符型1255signedshortint有有符号短整型符号短整型2-3276832767unsignedshortint无无符号短整型符号短整型265535signedint有有符号整型符号整型4-2147483648+2147483647unsignedint无无符号整型符号整型404294967295signedlongint长整型长整型4-2147483648+2147483647unsignedlongint无无符号长整型符号长整型44294967275float浮点型浮点型43.410-383.410+38double双浮点型双浮点型81.710-383.410+38longdouble长双浮点型长双浮点型103.410-49323.410+4932 . .6 6 常量、变量及引用常量、变量及引用 . .6.常量常量程序中可以直接使用的常数称为常量程序中可以直接使用的常数称为常量 常量分为常量分为: : 整型整型 浮点型浮点型 字符型字符型 字符串常量字符串常量 布尔常量布尔常量1 1)整型常量)整型常量十进制整数十进制整数: : 由数字组成的正负整数,如、由数字组成的正负整数,如、15、247。八进制整数八进制整数: : 以数字开头的整数以数字开头的整数, ,由数字组成,如由数字组成,如015,0238。十六进制整数十六进制整数: : 以以0x0x或或0X0X开头的整数开头的整数, ,由数字和字母(或大由数字和字母(或大 写)组成。例如:写)组成。例如:0x516,0x8AB,0xb2ff。八进制和十六进制只能表示无符号整数八进制和十六进制只能表示无符号整数. .任一整型常数后跟字母任一整型常数后跟字母( (或或) )时,为长整型时,为长整型. .如如: :12345L任一整型常数后跟字母任一整型常数后跟字母( (或或) )时,为无符号整型时,为无符号整型. .如如: :7895 浮点型数由整数部分和小数部分组成。浮点型数由整数部分和小数部分组成。浮点型常数有两种形式:浮点型常数有两种形式: 小数形式:小数形式:3.14159,0.55,123.0。 指数形式:指数形式:+5.25e-80.567805、其中:其中:+5.25e-8表示表示 +5.2510-8 0.5678+05表示表示 0.5678105 ) )浮点型常量浮点型常量( (又称实型又称实型) )q指数形式表示浮点型数时指数形式表示浮点型数时e(e(或或E)前可以是整数或小数,但后的指数部前可以是整数或小数,但后的指数部 分必须是整型数。分必须是整型数。q浮点型数总是按浮点型数总是按double类型存储的,只有在数的后面加上才按类型存储的,只有在数的后面加上才按float类类 型存储,如型存储,如1.234E-6f。q长双精度(长双精度(longdouble)型常量通常在双精度数后面加上型常量通常在双精度数后面加上l或或L表示,如表示,如1.2345e-12L。说明:说明:) ) 字符型常量字符型常量 字符型常量是用单引号括起来的单个字符字符型常量是用单引号括起来的单个字符 例如例如: : A、S、*、 、 nn 说明说明: : q字符型常量中的单引号作为定界符,不是字符型常量内容。字符型常量中的单引号作为定界符,不是字符型常量内容。q字符型常量具有数值,其值就是该字符的字符型常量具有数值,其值就是该字符的ASCII码值。而且值可以作为码值。而且值可以作为 整数参与运算:整数参与运算: 如如 +5 +5 结果为字符结果为字符 如如 9-6结果为数字字符结果为数字字符 如如 A+32结果为结果为 结果为整数。结果为整数。q可以是可以是ASCII字符集中任意可打印字符,包括空格字符集中任意可打印字符,包括空格. .q转义字符转义字符( (见表见表-3 -3 ) ) ) 字符串常量字符串常量 用双引号括起来的一串字符。用双引号括起来的一串字符。例如:例如:Thisisastring ABCxyzn 1234 中国中国_天津天津 说明:说明:q字符串中可以包含空格、转义字符、中文字符等。字符串中可以包含空格、转义字符、中文字符等。q双引号作为字符串的定界符,计算字符串长度时双引号不计算在内。双引号作为字符串的定界符,计算字符串长度时双引号不计算在内。q编译程序在存储字符串常量时自动在字符串最后加一个编译程序在存储字符串常量时自动在字符串最后加一个00作为一个作为一个字字符串的结束标志,符串的结束标志,00占一个字节位置。占一个字节位置。q一个字符占一个字节,一个汉字占两个字节。一个字符占一个字节,一个汉字占两个字节。q在程序设计中字符串通常用字符数组或字符指针存放。在程序设计中字符串通常用字符数组或字符指针存放。) ) 布尔常量布尔常量 布尔常量仅有两个值,即布尔常量仅有两个值,即true(真)和真)和false(假)。假)。 6) 6) 符号常量符号常量 为常量起一个名字,称为符号常量。为常量起一个名字,称为符号常量。符号常量在使用前必须进行说明。符号常量的说明形式为:符号常量在使用前必须进行说明。符号常量的说明形式为: const数据类型名数据类型名常量名常量值;常量名常量值; 或或数据类型名数据类型名const常量名常量值;常量名常量值; 例如:例如:constintm=100;constfloatpi=3.14159;说明:说明:q符号常量在说明时一定要赋初值,其值程序中不能修改。符号常量在说明时一定要赋初值,其值程序中不能修改。q符号常量名不要和一般变量名重名。符号常量名不要和一般变量名重名。q使用符号常量可以提高程序的可读性,增强程序的可维护性。使用符号常量可以提高程序的可读性,增强程序的可维护性。 1.1.6.6. 变量变量 1) 1) 标识符标识符用来为变量、符号常量、数组、函数、类型等命名。用来为变量、符号常量、数组、函数、类型等命名。命名标识符有以下规则:命名标识符有以下规则: 必须由字母、下画线和数字组成必须由字母、下画线和数字组成 第个字符应是字母或下画线字符第个字符应是字母或下画线字符 例如:例如:a、x1、data_5、count等为合法的标识符等为合法的标识符 标识符的长度视具体的编译系统而定。标识符的长度视具体的编译系统而定。不能使用不能使用+的关键字作为标识符,的关键字作为标识符,例如:例如:int、for等等+中变量名区分大小写,因此中变量名区分大小写,因此ex1ex1和和 EXEX是两个不同是两个不同 的变量名的变量名 2 2)变量)变量 在程序中可以在程序中可以改变值改变值的量称为变量。的量称为变量。 每个变量在内存中占有一定的存储单元,该存储单元中存每个变量在内存中占有一定的存储单元,该存储单元中存放变量的值。在程序设计中可以根据需要改变变量的值。放变量的值。在程序设计中可以根据需要改变变量的值。每个存储单元都有一个地址。每个存储单元都有一个地址。12.345变量名变量名X1变量值变量值存储单元存储单元3)定义变量定义变量 程序中的变量名在使用之前必须定义。程序中的变量名在使用之前必须定义。 例如:例如:chara,b,c;/定义、为字符型变量定义、为字符型变量int,y;/定义、为整型变量定义、为整型变量longints1,s2;/定义定义s1、s2为长整型变量为长整型变量floatdata_1,data_2;/定义定义data1_1、data_2为浮点型变量为浮点型变量doublew1,w2/定义定义w1、w2为双精度型变量为双精度型变量unsigned,n;/定义、定义、n为无符号整型变量为无符号整型变量 4 4)变量的初始化)变量的初始化 变量在定义的同时可以给其赋值。变量在定义的同时可以给其赋值。 例如:例如:charA;int=0,=12;doublew1=12.3456,w2=-0.4567e-4;charch(ch(B);longintx1(1)x1(1),y1(100)y1(100);doubledata1(12.056),data2(-0.12345e-4);程序举例:程序举例:#includevoidmain()intd1=5,d2=20;doublex1=12.5,x2=-5.0;charch1(*),ch2(A);coutd1+d2endl;coutx1-x2endl;coutch1“ch2+3endl;252517.5 17.5 * D* D运行结果:运行结果:. .6.3 6.3 引用引用 程序中定义过的变量名再给它另一个名字,这个名程序中定义过的变量名再给它另一个名字,这个名字称为引用字称为引用(reference)。 说明引用的形式为:说明引用的形式为: 数据类型数据类型引用名变量名;引用名变量名; 或或 数据类型数据类型引用名(变量名引用名(变量名) ); 其中:变量名是已经定义过的一个变量名;其中:变量名是已经定义过的一个变量名; “ “”是说明引用的符号;是说明引用的符号; 数据类型是被引用变量名的类型。数据类型是被引用变量名的类型。 例如:例如: inta;int&refa=a;变量名和引用名是对同一个存储单元的操作变量名和引用名是对同一个存储单元的操作 注意:注意:程序举例:程序举例:#includevoidmain()inta(5);int&rea=a;coutareaendl;rea=10;coutareaendl;输出结果:输出结果: 5 510105 5a arearea1010a arearea存储单元示意:存储单元示意:1.6.4 1.6.4 枚举类型枚举类型 将将一些可能取值的量一一列举出来,称为枚举类型。一些可能取值的量一一列举出来,称为枚举类型。 说明枚举类型的形式为:说明枚举类型的形式为:enum枚举类型名枚举元素;枚举类型名枚举元素;其中:其中:enum是用于说明枚举类型的关键字。是用于说明枚举类型的关键字。 每个枚举元素就是枚举常量值。每个枚举元素就是枚举常量值。例如:例如:enumcolourred,yellow,blue,white,black;定义枚举型变量形式:定义枚举型变量形式:enumcolourred,yellow,blue,white,blackc1,c2;或或 enumcolourm1,m2;枚举型使用说明:枚举型使用说明:1)1)枚举元素在说明后都自动有一个整数值。枚举元素在说明后都自动有一个整数值。 例如:例如:colour中,中,red的值为,的值为,yellow的值为,的值为, black的值为。的值为。 可以在说明枚举类型时另指定一个整数值,指定元素后边的可以在说明枚举类型时另指定一个整数值,指定元素后边的 各元素值按增的顺序重新排列,而没有指定的元素值仍按各元素值按增的顺序重新排列,而没有指定的元素值仍按 系统自动给定的值。系统自动给定的值。 例如:例如:enumdeasteast,westwest,southsouth1010,northnorth; south的值的值10,north的值为的值为11,east的值为,的值为,west值为。值为。 2)2)仅能给枚举变量赋枚举元素值。仅能给枚举变量赋枚举元素值。 3)3)枚举变量进行增或减枚举变量进行增或减, ,比较运算。比较运算。 4)4)枚举变量不能用于输入,输出时仅输出枚举值的顺序号。枚举变量不能用于输入,输出时仅输出枚举值的顺序号。 . .7 7 运算符与表达式运算符与表达式 表达式由操作数和运算符组成表达式由操作数和运算符组成 操作数操作数: : 常量、变量及函数调用。常量、变量及函数调用。 运算符运算符: : 对操作数进行的运算和处理。对操作数进行的运算和处理。 +的表达式既可以单独作为语句使用,也可的表达式既可以单独作为语句使用,也可以在其他语句中作为测试的条件以及调用函数以在其他语句中作为测试的条件以及调用函数的参数使用。的参数使用。 +提供了丰富的运算符。以下分别介绍。提供了丰富的运算符。以下分别介绍。 1.7.1 1.7.1 算术运算符与算术表达式算术运算符与算术表达式 算术运算符包括算术运算符包括: : (加)(加) (减)(减) * * (乘)(乘) (除)(除) (取余)(取余) 使用规则使用规则: : q、* *、与一般数学运算相同,其中、与一般数学运算相同,其中“”可作一元运算符使用,可作一元运算符使用, 表示取负。表示取负。q优先级为:优先级为: 先先 * *、,后、,后、 。q两个整型数相除,取商的整数部分。例如两个整型数相除,取商的整数部分。例如:8/5 :8/5 结果为,结果为,5/85/8结果为。结果为。 两实型数相除,结果为实型数,例如两实型数相除,结果为实型数,例如: 8.0: 8.05.05.0结果为结果为1.61.6。q用于求两个整数相除的余数,例如用于求两个整数相除的余数,例如: :5 5 为,而为,而10105 5 为为0 0 。q参加运算的两个操作数的类型不同时,按由低到高规则转换后计算。参加运算的两个操作数的类型不同时,按由低到高规则转换后计算。 inta=10,b=4;doublex=1.5;charc1=A;longw=12345;表达式表达式1:(a+b)*x-w/c1表达式表达式2:a*x-b*x+w/15+(c1+4)算术表达式举例:算术表达式举例: 表达式表达式1和表达式和表达式2的计算过程及最后类型。的计算过程及最后类型。讨论:讨论:1.7.2 1.7.2 位操作运算符位操作运算符 用于对二进制数值的位进行运算用于对二进制数值的位进行运算 位操作运算符分为逻辑位操作运算符和移位运算符:位操作运算符分为逻辑位操作运算符和移位运算符:逻辑位操作运算符逻辑位操作运算符: : 按位按位“与与”,两操作数逐位求,两操作数逐位求“与与” 按位按位“或或”,两操作数逐位求,两操作数逐位求“或或” 按位按位“异或异或”,两操作数逐位相加不进位,两操作数逐位相加不进位 求反,一元运算符,将操作数逐位取反求反,一元运算符,将操作数逐位取反移位运算符:移位运算符: 二进制左移,将操作数左移指定位数二进制左移,将操作数左移指定位数 二进制右移,将操作数右移指定位数二进制右移,将操作数右移指定位数使用规则使用规则: : q参加位操作的操作数必须是整型常数或整型变量。参加位操作的操作数必须是整型常数或整型变量。q逻辑位操作运算符的使用形式为:逻辑位操作运算符的使用形式为:操作数操作数 操作数操作数操作数操作数 操作数操作数操作数操作数 操作数操作数 操作数操作数 q移位运算符的使用形式为:移位运算符的使用形式为:操作数操作数操作数操作数 将操作数左移操作数指定的位数将操作数左移操作数指定的位数 操作数操作数操作数操作数 将操作数右移操作数指定的位数将操作数右移操作数指定的位数 例如:例如: inta=15,b=125;a&b;/a和和b按位与按位与a(b);/a和非和非b按位或按位或b2;/b左移左移2位位1.7.1.7. 赋值运算符与赋值表达式赋值运算符与赋值表达式 1 1)简单赋值运算符)简单赋值运算符, ,形式为:形式为: 变量操作数变量操作数 其中其中: :操作数可以是常量、变量和操作数可以是常量、变量和C+C+任意合法的表达式任意合法的表达式. . 例如:例如:inta(15);doubledata,s;data=-8.1245;/将将-8.1245-8.1245存入存入datadata变量变量s=a*50+data/3;/将将表达式表达式a*50+data/3结果结果存入存入 q赋值号赋值号“” ” 左边必须是变量。左边必须是变量。q赋值表达式的值和类型为赋值表达式的值和类型为“”号左边变量的值和类型。号左边变量的值和类型。 说明:说明:2 2)复合赋值运算符)复合赋值运算符 将算术运算和赋值放在一起的缩写形式将算术运算和赋值放在一起的缩写形式包括:包括: *例如:例如:a;相当于相当于 a=a+b;ab;相当于相当于 a=a+b;a*;相当于相当于a=a*b;a;相当于相当于a=a/b;a;相当于相当于 a=a%b; 使用说明:使用说明: q由于有存储功能,复合赋值运算符由于有存储功能,复合赋值运算符左边必须是变量名。以下左边必须是变量名。以下是错误的:是错误的:a+=b+=c+d=12a+=b+=c+d=12; q当复合赋值运算的右边是表达式时,将表达式视为一个整体,例如当复合赋值运算的右边是表达式时,将表达式视为一个整体,例如-=x+y;相当于:相当于:= =-(-(+y) +y) 1.7.4 1.7.4 自增和自减运算符自增和自减运算符 自增自减运算符有如下自增自减运算符有如下4种形式:种形式: +i+i前置自增,将的值先加,再使用的值。前置自增,将的值先加,再使用的值。 i+i+后置自增,先使用的值,后置自增,先使用的值, 然后的值加。然后的值加。 -i-i前置自减,将的值先减,再使用的值。前置自减,将的值先减,再使用的值。 i-i-后置自减,先使用的值,后置自减,先使用的值, 然后的值减。然后的值减。 使用说明:使用说明: q因为有加减和赋值的功能,运算对象必须是变量,不能是常数或表达式。因为有加减和赋值的功能,运算对象必须是变量,不能是常数或表达式。q单独作为一个语句使用时,前置增单独作为一个语句使用时,前置增( (减减) )或后置增或后置增( (减减) )是一样的,是一样的,但若和其他运算符组合使用,采用前置或后置就会产生不同的结果。但若和其他运算符组合使用,采用前置或后置就会产生不同的结果。q运算符运算符+(或(或- - -)是一个整体,使用时两个)是一个整体,使用时两个+ +(或)之间不要有空。(或)之间不要有空。q+(或(或- - -)运算符是单目运算符)运算符是单目运算符. . 自增自减运算符举例:自增自减运算符举例:#includevoidmain()inta(2),b(2),d1,d2;a+;b-;cout“a=“a“b=“bendl;d1=+a;cout“a=”a“d1=“d1endl;d2=b-;cout“b=“b“d2=“d2endl; a=3 b=1a=3 b=1a=4d1=4b=0d2=1输出结果:输出结果:1.7.5 1.7.5 关系运算符与关系表达式关系运算符与关系表达式 关系运算符用于比较两个数的大小,共有个运算符:关系运算符用于比较两个数的大小,共有个运算符: 小于小于 小于等于小于等于 大于大于 大于等于大于等于 等于等于 ! 不等于不等于 使用说明使用说明: : q关系表达式的值是整数值关系表达式的值是整数值0 0和和1 1,当关系式成立时为当关系式成立时为1 1;否则为;否则为0 0 。q关系运算符两边操作数可以是整型、浮点型、字符型、指针及枚举型关系运算符两边操作数可以是整型、浮点型、字符型、指针及枚举型 。q关系运算符可以在一个关系式中连续使用,但若用关系运算符可以在一个关系式中连续使用,但若用 -1=-1=式判断式判断是否在是否在-,1,1区间,则是错误的。区间,则是错误的。q注意区别注意区别“”和和“”。 q注意注意=和!和!= =运算符的优先级比其它关系运算符低。运算符的优先级比其它关系运算符低。 关系运算符关系运算符使用使用举例:举例:输出结果为:输出结果为:#includevoidmain()inta5,b6;coutb:b)n;couta=b:(a=b)n;couta=b:(a=b)n;couta!=b:(a!=b)n;: :!:!:1.7.6 1.7.6 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 逻辑运算符用于对操作数进行逻辑操作。逻辑运算符是:逻辑运算符用于对操作数进行逻辑操作。逻辑运算符是: &逻辑逻辑“与与” |逻辑逻辑“或或” !逻辑逻辑“非非”(一元运算符)(一元运算符)逻辑运算符的使用形式是:逻辑运算符的使用形式是: 操作数操作数1 &1 &操作数操作数2 2 操作数操作数1 |1 |操作数操作数2 2 !操作数!操作数使用说明使用说明: : q逻辑表达式的值取值为逻辑表达式的值取值为1 1或或0 0。q逻辑运算符两边的操作数可以是任意基本数据类型,只要是或非值逻辑运算符两边的操作数可以是任意基本数据类型,只要是或非值 即可。任何非即可。任何非0 0值的数据都作为值的数据都作为1 1参与逻辑运算。参与逻辑运算。 q注意多个注意多个 & & 或或 | | 符使用时的符使用时的“短路操作短路操作”。 逻辑运算符逻辑运算符使用使用举例:举例:#includevoidmain()inta,b,c,x,y;a=1;b=2;c=0;couta+-1endl;cout(a&b|!c)endl;coutb/+aendl;x=+a|+b&+c;/短路短路coutabcxendl;a=b=c=-1;y=+a&+b&+c;/短路短路coutabcy变量变量1 1 变量变量22变量变量n n ;使用使用cincin一次可以输入多个值。一次可以输入多个值。可以输入任何基本类型的数据。可以输入任何基本类型的数据。用空格、制表符或回车作为输入的两个数据之间的分隔。用空格、制表符或回车作为输入的两个数据之间的分隔。例如:例如: inta,b,c;doublex1,y1;cinabc;cinx1x2; 输入、输出流对象:输入、输出流对象:cincin coutcout2)cout的使用形式:的使用形式:coute e1e e2e en;其中:每个其中:每个eiei可以是可以是: : 常量、变量、表达式、字符串、函数调用等。常量、变量、表达式、字符串、函数调用等。 当是表达式时,输出表达式结果的值;当是表达式时,输出表达式结果的值; 若是函数调用,则输出函数调用后的结果;若是函数调用,则输出函数调用后的结果; 当是字符串时,将字符串原样输出。当是字符串时,将字符串原样输出。例如:例如: int10;cout3.14159; coutcoutn=n=endlendl; ;使用使用cin和和cout在程序开始处要写入预编译命令:在程序开始处要写入预编译命令:#include注注 意:意:输入输出格式:输入输出格式:默认格式输出默认格式输出: : 输出一个整型数或字符时,原样输出值;输出一个整型数或字符时,原样输出值; 输出一个输出一个float型数时,默认型数时,默认7位有效数字;位有效数字; 输出输出double型数时,默认型数时,默认15位有效数字。位有效数字。#includevoidmain()inta=123;longintb=1234567;floatx1=12.34,x2=23.456789;doubley=12.34567890123;cout”a=”an”b=”bendl;cout”x1=”x1”“”x2=”x2endl;cout”y=yendl;默认格式输出举例:默认格式输出举例:a=123b=1234567x1=12.34000x2=23.45679y=12.3456789012300 输出结果:输出结果: 在输入输出流中使用控制符在输入输出流中使用控制符+提供控制符控制输出数据的格式。常用的几个控制符提供控制符控制输出数据的格式。常用的几个控制符: :dec转换为十进制数输入输出转换为十进制数输入输出hex转换为十六进制数输入输出转换为十六进制数输入输出oct转换为八进制数输入输出转换为八进制数输入输出setw(int)设置输出的宽度设置输出的宽度setprecision(int)设置浮点数输出的有效数字位数设置浮点数输出的有效数字位数setfill(char)设置填充字符设置填充字符endl插入换行符插入换行符使用以上格式控制符时,要加上头文件使用以上格式控制符时,要加上头文件: : #include注意:注意:输出结果:输出结果:使用格式控制符举例:使用格式控制符举例:#include#includevoidmain()intx=24;doubley=12.3456789;coutdecx;couthexx;coutoctxn;coutdec;/以下仍按十进制输出以下仍按十进制输出coutsetw(8)x,xendl;coutsetw(8)setfill(*)xendl;coutsetprecision(5)yendl;1.2418302.24,24*2412.346#includevoidmain()inta=-5,b=10;floatx=1.75,y=2.34e-03;couta=a”“b=bendl;couta+b=a+bendl;couta=+a”“b=-bendl;couta=a+”“b=b-endl;couta*b=a*bendl;couta%b=a%bendl;coutx+y=x+yendl;综合例综合例1:1: 算术运算符和增量、减量运算符使用算术运算符和增量、减量运算符使用运行结果为:运行结果为:综合例综合例2 2:从键盘输入一个半径值,求该半径圆的周长和面积。:从键盘输入一个半径值,求该半径圆的周长和面积。 #include #include const double pi(3.14159);const double pi(3.14159);void main( )void main( ) double r,a,c; double r,a,c; coutcoutr;r; c=2*pi*r; c=2*pi*r; a=pi*r*r; a=pi*r*r; coutcout周长周长= =ccendlendl; ; coutcout面积面积= =aaendlendl; ; 运行结果为:运行结果为:输入半径值输入半径值: 2.5: 2.5周长周长=15.708=15.708面积面积=19.6349=19.6349综合例综合例3 3:使用条件运算符,求任意:使用条件运算符,求任意3 3个整数的最大值。个整数的最大值。 #include #include void main()void main() intint a,b,c,m; a,b,c,m; coutcout“abc;abc; m=ab?a:b; m=ab?a:b; coutcout最大值是最大值是:c)?m:c):c)?m:c)endlendl; ; 运行结果:运行结果:输入输入3 3个整数:个整数: 12 79 3612 79 36最大值是:最大值是:7979#include #include void main( )void main( ) intint a=4,b=3,c=2,d=1; a=4,b=3,c=2,d=1; intint x, y=10; x, y=10; char ch1=A,ch2=*; char ch1=A,ch2=*; x=ab?a+1:cd?c+1:d+1; x=ab?a+1:cd?c+1:d+1; coutcout“x=“x“x=“xendlendl; ; coutcout(a+b,b+c,c+d)(a+b,b+c,c+d)endlendl; ; y+=a+=b+=c+d; y+=a+=b+=c+d; coutcout“y=“y“y=“yendlendl; ; coutcoutch1ch2ch2ch1ch1ch2ch2ch1endlendl; ; 综合例综合例4 4:运算符混合使用。:运算符混合使用。运行结果:运行结果:x=23y=20A*A 第一章小结第一章小结第一章小结第一章小结教学进程教学进程教学进程教学进程重点掌握:重点掌握:重点掌握:重点掌握: C+C+程序格式程序格式程序格式程序格式 计算机中的数据与编码计算机中的数据与编码计算机中的数据与编码计算机中的数据与编码 开发一个开发一个开发一个开发一个+程序过程程序过程程序过程程序过程 基本数据类型基本数据类型基本数据类型基本数据类型 ( (各类型的表示)各类型的表示)各类型的表示)各类型的表示) 各种各种各种各种常量的表示、常量的表示、常量的表示、常量的表示、 变量的含义,变量的含义,变量的含义,变量的含义,各种各种各种各种变量的定义形式变量的定义形式变量的定义形式变量的定义形式 引用的含义及说明形式引用的含义及说明形式引用的含义及说明形式引用的含义及说明形式 各种各种各种各种运算符的形式运算符的形式运算符的形式运算符的形式 主要:算术、关系、赋值、逻辑、主要:算术、关系、赋值、逻辑、主要:算术、关系、赋值、逻辑、主要:算术、关系、赋值、逻辑、 条件、逗号条件、逗号条件、逗号条件、逗号 运算符优先级、结合性运算符优先级、结合性运算符优先级、结合性运算符优先级、结合性 表达式的类型表达式的类型表达式的类型表达式的类型 基本输入基本输入基本输入基本输入/ /输出输出输出输出
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号