c++第1章V1.ppt
c+第第1章章V18/15/2022网络与计算中心基础教研室网络与计算中心基础教研室2课程要求课前请做好预习课前请做好预习保持课堂安静,头脑清醒,思维活跃保持课堂安静,头脑清醒,思维活跃认真、认真、独立、按时独立、按时完成并提交作业,作业必须经完成并提交作业,作业必须经上机调试通上机调试通过过重视上机实践,有效利用宝贵的上机时间,上机前必须先完重视上机实践,有效利用宝贵的上机时间,上机前必须先完成成实验预习报告,没有预习报告不能上机实验实验预习报告,没有预习报告不能上机实验上机考勤上机考勤3次次缺席,平时成绩按不及格处理缺席,平时成绩按不及格处理发现上机时间发现上机时间上网做与编程无关的事上网做与编程无关的事,按缺席一次处理按缺席一次处理实验教学分组管理,组长负责,目标是实验教学分组管理,组长负责,目标是一个都不能少。一个都不能少。8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室3计算机语言的基本体系结构基本符号常量、变量保留字、运算符等表达式语 句函 数类、包程序基本符号词 汇短 语句 子段 落描 写文 章自然语言的基本体系结构8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室4 本章将简要介绍本章将简要介绍C+中的数据类型及相关运中的数据类型及相关运算,以及常量、变量、表达式、语句等,最算,以及常量、变量、表达式、语句等,最后介绍简单的输入输出方法。后介绍简单的输入输出方法。8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室5第一章第一章 C+基础知识基础知识1.3 C+的词法单位的词法单位1.6 运算符和表达式运算符和表达式1.8 简单的输入输出简单的输入输出1.7 数组与字符数组数组与字符数组1.5 常量常量1.4 C+ 中的数据类型中的数据类型1.2 一个一个C+程序实例程序实例8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室61.2 用用C+语言编写程序语言编写程序 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室71 在屏幕上显示同学们好 ! 例2-1 在屏幕上显示短句:同学们好 ! 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室81 在屏幕上显示同学们好/1.cpp 注释文本注释文本 #include 编译预处理命令编译预处理命令using namespace std; 命名空间命名空间void main (void) 主函数主函数 cout“ 同学们好同学们好! n ” ; 语句结束语句结束输出流对象输出流对象 换行符换行符1. 程序由若干语句组成。程序由若干语句组成。2.语句由分号;结束语句由分号;结束3.任何程序都有主函数任何程序都有主函数主函数主函数main()是程序的执行入口()是程序的执行入口程序体可能由若干函数组成,其中程序体可能由若干函数组成,其中有且仅有一个主函数有且仅有一个主函数main(),(),8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室91.3 C+的词法单位的词法单位1.3.1 C+的字符集的字符集 1.3.2 关键字关键字 1.3.3 标识符标识符(ID,identifier) 1.3.4 标点符号标点符号 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室101.3.1 C+的字符集26个个小写字母小写字母 abcdefghijklmnopqrstuvwxyz 26个个大写字母大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ 10个个阿拉伯数字阿拉伯数字 0 1 2 3 4 5 6 7 8 9 其他符号其他符号 + - * / = , . _ : ; ? | ! # % & () 空格空格 C+C+语言基本字符:语言基本字符:8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室111.3.2 关 键 字关键字(keyword):又称保留字。是由系统定义的具有特定含义的英文单词。关键字不能另作它用。C+区分大小写,关键字全部由小写字母组成。标准C+(ISO14882)定义了74个关键字,具体的C+编译器会做一些增删。常用关键字及分类见表2.1。8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室12vint long float doublechar1.3.2 关 键 字8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室13标识符(标识符(Identifier,ID ):):是程序员定义的是程序员定义的“单词单词”,用来给变量、,用来给变量、常量、自定义的数据类型、函数等命名。常量、自定义的数据类型、函数等命名。合法标识符合法标识符由由字母或下划线字母或下划线开始开始,由,由字母、字母、数字、下划线数字、下划线组成。组成。1.3.3 标识符8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室141.3.3 标识符例例: 判断下面哪些是合法的标识符:判断下面哪些是合法的标识符: MyFileSalary 94amountvoid94SalarySalary94$amountf3.5Num_of_Student8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室151.3.4 标点符号标点符号标点符号: :# ( ) , : ; 等。等。 标点符号的作用标点符号的作用: :有一定的语法意义。如字符和字符串有一定的语法意义。如字符和字符串常量分别用常量分别用 和和 引起来。引起来。对语法符号起分隔作用。如对语法符号起分隔作用。如 ;等;等8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室16v求华氏温度求华氏温度 100F 对应的摄氏温度对应的摄氏温度 C=(5/9)(F-32)1 程序解析程序解析2 常量、变量和数据类型常量、变量和数据类型3 算术运算和赋值运算算术运算和赋值运算4 简单的输入、输出简单的输入、输出8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室17#include using namespace std;void main(void) / 主函数名main int celsius, fahr; fahr = 100; / 变量使用 celsius = 5 * (fahr - 32) / 9; cout fahr = fahr , celsius = celsius n; /输出结果求华氏温度求华氏温度 100F 对应的摄氏温度。对应的摄氏温度。摄氏温度摄氏温度 C=(5/9)(F-32) 输出输出: :fahr =100, celsius = 37程序解析8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室181.4 变量和数据类型int celsius, fahr; celsius = 5 * (fahr - 32) / 9;v数据数据常量:在程序运行过程中,其常量:在程序运行过程中,其值不能被改变值不能被改变 变量:在程序运行过程中,其变量:在程序运行过程中,其值可以被改变值可以被改变 v数据类型数据类型常量:常量:5 和和 9是整型常量(整数)是整型常量(整数)变量:在定义时指定变量:在定义时指定8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室19C+数据类型的分类数据类型的分类C+C+中新增中新增整数类型整数类型实数类型实数类型 基本数据类型基本数据类型 字符类型字符类型 逻辑类型逻辑类型 空值类型空值类型 数据类型数据类型枚举类型枚举类型 数组类型数组类型 构造数据类型构造数据类型 指针类型指针类型 结构与联合类型结构与联合类型 引用类型引用类型 类类型类类型 float doubleint char bool8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室20变量的定义变量定义的一般形式:变量定义的一般形式:数据类型名 变量名表;例如:例如:int celsius, fahr; 定义整型变量定义整型变量float x; 定义单精度浮点型变量定义单精度浮点型变量double area, length; 定义双精度浮点型变量定义双精度浮点型变量double型数据比型数据比float精度高,取值范围大精度高,取值范围大 变量名:小写字母;见名知义变量名:小写字母;见名知义8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室21v定义变量时要指定变量名和数据类型定义变量时要指定变量名和数据类型v变量名代表内存中的一个存储单元变量名代表内存中的一个存储单元存储单元存放该变量的值存储单元存放该变量的值v该存储单元的大小由变量的数据类型决定该存储单元的大小由变量的数据类型决定vC+语言中的变量代表保存数据的存储单元语言中的变量代表保存数据的存储单元v数学中的变量代表未知数数学中的变量代表未知数 x = x+1变量的定义类型名 变量名表;int celsius, fahr; double area, length;8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室22变量的定义与使用#include Using namespace std;void main(void) int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; coutfahr = fahr , celsius = celsius n;n 一个变量名只能定义一次一个变量名只能定义一次n 变量一般都定义在程序的头上变量一般都定义在程序的头上n 不能定义在程序的中间或后面不能定义在程序的中间或后面变量必须先变量必须先定义定义,后,后使用使用。变量变量应该先赋值,后引用应该先赋值,后引用8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室23 v整型常量整型常量v字符型常量字符型常量v字符串常量字符串常量1.5 常量8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室24 vC+中十进制表示与平时熟悉的书写方式相中十进制表示与平时熟悉的书写方式相同。同。v例:例:v15 -24整数的十进制表示方法8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室25实型常量包含小数点和包含小数点和1010的幂的数为实型常量的幂的数为实型常量例例 : : 判断下列表示是否合法判断下列表示是否合法123E12 -.34e-2 E4 1.43E3.5 v表示方法:表示方法:一般形式与平时书写形式相同,由数字一般形式与平时书写形式相同,由数字 0 9和小数点和小数点组成。组成。v例如:例如: 0.23 -125.76 0.0 .46 -35. 指数形式(也称为科学表示法)表示为尾数乘以指数形式(也称为科学表示法)表示为尾数乘以10的的次方形式,由次方形式,由尾数、尾数、E或或e和阶数和阶数 组成。指数形式要求组成。指数形式要求在在E或或e前面的尾数部分必须有数字,后面的指数部分前面的尾数部分必须有数字,后面的指数部分必须为整数必须为整数。 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室26字符型常量用单引号引起来的单个字符用单引号引起来的单个字符。在内存中保存的是字符的在内存中保存的是字符的ASCIIASCII码值。在所有字符中,可显码值。在所有字符中,可显示字符通常就用单引号引起来表示:示字符通常就用单引号引起来表示: a a /字符字符a a /字符字符 4 4/字符字符4 4 /空格字符空格字符特殊情况字符,如不可显示的字符等,特殊情况字符,如不可显示的字符等,c+c+使用使用转义序列转义序列表表示方法示方法(详(详见表见表1-31-3,此处略):,此处略):nn /换行换行 / /字符字符 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室27 字符串常量字符串常量与字符型常量的区别:字符串常量与字符型常量的区别:字符串常量字符串常量 a a占两个字节,存放占两个字节,存放a a和和00,值为值为0 x61000 x6100字符型常量字符型常量a a占一个字节,存放占一个字节,存放a a,值为值为0 x610 x61字符串常量:字符串常量:用双引号引起来的若干个字符用双引号引起来的若干个字符。例如例如: : I am a Chinese.I am a Chinese., , 123123, , a a , , 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室28常变量标识符常量:标识符常量:用常量说明符用常量说明符constconst给文字常量起的名字(标识符),给文字常量起的名字(标识符),因因为其说明和引用形式很像变量,所以也称为其说明和引用形式很像变量,所以也称常变量常变量;例如:例如:const float PI=3.14159;/推荐用大写字母作为常变量名推荐用大写字母作为常变量名const int Number_of_Student=100;常变量必须也只能在说明时进行初始化;常变量必须也只能在说明时进行初始化;常变量初始化之后,不允许再被赋值;常变量初始化之后,不允许再被赋值;常变量必须先说明后使用;常变量必须先说明后使用;常变量存储在数据区,并且可以按地址访问,编译时系常变量存储在数据区,并且可以按地址访问,编译时系统对常变量进行类型检查。统对常变量进行类型检查。C+C+建议使用常变量,而不要使用文字常量。建议使用常变量,而不要使用文字常量。8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室29fahr = 100; celsius = 5 * (fahr - 32) / 9; 1、算术运算双目算术运算符:双目算术运算符:+ - * / %算术表达式:用算术表达式:用算术运算符算术运算符将将运算对象运算对象连接起连接起来的符合来的符合C+语言语法规则的式子语言语法规则的式子 数学式:数学式:(5/9)(F-32) C+表达式:表达式:5 * (fahr - 32) / 9 或者:或者:数学式:数学式:s(s-a)(s-b)(s-c)C+表达式:表达式:1.6 算术运算和赋值运算8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室30v+, -+, -(自增、自减)(自增、自减)v例:例:j=i+; j=+i;注意注意v/ 整数除整数,得整数整数除整数,得整数如:如:1/2 0,9/4 2 ? 5 * (fahr - 32) / 9 和和 5 / 9 * (fahr - 32) 等价吗等价吗v% 针对整型数据针对整型数据如:如: 565,941,10040v双目运算符两侧操作数的类型要相同双目运算符两侧操作数的类型要相同算术运算j=i ;i=i+1 ;i=i+1 ;j=i ;8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室31问题:问题:4 45 48/15/2022网络与计算中心基础教研室网络与计算中心基础教研室32v赋值运算符赋值运算符 =v赋值表达式:用赋值表达式:用 = 将一个将一个变量变量和一个和一个表达式表达式连接连接起来的式子起来的式子 变量变量 表达式表达式赋值运算例如:fahr = 100; celsius = 5 * (fahr - 32) / 9; 计算赋值运算符右侧计算赋值运算符右侧表达式表达式的值的值将赋值运算符右侧将赋值运算符右侧表达式表达式的值赋给左侧的的值赋给左侧的变量变量的左边必须是一个变量的左边必须是一个变量8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室33复合的赋值运算符复合的赋值运算符v有有1010种复合运算符:种复合运算符:+=, -=, *=, /=, %=,=,&=,=,|= 例例a+=3 等价于等价于 a=a+3x*=y+8 等价于等价于 x=x*(y+8) a+=a-=a*a 等价于等价于 a=a+(a=a- a*a)结合型自结合型自右向左右向左8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室34问题:问题:8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室35逗号运算和逗号表达式逗号运算和逗号表达式v 格式格式表达式表达式1,表达式,表达式2v 求解顺序及结果求解顺序及结果先求解先求解1,再求解,再求解2,最终结果为表达式,最终结果为表达式2的值的值例例: a=(3*5 , a*4);d的结果为的结果为 6int a,b,c,d;d=(a=1,b=a+2,c=b+3);coutdendl;a的值为的值为60去掉括号去掉括号?8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室36关系运算与关系表达式关系运算与关系表达式v关系运算是比较简单的一种逻辑运算,优先次关系运算是比较简单的一种逻辑运算,优先次序为:序为: = = != 优先级相同(高)优先级相同(高) 优先级相同(低)优先级相同(低)v 关系表达式是一种最简单的逻辑表达式关系表达式是一种最简单的逻辑表达式其结果类型为其结果类型为 bool,值只能为,值只能为 true 或或 false。 例如:例如:ab,cb)&(xy) 其结果类型为其结果类型为 bool,值只能为,值只能为 true 或或 false如果有以下语句如果有以下语句,则上述表达式的值为则上述表达式的值为 ?int a=5,b=3,x=10,y=20 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室38运算表运算表8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室39问题:问题:注意:注意:在逻辑表达式中,如果运算符左边的表达式能够决定在逻辑表达式中,如果运算符左边的表达式能够决定整个表达式的值,则运算符右边的表达式不再计算,整个表达式的值,则运算符右边的表达式不再计算,以提高效率。以提高效率。8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室40sizeof 运算符运算符v语法形式语法形式sizeof (类型名类型名)或或 sizeof (表达式表达式)v结果值:结果值:“类型名类型名”所指定的类型或所指定的类型或“表达式表达式”的结的结果类型所占的字节数。果类型所占的字节数。例:例:sizeof(short)sizeof(x)8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室41 混合运算时数据类型的转换混合运算时数据类型的转换 隐含转换隐含转换n一些二元运算符(算术运算符、关系运算符、逻辑运一些二元运算符(算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符)要求两个操作数的类算符、位运算符和赋值运算符)要求两个操作数的类型一致。型一致。n在算术运算和关系运算中如果参与运算的操作数类型在算术运算和关系运算中如果参与运算的操作数类型不一致,编译系统会自动对数据进行转换(即隐含转不一致,编译系统会自动对数据进行转换(即隐含转换),基本原则是将低类型数据转换为高类型数据。换),基本原则是将低类型数据转换为高类型数据。 float int unsigned long unsigned long double long double 低类型低类型 高类型高类型 bool char short 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室42强制类型转换强制类型转换n语法形式:语法形式:类型说明符类型说明符(表达式表达式)或或(类型说明符类型说明符)表达式表达式n强制类型转换的作用是将表达式的结果类型转换强制类型转换的作用是将表达式的结果类型转换为类型说明符所指定的类型。为类型说明符所指定的类型。 例:例: int a=16,b=5; float x=10; x=(float)a + a/bX的值为的值为19.0008/15/2022网络与计算中心基础教研室网络与计算中心基础教研室431 表达式语句:表达式语句:表达式;表达式; 2 2 空语句:空语句: ; 3 3 复合语句:复合语句: /若干语句若干语句 流程控制语句:流程控制语句:流程控制语句用来控制或流程控制语句用来控制或 改变程序的执行方向改变程序的执行方向 ; 1.6.3 语句8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室44数组定义:数组定义: 数组是有限个数组是有限个同类型同类型元素的有序集合元素的有序集合,这些元,这些元素有一个共同的名字,每个元素以其在数组中的素有一个共同的名字,每个元素以其在数组中的位置区分位置区分,位置用,位置用下标下标表示。数组下标的个数称表示。数组下标的个数称作维数。作维数。1.7 数组与字符数组数组与字符数组8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室45一维数组的定义格式:一维数组的定义格式: 存储类型 数据类型 数组名常量; 数据类型指的是数组中元素的数据类型,可以数据类型指的是数组中元素的数据类型,可以是是C+C+中定义的任何一种数据类型。中定义的任何一种数据类型。 写在方括号中的写在方括号中的常量常量用来定义数组大小,即数用来定义数组大小,即数组中元素的个数。组中元素的个数。例如:例如:int m5; int m5; /定义数组定义数组m, m, 其中有其中有5 5个整数个整数 const int N=3;const int N=3; float xN; float xN; /数组数组x x中有中有3 3个实数个实数 一维数组一维数组8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室46m4m3m2m1m0 x2x1x0 一维数组一维数组v数组的存储:数组的存储: 数组在存储单元中是按数组在存储单元中是按下标下标的顺序的顺序连连续续存放的,存放的,数组名数组名代表数组存储区域代表数组存储区域的的首地址首地址。v数组的元素:数组的元素:标识方法是用数组名和下标:标识方法是用数组名和下标: 数组名数组名表达式表达式表达式用来计算下标值。表达式用来计算下标值。C+中规中规定数组第一个元素的下标为定数组第一个元素的下标为0。8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室47注意:注意:C+C+中数组大小在编译时确定,编译系统按照定义中数组大小在编译时确定,编译系统按照定义为数组分配一段连续的存储单元,这段单元的大小为数组分配一段连续的存储单元,这段单元的大小也是不能改变的,因此数组大小不能用变量定义,也是不能改变的,因此数组大小不能用变量定义,而只能是一个正整数常量。而只能是一个正整数常量。为避免使用时数组出界,通常为避免使用时数组出界,通常“大开小用大开小用”。注意:注意:对数组的访问对数组的访问指的是对指的是对数组元素的访问数组元素的访问,不能直接,不能直接将数组名作为访问对象,对数组赋值也必须对每一将数组名作为访问对象,对数组赋值也必须对每一个元素逐个赋值。个元素逐个赋值。 一维数组一维数组8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室48 一维数组一维数组v数组的初始化 数组初始化的方法是在定义时用数组初始化的方法是在定义时用大括号大括号列出元素的值。列出元素的值。初始化值的个数可以初始化值的个数可以少于少于定义的元素个数,这时从第定义的元素个数,这时从第0个个元素开始逐个取得初始化值,剩余的元素初始化为元素开始逐个取得初始化值,剩余的元素初始化为0。对于定义时初始化的情况,可以不指明元素个数,编译对于定义时初始化的情况,可以不指明元素个数,编译器会按照初始化值的个数确定数组大小。器会按照初始化值的个数确定数组大小。v例如:例如: int score5=88, 92, 90, 85, 78;v例如:例如:float y5=3.4, 4.2, 7; v /5个元素的取值分别为个元素的取值分别为3.4,4.2, 7, 0, 0v例如:例如:vint n=1, 2, 3, 4; /数组数组n有有4个元素个元素vint nn;/非法定义,必须指明数组元素个数非法定义,必须指明数组元素个数8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室49int_arr3=int_arr2=int_arr1=int_arr0= 1123输出:输出:31+2=3【例【例1.21.2】使用数组的简单例子。】使用数组的简单例子。# include using namespace std;int main() int int_arr4; int_arr0=1; int_arr1=1; int_arr2=2; int_arr3=int_arr1+int_arr2; coutint_arr3n; return 0;8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室50字符数组字符数组v字符数组定义:字符数组定义:如果数组中的元素为字符,就称为字符数组。如果数组中的元素为字符,就称为字符数组。v例如:例如:vchar string110; /可用来保存可用来保存10个字符的字符数组个字符的字符数组vchar city_name1 =N, a, n, j, i, n, g;v /可用来保存可用来保存7个字符的字符数组个字符的字符数组;8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室51字符数组字符数组v字符串与字符数组:字符串与字符数组:C+中用字符数组保存字符串。中用字符数组保存字符串。允许直接用字符允许直接用字符串常量给字符数组初始化。串常量给字符数组初始化。例如:例如:char city_name2=”Wuhan”;v用字符串初始化,字符数组会自动加上一个串结束用字符串初始化,字符数组会自动加上一个串结束符符0 。串结束符在字符串操作中具有十分重要的。串结束符在字符串操作中具有十分重要的意义,因此在定义字符数组大小时,要注意留出足意义,因此在定义字符数组大小时,要注意留出足够的空间保存串结束符。够的空间保存串结束符。8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室52字符串处理函数:字符串处理函数定义在头文件字符串处理函数定义在头文件中中strlen(s)strlen(s)/返回字符串返回字符串s s的实际长度的实际长度( (不包括不包括0 )0 )strcpy(s1,s2strcpy(s1,s2) )/将字符串将字符串s2s2中中0 0 之前的所有字符之前的所有字符/依依次赋值到字符串次赋值到字符串s1s1中,最后再加上一个中,最后再加上一个0 0 。由于不能直接对字符数组名赋值,所以将一个字符串的由于不能直接对字符数组名赋值,所以将一个字符串的值赋给另一个字符串必须用值赋给另一个字符串必须用字符串复制函数字符串复制函数完成。完成。例如:例如:char string220char string220;string2=”VC+”string2=”VC+”;/非法非法strcpy(string2, ”VC+”);strcpy(string2, ”VC+”);/合法合法8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室53int main( ) char s1 =Hello C+;char s210, s320;s20= B; s21= e; s22= g; s23= i; s24= n; s25= 0 ; strcpy(s3, s2);coutThe length of s1 is: strlen(s1) n;couts2 ts3 n;return 0【例【例1.3】 字符数组和字符串处理函数的应用。字符数组和字符串处理函数的应用。# include # include using namespace std;/只有字符数组可整体输出,因为有结束符只有字符数组可整体输出,因为有结束符运行结果:运行结果:The length of Hello C+ is:9 Begin Begin8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室541.8 简单的输入输出1.8.1 C+C+的输入输出简介的输入输出简介1.8.2 数据的输入输出数据的输入输出1.8.3 输入输出的格式控制输入输出的格式控制8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室551.8.1 C+输入输出简介v输入流对象输入流对象cin:cin用来在程序执行期间给变量输入数据,用来在程序执行期间给变量输入数据,一般格式为:一般格式为:cin变量名变量名1变量名变量名2变量名变量名n; v输出流对象输出流对象cout:cout实现将数据输出到显示器的操作,实现将数据输出到显示器的操作,一般格式为:一般格式为:cout表达式表达式1表达式表达式2表达式表达式n; v使用时必须在程序开头增加两行:使用时必须在程序开头增加两行:#include using namespace std;8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室56例如例如:char c1, c2, c3;cinc1;/Acinc2c3;1.8.2 数据的输入输出v字符的输入字符的输入cin程序执行到程序执行到A行时,等待用户输入数据。行时,等待用户输入数据。若输入:若输入:A b c 则则cin分别将字符分别将字符A、b、c赋给变量赋给变量c1、c2、c3。cin自动跳过输入的自动跳过输入的空白空白字符(包括空格,制表和回字符(包括空格,制表和回车等)。车等)。 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室57假定字符假定字符c1、c2、c3的值分别为字符的值分别为字符a、b和和c,执行,执行以下语句序列:以下语句序列:coutc1tc2n;coutc3endl;coutOkcity;cin.getline(city,10);cout“城市名是城市名是:”;coutcityendl;若输入若输入wu han 前两者的结果完全不同。前两者的结果完全不同。char city11;cin.getline(city,10);cout“城市名是城市名是:”;coutcitycity;cout“城市名是城市名是:”;coutcityendl;8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室59例例:int i, j; float x, y;cout”Input i, j, x, y:”ij;/Dcinxy;cout”i=”it”j=”jendl;cout”x+y=”x+yendl; 3. 3. 十进制数据的输入输出十进制数据的输入输出若输入:若输入:10 20 4.5 8.6 则程序输出:则程序输出:i=10j=20 x+y=13.1输出时各数据间是无间隔的,因此应当有意输出一些输出时各数据间是无间隔的,因此应当有意输出一些间隔符间隔符 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室601.8.3 输入输出的格式控制例如:例如:int i=2, j=3;float x=2.6, y=1.8; cout setw(6) i setw(10) j endl;cout setw(10) i*j endl;cout setw(8) x setw(8) y endl;v设置数据间隔设置数据间隔为了使数据间隔开,还可以用为了使数据间隔开,还可以用C+提供的函数提供的函数setw() 指定输出数据项的宽度。指定输出数据项的宽度。输出结果为:输出结果为: 2 3 6 2.6 1.8 v使用使用setw() 必须在程序的开始处增加:必须在程序的开始处增加:#include 8/15/2022网络与计算中心基础教研室网络与计算中心基础教研室61一、简单的一、简单的C程序程序222211.111115.02.,3,4,1cos3.,60 ,24.sinsincoscos2.0,1.0,1.0,45 ,yxxyyababyyyyaxbxxcxabcxy 练 习 :当时 , 求 的 值 。求 。求 。求 。