《C++ Primer 第5版》第二章 参考答案

合集下载

C PRIMER PLUS第五版中文版第二章答案

C   PRIMER PLUS第五版中文版第二章答案
void rattle(int n);参数为 int , 没有返回值。 int prune(void);无参数,返回值为 int; 10 没有返回值。 2.7 编程题。 1 #include <iostream> using namespace std; int main() { cout << "my name is yqd" << endl; cout << "my address is haikou" << endl; system("pause"); } 2 #include <iostream> using namespace std; int exchange(int); int main() {
int main() {
SetASen(); (); SetASen2(); SetASen2();
system("pause"); } void SetASen() {
cout << "Three blind mice" << endl; } void SetASen2() {
cout << "See how they run" << endl; } 4 #include <iostream> using namespace std; double Temperature(double); int main() {
cout << "Please enter a Celsius value: " << endl; double a; cin >> a; double b = Temperature(a); cout << a << " degree Celsius is " << b << " degrees Fahrenheit." << endl;

C Primer Plus(第5版)习题答案

C Primer Plus(第5版)习题答案

Chapter 5
PE 5-1
/* Programming Exercise 5-1 */ #include <stdio.h> int main(void) { const int minperhour = 60; int minutes, hours, mins; printf("Enter the number of minutes to convert: "); scanf("%d", &minutes); while (minutes > 0 ) { hours = minutes / minperhour; mins = minutes % minperhour; printf("%d minutes = %d hours, %d minutes\n", minutes, hours, mins); printf("Enter next minutes value (0 to quit): "); scanf("%d", &minutes); } printf("Bye\n"); return 0; }
August 21, 1999
Answers For Programming Exercises in C Primer Plus, 5rd Edition, by Stephen Prata
return 0; } void jolly(void) { printf("For he's a jolly good fellow!\n"); } void deny(void) { printf("Which nobody can deny!\n"); }

C-primer-plus(第五版)课后编程练习答案

C-primer-plus(第五版)课后编程练习答案

第一章概览编程练习1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。

该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸= cm)的程序。

他们希望建立的该程序可提示用户输入英寸值。

您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。

1.将英寸值转化为厘米值2.显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束.第二章 C语言概述编程练习1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。

输出应如下所示(当然里面要换成您的姓名):Anton BrucknerAntonBrucknerAnton Bruckner第一个输出语句'第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include<>int main(void){、printf("He Jin\n");printf("He\n");printf("Jin\n");printf("He Jin\n");return(0);},2.编写一个程序输出您的姓名及地址。

#include<>int main(void){printf("Name:He Jin\n");…printf("Address:CAUC\n");return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。

不用考虑平年( fractional year)和闰年(leapyear)的问题。

#include<>(int main(void){int age=22;printf("Age:%d\n",age);printf("Day:%d\n",age*356);return(0);}%4.编写一个能够产生下面输出的程序:For he's a jolly good fellow!For he's a jolly good fellow!For he's a jolly good fellow!Which nobody can deny!程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。

(完整版)Cprimerplus(第五版)课后编程练习答案

(完整版)Cprimerplus(第五版)课后编程练习答案

