计算机基础大作业完整版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生实验报告
(理工类)
课程名称:计算机系统基础I专业班级:
学生学号:学生姓名:
所属院部:计算机工程学院指导教师:
2019——2020学年第 1 学期
金陵科技学院教务处制
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称:数据的表示实验学时: 2 同组学生姓名:无实验地点:
实验日期:实验成绩:
批改教师:批改时间:
一、实验目的和要求
熟悉数值数据在计算机内部的表示方式,掌握相关的处理语句。二、实验仪器和设备
硬件环境:IA-32
软件环境:Linux ubuntu14.04,C语言,gcc
三、实验内容与过程
1、实验内容
1.“-2 < 2”和“-2 < 2u”的结果一样吗?为什么?请编写程序验证。
2.运行下图中的程序代码,并对程序输出结果进行分析。
3.运行下列代码,并对输出结果进行分析。
#include
void main()
{
union NUM
{
int a;
char b[4];
} num;
num.a = 0x12345678;
printf("0x%X\n", num.b[2]);
}
4.请说明下列赋值语句执行后,各个变量对应的机器数和真值各是多少?编写一
段程序代码并进行编译,观察默认情况下,编译器是否报warning。如果有
warning信息的话,分析为何会出现这种warning信息。
int a = 2147483648;
int b = -2147483648;
int c = 2147483649;
unsigned short d = 65539;
short e = -32790;
5.编译运行以下程序,并至少重复运行3次。
void main()
{
double x=23.001, y=24.001, z=1.0;
for (int i=0; i<10; i++) {
if ((y-x)==z)
printf("equal.n");
else
printf("not equal\n");
x += z;
y += z;
printf("%d, %f , %f\n”, i, x, y);
}
}
要求:
(1)给出每次运行的结果截图。
(2)每次运行过程中,是否每一次循环中的判等结果都一致?为什么?
(3)每次运行过程中,每一次循环输出的i、x和y的结果分别是什么?为什么?
2、实验步骤
1. 进入linux系统,在shell终端的提示符后输入gedit,编写C语言源程序。
gedit
输入实验内容1的源程序并以SAMPLE.C为文件名将文件存盘。
2. 用GCC 对源文件SAMPLE.C进行编译并产生目标文件SAMPLE.O,汇编语言
程序SAMPLE.S。
gcc –s –o SAMPLE.S SAMPLE.C
gcc –g –o SAMPLE.O SAMPLE.C
3. 用GDB跟踪执行SAMPLE。
gdb SAMPLE
4. 观察程序执行情况并记录运行结果。
5. 依照上述四个步骤,完成对其余实验内容的操作。
四、实验结果与分析
(1)
#include
void main()
{
int a,c;
a=(-2<2)?1:0;
c=(-2<2u)?1:0;
printf("%d\n%d\n",a,c); }
正数的原码,反码,补码都一样。而负数在计算机里是按补码存放和运算的。-2在内存中的存储方式为1111,1111,1111,1111,11111,11111,1111,1110B即fffffffeH,最高位为符号位,2在内存中的存储方式为0000,0000,0000,0000,0000,0000,0000,0010B 即2H,最高位为符号位,2u在内存中存储的方式为0000,0000,0000,0000,0000,0000,0000,0010B即2H,最高位不再是符号位。所以-2<2是符号位的比较,即-2<2是正确的。-2<2u是有符号数和无符号数之间的比较,此时编译器会把有符号数自动转无符号数,所以-2=2。
-2<2,是有符号数的比较,即2+(-2)=f f f f f f f eH+f f f f f f f e H=1FFFFFFFCH=[-4]补,最高位符号位溢出,所以证明被减数的符号是负号,即-2<2是正确的。.
有符号数和无符号数的比较。系统会自动把有符号数转换成无符号数。
fffffffeH=4294967294D<2D(是错误的)=2H