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

📄 习题5.18 .html

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



<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'>习题5.30 </p>

</div>

<p class=XT>下列语句哪些(如果有的话)是非法的或错误的?</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(a)
vector&lt;string&gt; svec(10);</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(b)
vector&lt;string&gt; *pvec1 = new vector&lt;string&gt;(10);</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(c)
vector&lt;string&gt; **pvec2 = new vector&lt;string&gt;[10];</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(d)
vector&lt;string&gt; *pv1 = &amp;svec;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(e)
vector&lt;string&gt; *pv2 = pvec1;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(f) delete svec;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(g) delete pvec1;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(h) delete [] pvec2;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(i) delete pv1;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(j) delete pv2;</p>



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

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>错误的有(c)和(f)。</p>

<p class=MsoNormal style='text-indent:19.0pt;text-autospace:none'>(c)的错误在于:pvec2是指向元素类型为string的vector对象的指针的指针(即pvec2的类型为vector&lt;string&gt; **),而new操作返回的是一个指向元素类型为string的vector对象的指针,不能用于初始化pvec2。</p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>(f)的错误在于:svec是一个vector对象,不是指针,不能对它进行delete操作。</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'>习题5.31 </p>

</div>

<p class=XT>根据5.12.2节的变量定义,解释在计算下列表达式的过程中发生了什么类型转换?</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(a) if (fval)</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(b) dval = fval +
ival;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:110%;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(c) dval + ival +
cval;</p>

<p class=XT>记住,你可能需要考虑操作符的结合性,以便在表达式含有多个操作符的情况下确定答案。</p>

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

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>(a) 将fval的值从float类型转换为bool类型。</p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>(b) 将ival的值从int类型转换为float类型,再将fval + ival的结果值转换为double类型,赋给dval。</p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>(c) 将ival的值从int类型转换为double类型,cval的值首先提升为int类型,然后从int型转换为double型,与dval + ival的结果值相加。</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'>习题5.32 </p>

</div>

<p class=XT>给定下列定义:</p>



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

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



<p class=XT style='text-indent:0cm'>指出可能发生的(如果有的话)隐式类型转换:</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(a)
cval = 'a' + 3; &nbsp;&nbsp;&nbsp;&nbsp; (b) fval = ui – ival * 1.0;</p>

<p class=MsoNormal align=left style='text-align:left;line-height:12.0pt;
layout-grid-mode:char;punctuation-trim:none;text-autospace:none'>(c) dval = ui * fval; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (d) cval = ival + fval + dval;</p>



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

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>(a) 'a'首先提升为int类型,再将'a' + 3的结果值转换为char型,赋给cval。</p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>(b) ival转换为double型与1.0相乘,ui转换为double型再减去ival * 1.0的结果值,减操作的结果转换为float型,赋给fval。</p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>(c) ui转换为float型与fval相乘,结果转换为double型,赋给dval。</p>

<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>(d) ival转换为float型与fval相加,结果转换为double型,再与dval相加,结果转换为char型,赋给cval。</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'>习题5.33 </p>

</div>

<p class=XT>给定下列定义:</p>



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

<p class=MsoNormal align=left style='text-align:left;line-height:9.0pt;
punctuation-trim:none;text-autospace:none'>const string *ps; char *pc; void *pv;</p>



<p class=XT style='text-indent:0cm'>用命名的强制类型转换符号重写下列语句:</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(a)
pv = (void*)ps; &nbsp;&nbsp;&nbsp;&nbsp; (b) ival = int(*pc);</p>

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(c)
pv = &amp;dval; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (d) pc = (char*) pv;</p>



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



<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(a) pv
= static_cast&lt;void*&gt; (const_cast&lt;string*&gt; (ps)); &nbsp;&nbsp;&nbsp;&nbsp; </p>

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

<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(c) pv
= static_cast&lt;void*&gt; (&amp;dval); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>

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

</div>
                <!-- page -->
                <div class="page" style="text-align: center">
                    <a href="/bookfiles/216/10021610314.shtml">上一页</a>&nbsp;&nbsp;&nbsp;<a href="/bookfiles/216/index.html">首页</a>
                </div>
                <div class="content" style="text-align: right;width:99%;">
   
【<a target=_blank href="http://remark2.csdn.net/r/decfe161e911484e989ccbd8c4c563f4216.ashx">查看所有评论</a>(<span id="remark_count">0</span>)条】  
<!--引用评论开始-->
<script>
/*
配置评论相关的参数
*/
remark_para_SiteId = 'decfe161-e911-484e-989c-cbd8c4c563f4';
remark_para_PCId = 216;
//remark_para_PId = '00000000-0000-0000-0000-000000000003';
remark_para_Title = escape('C++ Primer(第4版)习题解答');
remark_para_Tags =escape('');
remark_para_IframeHeight = '350px';		
 remark_para_IframeWidth = '100%';