1 步和第 2 步)。
1. 将英寸值转化为厘米值 2. 显示“输入英寸值” -> 得到该值 -> 转换为厘米值 -> 存储 -> 告知用户已结束
第二章 C 语言概述
编程练习
1 .编写一个程序,调用 printf() 函数在一行上输出您的名和姓,再调用一次
printf() 函数在两个
单独的行上输出您的名和姓,然后调用一对 printf() 函数在一行上输出您的名和姓。输出应如下所示(当
#include<stdio.h>
int main(void) { int toes=10; int toes_add; int toes_square; toes_add=toes+toes; toes_square=toes*toes; printf("toes=%d\ntoes_add=%d\ntoes_square=%d\n",toes,toes_add,toes_square); return(0); }
2 .编写一个程序输出您的姓名及地址。
#include<stdio.h>
int main(void) { printf("Name:He Jin\n"); printf("Address:CAUC\n"); return(0); }
3 .编写一个程序,把您的年龄转换成天数并显示二者的值。不用考虑平年 和闰年 (leapyear) 的问题。
程序中除了 main() 函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次: 另一个用于把最后一行输出一次。
#include<stdio.h>
void printf1(void); void printf2(void);

C语言程序设计第五版谭浩强课后答案(第二章答案)

C语言程序设计第五版谭浩强课后答案(第二章答案)

C语⾔程序设计第五版谭浩强课后答案(第⼆章答案)⽬录1. 什么是算法?试从⽇常⽣活中找3个例⼦,描述它们的算法2. 什么叫结构化的算法?为什么要提倡结构化的算法?3. 试述3种基本结构的特点,请另外设计两种基本结构(要符合基类结构的特点)。

4. ⽤传统流程图表⽰求解以下问题的算法。

5. ⽤N-S图表⽰第4题中各题的算法6. ⽤伪代码表⽰第4题中各题的算法7. 什么叫结构化程序设计?它的主要内容是什么?8. ⽤⾃顶向下、逐步细化的⽅法进⾏以下算法的设计:1. 什么是算法?试从⽇常⽣活中找3个例⼦,描述它们的算法算法:简⽽⾔之就是求解问题的步骤,对特定问题求解步骤的⼀种描述。

⽐如⽣活中的例⼦:考⼤学⾸先填报志愿表、交报名费、拿到准考证、按时参加考试、收到录取通知书、按照⽇期到指定学校报到。

去北京听演唱会⾸先在⽹上购票、然后按时坐车到北京,坐车到演唱会会场。

把⼤象放进冰箱先打开冰箱门,然后将⼤象放进冰箱,关冰箱。

2. 什么叫结构化的算法?为什么要提倡结构化的算法?结构化算法:由⼀些顺序、选择、循环等基本结构按照顺序组成,流程的转移只存在于⼀个基本的范围之内。

结构化算法便于编写,可读性⾼,修改和维护起来简单,可以减少程序出错的机会,提⾼了程序的可靠性,保证了程序的质量,因此提倡结构化的算法。

3. 试述3种基本结构的特点,请另外设计两种基本结构(要符合基类结构的特点)。

结构化程序设计⽅法主要由以下三种基本结构组成:顺序结构:顺序结构是⼀种线性、有序的结构,它依次执⾏各语句模块选择结构:选择结构是根据条件成⽴与否选择程序执⾏的通路。

循环结构:循环结构是重复执⾏⼀个或⼏个模块,直到满⾜某⼀条件位置重新设计基本结构要满⾜以下⼏点:只有⼀个⼊⼝只有⼀个出⼝结构内的每⼀部分都有机会执⾏到结构内不存在死循环因此给出以下复习结构:while型和until型循环复合以及多选择结构4. ⽤传统流程图表⽰求解以下问题的算法。

C++primer第五版第二章习题答案

C++primer第五版第二章习题答案

C++primer第五版第⼆章习题答案2.1 类型int ,long,long long ,short 的区别是什么?最⼩尺⼨⽐如,int最⼩尺⼨为16位,long 32位。

8位⼀字节。

⽆符号类型和符号类型区别?当然是能不能表⽰负值了。

Float和double区别有效数字6和10.2.2 都⽤double,double和float计算代价基本相同,不⽤⽩不⽤!其实不太懂按揭贷款可能有的⽤int吧2.3 和2.42^32 = 4 294 967 296-32=4294967264!!2.5(a)⼀个是有前缀L,‘a’找能容纳其数值的尺⼨最⼩者;L‘a’最少是wchar_t另⼀个区别是字符和字符串字⾯值的区别(b)尺⼨问题以及\后加⼋进制数和16进制数的表⽰⽅法(c)尺⼨问题(d)科学计数表⽰浮点型字⾯值2.6int i=9; 这个9就是我们平时说的9;int i=09; 这个本⾝就有错,0开头的是8进制的,只有0到7这些数字,不可能出现9,举例:int i=013; 换算成⼗进制就是1*8+3=11;另外,i=0x9,这个也是9,不过是⼗六进制的,有0到9加a到f这些数字字母,举例:int i=0x1a; 换算成⼗进制就是1*16+10=26; in ti=07 ok2.7(a).图⽚没看见光标,\012是换⾏(b)(c)(d)略2.82.9(a)报错意外的类型int(b)⾮法转换未执⾏因为存在丢失信息的危险。

但在vs2010中编译通过结果为i=3 (c)wage未声明的标识符(d)合法i=32.10#includestd::string globle_str;//定义于函数体外初始化为0;int globle_int;//定义于函数体外初始化为0;int main(){int local_int;//显⽰是随机值,未被初始化,若访问将引发错误;std::string local_str;//显⽰是随机值,未被初始化,若访问将引发错误;}2.11(a)定义(b)声明并定义(c)声明2.12(a)(c)(d)⾮法2.13422.14100,452.15(a)合法结果丢失精度(b)引⽤类型的初始值必须是⼀个对象(c)此处引⽤类型的初始值必须是⼀个int对象(d)引⽤必须初始化2.16(a)r2和d都是3.14159(b)r1=0 r2=0.00000(c)r2=0.0000 i=0(d)r1=0 d=0.00002.1710,10关键概念之指针引⽤符号的多重含义Int &r2=*p;的意义?可见r2是p地址中内容的引⽤!!2.18分别改变指针的值以及指针所指对象的值2.19⼀指针本⾝是对象,允许对指针赋值拷贝。

标准c程序设计第5版答案

标准c程序设计第5版答案

标准c程序设计第5版答案【篇一:c-primer-plus(第五版)编程练习全部答案.】练习1.您刚刚被 macromuscle 有限公司(software for hard bodies)聘用。

该公司要进入欧洲市场,需要一个将英寸转换为厘米(1 英寸=2.54 cm)的程序。

他们希望建立的该程序可提示用户输入英寸值。

您的工作是定义程序目标并设计该程序(编程过程的第 1 步和第 2 步)。

1.将英寸值转化为厘米值2.显示“输入英寸值”-得到该值-转换为厘米值-存储-告知用户已结束第二章 c 语言概述编程练习1.编写一个程序,调用 printf()函数在一行上输出您的名和姓,再调用一次 printf()函数在两个单独的行上输出您的名和姓,然后调用一对 printf()函数在一行上输出您的名和姓。

输出应如下所示(当然里面要换成您的姓名):anton brucknerantonbruckneranton bruckner第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#includestdio.hint main(void){printf(he jin\n);printf(he\n);printf(jin\n);printf(he jin\n);return(0);}2.编写一个程序输出您的姓名及地址。

#includestdio.hint main(void){printf(name:he jin\n);printf(address:cauc\n);return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。

不用考虑平年( fractional year) 和闰年(leapyear)的问题。

#includestdio.hint main(void){int age=22;printf(age:%d\n,age);printf(day:%d\n,age*356);return(0);}4.编写一个能够产生下面输出的程序:for hes a jolly good fellow!for hes a jolly good fellow!for hes a jolly good fellow!which nobody can deny!程序中除了 main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。

c语言详解(第五版)第二章程序设计项目答案

c语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。

程序中要求与用户进行如下方式的交互。

#include<stdio.h>#include<stdlib.h>int main(void){float mile_1,mile_2,miles,consume,payment;printf("MILEAGE REIMBURSEMENT CALCULATOR\n");printf("Enter begainning odometer reading>\n");scanf("%f",&mile_1);printf("Enter endding odometer reading>\n");scanf("%f",&mile_2);printf("Enter consume per mile>\n");scanf("%f",&consume);miles=mile_2-mile_1;payment=miles*consume;printf("You traveled %f miles.At %f per mile,your reimbursementis %f",miles,consume,payment);system("pause");return(0);}2.编写一个程序,用于辅助设计水力发电大坝。

提示用户输入大坝高度,以及水流量。

如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。

#include<stdio.h>#include<stdlib.h>int main(void){double density,weight,gravitational_acceleration,efficiency,height,water_flow_rate,work,electricity_power;printf("Please type in the density of water>");scanf("%lf",&density);printf("Please type in the gravitational_acceleration>");scanf("%lf",&gravitational_acceleration);printf("Please type in the height of the water>");scanf("%lf",&height);printf("Please type in the efficiency of the transformation \nfrom water to electricity>");scanf("%lf",&efficiency);printf("Please type in the water_flow_rate>");scanf("%lf",&water_flow_rate);weight=density*water_flow_rate;work=weight*height*gravitational_acceleration;electricity_power=work*efficiency/1000000;printf("The electric energy production is %fW",electricity_power);system("pause");return 0;}3.编写一个程序,用于预测冰箱内的温度,断电后经过的时间是给定的。

C++Primer课后习题解答(第1~18章完整答案)完整版

C++Primer课后习题解答(第1~18章完整答案)完整版

目录第一章快速入门 (2)第二章变量和基本类型 (7)第三章标准库类型 (13)第四章数组和指针 (21)第五章表达式 (31)第六章语句 (37)第七章函数 (37)第八章标准IO库 (37)第九章顺序容器 (43)第十章关联容器 (60)第十一章泛型算法 (75)第十二章类和数据抽象 (86)第十三章复制控制 (94)第十四章重载操作符与转换 (102)第十五章面向对象编程 (116)第十六章部分选做习题 (133)第十七章用于大型程序的工具 (138)第十八章特殊工具与技术 (138)第一章快速入门习题 1.1查看所用的编译器文档,了解它所用的文件命名规范。

编译并运行本节的main程序。

【解答】一般而言,C++编译器要求待编译的程序保存在文件中。

C++程序中一般涉及两类文件:头文件和源文件。

大多数系统中,文件的名字由文件名和文件后缀(又称扩展名)组成。

文件后缀通常表明文件的类型,如头文件的后缀可以是.h 或.hpp 等;源文件的后缀可以是.cc 或.cpp 等,具体的后缀与使用的编译器有关。

通常可以通过编译器所提供的联机帮助文档了解其文件命名规范。

习题1.2修改程序使其返回-1。

返回值-1 通常作为程序运行失败的指示器。

然而,系统不同,如何(甚至是否)报告main 函数运行失败也不同。

重新编译并再次运行程序,看看你的系统如何处理main 函数的运行失败指示器。

【解答】笔者所使用的Windows 操作系统并不报告main 函数的运行失败,因此,程序返回-1 或返回0 在运行效果上没有什么区别。

但是,如果在DOS 命令提示符方式下运行程序,然后再键入echo %ERRORLEVEL%命令,则系统会显示返回值-1。

习题1.3编一个程序,在标准输出上打印“Hello, World”。

【解答】#include<iostream>int main(){std::cout << "Hello, World" << std::endl;return 0;}习题1.4我们的程序利用内置的加法操作符“+”来产生两个数的和。

C-primer-plus课后编程练习答案

C-primer-plus课后编程练习答案

C-p r i m e r-p l u s(第五版)课后编程练习答案(总107页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第一章概览编程练习1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。

该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸= cm)的程序。

他们希望建立的该程序可提示用户输入英寸值。

您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。

1.将英寸值转化为厘米值2.显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束第二章 C语言概述编程练习1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。

输出应如下所示(当然里面要换成您的姓名):Anton BrucknerAntonBrucknerAnton Bruckner第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include<>int main(void){printf("He Jin\n");printf("He\n");printf("Jin\n");printf("He Jin\n");return(0);}2.编写一个程序输出您的姓名及地址。

#include<>int main(void){printf("Name:He Jin\n");printf("Address:CAUC\n");return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。

不用考虑平年( fractional year)和闰年(leapyear)的问题。

Cprimerplus(第五版)课后编程理解练习答案解析

Cprimerplus(第五版)课后编程理解练习答案解析

第一章概览编程练习1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。

该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸=2.54 cm)的程序。

