您的当前位置:首页正文

实验2 数据类型与表达式

2024-07-16 来源:欧得旅游网
实验2 数据类型与表达式

一、实验目的:

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

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

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

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

二、实验内容

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

#include int main( ) { }

int n1=13; int n2=-13;

printf (\"整数23、4294967296所占字节数分别为: %d、%d\\n\printf (\"char 型数据所占字节数: %d\\n\printf (\"字符\\'a\\'所占字节数: %d\\n\printf (\"字符串\\\"a\\\"所占字节数: %d\\n\

printf (\"字符串\\\"CCTV即中央电视台\\\" 所占字节数: %d\\n\\n\即中央电视台\")); printf (\"%d\%d\\n\system(\"pause\");

printf (\"int 型数据所占字节数: %d\\n\

return 0;

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

问题:

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

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

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

2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。编写程序,实现如下功能:输入一个小写英文字母,输出其大写字母;运行结果如下图所示。

并回答如下问题: 问题:

(1) 字符数据在内存中是以什么方式存储的? (2) 大小写字母的ASCII有什么关系?(如:’G’与’g’)

3、(基础题)先分析下列代码,再运行,体会++、--运算符的用法,并回答相关问题:

#include int main( ) {

int i, j, m, n,sum; i = 3; j = 7; //位置1 m = ++i; //位置2 n = j++; //位置3

sum = (i++)+(++j)+(m--)+(--n);

printf (\"i=%d, j=%d, m=%d, n=%d, sum=%d\\n\",i,j,m,n,sum); return 0;

}

问题:

(1) 写出你分析的运行结果:

(2) 分别在位置1、位置2、位置3增加一条输出语句,以显示此时的i、j、m、n、sum的值,重新编译、运行程序,验证你的结果,以加深++、--运算符的理解;

4、(提高题)求出下列算术表达式的值,并上机验证结果:  x+a%3*(int)(x+y)%2/4 设x=2.5,y=4.7,a=7

可以使用下列程序框架上机验证:

#include int main( ) {

类型名 x; //定义变量的类型,如double x; 类型名 y; 类型名 a; 类型名 b;

x= ; //对变量赋初值 y= ; a= ; b= ;

//需要补充格式控制符[以%开头]和表达式内容) }

printf(\"表达式的值为: 格式控制符\\n\表达式); return 0;

因篇幅问题不能全部显示,请点此查看更多更全内容