C++PRIMER第二章前半部分答案

时间:2021-08-16 23:19:01

C++PRIMER第二章前半部分答案

哈哈哈,为什么是前半部分呢,后半部分还在学习中,重新系统性的学习c++,共同进步嘛,不多说,跟我一起来看看吧,第三章开始才是新手收割的时候,慢慢来~~

2.1&2.2

// 1.尺寸不同也就是可表示的数据大小不同,无符号和有符号即一个是所有bit都来存储值表示数据没有符号,另一个则相反,float与double即表示精度范围不同,double更精准些
// 2.利率,本金,付款都可选用double,因为浮点数运算通常选double
// 当然,学过java的都知道,这方面要用bigdecimal存储,当然现在不用了解

2.3&2.4

#include <iostream>
int main()
{
unsigned u = 10, u2 = 42;
std::cout << u2 -u << std::endl;//32
std::cout << u -u2 << std::endl;//模-32 int i = 10, i2 = 42;
std::cout << i2 - i << std::endl;//32
std::cout << i - i2 << std::endl;//-32
std::cout << i - u << std::endl;//0
std::cout << u - i << std::endl;//0
}

2.5&2.6&2.7

// (a). 'a', L'a', "a", L"a"     字符, 宽字符, 字符串, 宽字符串
// (b). 10, 10u, 10L, 10uL, 012, 0xC int, unsigned int, long int, unsigned long int, 8进制, 16进制
// (c). 3.14, 3.14f, 3.14L double, float, long double
// (d). 10, 10u, 10., 10e-2 int, unsigned int, double, double // int month = 9, day = 7;
// int month = 09, day = 07;
// 有,后者8进制,09会发生编译错误,因为9>8 // (a)"Who goes with F\145rhus?\012" 字符串 Who goes with Ferhus?\n \145 10进制为101 ASCII码表对应字母e, \012 10进制为10 对应换行
// (b)3.14e1L 31.4 long double
// (c)1024f 1024.0 float
// (d)3.14L 3.14 long double

2.8

#include <iostream>
int main()
{
std::cout << "2M\n" << std::endl;
std::cout << "2\tM\n" << std::endl;
}

2.9&2.10

#include <iostream>

std::string global_str;
int global_int;
int main()
{
//std::cin >> int input_value; //不可以 >>含义为右侧变量赋值 对变量赋值并不是初始化,初始化不等于赋值!!! ,先定义 input_value即可
//int i = { 3.14 }; //不可以,列表初始化在赋值可能丢失信息的危险时不被允许 改为i(3.14)或去掉{}即可
//double salary = wage = 9999.99; //不可以 wage为salary赋值时未定义,先定义wage即可
//int i = 3.14; //可以,i为3
int local_int;
std::string local_str;
std::cout << global_str << "\n" << global_int << "\n" << local_int << "\n" << local_str << "\n" << std::endl; //空字符串,0,0空字符串
}

2.11

#include <iostream>
extern int ix = 1024;//定义,切记不可在函数体内使用,只可全局使用
int iy;//定义
extern int iz;//声明

2.12

#include <iostream>
//int _diy;//不建议在函数体外部以下划线开头
int main()
{
//int double = 3.14; //不可使用关键字
//int _; // 可以
//int and = 2; // 不可使用操作符替代名
//int catch-22; //不可出现-
//int 1_or_2 = 1; //不可数字开头
//int wu__hu = 1; //不建议连续使用两个下划线
//int _Soyu =2; //不建议使用下划线后大写字母
//double Double = 3.14; // 可以,对大小写字母敏感
}

2.13

#include <iostream>
int i = 42;
int main()
{
int i = 100;
int j = i;
std::cout << j << std::endl; //j=100;
}

2.14

#include <iostream>
int main()
{
int i = 100, sum =0;
for (int i = 0; i != 10; ++i)
sum += i;
std::cout << i << " " << sum << std::endl;//合法,sum为1-9累加和
}

2.15

#include <iostream>
int main()
{
//int ival = 1.01;//可
//int &rvall = 1.01;//不可初始值必须为对象且为int型对象
//int &rval2 = ival;//可
//int &rval3;//不可需赋初始值
}

2.16

#include <iostream>
int main()
{
int i = 0, &r1 = i;
double d = 0, &r2 = d;
r2 = 3.14159;//d = 3.14159
r2 = r1;//d = i
i = r2;//i = d
r1 = d;//i = d
}

2.17

#include <iostream>
int main()
{
int i,&ri = i;
i = 5; ri = 10; // i = 5 ; i = 10;
std::cout << i << " " << ri << std::endl;// 10 10
}

2.18

#include <iostream>
int main()
{
int i = 42;
int *p = &i;
*p = 52;// i = 52
std::cout << i << "\n" << p << std::endl;
p = 0;// 指针p 指向空地址
std::cout << i << "\n" << p << std::endl;
}

2.19

// 指针可以更改需要指向的对象,引用一经引用即终生绑定一个对象不可更改

2.20

#include <iostream>
int main()
{
int i = 42;
int *p1 = &i;//p指向i的地址
*p1 = *p1 * *p1;// i = i*i
std::cout << i << "\n" << *p1 << std::endl;// i i
}

2.21

