第一范文网 - 专业文章范例文档资料分享平台

第五章习题答案.

来源:用户分享 时间:2025/5/26 7:41:27 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

t=pi[j]; //交换索引数

组元素值

pi[j]=pi[j+1]; pi[j+1]= t;

} } }

void Output(const person all[], int pi[], const

int n)

{

for( int i=0; i

后数据

cout<

}

5.有以下结构说明和遍历单向链表的函数。函数内有错误吗?是什么性质的错误?请上机验证你的分析。

struct Node {

int data; Node ? next; };

void ShowList( Node ?head ) {

while( head )

{

cout << head->date << '\\n';

head ++; } }

【解答】

head++错误,原因是动态链表的结点存放不是连续顺序的内存空间,它们是逐个结点通过new建立的,所以不能用++做地址偏移运算。应该用:

head=head->next;

5.4 编程题

1.编写程序,将一个整型变量右移4位,并以二进制形式输出该整数在移位前和移位后的数值。观察系统填补空缺的数位情况。

#include using namespace std;

void bitDisplay(unsigned value); int main() {

unsigned x;

cout << \

cin >> x; bitDisplay(x); x>>=4;

2.数

cout<<\ bitDisplay(x); }

void bitDisplay(unsigned value) {

unsigned c;

unsigned bitmask = 1<<31; cout << value << \ for( c=1; c<=32; c++ ) {

cout << ( value&bitmask ? '1' : '0' ); value <<= 1; if( c%8 == 0 ) cout << ' '; }

cout << endl; }

整数左移一位相当于将该数乘以2。编写一个函 unsigned power2( unsigned number, unsigned pow ); 使用移位运算计算number*2pow,并以整数形式输出计算结果。注意考虑数据的溢出。 【解答】

unsigned power2( unsigned number, unsigned

pow )

{

unsigned c=1;

unsigned bitmask = 1<<31; while(c<31) //溢出判断 {

if( number&bitmask ) break; //查找最

高位的1 即判断c为何值时最高位为1,判断可左移的最大次数

c++; bitmask>>=1; }

if(pow

cout<<\

搜索更多关于: 第五章习题答案. 的文档
第五章习题答案..doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c319co4v7ms4oweh0q68m0sr9z0p01l00o32_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top