版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,授课:朱怀忠 , Copyright HEBUT. All rights reserved,C+ Programming,2012 河北工业大学计算机基础课程系列,前言,上次课程内容回顾,了解了计算机语言的发展历史及 C+ 语言的特色 通过几个实例了解了 VC6 下 VC 编程的一般步骤 了解了C+程序的一般框架及书写规则 关键词: 机器语言、汇编语言、高级语言、汇编、编译、链接、项目、工作区、头文件、包含、函数、注释。 OOP、Debug、Project、Workspace、.cpp、.h、#include、main、/、/* */、 。,前言,本次课程内容,C+ 中语法符号的书写和使用规
2、则 C+ 中常用的数据类型及特点 C+ 中常量和变量的定义和使用 C+ 中运算符及表达式的书写和使用,课外知识,#include 常见的的两种写法,#include 这种用法继承自C的标准,使用的是旧的C+库,不建议使用,但因为早期的VC6对标准库支持的并不好,所以大部分C+基础的教材仍然在保留这种写法。 #include using namespace std; 使用的是新的C+标准库(STL),改进和扩充了很多的功能,同时引入了命名空间 (namespace) 来避免命名冲突的问题,是比较标准的用法。,C+ 中的词法符号,字符集 (Charset),每种程序设计语言都使用一些特定的字符来构
3、造基本词法单位,这些字符构成的集合就叫做字符集。 C+ 语句中除“字符串内容”及注释之外只允许使用下列符号来构造C代码。 26个小写字母 (az)、26个大写字母 (AZ) 10个数字 (09) 其他符号:+ - * / = |? %,( ):;.!“_# 会得到结果 113 注意 0 和 0 以及 0 是不同的,0是数值,内存中也是 0,0 是字符,内存中存储的是其ascii码 0 x30,而 0 是转义字符,代表空字符,通常作为字符串的结尾标记。,常量与变量,字符串常量,由双引号括起来的若干字符称为字符串常量,字符串在内存中是依据每个字符的ascii码依次存放的,末尾以 0 作为字符串结束
4、标记。 例:”test”、”中文”、”中english“、”(空字符串)、”12$#” 字符串长度不包括末尾自动添加的0,比如 “test” 长度为 4 字符串中可以使用转义字符 例:“1st linen2nd line”、”Its me”、”Its me”、”me” 注意:a和”a”的区别,常量与变量,符号常量,当程序中需要多次引用同一个值时,可以给其定义一个名字以方便引用、理解和修改,称为符号常量。 定义语句: const datetype constname = value; value可以为直接的值或者常数表达式 例:const double PI = 3.14; 例:const do
5、uble WM_MSG = WM_USER +1; (WM_USER也需为常量) 常量定义时必须给其指定值 下例代码是错误的: const double PI; PI=3.14;,常量与变量,符号常量的应用,#include void main() double r,s,a; coutr; s=2*r*3.14; a=r*r*3.14; couts=sendl; coutarea=aendl; ,#include const double PI=3.14; void main() double r,s,a; coutr; s=2*r*PI; a=r*r*PI; couts=sendl; cou
6、tarea=aendl; ,1,使用符号常量,增强可读性; 2,修改时,只需要修改一处即可。,常量和变量,内存编址与变量,变量用来存储经常改变的数据 实质是给内存单元定义的名称,内存,内存地址,存储的数据,short int x,char y,char5 str,常量与变量,变量的定义,所有变量,必须先定义后使用 格式: datetype varlist; int x, y , z; /同时定义了3个整型变量 char t; /定义字符型变量t double f, m; /定义了两个double型变量 int x;int y;int z; /同一,但写起来繁琐,可读性差,常量与变量,变量的赋值
7、,变量定义后值为随机值,所以必须给其赋初值,否则会引起不可预知的结果。 使用 “=”赋值,等号右侧值赋予左侧变量 x=3; c=a;y=0 x12f; 可以在定义时同时赋予初值 int x=3,y=5; char c=a; char cc=; = 注意事项: 不是常规意义上的等于,C+ 使用 “=” 代表等于 方向性,右侧赋予左侧,左侧只能是变量 x+y=z 是错误的 赋值过程会擦除原值 x=2;x=3; 结果会是3 常用 i=i+1; 这种方式实现自增1,类似的 i=i-1; 递减1,常量及变量,变量定义及使用注意事项,变量必须先定义,后使用 对一个变量不能重复定义 int a,b, c;
8、double x,y, c; /error,不能重复定义变量c 变量声明的顺序无关紧要 int x, y ,z; 与 int y, x, z; 等价 一条声明语句可声明若干个同类型的变量,不同类型变量的声明必须使用多个语句。 int x , double y; /error,第一部分内容结束,运算符与表达式,表达式 (Expression),表达式是由操作数、运算符以及圆括号组合而成的式子 操作数可以是:常量、变量、函数或其他表达式 运算符用于说明运算的含义,包含算数运算符、关系运算符、逻辑运算符等 运算符有目数、优先级和结合性 圆括号用于改变运算的次序,同时使表达式更容易理解,C+中括号只有
9、圆(小)括号,可嵌套并使用多次。 例: A+32+7.23*6/3-(4+y) / (2-x) x=+y; (x=5 ) a=5/2; 结果为2 取余运算也称求模运算,结果为两数相除后的余数,符号和被除数的符号相同。要求 % 两侧操作数必须为整数,否则会引起编译错误。2%5为2、10 % 3 为 1、 -10 % 3为 -1 字符型数据由于存储的是ascii值,所以可以直接参与算运算 char c=a; x=100+c; x值为 197,运算符与表达式,常用数学函数,对于常用的数学操作,C+库里提供了很多函数可以直接调用 #include ,注意算术表达式里不能出现数学里的 上标、下标及分式,
10、而应使用函数,运算符与表达式,算术表达式举例,式子 c+表达式,(a+b)/(c-d),a*a*a,sinx,sin(x),sqrt(g),cosx,cos(x),exp(x),算术表达式举例,运算符与表达式,赋值运算符和赋值表达式,赋值运算符为等号 = ,优先级仅高于逗号,基本上是常见表达式里最后的运算,即把右侧的结果赋予左侧的变量。 左侧只能是变量 右侧运算完毕后,按照左侧变量类型转换结果,然后赋值 int x;x=3.5; 此时 x=3、int x;x=3.2/5; 此时 x=0 赋值运算符具备右结合性,即同一个表达式可以有多个赋值运算,赋值从右至左依次进行,一般很少用。 double
11、a,b; b=a=2.4+3.8; a和b均为 6.2,运算符与表达式,复合赋值运算,算术运算符和赋值运算符结合:+=、-=、*=、/=、%= a+=1; 等同于 a=a+1; a*=b; 等同于 a=a*b; a %= b+2; 等同于 a= a%(b+2),运算符与表达式,复合运算举例,写出下面程序运行结果 #include /* a.f.saf */ void main() int a,b,c,d,e=7; a=b=1; c=5; d=a=a+1; d*=a+b; /等价于d=d*(a+b) e%=c-b;/等价于e=e%(c-b) coutat btctdte; int a=2; 则
12、a+=a-=a*=a 会是 ?,运行结果为: 2 1 5 6 3,运算符与表达式,自增自减运算,运算符: + 和 - ,单目运算,要求前或者后必须是变量 规则: i+ 先取值,后自加,等价于:i=i+1 +i 先自加,后取值,等价于:i=i+1 -i 先自减,后取值,等价于:i=i-1 i- 先取值,后自减,等价于:i=i-1 + - 不仅影响操作数的值,通常这类表达式结果还要赋予其他变量 例: j=i+; 或者 j=+i;,运算符与表达式,i+与+i的区别举例,程序段1: #include void main() int i=1,j; j=i+; couti“t”j; ,结果:,2 2,程序
13、段2: #include void main() int i=1,j; j=+i ; couti“t”j; ,2 1,结果:,运算符与表达式,逗号运算符,表达式1,表达式2,表达式3,表达式 从第一个开始(左),依次计算每个表达式的值,最后(右)一个表达式的值即为逗号表达式的值。 例: a=1,b=a+2,c=b+3 的值为: 6 为了将逗号表达式的值赋给变量,必须加圆括号 例: int a,b,c,d; d=(a=1,b=a+2,c=b+3); coutdendl; / 结果:d=6,运算符与表达式,类型转换 (Type Conversion),什么时候需要类型转换? 双目运算符需要两侧操作
14、数类型相同,如果不同,则需要进行转换 表达式计算结果和赋值给的变量类型不同,此时也需要转换 如何转换? 自动类型转换 强制类型转换 转换原则: 尽量不丢失数据 尽量保证足够的精度,运算符与表达式,自动类型转换,不同种数据类型的运算结果,自动转换为两种类型中取值范围更大、精度更高的那种 long double double float long int short char 例: cout 5/6.2; 把数据赋值给另外一种类型变量也会发生自动类型转换 从小到大,顺利转换: double x = 100; 从大到小,可能丢失信息(部分编译器会发出警告) : float y = 2.565; 或:
15、 int x = 2.5;,运算符与表达式,强制类型转换,可以通过在变量左侧加入类型定义标识符的形式强制进行转换 (类型名)操作数 或 类型名(操作数) 操作数:可以是常量、变量、函数、表达式。若为表达式,则要用括号将表达式括起来 例: (long)2 (int)4.8 (double)5/3 (double)(5/3),1.000000,1.666667,2L,4,运算符与表达式,强制类型转换,类型转换不会改变原有变量的类型 举例: #include void main() double x=5.6, y =2.2; int i; i=int (x) % (int)y; cout“i=“i“
16、nx=“x“n”“y=“y; double x=5.6,y=7.8,z; z=int(x+y); / z 为 13,结果 i=1 x=5.6 y=2.2,第二部分内容结束,附加内容,基本输入输出,C+ 中使用 cout 代表输出设备,默认为屏幕,使用 cin 代表输入设备,默认为键盘 变量1 变量2 变量3 例: cin x y z ; cout 用法如下,用于输出常量、变量、表达式的值到屏幕 cout 输出1 输出2 输出3 输出既可以是常量比如字符串,也可以是变量还可以是表达式 endl 代表换行,也可以使用 n 例: cout x y z endl; cout “x值为:” xendl;,附加内容,输入输出举例,/年龄计算 #include void main() int birthdate,age; cout birthdate; ag
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业元宇宙太赫兹通信协议研究
- 2025年工业余热供暖项目碳中和设计
- 集团人力资源管控方案
- 一年级下册修辞标点专项训练
- 2026年广东惠州市初中学业第一次质量检测化学试题
- 昏迷促醒护理的护理评估工具
- 洗面护理的环境影响
- 13.2 宇宙的边疆(教学课件)-高中语文人教统编版选择性必修下册
- 气管吸痰护理的教学方法
- 智慧护理:新技术应用前景
- 2026年公务乘车座次礼仪与司机沟通规范问答
- 2026年北京市西城区高三二模英语试卷(含答案)
- 2026重庆璧山文化旅游产业有限公司面向社会招聘5人备考题库及答案详解(各地真题)
- 济宁市2026届省属公费师范毕业生就业岗位需求备考题库(112个)含答案详解(能力提升)
- GB/T 24573-2009金库和档案室门耐火性能试验方法
- GB/T 24283-2018蜂胶
- 餐饮安全管理规章制度
- 教练型领导力360°全方位目标管理之九点领导力课件
- 环通危险货物集装箱永久查验堆存场地及配套仓库项目环境风险评价报告
- 龙门吊安装技术交底
- DB11T 1620-2019 建筑消防设施维修保养规程
评论
0/150
提交评论