他们希望建立的该程序可提示用户输入英寸值。

您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。

1.将英寸值转化为厘米值2.显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束第二章 C语言概述编程练习1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。

输出应如下所示(当然里面要换成您的姓名):Anton BrucknerAntonBrucknerAnton Bruckner第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include<stdio.h>int main(void){printf("He Jin\n");printf("He\n");printf("Jin\n");printf("He Jin\n");return(0);}2.编写一个程序输出您的姓名及地址。

#include<stdio.h>int main(void){printf("Name:He Jin\n");printf("Address:CAUC\n");return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。

不用考虑平年( fractional year)和闰年(leapyear)的问题。

#include<stdio.h>int main(void){int age=22;printf("Age:%d\n",age);printf("Day:%d\n",age*356);return(0);}4.编写一个能够产生下面输出的程序:For he's a jolly good fellow!For he's a jolly good fellow!For he's a jolly good fellow!Which nobody can deny!程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。

Cprimerplus(第五版)课后编程练习答案(完整)

Cprimerplus(第五版)课后编程练习答案(完整)

C_primer_plus(第五版)课后编程练习答案(完整)第一章概览编程练习1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。

该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸=2.54 cm)的程序。

他们希望建立的该程序可提示用户输入英寸值。

您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。

1.将英寸值转化为厘米值2.显示“输入英寸值”-&gt;得到该值-&gt;转换为厘米值-&gt;存储-&gt;告知用户已结束第二章C语言概述编程练习1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。

