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 21struct 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;elsereturn 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;
}==== 代碼
代碼結果