版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一部分 C+结构化程序设计,第一章 C+程序设计基础,本章课件制作:汪大菊,本章内容, C+语言概述 计算机中的数据与编码 C+程序开发过程 C+程序实例 基本数据类型 常量、变量及引用 运算符与表达式 typedef的使用 基本输入/输出,1.1 C+语言概述,1. C+语言与程序设计,语言: 人类交流思想的工具 程序设计:就是将解决某个问题的过程用程序设计语言描 述出来,计算机按这个描述去逐步实现。 程序设计语言:编写程序的语言。 与+语言 +,2. 程序设计语言分为,结构化程序设计语言(第14章) 面向对象程序设计语言(第58章),解数学问题,接近人的思维模式,Windows给软件编程
2、带来的优缺点,32位操作系统 内存的管理特点 软件与硬件的分离,本教程的一个缺点:没有介绍操作系统原理 好多DOS的观点,1.2 C程序开发过程:,为什么要装入,1.3 程序实例,例1: 在屏幕输出Hello,you are welcome!,/* Hello program */ #include void main() coutHello,you are welcome!; /你好,欢迎你! ,程序说明: 两种注释 为什么要注释? 编译预处理行 main( )函数: void、函数体、程序执行处 语句:一行可以写若干条语句,每个语句用“;”作为结束。,例2:编写程序从键盘任意输入2个数,输
3、出这2个数的和。,#include void main() int a,b,n; cout ab; n=a+b; couta+b=nendl; ,程序说明: 第行为变量定义 第4行是输出语句 第行输入 第行是赋值运算 第行中endl也可以用“”代替,表示换行。,输入: 123 456 ,例3: 由两个函数组成的+程序,#include int fmax(int a, int b) if(ab) return a; else return b; main( ) int v1, v2; coutv1v2; cout“两个数中较大数是:”fmax(v1, v2)endl; return 0; ,1.
4、4 基本数据类型,程序中处理的数据分为不同的类型。类型不同,存储方式 和使用的场合也不同。,数组类型 结构类型(struct) 联合类型(union) 枚举类型(enum) 类类型 (class),基本数据类型:+系统已定义的类型。可以直接利用这些 类型名来定义数据。,类型名 说明 字节 取值范围 bool 布尔型 1 true,false signed char 有符号字符型 1 -128+127 unsigned char 无符号字符型 1 255 signed short int 有符号短整型 2 -3276832767 unsigned short int 无符号短整型 2 65535
5、 signed int 有符号整型 4 -2147483648+2147483647 unsigned int 无符号整型 4 04294967295 signedlong int 长整型 4 -2147483648+2147483647 unsigned long int 无符号长整型 4 4294967275) float 浮点型 4 (3.410-383.410+38 ) double 双浮点型 8 (1.710-3081.710+308 ) long double 长双浮点型 10 ( 1.210-49321.210+4932 ),short long DOS C 遗留,.5 常量、变
6、量及引用,.5. 常量 程序中可以直接使用的常数称为常量 int a; a=3; 常量分为: 整型 浮点型 字符型 字符串常量 布尔常量,1)整型常量 十进制整数: 由数字组成的正负整数,如、15、247。 八进制整数: 以数字开头的整数,由数字组成,如015,0237。 十六进制整数: 以0 x或0X开头的整数,由数字和字母(或大 写)组成。例如:0 x516,0 x8AB,0 xb2ff。 八进制和十六进制只能表示无符号整数. 任一整型常数后跟字母(或)时,为长整型.如:12345L 任一整型常数后跟字母(或)时,为无符号整型.如:7895,浮点型数由整数部分和小数部分组成。 浮点型常数有
7、两种形式: 小数形式:3.14159,0.55,123.0。 指数形式:+5.25e-8 0.567805、 其中:+5.25e-8 表示 +5.2510-8 0.5678+05 表示 0.5678105,)浮点型常量(又称实型),指数形式表示浮点型数时e(或E)前可以是整数或小数,但后的指数部 分必须是整型数。 浮点型数总是按double类型存储的,只有在数的后面加上才按float类 型存储,如1.234E-6f。 长双精度(long double)型常量通常在双精度数后面加上l或L表示,如 1.2345e-12L。,说明:,) 字符型常量,字符型常量是用单引号括起来的单个字符 例如: A、
8、S、*、 、 n,说明:,字符型常量中的单引号作为定界符,不是字符型常量内容。 字符型常量具有数值,其值就是该字符的ASCII码值。而且值可以作为 整数参与运算: 如 +5 结果为字符 如 9 - 6 结果为数字字符 如 A+32 结果为 结果为整数。 可以是ASCII字符集中任意可打印字符,包括空格. 转义字符(见表-3 ),) 字符串常量,用双引号括起来的一串字符。 例如:This is a string ABCxyzn 1234 中国_天津,说明:,字符串中可以包含空格、转义字符、中文字符等。 双引号作为字符串的定界符,计算字符串长度时双引号不计算在内。 编译程序在存储字符串常量时自动在
9、字符串最后加一个0作为一个字 符串的结束标志,0占一个字节位置。 一个字符占一个字节,一个汉字占两个字节。 在程序设计中字符串通常用字符数组或字符指针存放。,字符串常量等价于首地址,) 布尔常量 布尔常量仅有两个值,即true(真)和false(假)。,6) 符号常量,为常量起一个名字,称为符号常量。 符号常量在使用前必须进行说明。符号常量的说明形式为: const 数据类型名 常量名常量值; 或数据类型名 const 常量名常量值; 例如: const int m=100; const float pi=3.14159;,说明:,符号常量在说明时一定要赋初值,其值程序中不能修改。 符号常量名
10、不要和一般变量名重名。 使用符号常量可以提高程序的可读性,增强程序的可维护性。,1.5. 变量,1) 标识符 用来为变量、符号常量、数组、函数、类型等命名。 强调变量对应于内存中的一段空间 命名标识符有以下规则: 必须由字母、下画线和数字组成 第个字符应是字母或下画线字符 例如:a、x1、data_5、count等为合法的标识符 标识符的长度视具体的编译系统而定。 不能使用+的关键字作为标识符,例如:int、for等 +中变量名区分大小写,因此ex1和 EX是两个不同 的变量名,2)变量 在程序中可以改变值的量称为变量。,每个变量在内存中占有一定的存储单元,该存储单元中存 放变量的值。在程序设
11、计中可以根据需要改变变量的值。 每个存储单元都有一个地址。,12.345,变量名,X1,变量值,存储单元,3) 定义变量 程序中的变量名在使用之前必须定义。,例如: char a,b,c; /定义、为字符型变量 int ,y; /定义、为整型变量 long int s1,s2; /定义s1、s2为长整型变量 float data_1, data_2; /定义data1_1、 data_2为浮点型变量 double w1,w2 /定义w1、w2为双精度型变量 unsigned , n; /定义、n为无符号整型变量,原因是使用前要得到内存,4)变量的初始化 变量在定义的同时可以给其赋值。,例如:
12、char A; int =0,=12 ; double w1=12.3456, w2= -0.4567e-4; char ch(B); long int x1(1),y1(100); double data1(12.056), data2( -0.12345e-4);,程序举例:,#include void main( ) int d1=5, d2=20; double x1=12.5, x2=-5.0; char ch1(*), ch2(A); coutd1+d2endl; coutx1-x2endl; coutch1“ “ch2+3endl; ,25 17.5 * D,运行结果:,.5.3
13、 引用 程序中定义过的变量名再给它另一个名字,这个名字称为引用(reference)。,说明引用的形式为: 数据类型 引用名变量名; 或 数据类型 引用名(变量名); 其中:变量名是已经定义过的一个变量名; “”是说明引用的符号; 数据类型是被引用变量名的类型。 例如: int a; int ,变量名和引用名是对同一个存储单元的操作,注意:,问;为什不是整型变量定义,程序举例:,#include void main() int a(5); int ,输出结果: 5 10 10,存储单元示意:,1.5.4 枚举类型,将一些可能取值的量一一列举出来,称为枚举类型。,说明枚举类型的形式为: enum
14、 枚举类型名枚举元素; 其中:enum是用于说明枚举类型的关键字。 每个枚举元素就是枚举常量值。 例如: enumcolourred,yellow,blue,white,black;,定义枚举型变量形式: enum colourred,yellow,blue,white,blackc1,c2; 或 enum colourm1,m2;,枚举型使用说明:,1)枚举元素在说明后都自动有一个整数值。 例如:colour中,red的值为,yellow的值为, black的值为。 可以在说明枚举类型时另指定一个整数值,指定元素后边的 各元素值按增的顺序重新排列,而没有指定的元素值仍按 系统自动给定的值。
15、例如:enumd east,west,south10,north; south的值10,north的值为11,east的值为,west值为。 2)仅能给枚举变量赋枚举元素值。 3)枚举变量可以进行增或减,可以进行比较运算。 4)枚举变量不能用于输入,输出时仅输出枚举值的顺序号。,.6 运算符与表达式,表达式由操作数和运算符组成 操作数: 常量、变量及函数调用。 运算符: 对操作数进行的运算和处理。,+的表达式既可以单独作为语句使用,也可 以在其他语句中作为测试的条件以及调用函数 的参数使用。 +提供了丰富的运算符。以下分别介绍。,1.7.1 算术运算符与算术表达式,算术运算符包括: (加) (
16、减) * (乘) (除) (取余),使用规则:,、*、与一般数学运算相同,其中“”可作一元运算符使用, 表示取负。 优先级为: 先 *、,后、 。 两个整型数相除,取商的整数部分。例如:8/5 结果为,5/8结果为。 两实型数相除,结果为实型数,例如: 8.05.0结果为1.6。 用于求两个整数相除的余数,例如:5 为,而105 为0 。 参加运算的两个操作数的类型不同时,按由低到高规则转换后计算。,int a=10, b=4; double x=1.5; char c1=A; long w=12345; 表达式 1: (a+b)*x-w/c1 表达式 2: a*x-b*x+w/15+(c1+
17、4),算术表达式举例:, 表达式1和表达式2的计算过程及最后类型。,讨论:,1.7.2 位操作运算符 用于对二进制数值的位进行运算,位操作运算符分为逻辑位操作运算符和移位运算符: 逻辑位操作运算符: 按位“与”,两操作数逐位求“与” 按位“或”,两操作数逐位求“或” 按位“异或”,两操作数逐位相加不进位 求反,一元运算符,将操作数逐位取反 移位运算符: 二进制左移,将操作数左移指定位数 二进制右移,将操作数右移指定位数,低级语言的特点,不讲,使用规则:,参加位操作的操作数必须是整型常数或整型变量。 逻辑位操作运算符的使用形式为: 操作数 操作数 操作数 操作数 操作数 操作数 操作数 移位运算
18、符的使用形式为: 操作数操作数 将操作数左移操作数指定的位数 操作数操作数 将操作数右移操作数指定的位数,例如: int a=15, b=125 ; 0000 1111 0111 1101 a /b左移2位 500,1.6. 赋值运算符与赋值表达式,1)简单赋值运算符,形式为: 变量操作数 其中:操作数可以是常量、变量和C+任意合法的表达式. 例如: int a(15) ; double data,s; data=-8.1245; /将-8.1245存入data变量 s=a*50+data/3; /将表达式a*50+data/3结果存入,赋值号“” 左边必须是变量。 赋值表达式的值和类型为“”
19、号左边变量的值和类型。,说明:,赋值是写内存,2)复合赋值运算符,将算术运算和赋值放在一起的缩写形式,包括: * 例如: a; 相当于 a=a+b; ab ; 相当于 a=a+b; a* ; 相当于 a=a*b; a; 相当于 a=a/b; a; 相当于 a=a%b;,使用说明:,由于有存储功能,复合赋值运算符左边必须是变量名。以下是错误的: a+=b+=c+d=12; 当复合赋值运算的右边是表达式时,将表达式视为一个整体,例如 -=x+y ;相当于:=-(+y),C+d不对,1.6.4 自增和自减运算符,自增自减运算符有如下4种形式: +i 前置自增,将的值先加,再使用的值。 i+ 后置自增
20、,先使用的值, 然后的值加。 -i 前置自减,将的值先减,再使用的值。 i- 后置自减,先使用的值, 然后的值减。,使用说明:,因为有加减和赋值的功能,运算对象必须是变量,不能是常数或表达式。 单独作为一个语句使用时,前置增(减)或后置增(减)是一样的, 但若和其他运算符组合使用,采用前置或后置就会产生不同的结果。 运算符+(或- -)是一个整体,使用时两个+(或)之间不要有空。 +(或- -)运算符是单目运算符.,自增自减运算符举例:,#include void main( ) int a(2), b(2), d1, d2; a+; b-; cout“a=“a“b=“bendl; d1=+a
21、; cout“a=”a“d1=“d1endl; d2=b-; cout“b=“b“d2=“d2endl; ,a=3 b=1 a=4 d1=4 b=0 d2=1,输出结果:,1.6.5 关系运算符与关系表达式,关系运算符用于比较两个数的大小,共有个运算符: 小于 小于等于 大于 大于等于 等于 ! 不等于,使用说明:,关系表达式的值是整数值0和1,当关系式成立时为1;否则为0 。 关系运算符两边操作数可以是整型、浮点型、字符型、指针及枚举型 。 关系运算符可以在一个关系式中连续使用,但若用 -1=式判断 是否在-,1区间,则是错误的。 注意区别“”和“”。 注意=和!=运算符的优先级比其它关系运
22、算符低。,关系运算符使用举例:,输出结果为:,#include void main() int a5, b6; coutb:b)n; couta=b:(a=b)n; couta= =b:(a=b)n; couta!=b:(a!=b)n; ,: : : !:,1.6.6 逻辑运算符与逻辑表达式,逻辑运算符用于对操作数进行逻辑操作。逻辑运算符是: a=1; b=2; c=0; couta+-1endl; cout(a , 0 -1 -1 ,输出结果为:,短路的作用,1.6.7 其它运算符,1) 条件运算符与条件表达式 条件运算符是三元运算符,形式为: 1?2:3 其中: 1一般为关系或逻辑式; 2
23、和3为任意表达式。,?+:x-y;,功能:,条件表达式举例:,2) 逗号运算符与逗号表达式,逗号表达式: 用逗号“,”将几个表达式隔开的式子。 逗号表达式的形式为: e1,e2,en 作用:从左到右计算各表达式值,并以最后一个表 达式的值作为逗号表达式的值。 ,=(a=1,=3,+,a+b);,逗号表达式举例:,注:任何一表达式都有值,3) 求字节运算符,求字节运算符是个一元运算符,形式为: sizeof() 其中:可以是任意类型的变量、类型名或表达式。 作用:求在内存中占用的字节数。 例如:,int a,b,i ; double ; =sizeof(); =sizeof(float); =s
24、izeof(*x)+ 100;,4) 类型转换符,利用类型转换符强制转换成所需要的类型。使用格式是: (类型名)表达式 或 类型名 (表达式) 作用: 将“表达式”的值转换成“类型名”所指定的类型。 例如:int a,b; double x(10.5),y(3.8); a=int(+)-10; b=(int)x+y-10;,整数转换为字符型,则去掉多余的高位; 长整型转换为一般整型时,去掉多余高位; 浮点型转换成整型时,去掉小数部分; 双精度型转换成单精度时,按单精度型位数舍入。 转换后数据的精度受到影响。,转换原则:,1.6.8 运算符的优先级和结合性,优先级: 不同操作符之间进行操作的先后
25、顺序。 几种不同的运算符出现在一个表达式中时,优先级别 高的先计算,优先级别低的后计算。 算术运算 关系运算 逻辑运算 结合性: 当连续几个相同级别的运算符进行计算时,有的是由左到右逐个运算,有的是由右到左逐个运算。,单击见表 4,1.7 基本输入/输出,输入输出又称I/O(Input/Output)操作。 输入: 指在程序运行时由输入设备(常指键盘)向程序提 供数据; 输出:是指将程序的运行结果在输出设备(常指显示器) 上显示。,输入,输出,1)cin的使用形式: cin变量1 变量2变量n ; 使用cin一次可以输入多个值。 可以输入任何基本类型的数据。 用空格、制表符或回车作为输入的两个
26、数据之间的分隔。 例如: int a,b,c; double x1,y1; cinabc; cinx1x2;,输入、输出流对象:cin cout,基于类和对象的概念,2)cout的使用形式: coute1e2en ; 其中:每个ei可以是: 常量、变量、表达式、字符串、函数调用等。 当是表达式时,输出表达式结果的值; 若是函数调用,则输出函数调用后的结果; 当是字符串时,将字符串原样输出。 例如: int 10; cout3.14159 ; coutn= endl;,使用cin和cout在程序开始处要写入预编译命令: #include ,注 意:,输入输出格式: 默认格式输出: 输出一个整型数
27、或字符时,原样输出值; 输出一个float double型数时,默认6位有效数 字。,#include void main( ) int a=123; long int b=1234567; float x1=12.34, x2=23.456789; double y=12.34567890123; cout”a=”an”b=”bendl; cout”x1=”x1” “”x2=”x2endl; cout”y=yendl; ,默认格式输出举例:,a=123 b=1234567 x1=12.34 x2=23.4568 y=12.3457,输出结果:,在输入输出流中使用控制符,+提供控制符控制输出数
28、据的格式。常用的几个控制符: dec 转换为十进制数输入输出 hex 转换为十六进制数输入输出 oct 转换为八进制数输入输出 setw (int) 设置输出的宽度 setprecision (int) 设置浮点数输出的有效数字位数 setfill (char) 设置填充字符 endl 插入换行符,使用以上格式控制符时,要加上头文件: #include ,注意:,输出结果:,使用格式控制符举例:,#include #include void main( ) int x=24; double y=12.3456789; coutdecx ; couthexx ; coutoctxn; coutdec; /以下仍按十进制输出 coutsetw(8)x,xendl; coutsetw(8)setfill(*)xendl; coutsetprecision(5)yendl; ,24 18 30 24,24 *24 12.346,#include void main() int a=-5,b=10; float x=1.75, y=2.34e-03; couta=a” “b=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 边坡防护课程设计
- ps毕业课程设计作业
- 视频理解系统大模型开发课程设计
- c语言课程设计与答案
- 应急车道施工方案(3篇)
- 产品任选活动策划方案(3篇)
- 地基施工方案详解(3篇)
- 文化杯活动方案策划(3篇)
- 施工方案-编制-审批(3篇)
- 渠道钻孔施工方案(3篇)
- 物业工程主管岗位面试问题及答案
- 军人俱乐部管理办法
- 【课件】数列探究课+斐波那契数列与黄金分割比+课件-2024-2025学年高二上学期数学人教A版(2019)选择性必修第二册
- 乡镇财务报账管理办法
- 北京中学转学管理办法
- 小学生良好纪律的养成教育主题班会
- 食堂承包管理难点及解决措施
- 中国大模型落地应用研究报告2025
- AI翻译技术在跨境电商服饰产品描述中的创新应用
- 大桥连续刚构桥实施性施工组织设计
- 《当前保密工作面临的新形势、新任务》课件
评论
0/150
提交评论