输出应如下所示(当然里面要换成您的姓名):Anton BrucknerAntonBrucknerAnton Bruckner第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include&lt;stdio.h&gt;int main(void){printf("He Jin\n");printf("He\n");printf("Jin\n");printf("He Jin\n");return(0);}2.编写一个程序输出您的姓名及地址。

#include&lt;stdio.h&gt;int main(void){printf("Name:He Jin\n");printf("Address:CAUC\n");return(0);}3.编写一个程序,把您的年龄转换成天数并显示二者的值。

不用考虑平年( fractional year)和闰年(leapyear)的问题。

C++Primer第5版第二章课后练习答案

C++Primer第5版第二章课后练习答案

C++Primer第5版第⼆章课后练习答案练习2.1C++ 语⾔规定short 和 int ⾄少 16 位, long ⾄少32位, long long ⾄少64位.带符号类型可以表⽰整数、负数或0, ⽆符号类型则仅能表⽰⼤于等于0的值The C and C++ standards do not specify the representation of float, double and long double. It is possible that all three implemented as IEEE double-precision.C 和 C++标准没有指定float、double和long double的表⽰形式。

这三种都有可能为 IEEE 双精度。

练习2.2使⽤double或者是float练习2.332429496726432-32练习2.4练习2.5(a)字符字⾯值,宽字符型字⾯值,字符串字⾯值,宽字符型字符串字⾯值(b)带符号整型,⽆符号整型,长整型,⽆符号长整型,⼋进制整型(可能是带符号也可能是⽆符号),⼗六进制整型(可能是带符号也可能是⽆符号)(c)浮点类型字⾯值,单精度浮点类型(float),扩展精度浮点数(long double)(d)整型,⽆符号整型,浮点数,浮点数练习2.6有区别,第⼀组定义了两个⼗进制整数9和7,第⼆组第⼀个数是⽆效的⼋进制数,第⼆个是⼋进制数7.练习2.7(a)转义序列,\145为e,\012为换⾏;(b)3.41e1L: 扩展精度浮点数,为31.4;(c)1024f:单精度浮点数;(d)3.14L: 扩展精度浮点数3.14练习2.8#include <iostream>int main(){std::cout << "2\115\012";std::cout << "2\t\x4d\012";return0;}练习2.9(a)std::cin >> int input_value; 为默认初始化的整型input_value赋值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/* 测试环境:Visual Studio Community 2013
时间:2015/4/17
声明:本答案为wangzhenhuip@一六三.com个人经过编写测试所得,不得用于商业用途。

