当前位置:首页 >> 学科竞赛 >>

C++第2课时—变量


C/C++初步第2课时
1、变量
程序往往是对输入的数据进行运算处理,然后输出结果。 那么这些数据如何处理?如何保存的呢? 输入的数据先储存在变量里,程序通过对变量读取、计算、 写入来处理这些数据。

例2、从键盘上输入2个整数,然后求和输出 源程序: #include<iostream> using namespace st

d; int main() { int a,b,sum; 第5行:int a,b,sum; cin>>a>>b; sum=a+b; 你能猜猜它是什么意思吗? cout<<sum; return 0; } 它是定义了a、b、sum三个整型变量。 这里的变量与数学中的变量不同,这里的变量是在内存中安排一个存放数据的场所。 a、b、sum是变量名,变量名是给这个场所取的一个名字,方便程序员识别。计算机识 别这个场所是根据它的地址来识别的。程序在编译的时候,编译程序会自动将变量名称 替换成实际分配储存单元的地址。储存单元的地址实际是储存单元的编号,有一串数字。 整型变量就是规定这个场所只能存放整数(4个字节)。

同样可以定义: char a[10],b; float x; double y;
? char是定义字符型变量,就是规定这个场所存放字符(1 个字节)。a[10]表示安排一个能存放10个字符的场所,b 表示安排一个能存放一个字符的场所 。

? float是浮点数,浮点数就是数学中的小数。float x;就是定 义一个浮点数变量x 。实际就是分配一个场所,这个场所 只能存放浮点数(4个字节)。 ? double是双精度浮点数,也是小数,只不过精度更高(8 个字节),float变量存放变量精度要低一些。

? 1、为什么称小数为浮点数?例如1234.89870 ? 1234.89870=123.489870×10=12.3489870×102=0. 00123489870×106 =0.123489870×104 ? 小数点的位置是浮动的,所以称之为浮点数。 2、计算机如何存放浮点数? 计算机中存放浮点数都是指数形式存放,且都是以规范化 的指数形式存放,即:“整数部分小于1,小数点后第一个数 字必须是个非0数字。”如:0.123489870×104 一般形式为: 数符 数字部分 指数部分

? ? ? ?

变量名的命名规则: 1)只能由英文字母、数字和下划线3种字符组成 2)首字符必须是字母或下划线,不能是数字 3)区分大小写,a和A表示两个不同的变量;一 般变量用小写字母 ? 4)变量名不得与系统中已经使用的关键字相同, 如main 、int、float、double、cin、cout、return 等 ? 5)变量名称不宜过长,一般不超过32个字符

例2、从键盘上输入2个整数,然后求和输出 源程序: #include<iostream> using namespace std; int main() { ? 第5行:cin>>a>>b; int a,b,sum; cin>>a>>b; ? cin代表键盘,>>为插入运算符,常常 sum=a+b; 配合cin使用。cin>>a>>b;表示从键盘 cout<<sum; 输入两个整数,分别存放在a和b两个 return 0; 变量所安排的储存空间里。 } 第6行:sum=a+b; 这里的“=”不是相等的意思,而是赋值的意思,表示把等 号右边的表达式经过计算处理所得结果赋给等号左边的变量。赋 值就是存放的意思,把“=”右边表达式的值存放到给变量分配的 存放数据的场所。

例2、从键盘上输入2个整数,然后求和输出 源程序: #include<iostream> using namespace std; int main() { 测试1:在第7行sum=a+b;后面插入一行: int a,b,sum; sum=26;再运行一下看看结果还是不是你输 cin>>a>>b; 入两个数之和? sum=a+b; cout<<sum; 输出显示结果是:26,不是输入两个数之和,这怎么 return 0; 回事?开始赋值给sum的两个数之和去哪里了? }

存储器存放的数据跟生活中存放实物东西不一样!这些实 物东西不会凭空消失。存储器是存放的一种状态,如果重新赋 值这种状态就发生改变,变成新的状态,原来的状态就消失了, 就像显示屏一样! 猜猜看这条语句是怎么回事?sum=sum+1;

测试2:修改上面程序输出a÷b的值,然后分别用下面的测试数据测试,并记下所得结 果。 源程序: #include<iostream> using namespace std; int main() { int a,b,sum; cin>>a>>b; sum=a/b; cout<<sum; return 0; }

输入数据 4 2 a÷b 2 4 8 5

答案 2 0.5 1.6

运行结果 2 0 1

运行所得结果跟你预想的结果一样吗?有什么问题没有?

整型/整型=整型
除数和被除数都是整数,结果如果有小数的话,它会直接取 整数部分,将小数部分丢弃(不是四舍五入)。

测试3:可以重新定义:float a,b,sum;;然后测试
源程序: #include<iostream> using namespace std; int main() { float a,b,sum; cin>>a>>b; sum=a/b; cout<<sum; cout<<endl; system(“pause”); return 0; }

输入数据

正确答案

运行结果

4 2
a÷b 2 4 8 5

2
0.5 1.6

请问:运行所得结果跟你预想的结果一样吗?

浮点数/浮点数=浮点数

测试4:将sum定义为浮点数类型,再用下面的测试数据测试看看,并记下所得结果。
源程序: #include<iostream> using namespace std; int main() { int a; float sum,b; cin>>a>>b; sum=a/b; cout<<sum; return 0; }

输入数据 4 2 a÷b 2 4

答案 2 0.5

运行结果 2 0.5

8 5

1.6

1.6

