第07篇习题解答.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.7习题 7.7.1 概念题 1.枚举变量是怎样进行输入和输出的? 答:对枚举变量进行输入和输出操作,在模块化程序设计中,应设法调用输入和输出函数来完成。在输入函数体内,用switch语句,将所输入的枚举元素整型值转换成相应的枚举变量值,通过参数别名传递使主函数中的枚举变量获得该值。在输出函数体内,将通过参数传递过来的枚举变量值,用switch语句转换成相应的字符串输出显示在屏幕上。 2.(1)举例说明什么情况是枚举元素的组合状态? (2)为便于表明枚举元素的组合状态,枚举元素的整型值应怎样设置? (3)什么是枚举元素的专用标志位? (4)什么是枚举元素组合状态字? 答:(1)如果把各种菜肴定义为枚举元素,则用某些菜肴组成一桌菜就是枚举元素的组合。如果把各种文娱节目定义为枚举元素,则用某些节目组成一场晚会也是枚举元素的组合。 (2)(3)为便于表明枚举元素的组合状态,枚举元素的整型值是按2的倍数递增来设置的。目的是使所有枚举元素都各有一个各自专用的二进制位,见表7-1,最右列中黑体数字“1”所表示的二进制位就是。这种为每个元素所专用的二进制位叫做该元素的标志位。 (4)组成组合状态的枚举元素们的“按位或”就是枚举元素组合状态字。 3. 某酒楼以八大名菜为元素组成一个枚举类型caiyao(菜肴),整型值如表7-1所示。如果某食客的点菜状态字flag之值为十进制180,试问这表明该食客点了哪几个菜?试用枚举元素表示点菜状态字flag。 答:十进制180表示为二进制就看标志位可知,食客点了C菜、E菜、F菜和H菜。flag可表示为:C|E|F|H。其中“|”是运算符“按位或”。 4.(1)人的生日数据包括年、月、日。试定义一个生日结构类型bthd。 (2)友情录的数据包括姓名、生日、地址、电话号码。试定义友情录结构类型frnd。 (3)试声明上述友情录结构frnd型变量frd。 (4)试问上述frd生日的年份、月份和日期如何表示? 答:(1)生日结构类型定义如下: struct bthd{ int yr; //年 int mn; //月 int dy; //日 } (2)友情录结构类型定义如下: struct frnd{ char nam[20]; //姓名 bthd btd; //生日 char adr[20]; //地址 int tel; //电话号 } (3)frnd frd; (4)frd.btd.yr //年份 frd.btd.mn //月份 frd.btd.dy //日期 5.试问下列程序运行结果如何? #includeiostream using namespace std; struct node{ char *nm; node *nx; }; int main() { node a[3]={Wu Hua,a+2,Li Min,a,Qi Din,a+1}; node *p=a; coutp-nmendl; coutp-nx-nmendl; coutp-nx-nx-nmendl; coutp-nx-nx-nx-nmendl; return 0; } 答:程序运行结果如下: Wu Hua Qi Din Li Min Wu Hua 6.对链表结点操作的必做预习题: 图7.3中和题目中的链表、结点和指针都是同类型的,题中就不再作说明。 (1)有两个指针q和p分别指向了两个结点A和B,如图7.3(1)所示。试问用何语句能使q改为指向结点B? 答:用语句q=p;能使q指向节点B。 (2)链表中有结点A和结点B,关系如图7.3(2)所示。现有一指向结点A的指针p,试问执行下列语句后,指针p指向何处? p=p-next; 答:执行所述语句后,p将指向节点B。 (3)有一条链表,指针p指向尾结点A,指针b指向另一结点B,如图7.3(3)所示。试问用何语句能使结点B链接在结点A之后,使结点B顶替结点A就任尾结点?用何语句来对结点B进行结尾? 答:用语句p-next=b;能使节点B链接在节点A之后,使节点B取代A就任尾节点。用语句b-next=0;可使尾节点B结尾。 (4)图7.3(4)中首指针hd指向首结点A,指针p也指向首结点A。试问执行下列语句后,hd指向何处?哪个结点脱了链?哪个结点是首结点。 hd=p-next; 答:执行所述语句后,hd不指向节点A,而改为指向节点B了。致使节点A脱了链,使节点B就任了首节点。 (5)链表中结点A、B、C和指针q和p的关系如图7.3(5)所示。试问用何语句能使结点A不对结点B链接(使结点B脱链),改为结点A对结点C链接? 答:用语句q-next=p-next; 能使节点A不对节

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档