第Ⅱ部分程序语言基础(第三章)._第1页
第Ⅱ部分程序语言基础(第三章)._第2页
第Ⅱ部分程序语言基础(第三章)._第3页
第Ⅱ部分程序语言基础(第三章)._第4页
第Ⅱ部分程序语言基础(第三章)._第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

1、第第部分部分 程序语言基础(程序语言基础(C语言)语言) 第三章第三章 数据类型与基本输入输出数据类型与基本输入输出C/C+语言语言 简介 C语言是国际上广泛流行的计算机高级语语言是国际上广泛流行的计算机高级语言。它适合作为系统描述语言,既可以用言。它适合作为系统描述语言,既可以用来编写系统软件,也可用来编写应用软件。来编写系统软件,也可用来编写应用软件。 C+是从是从C语言发展演变而来的,首先是语言发展演变而来的,首先是一个更好的一个更好的C,C+引入了类的机制,最初引入了类的机制,最初的的C+被称为被称为“带类的带类的C”C/C+程序实现过程编辑器编辑器预处理器预处理器编译器编译器连接器连

2、接器装入器装入器磁盘磁盘磁盘磁盘磁盘磁盘磁盘磁盘内存内存内存内存CPU磁盘磁盘程序在编辑器中生成源程序程序在编辑器中生成源程序并存盘,并存盘,A.cpp,a.c编译器在编译前调用预处理器实编译器在编译前调用预处理器实现文本替换现文本替换建立目标程序并存盘建立目标程序并存盘将目标码与库连接,生成将目标码与库连接,生成a.exe文文件并存盘件并存盘把程序放入内存把程序放入内存CPU取出指令并执行,可以在执取出指令并执行,可以在执行程序时存放新的数据值行程序时存放新的数据值C程序实例 #include using namespace std; int main() int i=1,ni,gi; do

3、 cinnigi; if(gi=80) coutni=ni gi=giendl; i=i+1; while(i=50); return 0; 词法记号词法记号 关键字关键字C+预定义的单词预定义的单词 标识符标识符程序员声明的单词,它命名程序正文中的一些程序员声明的单词,它命名程序正文中的一些实体实体 文字文字在程序中直接使用符号表示的数据在程序中直接使用符号表示的数据 操作符操作符用于实现各种运算的符号用于实现各种运算的符号 分隔符分隔符 () , : ; 用于分隔各个词法记号或程序正文用于分隔各个词法记号或程序正文 空白符空白符空格、制表符(空格、制表符(TAB键产生的字符)、换行符键产生

4、的字符)、换行符(Enter键所产生的字符)和注释的总称键所产生的字符)和注释的总称标识符标识符 字符集字符集 大小写的英文字母:大小写的英文字母:AZAZ,azaz 数字字符:数字字符:0909 特殊字符:特殊字符:空格空格! !# #% % & &* *_ _( (下划线下划线) )+ += =- - / / ; ;. ., ,()() 标识符标识符 标识符的构成规则:以大写字母、小写字标识符的构成规则:以大写字母、小写字母或下划线母或下划线(_)开始。开始。 可以由以大写字母、小写字母、下划线可以由以大写字母、小写字母、下划线(_)或数字或数字09组成。组成。 大写字母和

5、小写字母代表不同的标识符大写字母和小写字母代表不同的标识符。v定义标识符表示下列数据:定义标识符表示下列数据:v姓名、学号、性别、年龄、成绩、电话、姓名、学号、性别、年龄、成绩、电话、v住址、学校名住址、学校名 1.望文知意望文知意2.有规则有规则 3.不超过不超过20个字符个字符 #include using namespace std; int main(void) const int PRICE=30; int num,total; float v ,r,h; num=10; total=num*PRICE; couttotal endl; r=2.5; h=3.2; v=3.14159

