版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C程序设计语言,信息工程学院,2,课程介绍,课时:64学时,34授课,30上机 主要内容 C+语言基础(变量、运算、函数、控制结构、数组、字符串处理) 面向对象基础概念(类、对象、构造与析构) 面向对象进阶应用(继承、多态、运算符重载) 内存管理(指针、引用、动态内存管理) 模板、异常处理等高级话题,3,课程考核,期末考试 闭卷考试,占总成绩70% 平时上机与考勤 结合课程进度,安排上机作业 占总成绩30,第01章C+程序概述,5,本章内容安排,C+简介 编译及开发环境 创建第一个程序 程序结构分析 变量 常量,6,C+的历史,1979年,丹麦计算机科学家Bjarne Stroustrop着手
2、改进C语言,将其作品命名为C,7,C+的历史,几十年来,C+一直占据着世界顶级编程语言的宝座,许多编程语言如流星般闪过。针对PC机、智能手机和MP3等嵌入式设备,以及其它众多计算机环境,C+语言始终是不错的选择。 C+是一种可移植语言。 C+的标准不断更新 目前使用的是ANSI/ISO C+(ISO/IEC 1482:2003),2003年发布 下一个标准为C+11,2011年10月发布,8,本章内容安排,C+简介 编译及开发环境 创建第一个程序 程序结构分析 变量 常量,9,创建C+程序的过程,使用文本编辑器创建源代码,源代码的扩展名可以使用.cpp、.cxx、.cp或.c,通常为.cpp;
3、 使用编译器将源代码转换为目标代码; 使用链接器链接目标文件和必要的库,生成可执行文件; 执行可执行文件,尽量将源代码文件扩展名统一为.cpp,某些编译器将.c 文件视为C代码,而将.cpp文件视为C+代码。 源代码必须以ASCII码文本格式保存,10,创建C+程序的过程,11,选择编译器,Linux/Unix环境 G+等 Windows环境 G+(需要安装MinGW系统,参见教材) Microsoft C+ Dev-C+(开源,内核为G,12,集成开发环境,集成开发环境提供完整的源代码创建、编译、链接、运行程序、调试等功能 常用的集成开发环境 Microsoft Visual C+ 6.0:
4、与现有C+标准有少量的不兼容 Microsoft Studio 2010:支持现有的C+标准较好 Devc-C+:开源,13,VC环境:创建工程,14,VC环境:创建工程,指定工程路径和名称,15,VC环境:创建工程,16,VC环境:创建工程,17,VC环境:建立源程序文件,18,VC环境:建立源程序文件,19,VC环境:编辑源程序,20,VC环境:编译程序,21,本章内容安排,C+简介 编译及开发环境 创建第一个程序 程序结构分析 变量 常量,22,Hello World程序,include int main() std:cout “Hello World!n”; return 0;,23,
5、本章内容安排,C+简介 编译及开发环境 创建第一个程序 程序结构分析 变量 常量,24,1、预处理器编译指令,include int main() std:cout “Hello World!n”; return 0;,以#开头的是预处理器编译指令。 预处理器在编译之前解析代码,根据预编译指令修改代码。 #include:将指定的文件插入到当前位置处。 C+提供标准源代码库,iostream中的代码支持输入输出任务。 老的编译器使用#include,25,2、main函数,include int main() std:cout “Hello World!n”; return 0;,函数和类是C
6、+源代码中的基本构成单元。 每个程序中都必须并且只能包含一个名为main的函数,函数 的语句都包含在 内。 程序运行时自动调用main函数,main函数运行结束后整个 程序也就结束了。 main函数总是返回一个整数值,26,3、std:cout输出信息,include int main() std:cout “Hello World!n”; return 0;,cout用于在屏幕上输出信息,std:cout限定了调用的C+ 标准输入输出库中的cout。 使用cout,必须通过#include 包含说明信息。 “”引起来的内容为字符串,通过cout的运算可以向屏幕 输出一行字符。 n:表示换行符
7、,让后面的输出从下一行开始。 与cout对应,cin用于从键盘输入数据,27,4、main函数返回值,include int main() std:cout “Hello World!n”; return 0;,C+中的语句以;号结束。 return语句使得函数向调用者返回结果。 main函数向操作系统返回结果,若返回整数0,表示程序 成功运行,返回其它数字表示出现故障,28,5、注释,* This is my first c+ programm. This is a sample of multi-line comment. */ #include /包含输入输出库 int main() s
8、td:cout “Hello World!n”; return 0;,为代码编写注释是一种良好习惯,编译器忽略注释内容。 /开始的是单行注释,注释至行尾。 多行注释从/*开始,以*/结束。 注释的内容是任意的,但多行注释不允许嵌套,29,本章内容安排,C+简介 编译及开发环境 创建第一个程序 程序结构分析 变量 常量,30,1、变量的概念,可将计算机内存视为一系列文件架,按照顺序为每个文件架编号,编号相当于内存地址。 计算机为数据分配若干个文件架,为便与引用,为其指定名称,称为变量。名称要符合命名规则,还要通过名称描述其用途,31,内存中存储变量,数据类型 需要创建变量时,必须将变量的名称和存
9、储的信息类型(整数、字符或浮点数)告诉编译器,以决定分配给该变量的内存数量(文件架数量) 常见数据类型 短整型(short):通常占用2个字节 长整型(long):通常占4个字节 整型(int):2个或4个字节 长长整型(long long):8字节 字符型(char):通常1个字节 布尔值型(bool):通常1个字节,只能取值false或true,常见数据类型的长度并不适用于所有系统。 C+规范要求:short的长度不超过int,int长度不超过long 很多系统在实现时会有差异。 可以通过sizeof运算符判断某种类型占用的字节数,32,判断不同数据占用的字节数,include int m
10、ain() std:cout“Size of int: “sizeof(int)“n”; std:cout“Size of short: “sizeof(short)“n”; std:cout“Size of long: ”sizeof(long)“n”; std:cout“Size of char: “sizeof(char)“n”; std:cout“Size of bool: “sizeof(bool)“n”; std:cout“Size of float: “sizeof(float)“n”; std:cout“Size of double: “sizeof(double)“n”; r
11、eturn 0;,33,判断不同数据占用的字节数,include int main() std:cout“Size of int: “sizeof(int)“n”; std:cout“Size of short: “sizeof(short)“n”; std:cout“Size of long: ”sizeof(long)“n”; std:cout“Size of char: “sizeof(char)“n”; std:cout“Size of bool: “sizeof(bool)“n”; std:cout“Size of float: “sizeof(float)“n”; std:cout
12、“Size of double: “sizeof(double)“n”; return 0;,sizeof计算某种数据类型或某个变量占用的字节数。 VC6中不支持long long类型,Dev-C+支持,34,无符号和带符号变量,所有整型变量又可以分为无符号和带符号2种 无符号:只存储正值的变量,使用unsigned修饰 带符号:可存储正值或负值,使用signed修饰,signed修饰符可以省略,浮点数一定是带符号的,不能用unsigned修饰,浮点数据类型和字符类型,浮点类型:可存储包含小数的值 float:通常占4字节 double:通常占用8个字节 字符类型 字符类型(char):占用1
13、个字节,存储ASCII字符集中的256个字符或符号之一,35,char也可以存储很小的整数(对应的ASCII码值),但 不提倡该用法,2、变量定义基本方法,格式:类型变量名称 int highScore; unsigned int highScore, playerScore; long area, width, length,36,C+中标识符的基本规则:只能由数字、字母、_构成; 不能以数字开头;不能使用C+关键字。 变量名要符合标识符的规则,可以包含字母、数字、_, 不能包含空格和特殊字符 相同类型的变量可以在一行定义。 C+严格区分大小写,highScore和highscore为不同变
14、量。 应该使用具有描述性的变量名,易于阅读和理解,一些标识符的示例,Dram_ rectangle e_myfriend end 1_peo int my,X,X,X,38,命名习惯(不好的习惯,int main() unsigned short x; unsigned short y; unsigned short z; z=x*y; return 0;,39,命名习惯(好的习惯,int main() unsigned short width; unsigned short height; unsigned short area; area=width * length; return 0;
15、,3、变量赋值和初始化,赋值 unsigned int highScore; highScore = 13000; 初始化 unsigned int highScore = 13000,40,C+中的=用来为变量赋值。 可以对变量多次执行赋值操作。 变量定义时同时“赋值”称为初始化,常量在定义时必须 初始化,41,赋值的示例,include int main() unsigned short width=5, length; length=10; unsigned short area = width * length; std:coutWidth: widthstd:endl; std:co
16、utLength: lengthstd:endl; std:coutArea: areastd:endl; return 0;,标准库中的endl也表示输出换行符,与“n” 等价,42,赋值时的精度损失,include int main() int rateInt = 5.6; std:cout“rateInt: “rateIntstd:endl; return 0;,高精度数据赋值给低精度数据类型时,会产生精度损失, 编译器通常会给出警告。 浮点数赋值给整数时,会截断小数部分,不采用四舍五入,4、类型定义,动机 unsigned short的输入烦琐、容易出错 通过typedef将类型定义为
17、一种易于使用的类型 typedef unsigned short USHORT; USHORT width = 5; USHORT length = 10; USHORT area = width * length,43,使用typedef并没有创建一种新的数据类型,只是将 USHORT作为unsigned short的简捷表示,44,本章内容安排,C+简介 编译及开发环境 创建第一个程序 程序结构分析 变量 常量,常量的概念,常量 与变量一样,常量也占用内存单元,可在其中存储值;但常量的值不能被修改。 常量在创建时必须对其进行初始化,45,字面常量,字面常量是在代码中直接使用的字面值 lon
18、g width = 5; 布尔变量中的值true和false也是字面常量 字符串常量 std:cout “Hello World!n,46,整数字面常量可以使用其它进制,前缀0 x或0X表示16进制, 前缀0表示8进制,符号常量,符号常量需要声明,需要指定名字和类型 const int KILL_BONUS = 5000; playScore playScore + KILL_BONUS,47,声明符号常量时,必须要对其初始化,事后不允许对符号 常量进行赋值。 通常将符号常量名称全部大写,以便于识别。 编写代码时应尽量减少字面常量的使用,比如多处使用 字面常量5000,一旦变更难以替换和维护;使用符号常量 后,只需要变更一处常量定义,C风格符号常量,通过预处理编译指令定义符号常量 #define KILLBONUS 5000 playScore playScore + KILLBONUS,48,define是预处理编译指令,不是语句,结尾不能加分号。 在预处理阶段(编译之前),对#define执行简单的文本 替换,将程序中所有KILLBONUS替换为5000 通过#define定义符号常量是为了与C语言保持兼容,这种 常量没有指定数据类型,编译器无法进行类型检查,不 建议使用,枚举常量,通过枚举类型定义,使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年心理测试考试题库及答案一套
- 2026年山西铁道职业技术学院单招综合素质考试题库附答案
- 2026年深圳地铁心理考试题库及参考答案一套
- 2026年心理放松考试题库及答案一套
- 2026年河北省保定市单招职业适应性测试模拟测试卷附答案
- 2026年广东省深圳市单招职业倾向性测试模拟测试卷附答案
- 2026广东深圳大学生命与海洋科学学院蒋浩宇教授课题组博士后招聘笔试备考试题及答案解析
- 2026福建省三钢(集团)有限责任公司社会招聘笔试参考题库及答案解析
- 2026海南省航天技术创新中心招聘5人笔试备考题库及答案解析
- 2025年福建莆田市莆阳医院内科医生招聘5人备考题库附答案
- 土石方土方运输方案设计
- 肛肠科进修汇报
- 电网技术改造及检修工程定额和费用计算规定2020 年版答疑汇编2022
- 玉米地膜覆盖栽培技术
- 写作篇 Chapter One Paragragh Writing课件完整版
- 邮轮邮轮产业与邮轮经济概述
- WB/T 1019-2002菱镁制品用轻烧氧化镁
- 完整word版毛泽东思想和中国特色社会主义理论体系概论知识点归纳
- GB/T 18926-2008包装容器木构件
- DB11T 594.1-2017 地下管线非开挖铺设工程施工及验收技术规程第1部分:水平定向钻施工
- GB∕T 26408-2020 混凝土搅拌运输车
评论
0/150
提交评论