#include <iostream>
int main()
{
//int i = 0;
//double* dp = &i;//类型不同
//int *ip = i;//需初始化地址
//int *p = &i;//合法 }

2.22

#include <iostream>
int main()
{
int *p = nullptr;
if (p) //p的地址如果为0就false,如果不为空则true
{
;
}
if (*p) //p指向的内容如果为0就false,如果不为0则true
{
;
}
}

2.23

//可以,查看是否赋予的是否为相同类型的地址或nullptr或0或NULL(不建议)

2.24

#include <iostream>
int main()
{
//int i = 42;
//void *p = &i;//void 可以存放任意类型对象的地址
//long *lp = &i;//类型不对
}

2.25

#include <iostream>
int main()
{
//int* ip,i,&r=i;// ip为int型指针,i为int ,r为int i的引用
//int i,*p = 0;// i为int , p为空指针
//int* ip,ip2;// ip为int型指针 ip2为int
}

C++PRIMER第二章前半部分答案的更多相关文章

  1. c&plus;&plus;primer 第二章编程练习答案

    2.7.1 #include<iostream> int main() { using namespace std; ]; ]; cout << "input nam ...

  2. C&plus;&plus; Primer &colon; 第二章:变量和基本类型&lpar;1&rpar;

    变量和基本类型之第一篇:基本内置类型和变量 一. (1) C++定义了一套包括算数类型和空类型,这些类型有:布尔类型bool,字符类型char,宽字符类型wchar_t,Unicode字符char16 ...

  3. C&plus;&plus;Primer 第二章

    //1.程序尽量避免依赖于实现环境的行为.比如:如果将int的尺寸看成一个确定不变的已知值,那么这样的程序就称为不可移植的. typedef int int32; //使用类似的typedef,可以有 ...

  4. C语言程序设计&&num;183&semi;谭浩强(第四版)第二章课后习题的答案,算法——程序的灵魂

    C语言程序小练习 1.用C语言设计程序算出1-1/2+1/3-14+1/5...+1/99-1/100的值 #include<stdio.h> int main() { ; double ...

  5. &lt&semi;&lt&semi;C&plus;&plus; Primer&gt&semi;&gt&semi; 第二章 变量和基本类型 术语表

    术语表 第 2 章 变量和基本类型 地址(address): 是一个数字,根据它可以找到内存中的一个字节    别名生命(alias declaration): 为另一种类型定义一个同义词:使用 &q ...

  6. 后半部分样式和JS前半部分脚本语言

    样式 剩余样式: 1.<div style=display:"none"></div>:nono 是隐藏该元素内容,block是显示该元素内容 2.< ...

  7. C&plus;&plus; Primer 第二章 引用 指针 const限定符

    1.引用: 为对象起了另外一个名字,引用类型引用另外一种类型,通过将声明符写成&d的形式来定义引用类型,其中d也就是声明的变量名(声明符就是变量名). PS:1.通过图片中编译所提示的报错信息 ...

  8. 显示段落p中的前半部分内容 剩下的用三个点代替,点击更多时显示所有内容

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. C&plus;&plus; Primer 第二章 学习笔记

    在auto一个引用时,auto会忽略顶层const,而保存底层const decltype(sum()) x = i; // I的类型就是sum()返回值的类型

随机推荐

  1. 利用ftp端口设置,浅谈windows防火墙之应用&plus;ftp直接资源管理器登陆

    win服务器的版本是不错的.防火墙也比较能用.server-u 6.4则是比较稳定.兼容性好的的版本,所以很多人在用 1.服务器为了安全,一般开启windows高级防火墙,在网络连接处右键鼠标,有弹出 ...

  2. 9、JPA&lowbar;映射双向一对一的关联关系

    双向一对一的关联关系 举例说明:经理Manager和部门Department是双向一对一关联关系.则Manager实体类中有Department实体对象的引用,反之亦然. 其实体属性定义如下: Lis ...

  3. QTP场景恢复之用例失败自动截图

    以下代码是在QC里运行QTP来执行脚本过程,当执行过程中发现用例失败后就会自动截图,然后把用例返回到最初始的状态,模拟了场景恢复的机制 Class QCImageErrorCapture Dim qt ...

  4. angurlajs 如何绑定Jquery

    //绑定Jqueryfunction bindJQuery() { // bind to jQuery if present; jQuery = window.jQuery;//获取windows 的 ...

  5. Classifying plankton with deep neural networks

    Classifying plankton with deep neural networks The National Data Science Bowl, a data science compet ...

  6. UVA 3890 Most Distant Point from the Sea(二分法&plus;半平面交)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=11358 [思路] 二分法+半平面交 二分与海边的的距离,由法向量可 ...

  7. &lt&semi;经验杂谈&gt&semi;查询表结构的SQL语句

    在我们使用SQL数据库的过程中,经常会遇到查询表结构的情况,以下就是sql语句的写法: --查询非系统数据库 SELECT name FROM Master..SysDatabases 查询数据库下所 ...

  8. mysql主从备份&plus;keepalived自动切换

    数据库这一层需要做到避免单点故障可以是主从备份和主主备份,主主备份可能有性能损耗和数据同步的问题.这里记录下主从备份, mysql进行备份之前确保mysql的版本是一样的,我这里用的都是mysql5. ...

  9. Java之mybatis详解

    文章大纲 一.mybatis介绍二.mybatis代码实战三.项目源码下载四.参考文章   一.mybatis介绍 1. mybatis是什么?   mybatis是一个持久层的框架,是apache下 ...

  10. Java内存模型(和堆栈等不是同一层次的划分)

    什么叫Java内存模型? 现代计算机通过指令的重排序来提升计算机的性能,而没有限制条件的指令重排序会使得程序的行为不可预测,JMM就是通过一系列的操作规则限制指令重排序的方式使得指令重排序不会破坏JM ...