【C++基础教程】第二课
一,上次的课后练习答案
1,输出1+2=3
2,输出2 2.25 2.25 2.25
3,第一空iostream或bits/stdc++.h
第二空main(),main(void)或main(int argc,char* argv[])
第三空(1.0+2.0+3.0)
第四空return
二,变量的赋值和大小
今天我们开始讲变量相关的内容。变量存储在内存里面。
例如上图,我们定义一个叫做a的变量,并把这个变量设置为10。我们可以写如下的语句。
#include<iostream> using namespace std; int main(){ int a=10; }
实际上,变量既可以定义在main里面,也可以定义在main外面。
#include<iostream> using namespace std; int a=10; int main(){ }
这两种定义方式的区别我们等到以后再讲。
int表示这个变量用于存储整数。如果要存储小数,我们可以使用float或者是double类型。
#include<iostream> using namespace std; int main(){ float x=1.2; }
如果是存储字符,我们可以用char类型。
#include<iostream> using namespace std; int main(){ char c='A';//字符用单引号括起来 cout<<c; }
存储了变量后,我们如何输出变量呢?
非常简单,我们直接用cout即可。
#include<iostream> using namespace std; int main(){ float x=1.2; cout<<x; return 0; }
【题目】计算2147483647+1的值。
#include<iostream> using namespace std; int main(){ int a=2147483647,b=1; cout<<a+b; }
输出:-2147483648
看来这程序有问题。int类型可以存储-2147483648到2147483647的整数,对于2147483647,它超限了,所以溢出,输出了一个错误数据。我们可以使用long long类型来存储264以内的数。
#include<iostream> using namespace std; int main(){ long long a=2147483647,b=1; cout<<a+b; }
事实上,只需要其中一个变量定义为long long,结果就为long long了。
#include<iostream> using namespace std; int main(){ long long a=2147483647; int b=1; cout<<a+b; }
常用变量的范围(根据不同的环境可能会有差异)
short 短整型 -32768..32767
int 整型 -2147483648..2147483647
long long 长整型 -9 223 372 036 854 775 808..9 223 372 036 854 775 807
float 单精度浮点数 -3.4E-38..3.4E+38
double 双精度浮点数 -1.7E-308..1.7E+308
char 字符型 -128..127
三,课后练习一
1,阅读程序写结果:
#include<iostream> using namespace std; int main(){ int a=8; cout<<"a="<<a; return 0; }
2,阅读理解:
sizeof(变量)可以求出变量所占内存的大小。例如,sizeof(x),如果x为int类型的变量,由于int占4字节,sizeof(x)返回4.
试求出下面程序的运行结果:
#include<iostream> using namespace std; int main(){ long long a; cout<<sizeof(a); }
3,完善程序:
求出一个数加上0.2向下取整后的数值。假定这个数为变量a。
#include<iostream> using namespace std; int main(){ float a=1.7; cout<<__(1)___ ( a ___(2)___); return 0; }
四,变量的赋值和运算
【题目】阅读程序写结果。
#include<iostream> using namespace std; int main(){ int a,b; a=2; b=a+1; cout<<"b="<<b<<endl; }
b=a+1,把a+1的值给到b,因为a=2,所以a+1=3,所以b=3。
【题目】a=2,让a的值加上1后输出。
#include<iostream> using namespace std; int main(){ int a=2; a=a+1; cout<<a; return 0; }
a=a+1一句表示把a+1的值给到a,因为a=2,所以a+1=3,相当于把3给到a,所以a=3。
其实a=a+1一句还有简便写法。
#include<iostream> using namespace std; int main(){ int a=2; a+=1; cout<<a; return 0; }
a=a+b类似的语句,可以写成a+=b。同理,
a=a-b等同于a-=b
a=a*b等同于a*=b
a=a/b等同于a/=b
a=a%b等同于a%=b
如果让变量的值增加1或者减少1,我们还有一种写法。
a++ 和 ++a 都表示a+=1.
a-- 和 --a 都表示a-=1
但是,++(--)放在前面和放在后面有什么区别呢?
//程序段1 #include<iostream> using namespace std; int main(){ int a=0; cout<<++a<<endl; cout<<a; } //程序段2 #include<iostream> using namespace std; int main(){ int a=0; cout<<a++<<endl; cout<<a; }
我们测试一下,运行的结果是:
程序段1:1 1
程序段2:0 1
我们发现++和--的特性:
前置的++(或--)先+1,再执行语句中的操作(如输出)
后置的++(或--)先执行语句中的操作(如输出),再+1
五,课后练习二
1,阅读程序写结果:
#include<iostream> using namespace std; int main(){ int a,b; a=1;b=1; a=b++;cout<<a<<" "<<b<<endl; a=++b;cout<<a<<" "<<b<<endl; return 0; }
2,完善程序:已知一个三位数123,将它倒序输出。
#include<iostream> using namespace std; int main(){ int a=123; int gw,sw,bw;//个位,十位,百位 gw=a%__(1)___; sw=a/__(2)__%10; bw=a/__(3)__; cout<<gw<<__(4)__<<__(5)__; return 0; }