⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 习题4.1].txt

📁 c++ primer 答案(第4版) 自己整理的 只有1-5章
💻 TXT
📖 第 1 页 / 共 5 页
字号:

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>{</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; string s, result_str;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; bool has_punct = false;//用于标记字符串中有无标点</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; char ch;</p>



<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; //输入字符串</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Enter a
string:&quot; &lt;&lt; endl;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; getline(cin, s);</p>



<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; //处理字符串:去掉其中的标点</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; for (string::size_type index = 0;
index != s.size(); ++index)</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; {</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ch =
s[index];</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(ispunct(ch))</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; has_punct
= true;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result_str
+= ch;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; }</p>



<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; if (has_punct)</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout
&lt;&lt; &quot;Result:&quot; &lt;&lt; endl &lt;&lt; result_str &lt;&lt;endl;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; else {</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout
&lt;&lt; &quot;No punctuation character in the string?!&quot; &lt;&lt; endl;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-1;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; }</p>



<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; return 0;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>}</p>

<div style='border:none;border-bottom:solid #999999 1.0pt;padding:0cm 0cm 1.0pt 0cm;
margin-left:1.4pt;margin-right:1.4pt'>

<p class=aff2 style='margin-top:8.0pt;margin-right:0cm;margin-bottom:4.0pt;
margin-left:0cm;text-indent:4.8pt'>习题3.11 </p>

</div>

<p class=XT>下面哪些vector定义不正确?</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(a)
vector&lt; vector&lt;int&gt; &gt; ivec;</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(b)
vector&lt;string&gt; svec = ivec ;</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(c)
vector&lt;string&gt; svec(10,&quot;null&quot;);</p>



<p class=aff4>【解答】</p>

<p class=MsoNormal style='text-indent:19.0pt;text-autospace:none'>(b)不正确。因为svec定义为保存string对象的vector对象,而ivec是保存vector &lt;int&gt;对象的vector对象(即ivec是vector的vector),二者的元素类型不同,所以不能用ivec来初始化svec。</p>

<div style='border:none;border-bottom:solid #999999 1.0pt;padding:0cm 0cm 1.0pt 0cm;
margin-left:1.4pt;margin-right:1.4pt'>

<p class=aff2 style='margin-top:8.0pt;margin-right:0cm;margin-bottom:4.0pt;
margin-left:0cm;text-indent:6.0pt'>习题3.12 </p>

</div>

<p class=XT>下列每个vector对象中元素个数是多少?各元素的值是什么?</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(a)
vector&lt;int&gt; ivec1;</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(b)
vector&lt;int&gt; ivec2(10);</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(c)
vector&lt;int&gt; ivec3(10,42);</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(d)
vector&lt;string&gt; svec1;</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(e)
vector&lt;string&gt; svec2(10);</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(f) vector&lt;string&gt;
svec3(10,&quot;hello&quot;);</p>



<p class=aff4>【解答】</p>

<p class=MsoNormal align=left style='text-align:left;line-height:13.5pt;
layout-grid-mode:char;text-autospace:none'>(a)
元素个数为0。</p>

<p class=MsoNormal align=left style='text-align:left;line-height:13.5pt;
layout-grid-mode:char;text-autospace:none'>(b)
元素个数为10,各元素的值均为0。</p>

<p class=MsoNormal align=left style='text-align:left;line-height:13.5pt;
layout-grid-mode:char;text-autospace:none'>(c)
元素个数为10,各元素的值均为42。 </p>

<p class=MsoNormal align=left style='text-align:left;line-height:13.5pt;
layout-grid-mode:char;text-autospace:none'>(d)
元素个数为0。 </p>

<p class=MsoNormal align=left style='text-align:left;line-height:13.5pt;
layout-grid-mode:char;text-autospace:none'>(e)
元素个数为10,各元素的值均为空字符串。 </p>

<p class=MsoNormal align=left style='text-align:left;line-height:13.5pt;
layout-grid-mode:char;text-autospace:none'>(f) 元素个数为10,各元素的值均为&quot;hello&quot;。</p>





<div style='border:none;border-bottom:solid #999999 1.0pt;padding:0cm 0cm 1.0pt 0cm;
margin-left:1.4pt;margin-right:1.4pt'>

<p class=aff2 style='margin-top:8.0pt;margin-right:0cm;margin-bottom:4.0pt;
margin-left:0cm'>习题3.13 </p>

</div>

<p class=XT>读一组整数到vector对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。然后修改程序:头尾元素两两配对(第一个和最后一个,第二个和倒数第二个,以此类推),计算每对元素的和,并输出。</p>

<p class=aff4>【解答】</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>//读一组整数到vector对象,计算并输出每对相邻元素的和</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>#include &lt;iostream&gt;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>#include &lt;vector&gt;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>using namespace std;</p>



<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>int main()</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>{</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; vector&lt;int&gt; ivec;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; int ival;</p>



<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; // 读入数据到vector对象</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Enter numbers(Ctrl+Z
to end):&quot; &lt;&lt; endl;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; while (cin&gt;&gt;ival)</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ivec.push_back(ival);</p>



<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; // 计算相邻元素的和并输出</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; if (ivec.size() == 0) {</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout
&lt;&lt; &quot;No element?!&quot; &lt;&lt; endl;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-1;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; }</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Sum of each pair
of adjacent elements in the vector:&quot; </p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt;
endl;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp; for (vector&lt;int&gt;::size_type
ix = 0; ix &lt; ivec.size()-1; </p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
ix = ix + 2) {</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout
&lt;&lt; ivec[ix] + ivec[ix+1] &lt;&lt; &quot;\t&quot;;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (
(ix+1) % 6 == 0) // 每行输出6个和</p>

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
p

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -