实验2基本数据类型的使用.docx
- 文档编号:2787432
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:6
- 大小:17.62KB
实验2基本数据类型的使用.docx
《实验2基本数据类型的使用.docx》由会员分享,可在线阅读,更多相关《实验2基本数据类型的使用.docx(6页珍藏版)》请在冰豆网上搜索。
实验2基本数据类型的使用
实验2:
基本数据类型的使用
实验名称:
基本数据类型的使用成绩:
实验日期:
年月日实验报告日期:
年月日
一、实验目的
1、掌握C语言基本数据类型(整型,实型,字符型)数据的常量表示、变量的定义和使用。
2、掌握常见格式控制字符对输出结果的控制作用。
3、了解数据溢出错误和舍入误差(以整型、实型数据为例)。
4、进一步熟悉C程序的实现过程。
二、实验内容
在TurboC下完成“源程序清单”中规定的程序题(4个)。
三、实验要求
1、实验前认真预习,自行分析4个程序题的结果,体会本次实验的目的并了解实验要求。
实验时仔细对比程序实际运行结果,认真思考并回答实验小结和思考中的问题。
2、在TurboC下完成“源程序清单”中规定的程序题。
编辑、编译、运行程序并获得程序结果;如果程序有错,记录编译、连接遇到的提示错误。
仔细思考出错原因,并更正之。
3、编制的程序必须保存在D:
\用户目录中。
注:
用户目录可以用学号或姓名拼音简写。
4、学生可以对实验程序进行修改、补充,以便上机完成自己需要的程序验证和测试。
在完成实验要求的工作外,要学会创造性的工作。
四、实验步骤、过程
1、启动操作系统,进入DOS窗口;切换到用户磁盘,创建、进入用户目录。
(方法、命令与实验1相同)
2、启动TurboC集成开发环境。
(方法与实验1相同)
3、完成4个程序题。
(编辑、编译连接、运行程序,步骤与实验1相同)
注:
(1)仔细观察2_3,2_4两个程序的编译、连接、运行过程,系统提示错误吗?
程序运行结果有问题吗?
(2)经常用“File”-“Save”(热键F2)保存源程序以免意外导致源程序丢失。
4、退出TurboC集成开发环境,关机。
五、源程序清单、测试数据、结果。
(注释供阅读、理解程序,上机时不必输入)
1、写出一个程序测试整型、字符型数据表示,并输出以验证是否正确。
(要求文件名:
2_1.c)
main()
{
intx=010,y=10,z=0x10;/*整型数据表示*/
charc1='M',c2='\x4d',c3='\115',c4=77,c;/*字符型数据表示*/
/*整型数据的输出*/
printf("x=%o,y=%d,z=%x\n",x,y,z);
/*数据以原进制输出,注意是否有前导0或0x*/
printf("x=%d,y=%d,z=%d\n",x,y,z);
/*数据以10进制输出,换算到10进制,结果对吗?
*/
/*字符型数据的输出*/
printf("c1=%c,c2=%x,c3=%o,c4=%d\n",c1,c2,c3,c4);
/*数据以原进制输出,注意是否有前导0或0x*/
printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4);
/*结果都是什么字符?
,也就是说字符可以自由的表示成几种形式?
*/
printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);
/*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符*/
/*字符型数据参与算术运算*/
c=c1+32;/*字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数
/*参与数学运算;结果还是一个整数-另外一个字符的ASCII码*/
printf("c=%c,c=%d\n",c,c);
/*看看这个字符是什么?
哇,'M'+32='m'了,看看ASCII码表,原来如此!
*/
}
参考结果:
x=10,y=10,z=10
x=8,y=10,z=16
c1=M,c2=4d,c3=115,c4=77
c1=M,c2=M,c3=M,c4=M
c1=77,c2=77,c3=77,c4=77
c=m,c=109
2、常见预定义的转义字符对输出的控制作用。
(要求文件名:
2_2.c)
main()
{
inta,b,c;
a=5,b=6,c=7;
printf("12345678123456781234567812345678\n");/*打印一个标尺以便检查输出结果*/
printf("%d\n\t%d%d\n%d%d\t\b%d\n",a,b,c,a,b,c);/*打印1个字符串*/
printf("c:
\\a.txt");/*打印一个文件名*/
printf("\n");
}
参考结果:
12345678123456781234567812345678
5
67
567
c:
\a.txt
3、整型数据的溢出错误。
(要求文件名:
2-3.c)
整型(int型)数据的表达范围是-32768~32767,如果最大允许值32767+1,最小允许值-32768-1,会出现什么情况?
main()
{
inta,b;
a=32767;
b=a+1;
printf("a=%d,a+1=%d\n",a,b);
a=-32768;
b=a-1;
printf("a=%d,a-1=%d\n",a,b);
getch();//获得键盘击键,起到暂停程序运行作用,目的是保留用户屏幕,便于查看结果。
}
参考结果:
a=32767,a+1=-32768
a=-32768,a-1=32767
4、实型数据的舍入误差。
(要求文件名:
2_4.c)
实型变量只能保证7位有效数字,后面的数字无意义
main()
{
floata,b;
a=123456.789e5;
b=a+20;
printf("a=%f,b=%f\n",a,b);
printf("a=%e,b=%e\n",a,b);
}
参考结果:
a=12345678848.000000,b=12345678848.000000
a=1.23457e+10,b=1.23457e+10
六、实验出现的问题、实验结果分析(语法错英语提示,中文翻译,原因,您的理解?
)
1、
2、
3、
七、实验小结和思考
(1)C语言中整型数据、一般的字符型数据分别可以以什么形式表示?
答:
整型数据可以用:
10进制、8进制、16进制表示;
一般字符型数据可以用:
字符本身(例‘M’)或转义表示。
转义表示可以用字符的8进制或16进制ASCII码值表示(例‘\115’、‘\x4d’)。
(2)程序1_1.c中c4=77,c=c4+32说明什么问题?
答:
C语言中字符型数据存储的是字符的ASCII码值(1个字节的整数),所以可以将一个整数(看作字符的ASCII码)赋值给字符变量。
本实验即允许:
c4=77。
同时,C语言字符数据可以参与算术运算,其本质是字符数据的ASCII码值(整数)参与算术运算。
本实验即允许c4+32,其结果仍然是一个整数。
再将结果看作是一个字符的ASCII码值,赋值给字符变量c,即本实验中的c=c4+32。
另外,从1_1.c可以看出小写字母ASCII码>大写字母ASCII码,同一字母小写大写相值32。
(3)程序1_1.c中c=77是否还可以写成c=0x4d,c=0115?
答:
可以,整数可以直接赋值给字符变量,即10、8、16进制形式的整数都可以赋值给字符变量。
(4)简述转义字符:
‘\n’,‘\t’,‘\b’的功能?
答:
(略,学生补充,不要也给我写略哦,^_^)
(5)可以用一个字符串表示文件的路径,请问路径的连接符‘\’在C语言中如何表示?
若要表示D:
\wubin\stu.dat这个文件,C语言如何表示?
答:
‘\’在C语言中如何表示‘\\’;C语言要表示D:
\wubin\stu.dat这个文件,应当表示为“D:
\\wubin\\stu.dat”。
(6)观察2_3,2_4两个程序的编译、连接、运行过程,系统提示错误吗?
程序运行结果有问题吗?
思考如何解决?
答:
系统不提示错误,但运行结果不是我们希望的或者说是错误的。
对2_3可以使用长整型数据类型,对2_4可以使用双精度数据类型解决。
(7)使用计算机处理数据可能出现溢出错误和舍入误差,这对我们编制程序有什么要求?
答:
要求我们根据实际对数据的需求(范围、精度)正确选择合适的数据类型。
另外,由于实数存在舍入误差,使用时要注意:
●不要试图用一个实数精确表示一个大整数,记住:
浮点数是不精确的。
●实数一般不判断“相等”,而是判断接近或近似。
●避免直接将一个很大的实数与一个很小的实数相加、相减,否则会“丢失”小的数。
●根据要求选择单精度、双精度。
(8)写出一个演示字符型数据溢出的程序。
(提示:
参考2_3.c)
答:
参考程序如下:
main()
{
chara,b;
a=127;
b=a+1;
printf("a=%d,a+1=%d\n",a,b);
a=-128;
b=a-1;
printf("a=%d,a-1=%d\n",a,b);
getch();
}
参考结果:
a=127,a+1=-128
a=-128,a-1=127
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 基本 数据类型 使用
![提示](https://static.bdocx.com/images/bang_tan.gif)