📄 习题5.18 .html
字号:
<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<string> 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<string> *pvec1 = new vector<string>(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<string> **pvec2 = new vector<string>[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<string> *pv1 = &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<string> *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<string> **),而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; (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; (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; (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 = &dval; (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<void*> (const_cast<string*> (ps)); </p>
<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(b) ival
= static_cast<int> (*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<void*> (&dval); </p>
<p class=MsoNormal align=left style='text-align:left;layout-grid-mode:char;
punctuation-trim:none;text-autospace:none'>(d) pc
= static_cast<char*> (pv);</p>
</div>
<!-- page -->
<div class="page" style="text-align: center">
<a href="/bookfiles/216/10021610314.shtml">上一页</a> <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">
</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 + -