实验报告_实验2 数据类型与表达式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告_实验 2 数据类型与表达式(学生学号__姓名)
一、实验目的:
1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;
2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;
3、熟悉字符常量与一般常量的定义、使用;
4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;
5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。
二、实验内容
1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。
回答下列问题:
(1)sizeof运算符如何使用?它的操作数可以是类型关键字吗?
答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。可以。
(2)整数的占用长度与其数值大小有关吗?
答:有。
(3)字符串中’\’’、’\n’、’\t’的功能各是什么?
答:单引号,换行,水平制表。
(4)字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字
符?
答:1个字节;4个字节;结束符‘\0’。
(5)整数的存储形式是什么?
答:二进制补码。
2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。
回答下列问题:
(1)字符数据在内存中是以什么方式存储的?
答: ASCII码。
(2)字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符”
方式输出字符?
答:能,整数:”%d”,字符:”%c”。
(3)大小写字母的ASCII有什么关系?(如:’G’与’g’)
答:ASCII码相差32。
(4)如何由’A’、’a’分别得到后续的大写字母、小写字母?
答:’A+1’,’a+1.’
(5)字符间的距离如何计算?由一字符能分别得到ASCII比它小5、大10的两个
字符吗?若能,如何得到?
答:两个ASCII码绝对值相减,’a’-5,’a’+10.
(6)说明“C”与’c’的联系与区别,能否写成”dog”、’boy’?
答:”C”字符串,’c’字符,能.
3、(基础题)符号常量与常变量(即用const关键字定义)的使用:
回答问题:
(1)写出用符号常量定义PI的格式;
#define PI
(2)写出用“常变量”方式定义PI值的语句。
Const float PI=;
4、(基础题)运行下列程序,体会/、%运算符的用法:
回答下列问题:
(1)运算符/的操作数有什么要求?
答:被除数不能为0.
(2)如何利用%判定整数的奇偶性?
答:整数a,使a%2,若结果为0,则为偶数,反之则为奇数
5、(基础题)先分析下列代码,再运行,体会++、--运算符的用法。
并回答下列问题:
请比较++、--运算符的前缀式与后缀式的异同点。
答:相同点:运算后变量值都会发生改变。不同点:前缀是先加减后用算,
后缀是先取变量值进行运算,后对变量值进行加减。
6、(提高题)求出下列算术表达式的值,并上机验证结果:
⏹x+a%3*(int)(x+y)%2/4 设x=,y=,a=7
验证结果:
#include<>
#include< >
int main()
{
float x;
float y;
int a;
x=;
y=;
a=7;
printf ("x+a%3*(int)(x+y)%2的运算结果?%2f/n",x+a%3*(int)(x+y)%2/4) ;
return 0;
}
⏹(float)(a+b)/2-(int)x%(int)y 设a=2,b=3,x=,y=
验证结果:
#include<>
#include<>
int main()
{
float y=;
float x=;
int a=3;
int b=2;
printf("(float)(a+b)/2-(int)x%(int)y的运算结
果?%i2f\n",(float)(a+b)/2-(int)x%(int)y );
return 0;
}
'a'+x%3+5/2-'\24' 设x=8
验证结果:
#include
<>
#include
<>
int main()
{
int x=8;
printf("'a'+x%3+5/2-'\24'运算结果?%.2d\n",'a'+x%3+5/2-'\24'); system("pause");
return 0;
}