实验2基本数据类型的使用文档格式.docx
《实验2基本数据类型的使用文档格式.docx》由会员分享,可在线阅读,更多相关《实验2基本数据类型的使用文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
实验时仔细对比程序实际运行结果,认真思考并回答实验小结和思考中的问题。
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*/
x=%d,y=%d,z=%d\n"
/*数据以10进制输出,换算到10进制,结果对吗?
*/
/*字符型数据的输出*/
c1=%c,c2=%x,c3=%o,c4=%d\n"
c1,c2,c3,c4);
c1=%c,c2=%c,c3=%c,c4=%c\n"
/*结果都是什么字符?
,也就是说字符可以自由的表示成几种形式?
c1=%d,c2=%d,c3=%d,c4=%d\n"
/*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符*/
/*字符型数据参与算术运算*/
c=c1+32;
/*字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数
/*参与数学运算;
结果还是一个整数-另外一个字符的ASCII码*/
c=%c,c=%d\n"
c,c);
/*看看这个字符是什么?
哇,'
+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)
inta,b,c;
a=5,b=6,c=7;
12345678123456781234567812345678\n"
);
/*打印一个标尺以便检查输出结果*/
%d\n\t%d%d\n%d%d\t\b%d\n"
a,b,c,a,b,c);
/*打印1个字符串*/
c:
\\a.txt"
/*打印一个文件名*/
\n"
12345678123456781234567812345678
5
67
567
\a.txt
3、整型数据的溢出错误。
2-3.c)
整型(int型)数据的表达范围是-32768~32767,如果最大允许值32767+1,最小允许值-32768-1,会出现什么情况?
inta,b;
a=32767;
b=a+1;
a=%d,a+1=%d\n"
a,b);
a=-32768;
b=a-1;
a=%d,a-1=%d\n"
getch();
//获得键盘击键,起到暂停程序运行作用,目的是保留用户屏幕,便于查看结果。
a=32767,a+1=-32768
a=-32768,a-1=32767
4、实型数据的舍入误差。
2_4.c)
实型变量只能保证7位有效数字,后面的数字无意义
floata,b;
a=123456.789e5;
b=a+20;
a=%f,b=%f\n"
a=%e,b=%e\n"
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)
参考程序如下:
chara,b;
a=127;
printf("
a=-128;
a=127,a+1=-128
a=-128,a-1=127