首页 C++简单程序设计

C++简单程序设计

举报
开通vip

C++简单程序设计null第二章 C++简单程序设计第二章 C++简单程序设计C++语言程序设计本章主要内容*本章主要内容C++语言概述(熟悉) 基本数据类型和表达式(重点) 数据的输入与输出(熟悉) 算法的基本控制结构(重点) 自定义数据类型(了解)C++语言的产生*C++语言的产生C++出于C而胜于C 引入类机制,最初被称为“带类的C” 1983年正式取名为C++ 从1989年开始C++语言的标准化工作 1994年制定了ANSI C++标准草案 1998年11月被(ISO)批准为国际标准C++语言概述C++的诞生*C++的诞生 ...

C++简单程序设计
null第二章 C++简单程序设计第二章 C++简单程序设计C++语言程序设计本章主要内容*本章主要内容C++语言概述(熟悉) 基本数据类型和表达式(重点) 数据的输入与输出(熟悉) 算法的基本控制结构(重点) 自定义数据类型(了解)C++语言的产生*C++语言的产生C++出于C而胜于C 引入类机制,最初被称为“带类的C” 1983年正式取名为C++ 从1989年开始C++语言的标准化工作 1994年制定了ANSI C++标准草案 1998年11月被(ISO)批准为国际标准C++语言概述C++的诞生*C++的诞生 C++的创始人: Bjarne stroustrup (AT&T Bell实验室)C++的特点*C++的特点全面兼容C 它保持了C的简洁、高效和接近汇编语言等特点 对C的类型系统进行了改革和扩充 C++也支持面向过程的程序设计,不是一个纯正的面向对象的语言 支持面向对象的方法C++语言概述C++程序实例—例2-1*C++程序实例—例2-1//2_1.cpp #include using namespace std; int main() { cout<<"Welcome to c++!"< 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 、类(数据成员、成员函数) 程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何。 语句以英文分号结束;书写格式自由 预处理命令 以#开头的语句 注释 单行 // 多行 /* */ (C语言原有的注释方式)C++字符集*C++字符集大小写的英文字母:A~Z,a~z 数字字符:0~9 特殊字符: 空格 ! # % ^ & * _(下划线) + = - ~ < > / \ ' " ; . , : ? ( ) [ ] { }C++语言概述词法记号*词法记号关键字 C++预定义的单词 标识符 程序员声明的单词,它命名程序正文中的一些实体 文字 在程序中直接使用符号表示的数据 操作符 用于实现各种运算的符号 分隔符 () {} , : ; 用于分隔各个词法记号或程序正文 空白符 空格、制表符(TAB键产生的字符)、换行符(Enter键所产生的字符)和注释的总称C++语言概述标识符的构成规则*标识符的构成规则以大写字母、小写字母或下划线_开始 可以由以大写字母、小写字母、下划线_或数字0~9组成。 大写字母和小写字母代表不同的标识符。 大小写敏感C++语言概述用户自定义标识符*用户自定义标识符合法的: apple、_Student、_123、No1、max_num 不合法的: 51job、max-num、abc$、 float、true 良好的标识符命名习惯 1、Unix常用的命名法 my_age、num_of_student 2、驼峰式命名法 myAge、numOfStudent 3、匈牙利标记法 iMyCar、bIsRight2.2 基本数据类型*2.2 基本数据类型什么是数据类型? 数据是程序处理的对象,根据其本身的特点进行分类,形成不同的数据类型。 例:数学中有自然数、整数、实数 基本数据类型 整型:int 字符型:char 实型:单精度float、双精度double 逻辑型:boolnull* 基本类型 有序型 字符型(char) 整型(int、 short、long) 布尔型(bool) 浮点型 单精度型(float) 双精度型(double) 构造类型 枚举型(enum) 数组 结构体(struct) 共用体(union) 类(class) 指针类型 null*修饰符 在C++中描述为了更加准确的描述数据类型,提供了4个关键字用来修饰基本的数据类型: 1、长型 long 2、短型 short 3、有符号 signed 4、无符号 unsignednull*1、short: 仅用来修饰int,称为短整型,占2字节内存,也可直接简写为short; 2、long: 仅修饰int和double,在不同的编译环境中使用long修饰的数据所占内存不同。 3、unsigned: 用来修饰char、short和int,表示该数据类型为无符号数。 4、signed: 用来修饰char、short和int,表示该数据类型为有符号数,为缺省设置。数据类型 —整型数据及取值范围*数据类型 —整型数据及取值范围类型 说明符 位数 数值范围 短整 short 16 -32768~32767 基本 int 32 -231~(231-1) 长整 long 32 -231~(231-1) 无符号 unsigned short 16 0~65535 unsigned [int] 32 0~(232-1) unsigned long 32 0~(232-1) 基本数据类型和表达式数据类型和内存空间*数据类型和内存空间不同的数据类型,加上不同的修饰符,在内存中占用的空间不同,其所能表示的数值范围也不同。 内存单元的单位是字节,因此用来表示数据类型的长度的单位也是字节。 整型int的长度等于机器的字长: 16位机:int=2字节; 32位机:int=4字节。 long int在32位系统中一般为4字节,但在64位系统一般位 8字节。 float和double型数据的有效位数分别为6位、15位unsigned int与signed int的比较*unsigned int与signed int的比较指定为signed的数据以补码形式存放,存储单元中的最高位(bit)用来表示数值的符号。指定为unsigned的数据,全部二进制位都用来表示数值本身。例:短整型数据占两个字节null*float 4字节 精度:3.4×10±38 6位有效数字 double 8字节 精度:1.7×10±308 15位有效数字 long double 8字节 精度:1.7×10±308 15位有效数字数据类型—实型数据实型常量: 1.23默认为double型 1.23F或1.23f为 float型 1.23L为long double型常量*常量1. 在程序运行过程中,值不能被改变的量称为常量。 2. 文字常量是指可直接使用的常量。 3. 文字常量分为整形、实型、字符型和字符串型常量。 常量*常量1.整型常量 (1)十进制整数,如:789, -456 (2)八进制整数,如:0102,-026 (3)十六进制整数,如:0x789, -0xAB (4)长整型与无符号型整数 长整型整数,如:12L, 0234L,-0xABl 无符号型整数,如:12U, 0234U,0xABU常量*常量2.实型常量 在内存中以浮点形式存放,均为十进制数,无数制区分。 (1)小数形式: 1.65,1.,.123 (2)指数形式:1.23e5、1.23e-5、1e3 数据类型 ——字符型数据*数据类型 ——字符型数据字符常量 单引号括起来的一个字符, 如:'a', 'D', '?', '$' 字符变量 用来存放字符 例:char c1,c2; c1='a'; c2='A'; 字符数据在内存中的存储形式 以ASCII码存储,占1字节,用7个二进制位基本数据类型和表达式 数据类型 ——字符型数据*字符串常量 例:"CHINA" "a" 'a' 所以:char c; c="a"; 数据类型 ——字符型数据基本数据类型和表达式转义字符*转义字符\a 响铃(喇叭声) \n 回车 \t 向右跳过一个水平制表符 \nnn 八进制数表示 注意:每一位数字n<8 \xhh 十六进制数表示 数据类型 ——布尔型数据* 数据类型 ——布尔型数据布尔型变量的说明: 例:bool flag; 布尔型数据的取值: 只有 false 和 true 两个值基本数据类型和表达式变量*变量在程序运行中,值可变的量称为变量。 变量的三要素:变量名、内存空间和值。 1定义变量: bool b; char gender, ch; int a, b ; double dx ; float f ; unsigned u ; 变量*变量2 变量赋值 (1)变量定义后,用赋值语句赋初值。 int a; a = -12+100; (2)在定义变量的同时,初始化。 int a = 12; ★ 变量不赋值,其值是什么? 数据类型 ——变量初始化* 数据类型 ——变量初始化例: int a=3; double f=3.56; char c='a'; int c(5);基本数据类型和表达式2.2.4 符号常量*2.2.4 符号常量例如:const double pi=3.14159; 常变量具有变量的三个要素。所以又称为常变量 必须在定义时赋初值,且在程序的运行中值不可变。 编译器可对常变量进行类型检查。2.2.5 运算符和表达式*2.2.5 运算符和表达式运算符: 一元:负数- 逻辑非! 按位取反 ~ 二元:+ - * / %等 三元运算符:条件运算?: 关键字运算符:sizeof new delete 强制类型转换 运算需要考虑 运算符的功能 对操作数的要求(个数、类型) 运算符的优先级(见表2.4) 运算符的结合性(见表2.4 )算术运算符与算术表达式*算术运算符与算术表达式基本算术运算符 + - * /(若整数相除,结果取整) %(取余,操作数为整数) 运算符不能省略,a*(x+b) 优先级与结合性 先乘除,后加减,同级自左至右基本数据类型和表达式试一试*试一试 温度转换公式 求一元二次方程ax2+bx+c=0的根 x1=? x2=? 12运算符与表达式*运算符与表达式关系运算符与关系表达式 六种:==、!=、>=、>、<=、< 运算符的优先级:由高到低: 1、>=、>、<=、< 2、==、!= 关系表达式的结果类型为bool,只能为true或false 注意:不要把 "= "当成等号用! 例:设int a=0; 则a==0为true ,而a=0为falsenull*int a=1, b=2, c=3; cout<<(a==b)<=b)<b>a)<3&&2||8<4 true 例3: 3&&0&&9 false 例2、3涉及"表达式短路"概念: 如果多个表达式用&& 或 || 连接,为了提高判断效率,只要能够确定表达式的结果,运行就不再继续了。 例4:闰年的判别:设年份为y,当下式为真时为闰年: y%4==0 && y%100 !=0 || y%400==0 增1、减1运算*增1、减1运算运算符:++和--分别表示将操作数增1、减1 操作对象:整型或字符型变量 根据操作数的位置不同,分为前置和后置两种 ++i 先自身加1,再将加1的值作为表达式的值 i++ 将i作为表达式的值,然后自身再加1。 --i 先自身减1,再将加1的值作为表达式的值 i-- 将i作为表达式的值,然后自身再减1。 结合性:从右向左null*#include using namespace std; void main() { int i =1; cout<<"i="<>=,&=,^=,|= 例 a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8)基本数据类型和表达式逗号运算符与逗号表达式*逗号运算符与逗号表达式逗号运算符,又叫"顺序求值运算符" 优先级最低。 格式: 表达式1,表达式2,……,表达式n; 依次计算表达式1,表达式2,……,表达式n的值,并将表达式n的结果作为逗号表达式的结果 例1:逗号表达式a=3*5, a*4的值? 60 例2: int a, b, c, x, y; a=3, b=4, c=a+b; x=b+c, a; x值为11,表达式值为3 y=(b+c, a) y和整个表达式值都为3null*① x=(a=3,6*3) a值为3, x值为18 ② x=a=3,6*a a值为3, x值为3 逗号表达式其实是把若干个表达式"串联"起来。使用逗号表达式是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用于for循环语句中。 在用cout输出一个逗号表达式的值时,要将该逗号表达式用括号括起来,如 cout<<(3*5, 43-6*5, 67/3)<b?a:b;基本数据类型和表达式sizeof 运算符*sizeof 运算符作用:获取不同数据类型或表达式所占据的字节长度 格式:sizeof (类型名) 或sizeof (表达式) 结果值: “类型名”所指定的类型或“表达式”的结果类型所占的字节数。 例:sizeof (char) sizeof(bool) sizeof(float) sizeof(int) 、 sizeof(short)、 sizeof(long)比较 sizeof(10+3.14)位运算——按位与(&)*位运算——按位与(&)运算规则 将两个运算量的每一个位进行逻辑与操作 举例: 计算 3 & 5 3: 0 0 0 0 0 0 1 1 5:(&) 0 0 0 0 0 1 0 1 3 & 5: 0 0 0 0 0 0 0 1基本数据类型和表达式位运算——按位或(|)*位运算——按位或(|)运算规则 将两个运算量的每一个位进行逻辑或操作 举例: 计算 3 | 5 3: 0 0 0 0 0 0 1 1 5:(|) 0 0 0 0 0 1 0 1 3 | 5: 0 0 0 0 0 1 1 1基本数据类型和表达式按位取反运算~*按位取反运算~按位取反是一个一元运算符,它的作用是将两个操作数对应的每一位分别进行取反操作。 具体运算规则:~1=0,~0=1。 例如:计算~5 5:0 0 0 0 0 1 0 1 ~5:1 1 1 1 1 0 1 0 比较:!0与~0的区别: cout< < >= <= == != 位运算:& ^ | 逻辑:&& || 三目:?: 赋值运算:= += *= ... 逗号运算低高基本数据类型和表达式null*数据类型转换*数据类型转换数据类型转换 当表达式中出现多种数据类型的混合运算时,往往需要进行类型转换。表达式中的类型转换分成两种: 1、隐式类型转换(自动转换) 2、强制类型转换 混合运算时的类型转换* 混合运算时的类型转换不同类型数据进行混合运算时,C++编译器会自动进行类型转换。 为了避免不同的数据类型在运算中出现类型问题,应尽量使用同种类型数据。 可以采用强制类型转换: 例如: float c; int a,b; c=float(a)/float(b); 或 c=(float)a/(float)b; 数据类型转换*数据类型转换1、隐式类型转换 各种二元运算符在进行运算时都要求两个操作数的数据类型一致。如果类型不一致,则系统自动对数据进行转换(隐式类型转换)。 转换的基本原则: 将精度较低、范围较小的类型转换成精度较高、范围较大的类型。 char→short→int→long→float→double赋值过程中的类型转换*赋值过程中的类型转换赋值运算符要求"="左右两边的操作数数据类型相同,如果类型不一致,则自动将右边的操作数类型向着左边的操作数类型转换。 (1) 将浮点型数据(包括单、双精度)赋给整型变量时,舍弃其小数部分。 (2) 将整型数据赋给浮点型变量时,数值不变,但以指数形式存储到变量中。 (3) 将一个double型数据赋给float变量时,要注意数值范围不能溢出。 字符型数据赋给整型变量,将字符的ASCII码赋给整型变量。 逻辑运算符要求参与运算的操作数为bool类型,如果是其他类型,则系统自动将其转换成bool类型,转换规则:0为false,非0为true。null*例:将一个int、short或long型数据赋给一个char型变量,只将其低8位原封不动地送到char型变量(发生截断)。例如 short int i=289; char c; c=i; //将一个int型数据赋给一个char型变量 赋值情况如图。设short int型数据占2个字节 null*(6) 将signed(有符号)型数据赋给长度相同的unsigned(无符号)型变量,将存储单元内容原样照搬(连原有的符号位也作为数值一起传送)。 例2.5 将有符号数据传送给无符号变量。 #include using namespace std; void main( ) { unsigned short a; short int b= -1; a=b; cout<<″a=″< using namespace std; int main( ) { cout << 1 << "/ 3 =" << (float)1/3 << endl; cout << 1 << "/ 3 =" << float(1)/3 << endl; cout << 1 << "/ 3 =" << float(1/3) << endl; return 0; }语句*语句声明语句 表达式语句 选择语句 if语句,switch语句 循环语句 while,do while,for语句 跳转语句 break, continue, goto 复合语句 {......}语句的概念*语句的概念表达式语句格式:表达式; 例:s=a*b; i++; 表达式与表达式语句的区别: if((a=b)>0)t=a; √ if((a=b;)>0)t=a; 返回语句 return 表达式 空语句 只有语句结束符 ";"的语句 控制语句的种类: 分支、循环、转向…复合语句*复合语句将多个语句用一对大括号包围,便构成一个复合语句 例如 { sum=sum+i; i++; } 2.3 数据的输入输出*2.3 数据的输入输出向标准输出设备(显示器)输出 例:int x; cout<<"x="<>x; 1)从键盘输入时默认的分隔符为空格,也可以用回车、TAB键。 2)不许在cin中加变量名以外的符号,例:逗号 算法的基本控制结构*顺序结构 分支结构 循环结构算法的基本控制结构选择结构*选择结构if…else语句 1、没有else分支 2、双分支 3、多分支 4、if 语句的嵌套if-else 语句*if-else 语句1、没有else分支 例:比较x和y的大小,如果x大,则输出x的值 if ( x>y ) cout<y ) cout< void main() { int year; cin>>year; if (year % 4==0 && year %100 != 0 || year % 400==0) cout<<"闰年"< using namespace std; void main() { char ch; cout<<"输入字符:"<>ch; if (ch>= '0'&& ch<= '9') cout<<"是数字"< void main() { int x; cin>>x; if(x>=90) cout<<"优秀"<=80) cout<<"良好"<=60) cout<<"合格"<0) if(x>=0) if(x!=0) y=1; else y=0; else y=-1; 或者: y= (x>=0)?(x!=0)?1:0:-1;例:输出a,b,c中较大的数*例:输出a,b,c中较大的数#include void main(){ int a,b,c; cin>>a>>b>>c; if (a>b) if (a>c) cout<c) cout<b?(a>c?a:c):(b>c?b:c ) );if…else 语句*if…else 语句注意:二义性 int a= -2, b=1, c=2; if (a>x; switch(x/10) { case 10: case 9:cout<<"优秀"< void main() { int day; cin >> day; switch (day) { case 0: cout << "Sunday" << endl; break; case 1: cout << "Monday" << endl; break; case 2: cout << "Tuesday" << endl; break; case 3: cout << "Wednesday" << endl; break; case 4: cout << "Thursday" << endl; break; case 5: cout << "Friday" << endl; break; case 6: cout << "Saturday" << endl; break; default: cout << "Day out of range "<< endl; } }输入年、月,计算该月有多少天?*输入年、月,计算该月有多少天?#include void main() { int y,m,d; cin>>y>>m; switch(m){ case 1:case 3:case 5:case 7:case 8: case 10:case 12: d=31;break; case 4:case 6:case 9:case 11: d=30;break; case 2: d=(y%4==0&&y%100!=0||y%400==0)?29:28; break; default:cout<<"输入错!"; } cout<<"day="< using namespace std; void main() { int i=1; while (i<=9) { cout< using namespace std; void main() { int sum=0, i=1; while(i<=10) { sum+=i; i++; } cout< using namespace std; void main() { unsigned char ch=32; while(ch<128) { cout<<(int)ch<<'\t'< void main() { int k=1, sum=0, n; cout<<"input n(n>0):"; cin>>n; while(k<=n) { sum=sum+k*k; k++; } if(n>0) cout< void main() { int k=1,sum=0,n; cout<<"input n(n>0):"; cin>>n; while(k<=n) { sum=sum+k*k; k++; } if(n>0) cout< using namespace std; int main() { int i,sum(0); cin>>i; while(i<=10) { sum+=i; i++; } cout<<"sum="< using namespace std; int main() { int i, sum(0); cin>>i; do{ sum+=i; i++; }while(i<=10); cout<<"sum="< using namespace std; void main() { for (int i=1;i<10;i++) cout< using namespce std; void main() { int sum=0; for (int i=1;i<=10;i++) sum+=i; cout<可以省略 for(int i=1 ; i<=9 ; i++) 循环体; int i=1; for( ; i<=9 ; i++) 循环体;for循环语句使用说明*for循环语句使用说明2、<表达式2>可以省略 for(int i=1; i<=9; i++) 循环体; for(int i=1; ; i++) { if (i<=9) 循环体; else break; //跳转语句,用来跳出循环 }for循环语句使用说明*for循环语句使用说明3、<表达式3>可以省略 for(int i=1; i<=9; i++) 循环体; for(int i=1; i<=9; ) { 循环体; i++; }for循环语句使用说明*for循环语句使用说明3、<表达式1> <表达式3>同时省略 for(int i=1; i<=9; i++) 循环体; int i=1; for(; i<=9; ) { 循环体; i++; }for循环语句使用说明*for循环语句使用说明5、极端情况,可实现无限循环 for( ; ; ) //分号不能省略 { 循环体; }三种循环语句的比较*三种循环语句的比较1)for 最适合循环次数固定,循环规律非常明显程序。 2)while 最常使用的循环结构。 3)do_while 最适合至少循环一次的循环结构。null*例2-8: 输入一个整数,求出它的所有因子 #include using namespace std; int main() { int n, k; cout << "输入一个正整数: "; cin >> n; cout << "正整数" << n << "的因子:"; for (k=1; k <= n; k++) if (n % k == 0) cout << k << " "; cout << endl; }循环结构与选择结构相互嵌套*循环结构与选择结构相互嵌套//求100~200之间不能被3整除的数 #include using namespace std; int main() { int n; for(n=100; n<=200; n++) { if (n%3!=0) cout< using namespace std; int main() { int i=0,j=0,n; cout<<"请输入若干整数(输入0则结束):"; cin>>n; while( n!=0 ) { if(n>0) i++; if(n<0) j++; cin>>n ; } cout<<"正整数个数:"<
本文档为【C++简单程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_672950
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2014-01-08
浏览量:10