remark_para_Charset = "gb2312";;
remark_para_CountElemId = "remark_count";
remark_para_PostAreaId = "Ian_PostRemarkArea";
remark_para_List_PanelId = "Ian_RemarkList";
remark_para_Top_Id = "Ian_RemarkTop";
remark_para_PostAreaRandomImageWidth = "90";//"120";
remark_para_PostAreaRandomImageHeight = "25";//"30";
remark_para_PostAreaRandomImageFontSize = "15";//"15";
remark_para_PostAreaStyle = 'http://remark2.csdn.net/demo/csdnbook/rview.css';
remark_para_List_PageSize =5;
</script>
<!--呈现评论列表的容器-->
  <div class="leftTitle"><h2 class="cDRed"> 最近评论</h2></div>
<br /><br />
<div id="Ian_RemarkList" class="pkzone_list_sty">正在载入评论列表...</div>
<div style="clear:both"></div>
<!--呈现评论列表的容器-->

<!--评论列表需要的样式-->
<link rel="stylesheet" type="text/css" href="/css/rviewli.css" />
<style>
.pkzone_list_sty dl{width:99%}
.pkzone_list_sty dl dt{width:100%}
.replay{width:100%}
</style>

<!--评论列表需要的样式-->

<!--呈现发表评论区域的容器-->
<div id="Ian_PostRemarkArea"></div>
<!--呈现发表评论区域的容器-->
<h6>热点评论</h6>
			<ul id="Ian_RemarkTop"></ul>

<script src="http://remark2.csdn.net/App_Themes/Default/Script/IanRemarkIframe.js" ></script>
		
<!--引用评论结束--> 

                </div>
                <div style="margin: 0px auto; width: 600px; border: solid 1px #0b5f98;float:left;">
                    <div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
                        图书导读
                    </div>
                    <div style="float: right; width: 570px; text-align: left; line-height: 16pt; padding-left: 2px">
                        <!--导读-->
                        <h1 id="divCurrentNode2" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='http://book.csdn.net/bookfiles/216/10021610315.shtml'><font color='red'>习题5.19—习题5.33</font></a></h1>
                        <div id="divRealteNod2" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='http://book.csdn.net/bookfiles/216/10021610312.shtml'>习题4.1—习题4.16</a></div><div style='float:right;width:49%'>·<a href='http://book.csdn.net/bookfiles/216/10021610313.shtml'>习题4.17—习题4.36</a></div><div style='float:left;width:49%'>·<a href='http://book.csdn.net/bookfiles/216/10021610314.shtml'>习题5.1—习题5.18</a></div></div>
                    </div>
                </div>
                <div class="clear">
                    &nbsp;
                </div>
            </div>
            <div class="todayCommend" style="width: 100%;">
                <div class="title">
                    <h5>
                        同类图书推荐</h5>
                </div>
                <div class="blank6 clear">
                </div>
                <div id="divSameSort" class="content">
                <li style='float:left;width:19%;list-style-type:none;margin:0;padding:0;text-align:center;'><a href='http://book.csdn.net/bookfiles/483/' title='深入浅出Struts'><img width='80px' height='112px' src='http://www.dearbook.com.cn//book/BookImage/TS00213319__.jpg' border=0/></a><p><a href='http://book.csdn.net/bookfiles/483/' title='深入浅出Struts'>深入浅出St...</a></p></li><li style='float:left;width:19%;list-style-type:none;margin:0;padding:0;text-align:center;'><a href='http://book.csdn.net/bookfiles/480/' title='Visual C#.NET项目实战开发从入门到精通'><img width='80px' height='112px' src='http://www.dearbook.com.cn//book/BookImage/TS00213316__.jpg' border=0/></a><p><a href='http://book.csdn.net/bookfiles/480/' title='Visual C#.NET项目实战开发从入门到精通'>Visual C#....</a></p></li><li style='float:left;width:19%;list-style-type:none;margin:0;padding:0;text-align:center;'><a href='http://book.csdn.net/bookfiles/479/' title='Struts 2权威指南:基于WebWork核心的MVC开发'><img width='80px' height='112px' src='http://www.dearbook.com.cn//book/BookImage/TS00213158__.JPG' border=0/></a><p><a href='http://book.csdn.net/bookfiles/479/' title='Struts 2权威指南:基于WebWork核心的MVC开发'>Struts 2权...</a></p></li><li style='float:left;width:19%;list-style-type:none;margin:0;padding:0;text-align:center;'><a href='ht

⌨️ 快捷键说明

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