一,上次的课后练习答案

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

【C++基础教程】第二课的更多相关文章

  1. NeHe OpenGL教程 第二课:多边形

    前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢 ...

  2. Android OpenGL教程-第二课【转】

    第二课 你的第一个多边形: 在第一个教程的基础上,我们添加了一个三角形和一个四边形.也许你认为这很简单,但你已经迈出了一大步,要知道任何在OpenGL中绘制的模型都会被分解为这两种简单的图形. 读完了 ...

  3. CI(CodeIgniter)框架入门教程——第二课 初始MVC

    本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中 ...

  4. [原创]零基础R语言教程---第二课---R语言入门

    这节教程简单描述了R语言中常用的数据类型, 向量,字符串,矩阵,列表,数据框,以及附带了一个小例子 对于这节课所附带的例子需要做下列补充: 1.这个例子面向于对整列的数据进行预测 2.如果你需要求单行 ...

  5. Jquery基础教程第二版学习记录

    本文仅为个人jquery基础的学习,简单的记录以备忘. 在线手册:http://www.php100.com/manual/jquery/第一章:jquery入门基础jquery知识:jquery能做 ...

  6. Ruby 基础教程 第二部分 Ruby 的基础 第4章

    第二部分 Ruby 的基础 第4章~第6章 这一部分是 Ruby 编程需要遵守的规则. 第四章 对象,变量与常量 对象 & 类 对象的常见种类: 数值对象 字符串对象 数组.散列对象 正则表达 ...

  7. python基础教程-第二章-列表和元组

    本章将引入一个新的概念,:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在 一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构 ...

  8. PHP基础教程-54课-问题

    question: $arr = array(1,2,3,4); /*如何通过foreach 将数组变成 $arr = arry(2,4,6,8) */ 起初用: $arr = array(1,2,3 ...

  9. C语言基础课程 第二课 HelloWorld不为菜鸟所知的秘密

    1    愉快的开端hello world    4 1.1    include头文件包含    4 1.2    main函数    4 1.3    注释    4 1.4    {}括号,程序 ...

  10. 第二章、元组和列表(python基础教程第二版 )

    最基本的数据结构是序列,序列中每个元素被分配一个序号-元素的位置,也称索引.第一个索引为0,最后一个元素索引为-1. python中包含6种内建的序列:元组.列表.字符串.unicode字符串.buf ...

随机推荐

  1. Git出错:“Please make sure you have the correct access rights and the repository exists.”

    此问题是需要重置ssh密钥 解决步骤如下: 1.重置用户名和邮箱: 打开Git Bash 进入Git命令,输入以下命令 git config --global user.name "你的用户 ...

  2. Linux文件系统只读 解决方案:

    Linux系统Read-only file system,文件系统只读排查解决方案:文件系统只读机制:当文件系统自身的校验机制发现文件系统存在问题时,为避免文件系统受到进一步的损坏,系统会把文件系统设 ...

  3. DVWA(六):XSS-Reflected 反射型XSS全等级详解

    XSS 概念: 由于web应用程序对用户的输入过滤不严,通过html注入篡改网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击. XSS类型: Reflected(反射型):只是简单的 ...

  4. DVWA-全等级文件上传

    DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...

  5. miniFTP项目实战六

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  6. python关于多级包之间的引用问题

    首先得明确包和模块. 包:在一个目录下存在__init__.py,那么该目录就是一个包. 模块:一个.py文件就是一个模块. 我们可以通过from 包 import 模块来引入python文件, 也可 ...

  7. zlib开发笔记(三):zlib库介绍、在ubuntu上进行arm平台交叉编译

    前言   方便做嵌入式arm的交叉移植zlib库.   Zlib库   zlib被设计为一个免费的,通用的,法律上不受限制的-即不受任何专利保护的无损数据压缩库,几乎可以在任何计算机硬件和操作系统上使 ...

  8. Linux搭建Ldap服务器

    一,服务器安装 yum install -y openldap openldap-clients openldap-servers migrationtools 二,配置ldap服务器 2.1配置ld ...

  9. NOIP 模拟 $28\; \rm 遗忘之祭仪$

    题解 \(by\;zj\varphi\) 直接贪心模拟即可,对于每个点,如果它未被覆盖,直接在这覆盖一次. 每个黑点只会被扫一次,所以总复杂度为 \(\mathcal O\rm (nm)\) Code ...

  10. Ubuntu18.04忘记root密码,重置root密码

    输入命令,更新root密码: sudo passwd root 然后输入新密码,再输入一次确认新密码,新密码更新完毕! 切换root账号: su 如下图所示,发现已经由zyw账号切换到root账号了!