实验2 数据类型与表达式

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 数据类型与表达式

一、实验目的:

1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;

2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;

3、熟悉字符常量与一般常量的定义、使用;

4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;

5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。

二、实验内容

1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。运行下列程序,回答相关问题:

#include

#include

using namespace std;

int main( )

{

cout<<"int 型数据所占字节数: "<

cout<<"整数23、4567890所占字节数分别为: "<

"<

cout<<"char 型数据所占字节数: "<

cout<<"字符\'s\'所占字节数: "<

cout<<"字符串\"s\"所占字节数: "<

cout<<"字符串\"CCTV即中央电视台\" 所占字节数: "<

电视台")<<"\n";

int n1=13;

cout<

int n2=-13;

cout<

return 0;

}

(项目名称为lab_2_1,下同,不一一说明)

问题:

(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?

答:

sizeof运算符可以获取某数据占用的空间大小,使用格式是sizeof(),,

括号中就是该运算符的操作数,既可以是数据类型关键字,也可以是数据本身

(2)整数的占用长度与其数值大小有关吗?

答:

整数占用的长度与其值大小无关,只要是int型整数占用空间大小就是4个字节

字符串中’\’’、’\”’、’\n’、’\t’的功能各是什么?

答:

‘\’’是一个转义字符常量,如果要在字符串中加一个‘号,不可以直接加‘号,而需要加‘号对应的转移字符\’

’\”’是一个转义字符常量,如果要在字符串中加一个”号,不可以直接加”号,而需要加”号对应的转移字符’\”’

’\n’是一个转义字符常量,用于换行

’\t’是一个转义字符常量,用于调整格式---制表,如果在两个内容之间加上一个’\t’,两内容间会空出四个空格,代表一个制表位

(3)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?

英文字母4个字节汉字两个字节尾部用转义’\0’字符作为字符串结束标记

课外操作:请修改上述程序,使之能输出float、double、void类型所占用字节数。有兴趣的同学,还可以阅读大课课件的“数据在计算机中的表示及运算.pdf”文档和float_unsigned项目,了解浮点数的存储形式。

2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。运行下列程序,回答相关问题:

#include

#include

using namespace std;

int main()

{

char ch1,ch2;

ch1='A';

ch2=ch1+32;

cout<<"ch1的ASCII:"<

int i1,i2;

i1='n'; //将字符数据赋值给整型变量

i2=i1-32;

cout<<"i1的值:"<

cout<<"字母:"<

cout<<"数字:"<

return 0;

}

问题:

(1)熟悉大小写字母、数字字符、空格等字符在ASCII表中的排列规律,它们的ASCII有什

么特点?

是顺序的

A-Z 65---90

a-z 97---102

0-9 48---57

(2)字符数据在内存中是以什么方式存储的?

用一个字节的地址空间存储

(3)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符”方式输出字符?

可以,用强制类型转换如:int('A')以“整数”方式输出char(65)“字符”方式输出(4)大小写字母的ASCII有什么关系?(如:’G’与’g’)

ASCII码值相差32

(5)如何由’A’、’a’分别得到后续的大写字母、小写字母?

如果想得到后续5格字符可以计算’A’+5得到

(6)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个字符吗?若

能,如何得到?

字符间距离可以通过计算ASCII值相减的结果得到

可以分别是该字符+5,该字符-10

(7)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’?

“C”是一个字符串’c’是一个字符

可以写成”dog”、但不能写成’boy’,因为‘’内只能容纳一个字符

课外操作:请模仿上述程序,编程实现如下功能:

①由’N’、’B’、’A’三个字符得到’n’、’b’、’a’三个字符?

②将’N’、’B’、’A’三个字符后移3个位置后得到什么字符?请予输出。

参考教材p84 第6题说明,“将字符按某一规律平移”可实现字符的简单加密功能。

3、(基础题)符号常量与常变量(即用const关键字定义)的使用:请输入下列代码,然后运行程序,再按要求修改、运行程序:

相关文档
最新文档