计算机系统基础实验金陵科技学院,《计算机系统基础》实验指导书.doc

《计算机系统基础》实验指导书

《计算机系统基础》指导书

Introduction to Computer Systems

实验1 数据的表示

实验序号:1 实验名称:数据的表示

适用专业:计算机科学与技术 学 时 数:2学时

1、实验目的

2、实验内容

运行下列代码,并对输出结果进行分析。

#include

void main()

{

union NUM

{

int a;

char b[4];

} num;

num.a = 0

printf("0x%X\n", num.b[2]);

}

请说明下列赋值语句执行后,各个变量对应的机器数和真值各是多少?编写一段程序代码并进行编译,观察默认情况下,编译器是否报warning。如果有warning信息的话,分析为何会出现这种warning信息。

int a = 2147483648;

int b = -2147483648;

int c = 2147483649;

unsigned short d = 65539;

short e = -32790;

编译运行以下程序,并至少重复运行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的结果分别是什么?为什么?

3、实验步骤

1.

gedit

输入实验内容1的源程序并以SAMPLE为文件名将文件存盘。

2. 用 对源文件SAMPLE并产生目标文件SAMPLEO,SAMPLE.S。

–s –o SAMPLE.S SAMPLE.C

gcc –g –o SAMPLE.O SAMPLE.C

3. 用SAMPLE。

gdb SAMPLE

4. 。

5. 依照上述四个步骤,完成对其余实验内容的操作。

实验思考题

实验2 排序程序的编辑、编译和调试

实验序号:2 实验名称:排序程序的编辑、编译和调试

适用专业:计算机科学与技术 学 时 数:2学时

1、实验目的

2、实验内容

以下程序实现了排序和求和算法,程序源码如下图所示。请根据提供的图片源程序文件,并保存为相应的.c 和.h 文件进行编译、链接,调试。

bubblesort.h:

bubblesort.c:

add.h:

add.c:

printresult.h:

printresult.c:

main.c:

实验步骤

2. 将源程序文件进行预处理、编译、汇编和链接,以生成可执行文件。

(1) 使用gcc 直接生成可执行文件

gcc -o main main.c bubblesort.c add.c printresult.c

(2) 首先生成可重定位目标文件(.o 文件),再链接成可执行文件。

首先,使用gcc –c …… 命令将所有.c 文件编译成.o 文件(可以用-o 选项命名输出的可重定位目标文件),然后再用ld 命令进行链接,以生成可执行目标文件。

(用ld命令链接时要包含很多系统库,可以用gcc –v main.c来查看系统链接需要哪些库,把collect2 换成ld,生成的/tmp/ccBCU0rh.o 即为mian.c 编译出来的main.o 文件,删掉该句替换成以下命令:-o main main.o bubblesort.o add.o printresult.o -e main)

ld -o main main.o bubblesort.o add.o printresult.o -e main --sysroot=/ --build-id --eh-frame-hdr -m elf_i386 --hash-style=gnu --as-needed -dynamic-linker /lib/ld-linux.so.2 –z relro /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值