实验报告
实 验(一)
目 录
2.1 Windows下 hello程序的编辑与运行(5分)
第1章 实验基本信息
1.1 实验目的
1、运用现代工具进行计算机软硬件系统的观察与分析
2、运用现代工具进行Linux下C语言的编程调试,掌握程序的生成步骤
3、初步掌握计算机系统的基本知识与各种类型的数据表示
1.2 实验环境与工具
1.2.1 硬件环境
X64 CPU;2GHz;2G RAM;256GHD Disk 以上
1.2.2 软件环境
Windows7/10 64位以上;VirtualBox/Vmware 11以上;Ubuntu 16.04 LTS 64位/优麒麟 64位 以上
1.2.3 开发工具
Visual Studio 2010 64位以上;CodeBlocks 64位; vi/vim/gedit+gcc
1.3 实验预习
1、上实验课前,必须认真预习实验指导PPT
2、了解实验的目的、实验环境与软硬件工具、实验操作步骤,复习与实验有关的理论知识。
3、初步使用计算机管理、设备管理器、磁盘管理器、任务管理器、资源监视器、性能监视器、系统信息、系统配置、组件服务查看计算机的软硬件信息。
4、在Windows、Linux下分别编写 hello.c,显示“Hello 1200300101-学霸”(可换成学生自己信息)
5、试着编写 showbyte.c 显示hello.c的内容:如书P2页,每行16个字符,上一行为字符,下一行为其对应的10进制形式。
6、试着编写sizeof.c打印输出C语言每一个数据类型(含指针)占用空间,并在Windows、Linux的32/64模式分别运行,并比较运行结果。
第2章 实验环境建立
2.1 Windows下 hello程序的编辑与运行(5分)
截图:要求有Windows状态行,Visual Studio界面,源程序界面,运行结果界面。
Ubuntu窗口,终端term窗口,输入的“Hello 1160300199学霸”信息
图2-1 Windows下hello运行截图
2.2 Linux下 hello程序的编辑与运行(5分)
截图:要求有Ubuntu的OS窗口,Codeblocks界面,源程序界面,运行结果界面。
图2-2 Linux下hello运行截图
第3章 Windows 软硬件系统观察分析
3.1 查看计算机基本信息(2分)
运行Windows管理工具中的“系统信息”程序,查看CPU、物理内存、系统目录、启动设备、页面文件等信息,并截图
图3-1 Windows下计算机基本信息
3.2 设备管理器查看(2分)
按链接列出设备,找出所有的键盘鼠标设备。写出每一个设备的从根到叶节点的路径。
键盘:LAPTOP-7A6BV84V>>基于ACPI x64的电脑>>Microsoft ACPI-Compliant System>>PCI Express根复合体>>Intel(R) USB 3.1可扩展主机控制器-1.10 (Microsoft)>>USB根集线器(USB 3.0)>>USB Composite Device>>USB输入设备>>HID Keyboard Device
鼠标:LAPTOP-7A6BV84V>>基于ACPI x64的电脑>>Microsoft ACPI-Compliant System>>PCI Express根复合体>>Intel(R) USB 3.1可扩展主机控制器-1.10 (Microsoft)>>USB根集线器(USB 3.0)>>USB Composite Device>>USB输入设备>>HID-compliant mouse
3 隐藏分区与虚拟内存之分页文件查看(2分)
写出计算机主硬盘的各隐藏分区的大小(MB):260MB 1000MB
写出pagefile.sys的文件大小(Byte):5.25GB=5,637,144,576 Byte
C盘根目录下其他隐藏的系统文件名字为:$GetCurrent $Recycle.Bin $Windows.~WS $WinREAgent DiskGenius_WinPE Documents and Settings Intel Recovery System Volume Information
3.4 任务与资源监视(2分)
写出你的计算机的PID为“-”、最小与最大的3个任务的PID、名称、描述。
1.名称:系统中断 PID:- 描述:延迟过程调用和中断服务例程
2.名称:系统空闲进程 PID:0 描述:处理器空闲时间百分比
3.名称:svchost.exe PID:46940 描述:Windows 服务主进程
3.5 CPUZ下的计算机硬件详细信息(2分)
CPU个数: 1 物理核数: 4 逻辑处理器个数: 8 L3 Cache大小: 8MB
图3-2 CPUZ下CPU的基本信息
第4章 Linux软硬件系统观察分析
(泰山服务器)
4.1 计算机硬件详细信息(3分)
CPU个数: 1 物理核数: 1 逻辑处理器个数: 2
MEM Total: 3.8Gi Used: 873Mi Swap: 1.8Gi
图4-1 Linux下计算机硬件详细信息截图
4.2 任务管理与资源监视(2分)
写出Linux下的PID最小的两个任务的PID、名称(Command)。
1.Command:systemd PID:1
2.Command:kthreadd PID:2
4.3 磁盘任务管理与资源监视(3分)
1. /dev/sda 设备的大小______128______GB,类型__VBOX HARDDISK____
2. Units____512bytes_____Sector Size_____512bytes_______
4.4 Linux下网络系统信息(2分)
写出机器正联网用的网卡IPv4地址:________10.0.2.15________
mac地址:___08:00:27:f6:c3:6a___________
图4-2 Linux下网络系统信息
第5章 Linux下的showbyte程序
(10分)
5.1 源程序提交(8分)
showbyte.c与实验报告放在一个压缩包里
5.2 运行结果比较(2分)
运行od -Ax -tcx1 hello.c 以及showbyte.c,结果截图。
图5-1 OD的输出结果
图5-2 showbyte的输出结果
第6章 程序的生成 Cpp、Gcc、As、ld
6.1 请提交每步生成的文件(10分)
hello.i hello.s hello.o hello.out (附上hello.c)
第7章 计算机数据类型的本质
7.1 运行sizeof.c填表(5分)
Win/VS/x86 | Win/VS/x64 | Linux/M32 | Linux/M64 | |
char | 1 | 1 | 1 | 1 |
short | 2 | 2 | 2 | 2 |
int | 4 | 4 | 4 | 4 |
long | 4 | 4 | 4 | 8 |
long long | 8 | 8 | 8 | 8 |
float | 4 | 4 | 4 | 4 |
double | 8 | 8 | 8 | 8 |
long double | 8 | 8 | 12 | 16 |
指针 | 4 | 8 | 4 | 8 |
7.2 请提交源程序文件sizeof.c(5分)
第8章 程序运行分析
8.1 sum的分析(10分)
1.截图说明运行结果,并原因分析。
分析:由于传入的len=0,len-1=-1,而len是unsigned型变量,len又会变成无符号数的最大值,一直在循环中,无法跳出。程序错误。
2.论述改进方法
将传入的len又unsigned改为int型,将len变成一个有符号数,当len=0时,减一就等于-1,就可以直接跳出循环。
8.2 float的分析(10分)
1.运行结果截图,分析产生原因。
2. 论述编程中浮点数比较、汇总统计等应如何正确编程。
分析:从61.419997到61.420002这几组数据来看,输入与输出的浮点数的值有偏差,可能是因为float只能存放23位小数,在存储的时候,数据过长而被截断向偶数舍入,导致值有偏差;而从10.186810到10.186815这几组数据,转为二进制时精度足够,所以未发生舍入。
解决:用存放位数更长的double来存放数据
8.3程序优化(20分)
1. 截图说明运行结果,分析问题产生原因。
注:以上图分别为递归g1.c在f/g
为long/float和long long/double下的运行结果
注:以上图分别为循环g2.c在f/g
为long/float和long long/double下的运行结果
分析:g1.c为递归算法,当递归100次时递归层数过多,难以计算。
g2.c为循环算法,当n=100时,long long也无法完全存储f的值,导致n=100的值被截断,从而计算g的时候产生较大偏差。
而在g1.c和g2.c中,n=40时,f/g为long/float和long long/double的两种情况下,存储g的精度不同,导致最后打印出的结果也有微小偏差。
n=100时,g=0.61803399
2. 提交初始的long/double版本的g1.c与g2.c。
3. 提交最后优化后的程序 g.c
第9章 总结
9.1 请总结本次实验的收获
对自己的电脑的硬件信息有了一个初步的了解,对Linux下的terminal命令有了一些了解,对一个简单的hello.c文件的编译过程有了基本的概念,用各种命令对.c文件进行预处理、编译、汇编、链接得到最终的程序,也同时懂得不同的数据类型在不同系统上的大小等。
9.2 请给出对本次实验内容的建议
希望ppt的内容说明能够详细一些。
注:本章为酌情加分项。