一、实验目的:
1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;
2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;
3、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;
4、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。
二、实验内容
1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。运行下列程序,回答相关问题:
#include 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 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 类型名 x; //定义变量的类型,如double x; 类型名 y; 类型名 a; 类型名 b; x= ; //对变量赋初值 y= ; a= ; b= ; //需要补充格式控制符[以%开头]和表达式内容) } printf(\"表达式的值为: 格式控制符\\n\表达式); return 0; 因篇幅问题不能全部显示,请点此查看更多更全内容