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

C++第2课时—变量


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

例2、从键盘上输入2个整数,然后求和输出 源程序: #include<iostream> using namespace std; 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
c++集锦2 隐藏>> 用static 声明静态局部变量 有时希望函数中的局部变量的值在...用 20 个元素代表数列中的 20 个数,从第三个数开始,可以直接用表达式 f[i...
C++第10周第1次课总第20次课
C++程序设计教案 第 10 周第 1 次课 总第 20 次课 课题:变量的存储与作用...调用函数 fun1(int,int), fun1(int,int)的执行过程中又调用函数 fun2(...
第1课 C到C++的升级
C 语言中的 const 变量 C 语言中 const 变量是只读变量,有自己的存储空间。 ...第0课 学习C++的意义 第2课 C++中的引用1/2 相关文档推荐 第1课c语言基础...
C++小型数据库课程设计
2 C++高级程序语言课程设计——数据库 课程设计的工具 , 课程设计的工具 2....- 关联变量 - 关联好的变量 注: 8 C++高级程序语言课程设计——数据库 3.3...
第五章 C、C++语言变量和常量
关键词:CC++语言 1/2 同系列文档 第一章 C、C++语言程序漫谈... 第二章 ...第五章 变量和常量 5.1 从类型到变量公孙龙的“白马非马” 5.1.1 公孙龙...
C++程序设计(第2版)第七章习题解答
7.1.1 C/C++定义了 4 个内存区间: (1) , (2) , (3) 和 (4) . 答案: (1)代码区,存放程序代码; (2)全局变量与静态变量区,存放全局变量或...
中南大学-电信15-C++课程学习知识个人难点总结(四、五)
2.C++中,一般内存为一个指针变量分配 4 个字节;如果一个指针变 量指向 int ...第七课_个人收入与分配知... 1页 免费 电信行业入门知识总结 5页 3下载券...
C++第二章作业
[1]<<”\n”; } 执行结果:输出随机数 2、分析下列程序的执行结果 #include...C++没有提供访问引用本身地址的方法,因为它与指针或其它变量的 地址不同,它没...
C++第二章实验报告
C++第二章实验报告_数学_自然科学_专业资料。西安交通大学实验报告一. 实验目的 1.熟悉掌握数据的各种类型。 2.学会对常量的声明方法,掌握变量的声明、初始化以及...
更多相关标签: