c++primer第五版第三章习题答案

合集下载

谢希仁计算机网络第五版(第3章)课后习题答案

谢希仁计算机网络第五版(第3章)课后习题答案

第三章数据链路层3­01 数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与“数据链路接通了”的区别何在?答:(1)数据链路与链路的区别在于数据链路除链路外,还必须有一些必要的规程来控制数据的传输。

因此,数据链路比链路多了实现通信规程所需要的硬件和软件。

(2)“电路接通了”表示链路两端的结点交换机已经开机,物理连接已经能够传送比特流了。

但是,数据传输并不可靠。

在物理连接基础上,再建立数据链路连接,才是“数据链路接通了”。

此后,由于数据链路连接具有检测、确认和重传等功能,才使不太可靠的物理链路变成可靠的数据链路,进行可靠的数据传输。

当数据链路断开连接时,物理电路连接不一定跟着断开连接。

3-02、数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。

答:数据链路层中的链路控制包括以下功能:链路管理;帧同步;流量控制;差错控制;将数据和控制信息分开;透明传输;寻址。

数据链路层做成可靠的链路层的优点和缺点:所谓“可靠传输”就是:数据链路层的发送端发送什么,在接收端就收到什么。

这就是收到的帧并没有出现比特差错,但却出现了帧丢失、帧重复或帧失序。

以上三种情况都属于“出现传输差错”,但都不是这些帧里有“比特差错”。

“无比特差错”与“无传输差错”并不是同样的概念。

在数据链路层使用CRC检验,能够实现无比特差错的传输,但这不是可靠的传输。

3-03、网络适配器的作用是什么?网络适配器工作在哪一层?答:络适配器能够对数据的串行和并行传输进行转换,并且能够对缓存数据进行出来,实现以太网协议,同时能够实现帧的传送和接受,对帧进行封闭等.网络适配器工作在物理层和数据链路层。

3-04、数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?答:帧定界使收方能从收到的比特流中准确地区分出一个帧的开始和结束在什么地方;透明传输使得不管所传数据是什么样的比特组合,都应当能够在链路上传送,因此很重要;差错控制主要包括差错检测和差错纠正,旨在降低传输的比特差错率,因此也必须解决。

C Primer习题集(第5版)

C   Primer习题集(第5版)

谢谢观看
读书笔记
读书笔记
第一次如此真切的觉得推荐算法是方便人生活的,而不是搭信息茧房。
目录分析
第1章开始
内容简介
第2章变量和基本 类型
第4章表达式
第3章字符串、向 量和数组
第5章语句
第6章函数 第7章类
第8章 IO库 第9章顺序容器
第11章关联容器
第10章泛算法
第12章动态内存
第13章拷贝控制
C++ Primer习题集(第5版)
读书笔记模板
01 思维导图
03 读书笔记 05 作者介绍
目录
02 内容摘要 04 目录分析 06 精彩摘录
思维导图
本书关键字分析思维导图
第版
编程
参考书
指南
模板
第章
拷贝
第版
习题
版 容器
面向对象
习题
设施
程序
向量
类型
标准库
变量
内容摘要
内容摘要
C++ Primer(Fifth Edition)由三位C++大师Stanley B. Lippman、Josée Lajoie和Barbara E. Moo 合作完成,其中文译本《C++ Primer中文版(第5版)》也已出版。与上一版相比,这一版基于C++11标准进行了 全面而彻底的内容更新;既是初学者的最佳指南,也是中高级程序员不可或缺的参考书。本书作为这部久负盛名 的C++经典教程的配套习题解答,提供了C++ Primer(Fifth Edition)中英文版图书中所有习题的参考答案。 本书对使用C++ Primer(Fifth Edition)学习C++程序设计语言的读者来说是一本非常理想的参考书。

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

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

7.编写一个程序,程序中要调用名为 one_three()的函数。该函数要在一行中显示单词"one", 再调用 two()函数, 然后再在另一行中显示单词"three"。 函数 two()应该能在一行中显示单词"two"。 main() 函数应该在调用 one_three()函数之前显示短语"starting now:",函数调用之后要显示"done!"o 这样, 最后的输出结果应如下所示: starting now one two three done !
第4章 编程练习
字符串和格式化输入/输出
1.编写一个程序,要求输入名字和姓氏,然后以“名字,姓氏”的格式打印。
#include<stdio.h> int main(void) { char surname[20],firstname[20]; printf("Please input your firstname and surname:"); scanf("%s",firstname); scanf("%s",surname); printf("You are %s,%s.\n",firstname,surname); 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); }

C程序设计(第五版)-第3章最简单的C程序设计—顺序程序设计课后习题答案

C程序设计(第五版)-第3章最简单的C程序设计—顺序程序设计课后习题答案

C程序设计(第五版)-第3章最简单的C程序设计—顺序程序设计课后习题答案1.假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。

计算公式为p = ( 1 + r ) n次⽅,其中 r为年增长率,n为年数,p为与现在相⽐的倍数。

#include <stdio.h>#include <math.h>/*** @brief* 假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。

* 计算公式为p = ( 1 + r ) n次⽅,其中 r为年增长率,n为年数,p为与现在相⽐的倍数。

** @return int*/int main(){float r, p, n;r = 0.07;n = 10;p = pow(1 + r, n);printf("p=%f\n", p);system("pause");return 0;}2、存款利息的计算。

有1000元,想存5年,可按以下5种办法存:(1)⼀次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每⼀季度结算⼀次2017年银⾏存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%;活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)如果r为年利率,n为存款年数,则计算本息的公式如下:1年期本息和: P= 1000* (1+r);n年期本息和: P= 1000* (1+n* r);存n次1年期的本息和: P=1000* (1+r)^n;活期存款本息和: P= 1000 *(1+r/4) ^{4n};说明: 1000 *(1+r/4)是⼀个季度的本息和。

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案Prepared on 24 November 2020习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。

【解答】(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if…else语句、while语句、dowhile语句、switch语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么它由哪几部分组成【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){inta1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){inta1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************IloveCprograms!*************************【分析与提示】①要有文件包含语句#include<>。

C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。

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

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第一个输出语句第二个输出语句仍然是第二个输出语句第三个和第四个输出语句#include<stdio.h>int main(void){printf("He Jin\n");printf("He\n");printf("Jin\n");printf("He Jin\n");}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()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。

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

C_primer_plus(第五版)课后编程练习答案(完整)
第一章 概览 编程练习
1.您刚刚被 MacroMuscle 有限公司(Software for Hard Bodies)聘用。该公司要进入欧洲市场,需 要一个将英寸转换为厘米(1 英寸=2.54 cm)的程序。他们希望建立的该程序可提示用户输入英寸值。您的 工作是定义程序目标并设计该程序(编程过程的第 1 步和第 2 步) 。
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); }
6.编写一个能够产生下列输出的程序: Smile ! Smile ! Smile Smile ! Smile ! Smile ! 在程序中定义一个能显示字符串 smile 卜一次的函数,并在需要时使用该函数。
5.编写一个程序,创建一个名为 toes 的整数变量。让程序把 toes 设置为 10。再让程序计算两个 toes 的和以及 toes 的平方。程序应该输出所有的 3 个值,并分别标识它们。
#include<stdio.h> int main(void) { int toes=10; int toes_add;
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()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次: 另一个用于把最后一行输出一次。

C++PRIMER PLUS 第五版第三章习题参考答案

