1、实验2 运算符和表达式实验目标 编写简单程序完成数学公式的程序表达方法。实验目的 验证C/C+语言的常用运算符、表达式的作用。实验内容按照上次实验课的做法,创建一个空的Win32控制台项目(给它起一个有意义的名字),添加一个源文件(cpp文件)。分别将下面的代码输入到cpp文件中,中编译运行以验证各种运算符的作用。(1)算术运算符:加:+减:-乘:*除:/模:%(2)关系与逻辑运算符。关系运算符:小于小于等于=不等于!=逻辑运算符:与&(条件同时成立)或|(任一条件成立)非!(取相反条件)。main函数代码如下:练习1填空题:在下划线处补充完整if语句的条件表达式,要求条件表达式能与对应的输出
2、相符。/*代码1 比较运算符*/#include using namespace std;int main()int x=9;if ( )cout x小于10 endl;if ( )cout x不小于5 endl;if ( )cout x小于10并且x不小于5;return 0;/*代码2 加一与减一运算符*/#include using namespace std;int main(int argc, char* argv)int i,j;cout i;cout endl;cout 原来i = i endl;cout j = i+ = (_) ,t要求:j为i加之前的值。n;cout 现在i
3、 = i endl;cout j = +i = (_) ,t要求:j为i加之后的值。n;cout 现在i = i endl;cout j = i- = (_) ,t要求:j为i减之前的值。n;cout 现在i = i endl;cout j = -i = (_) ,t要求:j为i减之后的值。n;cout 现在i = i endl;return 0;练习2(code2.cpp):如果i=2,j=3,请问i+j的结果是多少?最后i,j各为多少?编程验证。注意:这是很不好的编程风格,平时编程不要用这样的表达式。其实这涉及到词法分析中的“贪心法”。赋值运算符与赋值表达式(略)。I = I + 3 可以
4、简写成 I += 3;I = I * 3 可以简写成 I *= 3;I = I - 3 可以简写成 I -= 3;I = I / 3 可以简写成 I /= 3;I = I % 3 可以简写成 I %= 3;编程验证。练习3(code3.cpp)(选做题):根据下面的数学魔术原理编写一个小游戏。数学魔术情景:我有五张卡片,上面写着数字。1:1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,312:2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,313:4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,
5、314:8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,315:16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31你心中想一个0-31中的一个数字。告诉我这个数字在那几张卡片上有(不能多也不能少,有的全说上,没有的打死也不能说)。我便会知道你想的是什么数字。比如观众想到21,查看卡片得知“1、3、5”张卡片上都有这数字,那么此魔术师就可以计算出这个数字为:原理:可以知道0-31数字可以用5位2进制数;其实,那五张卡片就是各代表一位。每张卡片上的数字就是代表这个数字在表示成二进制时这一位为1。比如数字21表示成5位的二进制是10101,这5位二进制的第1位(最右边一位)和第3位、第5位都是“1”,那么就是在第1、3、5号卡片上都有这个数字。提示:由于要让用户输入卡片号的话,数字所在卡片的个数不确定;你可改成让他检查“下列数字是否包含你所想的数字(Y/N):”,通过每张卡片的确认来进行计算。另外,乘2也可以通过移位运算符实现(略)。