C++面向对象程序设计习题解析与解答
版权申诉
11 浏览量
更新于2024-07-07
收藏 42KB PDF 举报
"VC++面向对象程序设计的相关课后习题答案"
在面向对象程序设计中,C++语言的表达式赋值、运算符优先级和结合性是基础且重要的概念。以下是对题目中涉及的知识点的详细解释:
1. 赋值表达式合法性:
- (1) a=b=4.5+7.8 是合法的,虽然4.5+7.8是浮点数,但C++允许将浮点数赋值给整型变量,会进行类型转换。
- (2) c=3.5+4.5=x=y=7.9 不合法,因为4.5是一个常量表达式,不能作为左值(即不能被赋值)。
- (3) x=(y=4.5)*45 是合法的,先执行y=4.5,然后计算乘法并赋值给x。
- (4) e=x>y 不合法,因为比较运算符(如>)不返回左值,不能用于赋值。
2. 表达式运算后的a值:
- (1) a+=a 等价于 a=a+a,a的值变为20。
- (2) a%=(7%2) 等价于 a=a%(7%2),7%2等于1,因此a的值变为0。
- (3) a*=3+4 等价于 a=a*(3+4),a的值变为70。
- (4) a/=a+a 等价于 a=a/(a+a),a的值变为10/20,即0。
- (5) a-=a 等价于 a=a-a,a的值变为0。
- (6) a+=a-=a*a 等价于 a=a-a*a,然后a=a+a,a的值变为0。
3. 逻辑表达式求值:
- (1) a+b>c&&b==c 的值为 F,因为7>5是真,4==5是假,且&&运算符具有短路特性,当左侧为假时右侧不计算。
- (2) a||b+c&&b>c 的值为 F,因为3||9是真,但4>5是假,&&运算符短路,整个表达式为假。
- (3) !a||!c||b 的值为 T,因为!15(即!a)为假,!19(即!c)也为假,但4(即b)为真,||运算符至少有一个为真则结果为真。
- (4) a*b&&c+a 的值为 T,因为15*8(即a*b)为真,13+8(即c+a)也为真,&&运算符两侧都为真则结果为真。
4. 自增自减运算符:
- (1) a=m+++n++ 的结果是18,m先加1变为11,n先加1变为9,然后a等于10+9。
- (2) b=m+++++n 的结果是19,m先加1变为11,然后n再加1变为9,最后b等于10+9。
- (3) c=++m+++n 的结果是20,m先加1变为11,然后n再加1变为9,最后c等于11+9。
- (4) d=m--+n++ 的结果是18,m先减1变为9,然后n再加1变为9,最后d等于10+9。
5. 元组赋值与逗号运算符:
- (1) y=(a+b,c+a) 的结果是14,元组赋值右边先计算13(a+b),然后计算14(c+a),最后y取最后一个值14。
- (2) x=y=a, z=a+b 的结果是x=5, y=5, z=13,y先等于a的值5,然后x也等于5,z等于a+b的值13。
- (3) y=(x=a*b,x+x,x*x) 的结果是1600,x先等于a*b的值40,然后y等于x*x的值1600。
- (4) x=(y=a,z=a+b) 的结果是13,y先等于a的值5,z等于a+b的值13,x取最后一个值13。
6. 条件运算符(三目运算符):
- (1) x=a<b||c++ 的结果是T,a<b是真,条件运算符短路,c++后c变为19。
- (2) y=a>b&&c++ 的结果是F,a>b是假,条件运算符不再计算右侧,c++后c仍为19。
- (3) x=a+b>c&&c++ 的结果是T,a+b>c是真,c++后c变为20。
这些题目涵盖了C++中的基本运算符、表达式求值规则、自增自减运算符、逻辑运算符、逗号运算符以及条件运算符的用法。理解这些基础知识对于编写和调试C++代码至关重要。
113 浏览量
2022-01-02 上传
2021-12-10 上传
2022-07-14 上传
2021-10-06 上传
2021-10-06 上传
csh18750931974
- 粉丝: 0
- 资源: 8万+
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析