提示:切勿复制代码,手动输入更健康。

*/
第二章变量和基本类型
2.1
表示数的范围不同。

无符号类型表示的正数范围大于有符号类型表示的正数范围。

float为单精度浮点数,最小尺寸为6位有效数字;double为双精度浮点数,最小尺寸为10位有效数字。

2.2
利率:float,6位有效数字可以满足
本金:long long,国家级层面上的贷款可能比较多
付款:float。

2.3
32
4294967264
32
-32
//注,如果是i-U2?,答案为4294967264,为啥?当一个算数表达式中既有无符号数,又有int值时,那个int值就会转换成无符号数。

2.4
_(:з)∠)_
2.5
(a). 'a':字符字面值L'a':宽字符型字面值"a":字符串字面值L"a":宽字符字符串字面值
(b). 10:int 10u:unsigned 10L:long 10uL:unsigned long 012:八进制0xC:16进制
(c). 3.14:double 3.14f:float 3.14L: long double
(d). 10:int 10u:unsigned 10.:double 10e-2:double
2.6
有,第一行为十进制,第二行为八进制,且09格式错误。

2.7
(a).Who goes with Fergus? 字符串字面值
(b).3.14*10^1 long double
(c).float
(d)long double
2.8
#include<iostream>
int main()
{
std::cout << "\62\115\n" ;
return 0;
}
#include<iostream>
int main()
{
std::cout << "\62\t\115\n" ;
return 0;
}
2.9
a)error C2062: 意外的类型“int”. 先定义变量,再输入。