C++PRIMER PLUS 第五版第三章习题参考答案
cin &gt;&gt; seconds;
Chapter 3
// pe3-1.cpp
#include &lt;iostream&gt;
const int Inch_Per_Foot = 12;
int main(void)
{
using namespace std;
// Note: some environments don't support the backspace character cout &lt;&lt; &quot;Please enter your height in inches: ___/b/b/b &quot;; int ht_inch;
cin &gt;&g&lt; &quot;Next, enter the minutes of arc: &quot;;
cin &gt;&gt; minutes;
cout &lt;&lt; &quot;Finally, enter the seconds of arc: &quot;;
int main()
{
using namespace std;
int degrees;
int minutes;
int seconds;
double latitude;
cout &lt;&lt; &quot;Enter a latitude in degrees, minutes, and seconds:\n&quot;; cout &lt;&lt; &quot;First, enter the degrees: &quot;;

3.c++ primer5第三章答案

3.c++ primer5第三章答案

3.10 答:#include<iostream> #include<string> using namespace std;
int main()
{
string s("chen, xun");
for (auto c : s)
{
if (!ispunct(c))
cout << c ;
}
cout << endl;
3.8 答:for (decltype(s.size()) index = 0; index != s.size(); ++index)
{
if (!isspace(s[index]))
s[index] = 'X';
}//当然是 for 范围语句更简单更加清晰
3.9 答: s 是一个空字符串,其长度为 0,输出第一个字符是不合法的。
string s, word; while (cin>>word)
{
s += word;
}
cout << s << endl;
}//按照要求只需把 s+=word 修改 s+=word+' ';即可
3.6 答:#include<iostream>
#include<string> using namespace std;
int main()
{
string s("chen xun");
for (auto &c:s)
{
பைடு நூலகம்
if (!isspace(c))

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

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

c语言详解(第五版)第三章程序设计项目答案1.假设买一辆车首付为500dollar。

请计算月供。

#include<stdio.h>#include<math.h>#include<stdlib.h>int main(void){double capital_sum,monthly_interest_rate,initial_payment,temp,payment,terms; printf("Please enter the price of the car>>");scanf("%lf",&capital_sum);printf("Please enter the monthly interest rate>>");scanf("%lf",&monthly_interest_rate);printf("Please enter the terms duration of loan>>");scanf("%lf",&terms);printf("Please enter the initial_payment>>");scanf("%lf",&initial_payment);temp=1+monthly_interest_rate;payment=(capital_sum-500)*monthly_interest_rate/(1-pow(temp,-terms));printf("The monthly contribution is %.2f dollars.",payment);printf("The capital sum is %.2f dollars.",capital_sum);system("pause");return 0;}2.编写两个函数,一个显示三角形,另一个显示矩形。

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

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

#include<stdio.h>
int main(void)
{
char a;
scanf("%d",&a);
printf("%c\n",a);
return(0);
}
3.编写一个程序,发出警报声,并打印下列文字:
Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that!"
第一章 概览
编程练习
1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸=2.54 cm)的程序。他们希望建立的该程序可提示用户输入英寸值。您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。
return(0);
}
void display(void)
{
printf("Smile!");
}
7.编写一个程序,程序中要调用名为one_three()的函数。该函数要在一行中显示单词"one",再调用two()函数,然后再在另一行中显示单词"three"。函数two()应该能在一行中显示单词"two"。main()函数应该在调用one_three()函数之前显示短语"starting now:",函数调用之后要显示"done!"o这样,最后的输出结果应如下所示:
Which nobody can deny!

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语言程序设计第五版习题答案

c语言程序设计第五版习题答案
intc;
c=a*b;
printf(‘%d’,c);
}
【答案】错误的地方有3处:(1)第2行关键字应该小写;(2)定义b时前面应该用逗号;(3)打印语句的格式应该用双引号括起来。
正确的程序如下:
#include<>
voidmain()
{
inta=6,b=8;
intc;
c=a*b;
printf("%d",c);
常用结论:
(1)在C语言中,字符数据可以按其ASCII代码值参加整数运算。由于英文字母在ASCII代码表中是按顺序排列的,所以在计算’o’+3代表的字母时,可从字符’o’其顺序向后取3个字母,该字母是“r”。
(2)从ASCII代码表可以看出“小写字母”-“对应大写字母”的结果是32,因此可推算出如下等式:大写字母的ASCII值+32=对应小写字母的ASCII值;小写字母的ASCII值-32=对应大写字母的ASCII值。
}
2.请修改下列程序,使其能够正确运行。
#include<>
voidmain();
{
floatf=;
charc=”c”;
printf(“%d\n”,int(f%3));
printf(“%c”,c);
}
【答案】错误的地方有3处:(1)第2行main();不应该有分号;(2)定义charc=”c”;
时,字符常量应该用单引号;(3)打印语句printf(“%d\n”,int(f%3));的格式有错,应该在f前的int用括号括起来,因为实型数据不能执行取余运算。
a1=10;
a2=20;
x=a1*a2;
printf(″a1=%d,a2=%d\n″,a1,a2);

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案
printf("************************\n");
}
第2章数据类型及其运算
一.简答题
1.C语言中的数据类型主要有哪几类
【解答】短整型(short int)
整型整型(int)
长整型(long int)
基本类型字符型(char)单精度(float)
实型(浮点型)
双精度(double)
int a=6;b=8;
int c;
c=a*b;
printf(‘%d’,c);
}
【答案】错误的地方有3处:(1)第2行关键字应该小写;(2)定义b时前面应该用逗号;(3)打印语句的格式应该用双引号括起来。
正确的程序如下:
#include <>
void main()
{
int a=6,b=8;
int c;
5.下面哪些是不合法的常量说明不合法的理由。
123,,0892,’M’,’\n’,0xabc,,”Morning”,【解答】非法常量有:
0892——含有非八进制数字8和9
——非法指数形式浮点常量:规定e后面的指数必须为整数。
6.下面对变量定义的语句哪些不正确为什么请改正。
(1)char c1,int a2;(2)INT a,b; FLOAT x,y;(3)a,b:char;
4.简述指针、变量的指针、变量的值、指针变量与指针变量的值的含义是什么
【解答】C语言中将地址又称为“指针”。一个变量所分配的内存空间首字节地址,称为该变量的指针(地址),变量的值就被放入所分配的地址单元中。地址一旦被分配,就不会再改变,所以,指针是一个常量。既然是常量就可以把它赋给一个变量。用来存放指针的变量,被称为指针变量。一个指针变量的值是变量的地址,一个指针变量可以被赋予不同的指针值。

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。

【解答】(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if…else语句、while语句、do while语句、switch 语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************I love C programs!*************************【分析与提示】①要有文件包含语句#include <stdio.h>。

C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。

这些函数的说明都包括在stdio.h文件中。

②main是主函数的名称。

c语言程序设计第五版习题答案解析

c语言程序设计第五版习题答案解析

习题解析与答案第1 章C语言概述一.简答题1.概述C语言的主要特点。

【解答】。

活(1)语言简洁、紧凑,使用方便、灵。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛如if ⋯else 语句、while 语句、do while 语句、switch (4)具有结构化的控制语句。

语句、for 语句。

行(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进。

访问操作。

(6)所生成的目标代码质量高,可移植性好2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){int a1 ,a2,x;a1=100;a2=50;x=a1-a2;printf (″x=%d n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){int a1 ,a2,x;a1=10;a2=20;x=a1*a2;printf (″a1=%d,n″,a1,a2);printf (″x=%d n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。

#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。

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

c++primer第三章
3.1
加using声明就重做,不必了吧!!
3.2
3.3
getline跳过空格继续读下一个字符,不忽略行开头的空格
string 类的输入运算符忽略有效字符前的空格,直到再次遇到空格
3.6(关于范围for语句的内容,由于我用的vs2010不支持,所以只有代码,没有运行结果) #include<iostream>
#include<string>
using namespace std;
int main()
{
string s("hello world");
for(auto &c:s)
c=‘x’;
3.7
感觉应该可以,毕竟string由n多char组成试验无法试验!!
3.8
用for 感觉好一些毕竟范围的头尾很明确
3.9 空字符串s的s[0]!!错误
3.10
3.11
个人感觉合法类型为const char 因为是引用不是const 的话改变会改变s的值而s 为const不能改变
3.12
(a)(c)正确(b)错误类型不匹配
3.13
(a)空的(b)10个空0 (c)10个42(d)1个10(e)10和42 2个(f)10个string因为10不是string 无法用来列表初始化
(g)10个hi
3.14
3.15
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string s;
vector<string> temp_string; while(cin>>s)
{
temp_string.push_back(s); }
}
3.16
Vs2010 不支持列表初始化
3.17
3.18
不合法只能对确知已经存在的元素执行下标操作
vector<int> ivec;
int i=0;
ivec.push_back(i);
3.19
三种方法如下第三种好没定死还能加
vector<int> ivec(10,42);
vector<int> ivec{42,42,42,42,42,42,42,42,42,42};
vector<int> ivec;
int v=42;
for(int i=0;i<10;++i)
ivec.push_back(v);
3.20
应该把++j去掉.
3.21
3.22
3.23
3.24
另一种类似省略
3.25
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
vector<int> v3;
int score;
while(cin>>score)
{
v3.push_back(score);//成绩存放在v3
}
for( unsigned int n=0;n<11;++n)
{
unsigned int m=0;
for(auto it1=v3.begin();it1!=v3.end();++it1) {
if((*it1)/10==n)//处理有效成绩
{
m++;
}
}
cout<<m;
}
}
3.26
因为beg+end 可能会溢出
3.27
(a)Buf_size 应该为常量表达。

(b)int ia[4*7-14];OK!!
(c)返回值不是常量不行
(d)没地方放空格
3.28
分别为空 0 随机值
3.29
与数组相比,主要由于大小规定,灵活性受影响。

比如不能向其中增加元素3.30
=去掉否则溢出
3.31
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int ia[10];
int ia2[10];
int main()
{
for(int i=0;i<10;++i)
{
ia[i]=i;
cout<<ia[i];
}
cout<<endl;
//拷贝给另一数组
for(int i=0;i<10;++i)
{
ia2[i]=ia[i];
cout<<ia2[i];
}
cout<<endl;
vector<int>v1;
for(int i=0;i<10;++i)
{
v1.push_back(i);
cout<<v1[i];
}
}
3.33
不初始化不会默认初始化为0 乱!
3.34
减号优先级大故等价于p1=(p2-p1)+p1; 作用为使p1指向p2,只有在p1,p2不指向同一数组下非法
3.36
由于比较的数组没有明确类型,采用了模版
#include<string>
#include<iostream>
#include<vector>
using namespace std;
template<class T>
bool is_equal(vector<T> a,vector<T> b)
{
const int size = a.size();
if (size != b.size())
return false;
for (int i = 0; i < size; ++i)
if (a[i] != b[i])
return false;
return true;
}
int main()
{
vector<int> a,b;
int temp = 0;
cout << "input array a: ";
while (cin >> temp)
a.push_back(temp);
cout << "input array b: ";
cin.clear();//cin.clear()是用来更改cin的状态标示符的 cin.ignore();//控制缓冲区
while (cin >> temp)
b.push_back(temp);
cout << is_equal(a,b);
}
3.37
3.38 指针的地址相加怎么可能有意义3.39
3.40
3.41
int int_arr[]={0,1,2,3,4,5};
vector<int> ivec(begin(int_arr),end(int_arr));
3.42
3.43
#include<string>
#include<iostream>
#include<vector>
using namespace std;
//范围for语句的带auto版本
int main()
{
int ia[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
for(auto &row:ia)
{
for(auto elem:row)
{
cout<<elem<<endl;
}
}
}
//用下标,带不带auto 不分了因为是int
//用指针应该是对的但在vs2010种编译不成功
int main()
{
int ia[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
for(auto i=ia;i!=ia+3;++i)
{
for(auto j =*i;j!=i+4;++j)
{
cout<<*j<<endl;
}
}
}
//关于 auto和decltype的问题主要是让我们认清过程中的类型
(1)指向2维数组ia的指针是一个指向含有4个整数的数组的指针类型为int (*ip)
[4]
(2)指向ip的是一个指向一个一维数组(*ip)的首地址int型指针。

相关文档
最新文档