实验2 数据类型与表达式
实验目的
? 掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值
的方法;
? 懂得转义字符的使用;
? 了解基本数据类型的字节宽度;
? 进一步熟悉C++程序的编辑、编译、连接和运行的过程; ? 掌握数据的输入输出的方法;
? 掌握运算符的优先级和结合性,能够正确书写表达式; ? 掌握不同的类型数据之间运算的类型转换规则,理解自动类型转换和会使用强制类型转
换。
实验内容:
1、基本数据类型的长度
验证你的C++编译环境中每个基本数据类型的长度(即在内存空间所占的字节个
数)。用sizeof运算符获取类型或数据的所占字节数。 # include
cout << \字符'a' 所占字节数: \ << sizeof('a') << endl; cout << \字符\\\所占字节数: \ << sizeof(\) << endl;
cout << \字符串\\\所占字节数: \ << sizeof(\) << endl; cout << \整型常量默认为int,int型所占字节数: \ << sizeof(136) << endl; cout << \短整型short类型所占字节数: \ << sizeof(short) << endl;
cout << \实型常量.23456默认为double类型,double字节数:\ << sizeof(1.23456) << endl; cout << \型数据所占字节数:\ << sizeof(float) << endl; cout << \型数据所占字节数:\ << sizeof(double) << endl; cout << \型数据所占的字节数:\ << sizeof(bool) << endl; return 0; }
1) 人工分析程序,写出应得结果,上机后将二者对照。
2) 仿照上述程序输出基本数据类型char, short, int, long double, float,
double,bool的数据类型长度。
3) 为什么字符串长度比总字符个数还要多1?多\\0结束符
/* 结果
字符'a' 所占字节数: 1 字符\所占字节数: 2 字符串\所占字节数: 6
整型常量默认为int,int型所占字节数: 4 短整型short类型所占字节数: 2
实型常量.23456默认为double类型,double字节数:8 float型数据所占字节数:4
double型数据所占字节数:8 bool型数据所占的字节数:1 */
2、先阅读下列程序,写出执行结果(有些程序可能存在错误,请调试、改正)
(1)
#include
char c1 = ‘’; char c2 = ‘’; c1 = 'a'; c2 = 'b';
cout << c1 << endl; cout << c2 << endl; return 0; }
--正确不能赋空值
#include
char c1 = ' '; char c2 = ' '; c1 = 'a'; c2 = 'b';
cout << c1 << endl; cout << c2 << endl; return 0; }
(2)
#include
char c1 = 0 ; char c2 = 0; c1 = 102;
c2 = 400;
cout << c1 << endl; cout << c2 << endl; return 0; }
//C2=400 超出范围
(3)
#include
char c1 = ‘’; char c2 = ‘’; c1 = a; c2 = b;
cout << c1 << endl; cout << c2 << endl; return 0; }
-- a,b加单引号也可以
#include
char c1 = ' ',a='c',b='d'; char c2 = ' '; c1 = a; c2 = b;
cout << c1 << endl; cout << c2 << endl; return 0; }
(4)
#include
char c1 = “”;
char c2 = “”; c1 = ”a”; c2 = ”b”; cout << c1 << endl; cout << c2 << endl; return 0; }
--字符串要存在字符数组里或用string定义
#include
char c1 = '\\0'; char c2 = '\\0'; c1 = 'a'; c2 = 'b';
cout << c1 << endl; cout << c2 << endl; return 0;
}
(5)
#include
cout << \cout << \
cout << \cout << \
cout << \cout << \return 0; }
--正确,结果
Prints the '\\a' character: a
------------------------------------ Prints the \test ------------------------------------ Prints the \test
------------------------------------
3、运行程序,观察实验结果。
//该程序已知圆的半径R,输出圆的周长P和面积S #include
int main() {
double peremiter = 0; double area = 0;
peremiter = 2 * R * PI; //周长 = 2πR area = R * R * PI; //面积 = πR cout << \周长:\cout << \面积:\return 0; }
1)将上述用蓝色字显示的语句改为 “ int peremiter;int area;”,比较两次实验结果有什么不同,为什么?
2)比较用define和const定义符号变量的格式和优缺点
4、阅读下面的程序,写出执行结果。然后上机调试,比较结果的正确性。(有错误改正后运行)
(1)
#include
int main() {
int a = 40; int b = 4; int c = 4;
a = (b == c); //一个 = 号表示赋值,两个 = = 表示判断两面的值是否相等,是的话为1,否的话为0
cout << \前面的 ) a = \ a = a == (b = c);
cout << \经过改变后的 ) a = \ return 0;
2