C/C++在运算过程中遇到精度不一样的变量计算, 为了保证计算的精度会先把低精度的变量值临时转换成 精度较高的那个变量相同的类型,然后再进行计算。如 果是浮点数统一转换成double类型,然后进行运算。

? ? ? ? ?

sum=a/b;运算过程是: 1)将a的值8,转换成double类型,即:8.00……0,并将这个结果存放在一个临时 double类型的变量中,这个变量由系统自动分配,我们假设这个变量为x; 2)将浮点数b的值转换成double类型,即:5.00….0,并将这个结果存放在一个临时 double类型的变量中,这个变量由系统自动分配,我们假设这个变量为y; 2)计算x/y,即:8.00……0/5.00……0=1.60…… 3)将结果1.60……0存放在sum变量

? 上面这种自动变量类型转换称为隐形变量类型转换。从上 述过程可以看出变量转换是临时的,是将转换后的结果放在一 个临时变量里,这个临时变量由系统自动分配,原变量的类型 并没有发生改变。

测试5:再改一下定义:int a,sum; float b;
源程序: #include<iostream> using namespace std; int main() { int a,sum; float b; cin>>a>>b; sum=a/b; cout<<sum; cout<<endl; system(“pause”); return 0; }

输入数据 运行结果 4 2 a÷b 2 4 8 5

请问:运行所得结果跟你预想的结果一样吗?
我们定义的变量sum是整型变量,只能存放整数。然而运算的结果有小数,它只好 只存放整数部分,而将小数部分丢弃!这种影响精度的情况要注意避免!

小结:

1、变量是在内存中安排一个存放数据的场所。变量名是给这个场所取的一个名 字,方便程序员识别。计算机识别这个场所是根据它的地址来识别的。程序在编译的 时候,编译程序会自动将变量名称替换成实际分配储存单元的地址。储存单元的地址 实际是储存单元的编号,是一串数字。 2、变量名的命名规则: 1)只能由英文字母、数字和下划线3种字符组成 2)首字符必须是字母或下划线,不能是数字 3)区分大小写,a和A表示两个不同的变量;一般变量用小写字母 4)变量名不得与系统中已经使用的关键字相同,如main 、int、float、double、 cin、cout、return等 5)变量名称不宜过长,一般不超过32个字符

3、通过前面几个测试我们可以确定以下事实: 1)变量重新赋值后新值覆盖原来的值,原来的值将消失。因此,如果原来的值以 后还有用,应该将它先保存再赋值。 2)整数/整数=整数 浮点数/浮点数=浮点数 3)运算过程中如果精度不一样,系统会自动分配临时变量将低精度变量的值转 换为高精度值进行计算。这种转换成为“隐形变量类型转换”


相关文章:
C++第二章 课后作业题
C​+​+​第​​章​ ​课​后​作​业​题...e) 修改 d)中的代码,编写一段程序确定 3 个整型变量中的最大值,用 largest...
C++程序设计-第二章-2.3变量 2.4C++运算符
C++程序设计-第二章-2.3变量 2.4C++运算符_计算机软件及应用_IT/计算机_专业资料。教学方案 授课题目 第二章 2.3 变量 2.4C++运算符 课 型 理论讲解 课 次...
第2课 C++中的引用
第2 课 C++中的引用 1.引用是 C++新增的概念,C 没有。 2.C 没有真正...在 C++中新增加了引用的概念 引用可以看作一个已定义变量的别名。 引用的语法...
C++第10周第2次课总第21次课
C++程序设计教案 第 10 周第 2 次课 总第 21 次课 课题:指针(一) 教学目标:掌握指针与地址的关系;掌握指针变量的定义、初始化和赋值 教学重点:指针变量的...
C++第2周第1次课总第3次课
C++第2周第1次课总第3次课_其它课程_初中教育_教育专区。C++程序设计教案 第 2 周第 1 次课 总第 3 次课 课题:第二个 C++程序 教学目标:理解变量与常量...
C++第2周第2次课总第4次课
C++程序设计教案 第 2第 2 次课 总第 4 次课 课题:第二C++程序 教学目标:理解变量与常量及其表示;了解 C++常用数据类型的概念和表示方法;掌握注释语句...
C++程序设计谭浩强第2章2013修订
C++程序设计谭浩强第2章2013修订_计算机软件及应用_IT/计算机_专业资料。c++课件...21 四、变量初始化(P28) C++允许在变量定义的同时为其赋初值(初始化)例如: ...
第2节 C++语言基础
第二C++语言基础一、C++对 C 的一般扩充 (1)当函数定义放在函数调用之后时...在使用变量之前,必须先利用标识符声明变量变量声明的一般形式如下: <数据...
c++程序设计第2、3次课基本要求
第2 次课:常量、变量和输入输出基本要求:☆常数表示 ☆变量的定义与读写操作 ☆输入输出 一、常量表示整型常量:十进制表示、八进制表示、十六进制表示,如:-123...
C++第2-3次课
C++第2-3次课 隐藏>> P25 语句: 以;作为结尾,一般一行写一个语句 分类: ...指针和字符串 1) 指针概念 地址意思; 运算符: &:取变量的地址 *:指针变量...
更多相关标签:
14.3.2公式法第一课时 | 2.1整式第一课时ppt | 2.1整式第二课时ppt | 14.3.2公式法第二课时 | 2.1整式第三课时ppt | 火烧云教案2课时 | 14.3.2公式法第2课时 | 儿童象棋入门 6课时 2 |