日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

21天学通C语言-学习笔记(1)

發布時間:2023/12/10 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 21天学通C语言-学习笔记(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言與程序概述

C語言是現在世界上應用最廣泛、最受歡迎的計算機語言之一。C語言已經經歷了30多年的發展,并且仍在繼續進步。

1.1 C語言的歷史沿革

本節將介紹C語言的誕生、標準化過程及重要特點:

  • C語言的誕生 :A語言——B語言——C語言;
  • C語言的發展歷程 :K&R C標準——C89或ANSI C標準——C99標準(本學習遵循C99標準);
  • C語言的特點
    ? 使用方便(32個關鍵字);
    ? 結構化編程(函數,控制語句);
    ? C語言是中級語言(結合了低級語言的直接訪問物理內存的優點,和高級語言的便于結構化編程的優點);
    ? 執行效率高(對代碼位級操作);
    ? C程序可移植性好(不同計算機和不同操作系統)。
  • 第一個C程序——Hello,world!
    這個程序的功能是向屏幕打印一個字符串“Hello,world!”
  • 范例1-1

    #include <studio.h>int main(void){ /*main函數*/printf("Hello,world!\n"); /*輸出"Hello,world!"*/return 0; }

    【運行結果】

    【代碼解析】這是一個簡單的C語言源程序,它必須在一個編譯環境中編譯鏈接后才能運行。所有的C程序都有一個main函數,即程序第3行。main函數是程序的入口,程序運行時,先進入main函數,然后依次執行main函數體中的語句。在范例1-1中,進入main函數,先執行第4行語句調用printf函數,輸出字符串“Hello,world!”;再執行第5行return語句,return語句會導致函數結束,程序隨之結束。

    1.2 數據結構與算法

    一般來說,程序由 數據結構 和 算法 兩個部分組成。數據結構是一個個的實體,而算法是將它們聯系在一起的各種手段。

    1.2.1 什么是數據結構

    數據結構是程序存儲、組織數據的方式。

    數據結構描述了數據元素之間的邏輯關系,數據必須存儲在內存中。數據在內存中的存儲結構是數據結構的實現形式,是數據結構在內存中的物理表示。數據結構是程序中處理數據的基本單位,在程序中作為一個整體來使用。

    數據結構1——數組結構:

    數組是一種可以存放數據的容器,其數據在內存中連續存放,訪問數組時,可 以直接使用數組名加下標的形式,比如一數組存有42名學生的信息,數組名是stuArray,數組序號從0開始排。

    若要訪問第三個學生的信息,只需使用stuArray[[2]]即可。這種數據結構適用于頻繁讀取數據的情況。

    數據結構2——鏈表結構:

    鏈表也是一種可以存放數據的容器,但其數據在內存中分散存放的。鏈表中的相鄰元素間存在一些關系,這種關系有很多種形式,最典型的一種是每個鏈表元素都包含下一個元素的地址信息,通過該元素的信息就可以查找到下一個元素。

    若同樣訪問第三個同學的信息,需要先訪問第一個同學的信息,從中獲得第二個同學的地址信息,然后訪問第二個同學的內存,從中獲得第三個同學的地址信息,之后才能訪問第三個同學的信息。也就是說,在數組中訪問一個元素,必須先按順序從第一個元素往后依次訪問,直至得到要訪問的元素。這種數據結構適用于刪除數據的操作。

    1.2.2 什么是算法

    算法就是解決一個問題的完整的步驟描述,是指完成一個任務準確而完整的步驟描述。

    算法的優劣有兩個判別標準:
    ? 空間復雜度——執行算法需要占用的內存空間(代價)
    ? 時間復雜度——執行算法需要消耗的時間資源(效率)

    1.3 程序設計概述

    結構化程序設計之設計方法——自頂向下、逐步細化,同時嚴格使用三種基本控制結構(順序結構、選擇結構和循環結構)來構造程序。

    ? 順序結構:按照它們出現的先后順序執行的。
    ? 選擇結構:程序中存在一些分支,程序通過對一些條件的判斷選擇執行的分支。
    ? 循環結構:反復執行一系列操作,直到條件為假時跳出。

    算法描述方法——算法語言、圖形描述、形式語言

    ? 算法語言:有偽代碼、各種程序設計語言、計算機語言等;
    ? 圖形描述:有流程圖、N-S圖,圖的描述應與算法語言的描述對應;
    ? 形式語言:用數學的方法,可以避免自然語言的二義性。

    偽代碼:介于程序語言和自然語言之間的算法描述。在編程時,當設計好一個算法后,都要先將它們使用偽代碼描述出來,再使用程序語言來實現,其作用就像寫文章要先列好提綱一樣。

    程序流程圖:算法的圖形描述方式。

    N-S流程圖:按照結構化設計的思想,N-S流程圖為三種基本結構設計了特殊的結構圖,并以它們為基礎來描述其余所有的算法。

    練習:使用偽代碼描述使用冒泡排序法將序列從混亂到達排序的算法,并畫出其程序流程圖或N-S流程圖。

    偽代碼:

    算法開始:設i值為N-1;當i>0{設j值為0;當j<1{如果array[j] > array[j+1]{交換第j個元素和第j+1個元素;}j自增1;}i自減1;} 算法結束


    小結

    本筆記介紹了C語言的歷史,包括C語言的誕生和C語言的標準化過程。同時,為學習C語言預備了一些基本知識,包括數據結構、算法和結構化程序設計等。

    總結

    以上是生活随笔為你收集整理的21天学通C语言-学习笔记(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。