Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊!
喜欢我的博客的话,记得点个红心❤️和小关小注哦!您的支持是我创作的动力!数据源
存放在我的资源下载区啦!
Linux程序开发(一):Linux基础入门安装和实操手册
目录
- Linux程序开发(一):Linux基础入门安装和实操手册
- 第一次作业
- 1、Linux与Unix的关系?
- 2、Linux内核版本和发行版本的差别?
- 3、解释GPL、POSIX、LBS。
- 4、安装自己的Linux运行环境,该任务在自己的机器上完成,架设完毕后写出主要安装步骤并截图。
- ==(1)下载VMWARE,安装centos7==
- ==(2)关联centOS镜像==
- ==(3)安装centOS镜像==
- ==(4)直接回车==
- ==(5)镜像检测,在这里可以直接按下Esc键,跳过检测==
- ==(6)等待一会, 就会出现以下界面==
- ==(7)以root用户身份登录: 输入 root , 然后输入密码 即可登录成功==
- 5、给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。
- 6、用递归的方法求 Hermite 多项式的值
第一次作业
问答题:
1、Linux与Unix的关系?
Linux与Unix有很紧密的关系。
(1)Linux最初是由Linus Torvalds在1991年编写的:它的核心遵循了Unix的设计思路,并参考了一些Unix的代码。因此,Linux与Unix有着相似的命令行界面、文件系统结构和进程管理方式。
(2)另外,Linux还内置了许多来自Unix的工具和服务:但是,Linux并不是完全兼容Unix的,在一些细节上还存在差异。另外值得注意的是,Unix是一个商业操作系统,而Linux则是一个开源免费的操作系统。
2、Linux内核版本和发行版本的差别?
Linux内核版本和发行版之间是有一些差异的。
(1)Linux内核是操作系统的核心部分:它控制着硬件和软件之间的交互。Linux内核版本号通常由三个数字构成,例如:5.14.6。每个数字表示一个层次结构:大版本、次要版本和修订版本。新版本的内核通常包含了新的功能和性能优化,并且也会修复已知的安全漏洞和bug。
(2)Linux发行版则是基于Linux内核的完整操作系统:并包括一个桌面界面、应用程序、工具等。常见的Linux发行版包括Ubuntu、Debian、Red Hat Enterprise Linux、CentOS、Fedora等。不同发行版之间会有不同的软件包管理系统、默认桌面环境、配置文件位置等等。发行版会对Linux内核进行定制和打包以便于用户使用。
(3)简单来说,Linux内核是操作系统的核心:控制着硬件和软件之间的交互。而发行版则是基于Linux内核的完整操作系统,包含了桌面界面和各种应用程序。
3、解释GPL、POSIX、LBS。
GPL(General Public License):通用公共许可证是一种开源软件许可证,它保障了用户对软件的自由使用、修改和分发。GPL要求在使用或修改基于GPL许可的软件时,必须将修改后的代码也以GPL许可证的形式进行发布。这意味着GPL许可证确保了开源软件在整个生命周期中的开放性和自由性,鼓励开发者共享和合作。
POSIX(Portable Operating System Interface for Unix):可移植操作系统接口标准是为了使Unix和类Unix操作系统之间具有可移植性而制定的一套标准。POSIX定义了一系列的API(应用程序接口)和命令行工具规范,旨在提供一致的系统调用接口、文件系统结构、下层硬件接口等,使得符合POSIX标准的应用程序可以在不同的POSIX兼容操作系统上运行。
LBS(Location-Based Service):基于位置的服务是指利用移动通信技术和位置信息来提供与用户位置相关的各种应用和服务。通过LBS,用户可以获取周边商家信息、导航路线、地图定位、社交媒体签到等功能。LBS技术通常依赖于全球定位系统(GPS)或移动基站信号定位,结合地图数据和其他相关信息实现服务的提供。LBS在移动互联网时代得到了广泛的应用,为用户提供了更便捷和个性化的服务体验。
实验题:
4、安装自己的Linux运行环境,该任务在自己的机器上完成,架设完毕后写出主要安装步骤并截图。
提示:有三种方式架设Linux运行环境
- 第一种方式,独立安装:在计算机硬件上独立安装Linux发行版本。
- 第二种方式,虚拟机安装:在Windows操作系统或者Mac操作系统中安装虚拟机软件,虚拟机上再安装Linux操作系统。
- 第三种方式,软件仿真:在Windows系统中安装cygwin的类Unix运行环境。
(1)下载VMWARE,安装centos7
(2)关联centOS镜像
(3)安装centOS镜像
(4)直接回车
(5)镜像检测,在这里可以直接按下Esc键,跳过检测
(6)等待一会, 就会出现以下界面
(7)以root用户身份登录: 输入 root , 然后输入密码 即可登录成功
编程题:
5、给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。
输入格式
第一行为 n(0<n<20),表示班里的学生数目;
接下来的 n 行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过 20,成绩为一个不大于 100 的非负整数。
输出
把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。
输入样例
4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28
输出样例
Joey 92
Hanmeimei 90
Kitty 80
Tim 28
代码实现
// 添加了#define _CRT_SECURE_NO_WARNINGS,以消除关于scanf函数不安全的警告
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define maxSize 21
struct student {
char name[maxSize];
int score;
};
// 冒泡排序函数,按照分数从高到低排序,如果分数相同,则按照姓名的字典序排序
void bubbleSort(struct student s[], int n) {
struct student temp;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
// 如果当前元素的分数比下一个元素的分数小,交换位置
if (s[j].score < s[j + 1].score) {
temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
// 如果当前元素的分数与下一个元素的分数相等,但是姓名的字典序大于下一个元素的姓名字典序,交换位置
if (s[j].score == s[j + 1].score && strcmp(s[j].name, s[j + 1].name) > 0) {
temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
}
int main() {
struct student s[maxSize], temp; // 定义一个结构体数组s来存储学生信息,temp用于交换临时变量
int n; // 学生数量
scanf("%d", &n); // 输入学生数量
// 输入学生信息,包括姓名和分数
for (int i = 0; i < n; i++)
scanf("%s%d", s[i].name, &(s[i].score));
// 调用冒泡排序函数,对学生信息进行排序
bubbleSort(s, n);
// 输出排序后的学生信息
for (int i = 0; i < n; i++)
printf("%s %d\n", s[i].name, s[i].score);
return 0;
}
代码结果
6、用递归的方法求 Hermite 多项式的值
h n ( x ) = { 1 n = 0 2 x n = 1 2 x h n − 1 ( x ) − 2 ( n − 1 ) h n − 2 ( x ) n > 1 h_n\left(x\right)= \begin{cases} 1 \qquad n=0\\ 2x \qquad n=1\\ 2xh_{n-1}\left(x\right)-2\left(n-1\right)h_{n-2}\left(x\right) \qquad n>1 \end{cases} hn(x)=⎩ ⎨ ⎧1n=02xn=12xhn−1(x)−2(n−1)hn−2(x)n>1
对给定的 x 和正整数 n ,求多项式的值,并保留两位小数。
输入格式
给定的 n 和正整数 x。
输出格式
多项式的值。
输入样例
1 2
输出样例
4.00
// 添加了#define _CRT_SECURE_NO_WARNINGS,以消除关于scanf函数不安全的警告
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// hermite递归函数
double hermite(int n, int x)
{
if(0==n)
return 1;
else if(1==n)
return 2*x;
else
return 2*x*hermite(n-1, x)-2*(n-1)*hermite(n-2, x);
}
int main()
{
int n, x;
scanf("%d %d", &n, &x);
printf("%.2f\n", hermite(n, x));
return 0;
}
==== 代码
代码结果