版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-7-12C+程序设计教程与实训 1 21世纪全国高职高专计算机实用规划系列教材 北京大学出版社 2021-7-12C+程序设计教程与实训2 教学提示: C+语言中的数据类型、运算、语句结构、数组、指针、 函数是C+程序设计的基础。掌握这些基本内容,对利 用C+语言解决一般应用问题是非常必要和有用的。 教学目标: 掌握C+语言中的基本数据类型、运算符及表达式。掌 握if语句、switch语句、for语句、while语句、do语句和 各种跳转语句的格式、功能和执行过程。掌握一维数组 和二维数组的定义、表示及访问方式。掌握指针的概念、 指针变量的定义格式与存储分配、对指针进行的每一种 运算
2、的运算符表示及操作功能,掌握函数的定义和调用 格式。 2021-7-12C+程序设计教程与实训3 2.1.1 数据类型 基本数据类型 常量和变量 2.1.2 表达式和基本运算 2021-7-12C+程序设计教程与实训4 基本数据类型 类型名类型名类型说明符类型说明符字宽字宽数值范围数值范围 字符型字符型char1128127 有符号字符型有符号字符型signed char1128127 无符号字符型无符号字符型unsigned char10255 短整型短整型shortint232 76832 767 有符号短整型有符号短整型signed shortint232 76832 767 无符号短整
3、型无符号短整型unsigned shortint2065 535 整型整型int42 147 483 6482 147 483 647 有符号整型有符号整型signedint 4 2 147 483 6482 147 483 647 无符号整型无符号整型unsignedint404 294 967 295 长整型长整型longint 4 2 147 483 6482 147 483 647 有符号长整型有符号长整型signed longint 4 2 147 483 6482 147 483 647 无符号长整型无符号长整型unsigned longint404 294 967 295 单精度
4、浮点型单精度浮点型float 8约约6位有效数字位有效数字 双精度浮点型双精度浮点型double4约约15位有效数字位有效数字 双精度浮点型双精度浮点型long double16约约17位有效数字位有效数字 2021-7-12C+程序设计教程与实训5 常量和变量 常量是一种其值不被改变的量,即在程序执行 过程中不改变其本身的值. 整型常量 浮点型常量 字符型常量 字符串常量 变量是在程序执行过程中可以被改变的量 变量名 数据类型 值 2021-7-12C+程序设计教程与实训6 算术运算符及其表达式 单目算术运算符: (取负),+(取正),+(增1),- - (减1)。 双目算术运算符:(加)、
5、(减)、*(乘)、/(除)和%(取余)。 关系运算符及其关系表达式 关系运算符共有六个: (小于) (大于) = (大于等于) = (等于) != (不等于) 逻辑运算符及其逻辑表达式 !(逻辑非) &(逻辑与) |(逻辑或) 2021-7-12C+程序设计教程与实训7 赋值运算符及其赋值表达式 简单的赋值运算符有:= (赋值运算符)。 复合的赋值运算符有:+= (加赋值) = (减赋值)、*=(乘 赋值,)、/=(除赋值)和% = (求余赋值) 条件运算符及其条件表达式 条件运算符(?:) 其使用格式为: ? : 位操作运算符及其关系表达式 C+中位运算符有: (按位取反),& (按位与),
6、| (按位或), (按位异或), (按位右移) 2021-7-12C+程序设计教程与实训8 2.2.1 顺序控制语句 2.2.2 选择控制语句 2.2.3 循环控制语句 2021-7-12C+程序设计教程与实训9 顺序控制语句是一类简单的语句,包括表达式语 句、空语句和复合语句等。 C+中任何一个表达式加上分号(“ ;”)便是表达 式语句。 例如: a=a+5; x=3,y=5,z=8; ab?a+b:a*b; 这些都是表达式语句。 空语句是指只有一个分号(“ ;”)的语句。 复合语句是由两条或两条以上的语句组成,并由 一对花括号(“ ”)括起来的语句。 2021-7-12C+程序设计教程与实
7、训10 条件语句(if语句) 单选条件语句if () 两选条件语句if () else 多选条件语句if () else if () . else if () else 2021-7-12C+程序设计教程与实训11 开关语句(switch语句) 语句格式为: switch () case : case : case : default: 2021-7-12C+程序设计教程与实训12 while语句 while () 2021-7-12C+程序设计教程与实训13 dowhile语句 do while (); for语句 for (;) 2021-7-12C+程序设计教程与实训14 循环语句的嵌套
8、 循环语句中又包含有循环语句的结构称为循环语句的嵌 套。循环语句的嵌套又称多重循环。 break语句 终止switch语句与单循环语句的执行; 对多重循环循环语句,可从内循环体跳到外循环体。 continue语句 在while或dowhile语句中执行到continue语句时, 程序不执行continue后的语句,而转向条件表达式处, 开始下一次循环。即所谓短路语句。 在for语句中执行到continue语句时,程序不执行 continue后的语句,而转向for语句中的第3表达式处, 开始下一次循环。 2021-7-12C+程序设计教程与实训15 2.3.1 数组的定义与应用 2.3.2 字符
9、串与字符数组 2.3.3 指针 2.3.4 引用 2021-7-12C+程序设计教程与实训16 一维数组 一维数组同简单变量一样,也是通过变量定义语句定义 的。其定义格式为: =; 二维数组 二维数组同一维数组一样,也是通过变量定义语句的, 其定义格式为: =,.; 2021-7-12C+程序设计教程与实训17 字符串的定义 一个字符串就是用一对双引号括起来的一串字符,其双引号是该字 符串的起、止标志符,它不属于字符串本身的字符。如: “string”、 “Visual C+” 、 “姓名,年龄” 字符数组的定义 字符数组的定义与整型、实型的定义类似。例如:char s9; 对字符数组初始化,
10、可以用逐个字符赋相应数组元素的方式。 例如: char s8= V, e, r, y, , g, o, o, d; 这里分别把8个字符赋给了s0到s8 共9个元素中。 2021-7-12C+程序设计教程与实训18 字符串函数 求字符串长度 函数原型: int strlen(const char s); 调用该函数时,将返回实参字 符串的长度。 字符串拷贝 函数原型: char* strcpy(char* dest, const char* src); 字符串连接 函数原型:char* strcat(char* dest, const char* src); 字符串比较 函数原型:int str
11、cmp(const char* s1, const char* s2); 从字符串中查找字符 函数原型:char* strchr(const char* s, int c); 从字符串中逆序查找字符 函数原型:char* strrchr(const char* s, int c); 从字符串中查找子串 函数原型:char* strstr(const char* s1, const char* s2); 2021-7-12C+程序设计教程与实训19 指针变量的声明 声明指针变量的语法形式是:数据类型 *标识符 与地址相关的运算“*”和“&” “*”称为指针运算符,表示获取指针所指向的变量的值,这
12、是一个 一元操作符。如,*i_pointer表示指针i_pointer所指向的int型数据 的值。 “&”称为取地址运算符,用来得到一个对象的地址,也是一个一 元操作符。如,使用&i就可以得到变量i的存储单元地址。 指针的赋值运算 声明指针之后必须先赋值,然后才可以引用。 在声明指针的同时进行初始化赋值,语法形式为: 存储类型 数据类型 *指针名=初始地址; 在声明之后,单独使用赋值语句,赋值语句的语法形式为: 指针名=地址; 2021-7-12C+程序设计教程与实训20 指针的算术运算和关系运算 指针与整数的加减运算 指针p加上或减去n,其意义是指针当前指向位置的前方或后方 第n个数据的地址
13、。 这种运算的结果值取决于指针指向的数据类型。 指针加一,减一运算 指向下一个或前一个数据 关系运算 指向相同类型数据的指针之间可以进行各种关系运算。 指针数组 如果一个数组的每个元素都是指针变量,这个数组就是 指针数组。指针数组的每个元素都必须是同一类型的指 针。声明一维指针数组的语法形式为: *; 2021-7-12C+程序设计教程与实训21 引用是一种特殊类型的变量,可以被认为是另一个变量的别名, 通过引用名与通过被引用的变量名访问变量的效果是一样的。建 立引用时,要用某个变量名或对象名对它进行初始化,于是它便 绑定在用来初始化的那个变量或对象上。 引用不是值,它不占用内存空间。引用只能
14、说明,而不能定义, 因为定义将会分配内存空间。引用只是代替某个变量或对象的别 名。 建立引用的格式为: &= 使用引用时必须注意下列问题: (1) 声明一个引用时,必须同时对它进行初始化,使它指向一个已存 在的对象。 一旦一个引用被初始化后,就不能改为指向其他对象。 (2) 指针可以引用,而引用不可以引用。 (3) 指针可作数组元数,引用不可以作数组元数。 (4) 引用也可以作为形参,如果将引用作为形参,情况便稍有不同。 2021-7-12C+程序设计教程与实训22 2.4.1 函数的定义方法和调用方法 2.4.2 函数的参数值的传递和返回值 2.4.3 递归函数 3.4.4 内联函数 2.4
15、.5 指针与函数 2021-7-12C+程序设计教程与实训23 函数的定义 函数的定义格式为: () 函数的调用 调用一个已定义或声明的函数需要给出相应的函数调用 表达式,其格式为: () 2021-7-12C+程序设计教程与实训24 参数传递 函数体执行 返回值 函数调用举例 2021-7-12C+程序设计教程与实训25 如果一个函数在其函数体内直接或间接地调用了自己,该函数就称为 递归函数。递归函数是解决某些复杂问题的十分有效的方法。 斐波那契数列的定义: 整数的阶乘定义: 【例2.19】 求n!的递归调用。 【例2.20】 传说在世纪之初,印度 Brahama 寺庙的僧侣拥有3根柱子,
16、其中A根柱子上有n个盘子。盘子从底到上按照由大到小的顺序摆放。僧 侣们的工作就是把这n个盘子从第A根柱子上移动到第C根柱子上,移动盘 子时必须遵循如下规则。 (1) 每次只移动一个盘子。 (2) 被移动的盘子必须放在其中的一根柱子上。 (3) 在移动过程中大盘子不能压在小盘子上。 2021-7-12C+程序设计教程与实训26 内联函数不是在调用时发生控制转移,而是在编 译时将函数体嵌入在每一个调用处。这样就节省 了参数传递、控制转移等开销。内联函数在定义 时使用关键字 inline,语法形式如下: inline () 使用内联函数时应该注意: (1) 内联函数体内一般不能有循环语句和 swit
17、ch 语句。 (2) 内联函数的定义必须出现在第一次被调用之前。 (3) 对内联函数不能进行异常接口声明 。 2021-7-12C+程序设计教程与实训27 用指针作为函数参数 各种类型的指针都可作为函数参数,包括基本数据类型的指针、 数组名、指向数组的指针、字符指针、指向指针的指针以及指针 数组等。 指针型函数 指针也可以是函数的返回值。当一个函数的返回值是指针类型时, 这个函数就是指针型函数。指针型函数的一般定义形式是: 数据类型 *函数名(参数表) /函数体 指向函数的指针和指针函数 指向函数的指针是指向某个函数的内存入口地址,可以通过它来 执行它所指向的函数。指向函数指针的定义格式如下: (*)() 2021-7-12C+程序设计教程与实训28 C+语言的数据类型包含基本数据类型和构造数据类型两大类。常量 是在程序中其值不被改变的量。变量是在程序中其值可以被改变的量。 变量具有名字、类型和值三个要素。数组是一种构造数据类型。它是 数目固定、类型相同的若干个变量的有序集合。指针是一种数据类型, 具有该类型的变量称指针变量,简称指针。指针是一种特殊变量,它 具有与一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购食品原材料规章制度
- 重庆市正版软件采购制度
- 钢材绿色采购管理制度
- 掺杂石榴石单晶片太赫兹磁光调控性能及集成器件研究
- 2026年沙场运输合同(1篇)
- 物业客服上半年工作总结(15篇)
- 2025年12月20日安徽省宿州事业单位遴选面试真题及答案解析
- 简单的演讲稿14篇
- pvfe板材施工方案(3篇)
- 丹东涂料施工方案(3篇)
- CPK-数据自动生成器
- 增材制造技术课件
- (完整)WORD-版本核心高考高频688词汇(高考高频词汇)
- MCS-51单片机技术项目驱动教程C语言第二版牛军课后参考答案
- 大连周水子国际机场
- 第二章护理伦理学的理论基础课件
- 闽教版小学英语五年级下册校本作业
- 拜仁慕尼黑足球俱乐部
- 晚归检讨书阅读
- 结构化面试答题套路90结构化面试题型及答题套路
- GB/T 24218.1-2009纺织品非织造布试验方法第1部分:单位面积质量的测定
评论
0/150
提交评论