实验报告_实验  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 3.14
(2)写出用“常变量”方式定义PI值的语句。
Const float PI=3.14;
4、(基础题)运行下列程序,体会/、%运算符的用法:
回答下列问题:
(1)运算符/的操作数有什么要求?
答:被除数不能为0.
(2)如何利用%判定整数的奇偶性?
答:整数a,使a%2,若结果为0,则为偶数,反之则为奇数
5、(基础题)先分析下列代码,再运行,体会++、--运算符的用法。
并回答下列问题:
请比较++、--运算符的前缀式与后缀式的异同点。
答:相同点:运算后变量值都会发生改变。不同点:前缀是先加减后用算,
后缀是先取变量值进行运算,后对变量值进行加减。
6、(提高题)求出下列算术表达式的值,并上机验证结果:
⏹x+a%3*(int)(x+y)%2/4 设x=2.5,y=4.7,a=7
验证结果:
#include<stdio.h>
#include< stdlib.h>
int main()
{
float x;
float y;
int a;
x=2.5;
y=2.7;
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=3.5,y=2.5
验证结果:
#include<stdio.h>
#include<stdlib.h>
int main()
{
float y=2.5;
float x=3.5;
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
<stdio.h>
#include
<stdlib.h>
int main()
{
int x=8;
printf("'a'+x%3+5/2-'\24'运算结果?%.2d\n",'a'+x%3+5/2-'\24'); system("pause");
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。