6、*r*r*h; coutv endl; int,float是是C语言语言的数据类的数据类型名型名数据类型数据类型 C语言中的数据类型包括基本数据类型语言中的数据类型包括基本数据类型(内置数据类型)和用户自定义数据类型。(内置数据类型)和用户自定义数据类型。 基本基本数据数据类型类型整型整型浮点型浮点型空值类型(空值类型(void)布尔型布尔型字符串类型字符串类型字符型字符型整型数据十进制 八进制 十六进制 0 0 0 x0 15 017 0 x0F 65 0101 0 x41 计算机只能存储二进制数计算机只能存储二进制数二进制、八进制、十六进制转换二进制、八进制、十六进制转换 二进制 八进制

7、十六进制 01110000 160 0 x70 11110001 361 0 x F1 整数的使用整数的使用输入两个整数,求和。输入两个整数,求和。#includeusing namespace std;int main( ) short int x1,x2; cinx1x2; /输入两个数;输入两个数; short int y=x1+x2; couty=yendl; return 0;输入:输入:3 4y=7#includeusing namespace std;int main( ) short int x1,x2; x1=1; x2=32767; /赋值赋值 short int y=x1

8、+x2; couty=yendl; return 0;运行结果:运行结果:y=-32768数据数据溢出溢出浮点型long double(长双精度浮点类型,占(长双精度浮点类型,占16个字节)个字节)double(双精度浮点类型,占(双精度浮点类型,占8个字节)个字节)float(单精度浮点类型,占(单精度浮点类型,占4个字节)个字节)浮点型浮点型float的存储方式 双精度的存储方式 字符常量字符常量 单引号括起来的一个字符,如:单引号括起来的一个字符,如:a, D, ?, $ 字符变量字符变量 用来存放字符常量用来存放字符常量例:例:char c1,c2; c1=a; c2=A; 字符数据在

9、内存中的存储形式字符数据在内存中的存储形式 以以ASCII码存储,占码存储,占1字节,用字节,用7个二进制位个二进制位 字符数据的使用方法字符数据的使用方法 字符数据和整型数据之间可以运算。字符数据和整型数据之间可以运算。 字符数据与整型数据可以互相赋值。字符数据与整型数据可以互相赋值。Page 2101001010字符字符J在内存中的存储在内存中的存储 转义字符使用转义字符使用#includeusing namespace std;int main() char c1=a; couttc1endl;return 0;运行结果:运行结果: a 大小写字母转换大小写字母转换#includeusi

10、ng namespace std;int main()char c1=a,c2=b;c1=c1-32;c2=c2-32;coutc1 c2endl;return 0;运行结果:运行结果:A B整形字符型互用整形字符型互用#includeusing namespace std;int main()char c1=a;int x1;x1=c1;coutx1=x1endl;c1=x1+5; coutc1=c1endl;return 0;运行结果:运行结果:x1=97c1=f 字符串常量字符串常量例例:CHINA a a所以:所以:char c; c=a; C H I N A 0a 0aPage 27

11、字符串类型字符串类型 字符串类型数据是指字符串类型数据是指用双引号括起来的若用双引号括起来的若干字符序列干字符序列 01001010 01001111 0100111000000000字符串字符串”JON”在内存的存储在内存的存储布尔型数据布尔型数据 布尔型布尔型(bool)数据的取值:数据的取值:只有只有 false 和和 true 两个值两个值空值类型void void数据类型没有数值,数据类型没有数值,void数据类型主数据类型主要用于指针和函数要用于指针和函数 程序中的数据是如何存储到内存中的?程序中的数据是如何存储到内存中的?一、首先要通过变量把两个整数存储到内存中;一、首先要通过变

12、量把两个整数存储到内存中;二、二、CPU从内存中取出数据求和。从内存中取出数据求和。C语言程语言程序中如何序中如何使用变量使用变量存储数据存储数据 变量的声明变量的声明 int x ; /声明整型变量声明整型变量 int wordCut , Radius , Height ; double FlightTime ; /声明浮点型变量声明浮点型变量变量的使用变量的使用4个字节个字节int x ;请为保存一个整数请为保存一个整数提供足够的空间提供足够的空间用名称用名称x标记该空间标记该空间变量的使用变量的使用 变量声明变量声明 的格式:的格式: 数据类型名数据类型名 变量名;变量名; 变量的使用变

13、量的使用 变量声明变量声明 的格式:的格式: 数据类型名数据类型名 变量名;变量名; 已定义的数已定义的数据类型据类型变量的使用变量的使用 变量声明变量声明 的格式:的格式: 数据类型名数据类型名 变量名;变量名; 已定义的数已定义的数据类型据类型标识符标识符程序中要使用程序中要使用一致和有意义一致和有意义的变量名的变量名例:例: int x=3; double f=3.56; char c=a; int c(5); int b=x;Page 384个字节个字节int x=3;请为保存一个整数请为保存一个整数提供足够的空间提供足够的空间用名称用名称x标记该空间标记该空间,把值把值3存进去存进去

14、 变量声明时赋值称为变量的初始化格式:变量声明时赋值称为变量的初始化格式: 数据类型名数据类型名 变量名变量名 =初始值初始值,变量名,变量名 =初始值初始值; 变量声明时赋值称为变量的初始化格式:变量声明时赋值称为变量的初始化格式: 数据类型名数据类型名 变量名变量名 =初始值初始值,变量名,变量名 =初始值初始值; 可以是常量,也可可以是常量,也可是变量是变量 常见错误:常见错误: int y=9; x=y+6; /x没有声明没有声明 coutyendl /没有分号没有分号 编程序求两个整数的和。编程序求两个整数的和。 int x1=5,x2=78; 把把5,78保存到保存到x1,x2所申

15、请的内存单元中。所申请的内存单元中。 int y=x1+x2; /把把5,78的和存到变量的和存到变量y中中 int y=5+78;/不借助变量,直接使用不借助变量,直接使用5,78常常量量常量常量 常量是变量的特例,其实很少有至永远不常量是变量的特例,其实很少有至永远不变的变量。变的变量。 常量的作用:常量的作用: 1.便于修改便于修改 2.便于书写便于书写常量常量 的分类 字面常量字面常量 如:如:A 、 hellow 、 中国中国、3.1415 标识常量标识常量 :用标识符来表示常量用标识符来表示常量 标识常量声明的语法格式是:标识常量声明的语法格式是: const 数据类型名数据类型名

16、 标识符标识符=初始值;初始值; 如:如:const int NUMBER=111111; const MAX; /没有指定初值没有指定初值 const int NUMBER=111111; NUMBER=222222; /修改修改标识常量标识常量NUMBER的值是错误的的值是错误的引用引用 C/C+语言允许为变量和对象语言允许为变量和对象定义别名定义别名,称,称为为“引用引用”,引用声明的语法格式:,引用声明的语法格式: 类型标识符类型标识符 &引用名引用名=变量名;变量名; int x=8; int &t=x; t=90;8xt int x=8; int &t=x;

17、 t=90;90 xt常引用 只能通过变量的常引用使用变量的值,不只能通过变量的常引用使用变量的值,不能通过变量的常引用修改变量的值能通过变量的常引用修改变量的值. int var=100; const &t1=var; /t1是是var的常引用的常引用 var=34; t1=34; 常引用 只能通过变量的常引用使用变量的值,不只能通过变量的常引用使用变量的值,不能通过变量的常引用修改变量的值能通过变量的常引用修改变量的值. int var=100; const &t1=var; /t1是是var的常引用的常引用 var=34; /正确,变量正确,变量var的值可以修改的值可以

18、修改 t1=34; 常引用 只能通过变量的常引用使用变量的值,不只能通过变量的常引用使用变量的值,不能通过变量的常引用修改变量的值能通过变量的常引用修改变量的值. int var=100; const &t1=var; /t1是是var的常引用的常引用 var=34; t1=34; /错误,不能通过常引用修错误,不能通过常引用修改变量改变量var的值的值 v练习声明变量(初始化)、常量、引用练习声明变量(初始化)、常量、引用输入半径计算圆的面积。输入半径计算圆的面积。#includeusing namespace std;const double PI=3.14159;/定义常量定义常

19、量int main() double r,area; /定义变量定义变量r=56.7;area=PI*r*r;coutarea=areaendl;double &rr=r; /声明引用声明引用rr=78.7;area=PI*r*r;coutarea=areaendl;return 0;运行结果:运行结果:area=10099.9area=19458 int y=5+78;运算符运算符运算符和表达式运算符和表达式 运算符分为一元运算符、二元运算符、三运算符分为一元运算符、二元运算符、三元运算符元运算符 表达式是由标识符、数值、函数、运算符表达式是由标识符、数值、函数、运算符按求值规则构成

20、的式子按求值规则构成的式子 运算运算 基本算术运算符基本算术运算符 + - * / (若整数相除,结果取整若整数相除,结果取整) %(取余,操作数为整数)(取余,操作数为整数) 优先级与结合性优先级与结合性先乘除,后加减,同级自左至右先乘除,后加减,同级自左至右Page 57sizeof 运算符运算符 语法形式语法形式sizeof (类型名类型名)或或 sizeof (表达式表达式) 结果值:结果值:“类型名类型名”所指定的类型或所指定的类型或“表达式表达式”的结果类型所的结果类型所占的字节数。占的字节数。 例:例:sizeof(short)sizeof(x) +, -(自增、自减)(自增、自

21、减)+i,-i 前置自增,自减前置自增,自减 等价于等价于 i=i+1,i=i-1 i+,i- 后置自增,自减后置自增,自减 等价于等价于 i=i+1,i=i-1自增和自减运算符的操作数必须是整型变量自增和自减运算符的操作数必须是整型变量 int i=4; couti+endl;/先使用先使用i的值,然后再刷新的值,然后再刷新i cout+iendl;/先刷新先刷新i的值,然后再使用的值,然后再使用i int i=4; couti+endl; cout+iendl;coutiendl;i=i+1; int i=4; couti+endl; cout+iendl;i=i+1;coutiendl;

22、7.8/27%-27/-2int a=6;couta-;cout-a;7.8/2 结果:结果:3.97%-2 结果:结果:37/-2 结果:结果:-3int a=6; 结果:结果:6couta-; 结果结果:6cout-a; 结果:结果:4 举例举例n=x+5 /变量变量x必须有值必须有值 表达式的类型表达式的类型赋值号左边对象的类型赋值号左边对象的类型 表达式的值表达式的值赋值号左边对象被赋值后的值赋值号左边对象被赋值后的值Page 65a=34;b=34;c=34;a=b=c=34;3int x=3;请为保存一个整数请为保存一个整数提供足够的空间提供足够的空间用名称用名称x标记该空间标记该

23、空间,把值把值3存进去存进去67 x=67;请为保存一个整数请为保存一个整数提供足够的空间提供足够的空间用名称用名称x标记该空间标记该空间,把值把值3存进去存进去X=(y=2)+(z=3);y=2;Z=3;X=y+z; 编写程序,计算和显示一年中分钟的数量。编写程序,计算和显示一年中分钟的数量。 #include int main() int secondSum; secondSum=365*24*60; coutsecondSum:secondSumendl; return 0; 关系运算符关系运算符 关系运算是比较简单的一种逻辑运算,关系运算是比较简单的一种逻辑运算,优先次序为:优先次序为

24、: = = != 优先级相同(高)优先级相同(高) 优先级相同(低)优先级相同(低) 关系表达式是一种最简单的逻辑表达式关系表达式是一种最简单的逻辑表达式其结果类型为其结果类型为 bool,值只能为,值只能为 true 或或 false。 例如:例如:ab,c=a+b,x+y=3X= =b错误错误符符 逻辑运算符逻辑运算符 !(非非) &(与与) |(或或)优先次序:优先次序: 高高 低低 逻辑表达式逻辑表达式 例如:例如:(ab)&(xy) 其结果类型为其结果类型为 bool,值只能为,值只能为 true 或或 false7.8=2 x=2 7.6-27.6!=-2 7.6&

25、amp;-2 !7.67.8=2 0 x=2 2 7.6-2 07.6!=-2 1 7.6&-2 1 !7.6 0关系表达式、逻辑表达式,结果关系表达式、逻辑表达式,结果是是true,C系统产生整型系统产生整型1,结果是,结果是false,则产生整型,则产生整型0.短路求值:短路求值: int i=0,j=0; (i=0)&(j=2); /j的值是的值是0 (i=2)|(j=8); /j的值是的值是0 运算规则运算规则 将两个运算量的每一个位进行逻辑将两个运算量的每一个位进行逻辑与与操作操作 举例:计算举例:计算 3 & 53 & 5 3 3: 0 0 0 0

26、0 0 1 10 0 0 0 0 0 1 1 5 5:(&) 0 0 0 0 0 1 0 1(&) 0 0 0 0 0 1 0 13 & 5: 0 0 0 0 0 0 0 13 & 5: 0 0 0 0 0 0 0 1 用途:用途: 将某一位置将某一位置0,其它位不变。例如:,其它位不变。例如:将将 char 型变量型变量 a 的最低位置的最低位置 0: a = a & 0376; 取指定位。取指定位。例如:有例如:有 char c; int a; 取出取出 a 的低字节,置于的低字节,置于 c 中:中:c = a & 0377; 运算规则运算规

27、则 将两个运算量的每一个位进行逻辑将两个运算量的每一个位进行逻辑或或操作操作 举例:计算举例:计算 3 | 53 | 5 3 3: 0 0 0 0 0 0 1 10 0 0 0 0 0 1 1 5 5:(|) 0 0 0 0 0 1 0 1(|) 0 0 0 0 0 1 0 13 | 5: 0 0 0 0 0 1 1 13 | 5: 0 0 0 0 0 1 1 1 用途:用途: 将某些位置将某些位置1,其它位不变。,其它位不变。例如:将例如:将 int 型变量型变量 a 的低字节置的低字节置 1 : a = a | 0 xff; 运算规则运算规则两个操作数进行异或:两个操作数进行异或:若对应若

28、对应位位相同相同,则结果该位为,则结果该位为 0 0,若对应位若对应位不同不同,则结果该位为,则结果该位为 1 1, 举例:计算举例:计算 071052071052 071: 071: 0 0 1 1 1 0 0 10 0 1 1 1 0 0 1 052 052: () 0 0 1 0 1 0 1 0() 0 0 1 0 1 0 1 0 071052 : 071052 : 0 0 0 1 0 0 1 10 0 0 1 0 0 1 1单目运算符,对一个二进制数按位取反。单目运算符,对一个二进制数按位取反。例:例: 025025:00000000000101010000000000010101 0

29、25 025:11111111111010101111111111101010 左移运算(左移运算()右移后,低位:舍弃右移后,低位:舍弃 高位:无符号数:补高位:无符号数:补0 有符号数:补有符号数:补“符号位符号位” -2|3(占一个字节) -2的补码:11111110 3的补码: 00000011 位或: 1 1 1 1 1 1 1 0 | 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1结果:结果:-17&27|-2-7-272 -72 1 -72 -28 7 -8 格式格式表达式表达式1,表达式,表达式2 求解顺序及结果求解顺序及结果先求解先求解1,再求解,再求

30、解2,最终结果为表达式,最终结果为表达式2的值的值 例例a=3*5 , a*4 最终结果为最终结果为60Page 84当不同类型数据进行混合运算时,编译器会自动进行类型转换。当不同类型数据进行混合运算时,编译器会自动进行类型转换。-语法格式:语法格式:类型说明符类型说明符(表达式表达式) 或或 (类型说明符类型说明符)表达式表达式 例如:例如:float c;int a,b;c=float(a)/float(b); 或或 c= (float)a/(float)b; void main( ) float x1=2.25,x2=2.2; double y1,y2; y1=(double)x1; cout.precision(20); coutx1=x1 y1=y1endl; y2=(double)x2; coutx2=x2 y2=y2endl;void main( ) float x1=2.25,x2=2.2; double y1,y2; y1=(double)x1; cout.precision(20); coutx1=x1 y1=y1endl; y2=(double)x2; coutx2=x2 y2=y2endl;void main( ) float x1=2.25,x

温馨提示

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

评论

0/150

提交评论