b)error C2397: 从“double”转换到“int”需要收缩转换。

int a=3.14;
c)error C2065: “wage”: 未声明的标识符.
d)对
2.10
global_int 为0;
其余不合法。

2.11
a)定义
b)声明并定义
c)声明
a,c,d.
2.13
100
2.14
100 45
2.15
b.引用类型的初始值必须是一个对象。

d.未初始化
2.16
a)合法
b)合法
c)合法
d)合法
2.17
10 10
2.18
#include<iostream>
int main()
{
int i = 100,j=10,*pi=&i;
++*pi;
std::cout << *pi<< std::endl;
pi = &j;
std::cout <<*pi<< std::endl;
return 0;
}
2.19
指针是一个对象,允许对指针赋值和拷贝,而且生命周期内它可以先后指向几个不同的对象指针无需在定义时赋初始值。

引用不是对象,没有实际地址。

2.20
2.21
a,指针类型不同
b,error C2440: “初始化”: 无法从“int”转换为“int *”
2.22
if(p) //如果p为非空指针,则为真
if(*p)//如果p所指向的对象不为0,则为真。

2.23
不能,往后看书,很后很后。

2.24
void指针可以存放任意对象的地址,而long指针lp不可以指向int型对象。

2.25
a)指针p,变量i,引用r
b)变量i,指针p
c)指针ip,变量ip2
2.26
a) 没有初始化
d) const不能改变
2.27
a)不合法,引用的值必须是一个对象。

b)√
c)√因为是const 引用
d)√
e)√
f)没初始化
g)√
2.28
a)常量指针没有初始化
b)同a
c)ic常量没有初始化
d)没有初始化,
e)没有初始化
2.29
b. error C2440: “初始化”: 无法从“const int *const ”转换为“int *”
c. error C2440: “初始化”: 无法从“const int”转换为“int *”
d.error C3892: “p3”: 不能给常量赋值
e. error C3892: “p2”: 不能给常量赋值
2.30
v2顶层;p2底层;p3靠右的顶层靠左的底层;r2底层;
2.31
p1=p2; ×,p2为底层,p1为变量指针。

p2=p1; √,
p1=p3;×,p3为底层(顶层可以忽略),p1为变量指针
p2=p3;√,都为底层。

2.32
error C2440: “初始化”: 无法从“int”转换为“int *”
改成*p=&null; 就行
2.33
d = 42; error C2440: “=”: 无法从“int”转换为“int *”
e = 42; error C2440: “=”: 无法从“int”转换为“const int *”
g = 42;不能给常量赋值;
2.34
_(:з)∠)_
2.35
j:int; k:const &; p:const int *; j2:const int; k2:const int*;
2.36
c int 3
d int & 3
c 4
d 4
2.37
c int 3
d int& 3
2.38
int a=1;
auto b=a; //int
decltype(a) c=a; //int
const int m=1;
auto n=m; //int
decltype(m) k=m; //const int
2.39
error C2628: “Foo”后面接“int”是非法的(是否忘记了“;”?) error C3874: “main”的返回类型应为“int”而非“Foo”
error C2440: “return”: 无法从“int”转换为“Foo”
2.40
2.41
2.42
_(:з)∠)_。

相关文档
最新文档