目录
一、实验目的
二、实验任务
三、预习内容(复习书中前3章内容,说明C++相对于C的扩展有哪些?)
四、问题思考与讨论
一、实验目的
1.熟悉编程环境
2.掌握程序调试方法。
3.熟悉枚举类型、结构体类型等自定义数据类型的使用
4.熟悉函数的定义、说明与使用
5.熟悉引用作为函数参数的使用
6.理解内联函数、默认形参函数概念与使用
二、实验任务
1.编写程序,理解逻辑表达式的特点。已知" a=1, b=2, c=3, d=4, m=1, n=1 ",编程完善程序,输出以下表达式的结果,回答程序注释部分的思考题!
(1)(m=a>b)&&(n=c>d)
(2)(m=a>b)||(n=c>d)
(3)!(a>b)||( c<d)
(4)3&5
#include<iostream>
using namespace std;
int main()
{
int a=1,b=2,c=3,d=4,m=1,n=1;
cout<<((m=a>b)&&(n=c>d));
cout<<" m="<<m<<" n="<<n<<endl; //思考1:为什么输出结果中m=0,n=1? 理解逻辑与的“短路特性”?
cout<<((m=a>b)||(n=c>d));
cout<<" m="<<m<<" n="<<n<<endl; //思考2:为什么输出结果m=0,n=0? 理解逻辑或的“短路特性”?
cout<<(!(a>b)||( c<d)); //思考3::输出的结果? 理解逻辑反的运算特点?
cout<<(3&5); //思考4::输出的结果?理解位运算特点?
return 0;
}
实验思考题回答与分析:
(1)因为a=1,b=2,所以a>b为假,m输出为0。对于逻辑与,当第一个条件为假时,不再执行第二个条件,n值不变,仍输出为1。
(2)因为a=1,b=2,所以a>b为假,m输出为0。对于逻辑或,当第一个条件为假时,第二个条件会继续执行,c=3,d=4,所以c>d为假,n输出为0。
(3)输出为1。在逻辑运算中非比或优先,先进行非运算,a>b为假,取反为1,||当第一个为true,不再对第二个操作求值。
(4)输出为1。按位与操作的作用是将两个操作数对应的每一位分别进行逻辑与操作,3的二进制是00000011
,5的二进制为00000101,位与操作后输出为00000001,为1。
2.分析程序,理解位运算表达式的特点。已知" a=1, b=2, c=3 ",编程完善程序,输出以下表达式的结果,回答程序注释部分的思考题!
(1)a|b&c
(2)!a&b
(3)c>>2
(4)~b^c
#include<iostream>
using namespace std;
int main()
{
int a=1,b=2,c=3,d=4,m=1,n=1;
cout<<(a|b&c)<<endl; //思考1:输出的结果是什么? “|”、“&”分别完成什么操作?
cout<<(!a&b)<<endl; //思考2:输出的结果是什么? “|”、“&”分别完成什么操作?
cout<<( c>>2)<<" "<<( c<<2)<<endl; //思考3:输出的结果是什么? “>>”、“<<”分别完成什么操作?
cout<<(~b^c)<<endl; //思考4:输出的结果是什么? “~”、“^”分别完成什么操作?
return 0;
}
实验思考题回答与分析:
(1)输出为3. “&”是2和3按位与得2,“|”是1和2按位或得3,
(2)输出为0,!的优先级大于&,a取反后为0,与b按位相与为0.
(3)0,12.“<<”向左移两位,“>>”向右移两位