赋值语句1
来源:互联网 发布:山东广电网络倒闭 编辑:程序博客网 时间:2024/05/10 03:20
What does the following program print?(中国台湾某著名计算机硬件公司2005年12月面试题)
#include <iostream>using namespace std;int main(){ int x=2,y,z; x*=(y=z=5); cout<<x<<endl; z=3; x==(y=z); cout<<x<<endl; x=(y==z); cout<<x<<endl; x=(y&z); cout<<x<<endl; x=(y&&z); cout<<x<<endl; y=4; x=(y|z); cout<<x<<endl; x=(y||z); cout<<x<<endl; return 0;}
解析:
x*=(y=z=5) 这句首先是5赋值给z,然后z再赋值给y,最后x=x*y 即2*5=10
x==(y=z) 首先z赋值给y,然后比较x和y是否相等。但是不管是否相等,x的值都未发生变化,仍然是10
x=(y==z) 首先判断y和z是否相等,由于相等所以返回布尔值1,然后再赋值给x,这时x值等于1
x=(y&z) 首先使y和z按位与,y与z的二进制都是0011。按位与后仍然是0011,然后再赋值给x,x值等于3
x=(y&&z) y与z先进行与运算,与运算是如果y,z都为真则结果为真,返回布尔值1.否则返回0,由于y,z都是3.所以为真,返回1,x=1
x=(y|z) y和z按位或,即对y和z的二进制数的每一位进行或运算,y和z的二进制数位分别为0100,0011。所以运算后的结构应为0111。x的值为7
x=(y||z) y和z进行或运算,然后再赋值给x。或运算是指如果y和z中有一个为真,结果即为真。因为y和z都为真,所以x值为1
答案:10,10,1,3,1,7,1
- 赋值语句1
- 赋值语句
- 赋值语句 程序员面试宝典(1)
- 语句: 运算符 赋值语句
- i++与赋值语句
- C++赋值语句讲解
- 赋值语句2
- 赋值语句的运用
- Verilog中几种赋值语句
- Ruby赋值语句中的||
- 3.3、C++赋值语句
- 有效的赋值语句
- Matlab赋值语句
- 简单赋值语句
- jinja2 赋值语句
- Verilog赋值语句
- Scala 赋值语句
- C++赋值语句讲解
- csdn的私信到哪里去了?
- django 多站点urls配置
- oracle over()函数及ratio_to_report()函数学习
- 二维数组赋值问题
- 基于socket的UDP和TCP编程
- 赋值语句1
- Berkeley db笔记二 常用方法举例(需修改)
- jsp页面标题前面的图片显示
- win7保存文件的时候怎么不显示桌面
- C语言的反汇编代码
- build-dep is not working properly and giving erro
- 小小小
- python画出来的电子时钟
- DIV+CSS编程中各浏览器兼容问题