【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;
}

 

posted @ 2021-07-07 10:13  计算机知识杂谈  阅读(200)  评论(0编辑  收藏  举报