660 likes | 809 Views
主要内容安排. 第一章: C++ 入门 第二章:基本数据类型与输入输出 第三章:表达式与语句 第四章:过程化语句 第五章:函数 第六章:程序结构 第七章:数组. 第二章 基本数据类型与输入输出. 2.1 字符集与保留字 2.2 基本数据类型 2.3 变量定义 2.4 常量 2.5 常量定义 2.6 I/O 流控制 2.7 printf 与 scanf 小结. 2.1 字符集与保留字. 1. C++ 字符集 (1) 大小写字母: A-Z a-z (2) 数字: 0-9
E N D
主要内容安排 第一章:C++入门 第二章:基本数据类型与输入输出 第三章:表达式与语句 第四章:过程化语句 第五章:函数 第六章:程序结构 第七章:数组
第二章 基本数据类型与输入输出 2.1 字符集与保留字 2.2 基本数据类型 2.3 变量定义 2.4 常量 2.5 常量定义 2.6 I/O流控制 2.7 printf与scanf 小结
2.1 字符集与保留字 1. C++字符集 (1)大小写字母:A-Z a-z (2)数字:0-9 (3)其他符号:+-*/=,.(下划线) :;?\ “‘ ~ # % & ( ) [ ]{ } (空格)
2.1 字符集与保留字(续1) 标识符:保留字、用户定义 2. 保留字 也称关键字,是系统预先定义好的标识符,具有特定的含义,不能另作它用。 C:32个 C++:29个 P12 表2-1 注意: (1)在程序中用到的其他名字(标识符)不能与C/C++的关键字有相同的拼法和大小写。 (2)关键字也不能重新定义。
第二章 基本数据类型与输入输出 2.1 字符集与保留字 2.2 基本数据类型 2.3 变量定义 2.4 常量 2.5 常量定义 2.6 I/O流控制 2.7 printf与scanf 小结
2.2 基本数据类型 引言:一个程序要运行,就要先描述其算法。描述一个算法应先说明算法中要用的数据,数据以变量或常量的形式来描述。每一个变量或常量都有数据类型。 1. 数据类型 简称类型,规定了其内存所占空间大小和表示范围。 补充:规定了一定的取值范围(值域)和在该值域上所进行的各种操作。
整 型 int 基本数据类型 单字符型 char 逻辑型 bool 字符型 宽字符型 wchar-t 数据类型 数据 type [ ] 单精度型 float 指针type * 实 型 双精度型 double 空类型 void 非基本数据类型 结构 struct 联合 union 枚举 enum 类 class 2.2 基本数据类型(续1)
2.2 基本数据类型(续2) P14 表2-2 常用基本数据类型描述 补充运算: sizeof(数据类型):求数据类型的字节长度。 例:cout <<sizeof(int)<<endl; 结果:2
第二章 基本数据类型与输入输出 2.1 字符集与保留字 2.2 基本数据类型 2.3 变量定义 2.4 常量 2.5 常量定义 2.6 I/O流控制 2.7 printf与scanf 小结
2.3 变量定义 主要内容: 1.命名变量名 2.变量定义方式 3.变量赋值与初始化 4.typedef
1.命名变量名 命名规则: (1)不能是C++关键字。 (2)第一个字符必须是字母或下划线。 (3)一般不超过31个字符。 (4)不能以数字开头。 (5)中间不能有空格。 (6)不能包含之类的特殊符号。 (7)不要与C++中的库函数名、类名和对象名相同。
1.命名变量名(续1) 补充:以字母或下划线开头、由字母、下划线、数字组成的字符序列。 掌握:命名的合法性、见名知义。
2.变量定义方式 格式: 类型名 变量名表; 说明: (1)变量先定义后使用。 (2)变量名间用逗号分隔。
3.变量赋值与初始化 赋值运算符:= 优先级:较低 结合性:从右向左 格式: 变量名=表达式 变量的初始化:在定义的同时赋给变量一个初始值。 例:unsigned short width; wide=5; //赋初值 或 unsigned short width =5;//初始化
4.typedef 格式: typedef已有类型名 新类型名; 功能:为一个已有的类型名提供一个同义词(别名)。 注意:typedef没有实际地定义一个新的数据类型,在建立一个typedef 类型时没有分配内存空间。 例:typedef double profit; profit d; //即double d;
第二章 基本数据类型与输入输出 2.1 字符集与保留字 2.2 基本数据类型 2.3 变量定义 2.4 常量 2.5 常量定义 2.6 I/O流控制 2.7 printf与scanf 小结
2.4 常量 主要内容: 1. 整型常数 2. 实型常数 3. 字符常量 4. 字符串常量
1.整型常数 分类: (1)十进制:与日常一样,有正负之分,例:123 (2)八进制:以0开头,无符号,例:0123 (3)十六进制:以0X或0x开头,无符号, 例:0X123 0x123 注意: (1)基本类型是整型。 (2)长整型:整常数后加L/l 例:123L 123l
2.实型常数 表示: (1)小数形式:由数字、小数点组成, 例:1.23 .234 (2)指数形式:E/e之前必须有数字,E/e之后的指数必须为整数,例:1.23E+5 注意: (1)基本类型是double (2)float:加 F/f (3)long double:加 L/l
2. 实型常数(续1) 例: 34.5 // double 占8B 34.5F // float 占4B 34.5L // long double 占10B
3.字符常量 分类: (1)普通字符:用单引号括起来的一个字符。 (2)转义字符:以“\”开头的特殊字符,将“\”后面的字符转变成另外的意义 。 P18 表2-3 C++常用特殊字符(转义字符) 例:char c1,c2; char c3=`\n`,c4=`\007`; char c5=`B`,c6=`\xff`,c7=97;
3.字符常量(续1) 注意: (1)将一个字符常量赋值给字符变量,实际上并不是把该字符本身放到内存单元中,而是将该字符的相应ASCII码(整型数)存入。 (2)在内存中,字符数据以ASCII码存储,即以整数表示,所以C++中字符数据和整型数据之间可以相互赋值,只要注意其表示的范围合理。
3.字符常量(续2) 注意:(续) (3)字符数据和整型数据在输出中的表示是不同的。 例:int a=`b`;//ok:给一个整型变量赋一个字符值 char c=97;//ok:给一个字符变量赋一个整型值 cout<<a <<c <<endl; 结果:98a (4)`0`与0是截然不同的。
4.字符串常量 定义: 字符串常量是由一对双引号括起来的字符序列。 说明: (1)字符串常量以`\0`结束。 (2)不能将字符串常量赋给字符变量。 例: `0`与 “0”不同 (3)字符串输出时,不输出`0` 。 例:cout<<”a” <<`a`<<endl; 结果:aa
第二章 基本数据类型与输入输出 2.1 字符集与保留字 2.2 基本数据类型 2.3 变量定义 2.4 常量 2.5 常量定义 2.6 I/O流控制 2.7 printf与scanf 小结
2.5 常量定义 分类: (1)常数 (2)符号常量:代表固定不变值的名字。 符号常量定义格式: (1)const 类型名 符号常量名=常量表达式; // C++ (2)#define 符号常量名 常数 // C 宏定义
2.5 常量定义(续1) 优点:提高程序可读性;一改全改。 说明: (1)常量定义必须初始化,之后只能对其读不能修改。 (2)常量名不能放在赋值语句的左边。 (3)常量表达式中不能含有函数。 例:const float pi=3.1415926 ; //ok #define pi 3.1415926 //ok const int size=100*sizeof(int); //ok const int number=max(15,23); //error
第二章 基本数据类型与输入输出 2.1 字符集与保留字 2.2 基本数据类型 2.3 变量定义 2.4 常量 2.5 常量定义 2.6 I/O流控制 2.7 printf与scanf 小结
2.6 I/O控制流 主要内容: 1. I/O的书写格式 2. 使用控制符 3. 控制浮点数值显示 4. 设置值的输出宽度 5. 输出8进制和16进制 6. 设置填充字符 7. 左右对齐输出 8. 强制显示小数点和符号
1.I/O的书写格式 (1) <<:称插入操作符,向cout输出流中插入字符。 (2) >>:称抽取操作符,从cin输入流中取字符。 cin和cout能自动识别变量位置和类型。 例: cout <<”This is a program.\n”; int i; float f; long l; cin>>i>>f>>l;
2.使用控制符 用控制符(manipulators)可以对I/O流的格式进行控制。控制符是在头文件iomanip.h中定义的对象,可直接将控制符插入流中。 使用控制符时,要在程序的头上加头文件iomanip.h。
控制符 描述 dec hex oct setfill(c) setprecision(n) setw(n) setiosflags(ios::fixed) setiosflags(ios::scientific) setiosflags(ios::left) setiosflags(ios::right) setiosflags(ios::skipws) setiosflags(ios::uppercase) setiosflags(ios::lowercase) 置基数为10 置基数为16 置基数为8 设填充字符为c 设显示小数精度为n位 设域宽为n个字符 固定的浮点显示 指数表示 左对齐 右对齐 忽略前导空白 16进制数大写输出 16进制数小写输出 P23 表2-4 I/O流的常用控制符
3.控制浮点数值显示 setprecision(n): 控制输出流显示浮点数的数字个数。 C++默认的流输出数值有效位是6;最小有效位数为1。 特例: (1)与setiosflags(ios::fixed)合用: setprecision(n)控制小数点右边的数字个数(小数位数)。 setiosflags(ios::fixed):是用定点方式表示实数。
3.控制浮点数值显示(续1) 特例:(续) (2)与setiosflags(ios::scientific)合用: setprecision(n)控制指数表示法的小数位数。setiosflags(ios::scientific):是用指数方式表示实数。 注意:小数位数截短显示时,进行四舍五入处理。
3.控制浮点数值显示(续2) 例: //ch2-1.cpp #include <iostream.h> #include <iomanip.h> //要用到格式控制符 void main( ) { double amount = 22.0/7; cout <<amount<<endl; //3.14286 cout <<setprecision(0) <<amount <<endl //3 <<setprecision(1) <<amount <<endl //3 <<setprecision(2) <<amount <<endl //3 <<setprecision(3) <<amount <<endl //3.1 <<setprecision(4) <<amount <<endl; //3.14
3.控制浮点数值显示(续3) 例:(续) cout <<setiosflags(ios::fixed); cout <<setprecision(8)<<amount <<endl; //3.14285714 cout <<setiosflags(ios::scientific) <<amount <<endl; //3.14285714e+00 cout <<setprecision(6); //重新设置成原默认设置 }
4.设置值的输出宽度 setw(n):设置输出宽度。 说明: (1)如果一个值字符需要比setw(n)确定的字符数更多的字符,则该值按实际宽度输出。 (2)如果一个值的字符数比setw(n)确定的字符个数更少,则在数字字符前显示空白。setw(n)仅影响下一个数值输出。 (3)setw()的默认值为宽度0,即setw(0)。 例:float amount=3.14159; cout<<setw(4)<<amount<<endl; 结果:3.14159
5.输出8进制和16进制 hex、oct、dec:分别对应16进制、8进制、10进制数的显示。它们在iostream.h头文件中定义。 说明: 用头文件iomanip.h中的setiosflags(ios::uppercase)可以控制16进制数大写输出。
5.输出8进制和16进制(续) 例://ch2-2.cpp #include<iomanip.h> void main() {int number = 1001; cout<<”Decimal:”<<dec<<number<<endl <<”Hexadecimal:”<<hex<<number<<endl <<”Octal:” <<oct<<number<<endl; } 结果:Decimal:1001 Hexadecimal:3e9 Octal:1751
6.设置填充字符 setw()确定显示的宽度。默认时,流使用空格符来保证字符间的正确间隔。 用setfill控制符可以确定一个非空格的别的字符。setfill在头文件iomanip.h中定义。
6.设置填充字符(续) 例://ch2-3.cpp #include<iostream.h> #include<iomanip.h> void main() { cout<<setfill(`*`)<<setw(2)<<21<<endl <<setw(3)<<21<<endl<<setw(4)<<21<<endl; cout<<setfill(` `); //恢复默认设置 } 结果:21 *21 **21
7.左右对齐输出 默认时,I/O流左对齐显示的内容。使用头文件iomanip.h的setiosflags(ios::left)和(ios::right)标志,可以控制输出对齐。
7.左右对齐输出(续) 例://ch2-4.cpp #include<iostream.h> #include<iomanip.h> void main() { cout<<setiosflags(ios::right)<<setw(5)<<1 <<setw(5)<<2<<setw(5)<<3<<endl; cout<<setiosflags(ios::left)<<setw(5)<<1 <<setw(5)<<2<<setw(5)<<3<<endl; } 结果: 1 2 3 1 2 3
8.强制显示小数点和符号 (1)当需要显示小数点时,用ios::showpoint标志。 (2)默认时,I/O流仅在负数之前显示值的符号,在正数之前加上正号,用ios::showpos标志。
8.强制显示小数点和符号(续1) 例://ch2-5.cpp #include<iostream.h> #include<iomanip.h> void main() { cout<<10.0/5 <<endl; cout<<setiosflags(ios::showpoint) <<10.0/5 <<endl; } 结果:2 2.00000
8.强制显示小数点和符号(续2) 例://ch2-6.cpp #include<iostream.h> #include<iomanip.h> void main() { cout<<10<<〞〞<<-20<<endl; cout<<setiosflags(ios::showpos) <<10<<〞〞<<-20<<endl; } 结果:10-20 +10 -20
第二章 基本数据类型与输入输出 2.1 字符集与保留字 2.2 基本数据类型 2.3 变量定义 2.4 常量 2.5 常量定义 2.6 I/O流控制 2.7 printf与scanf 小结
2.7 printf和scanf 主要内容: 引言 1. printf函数 2. scanf函数
引言 printf和scanf是标准输入输出函数。它们是C程序输入输出必不可少的,在头文件stdio.h中声明了这两个函数。
1.printf函数 (1)printf函数的一般格式: printf(格式控制字符串,输出项1,输出项2,…) 功能:将后面的参数按给定的格式输出。 说明:格式控制字符串中包括: (1)格式说明符:由“%”和格式字符组成; 作用:将输出的数据转换成指定的格式输出。 (2)普通字符:原样输出字符。 输出项n是需要输出的一些数据,可以是表达式。