第一章:程式設計和C語言

来源:https://www.cnblogs.com/happyfei/archive/2018/09/26/9710455.html
-Advertisement-
Play Games

一、什麼是電腦程式? 所謂程式就是一組電腦能識別和執行的指令。電腦的一切操作都是由程式控制的,本質是程式的機器,程式和指令是電腦系統最基本的概念。 二、什麼是電腦語言? 人和電腦交流信息要解決語言問題,需要創造一種電腦和人都能識別的語言,這就是電腦語言。 1、電腦發展的階段 機器語 ...


一、什麼是電腦程式?

所謂程式就是一組電腦能識別和執行的指令。電腦的一切操作都是由程式控制的,本質是程式的機器,程式和指令是電腦系統最基本的概念。

 

二、什麼是電腦語言?

人和電腦交流信息要解決語言問題,需要創造一種電腦和人都能識別的語言,這就是電腦語言。

1、電腦發展的階段

機器語言:

  電腦只能識別和接收由0和1組成的指令。如:0100001

  電腦能直接識別和接受的二進位代碼稱為機器指令

  機器指令的集合就是該電腦的機器語言

符號語言:

  即彙編語言。把符號語言的指令轉換為機器指令,轉換過程稱為代真或彙編,因此,符號語言又稱為符號彙編語言或彙編語言

  由於它“貼近”電腦,離電腦“很近”稱為電腦低級語言

高級語言:

  第一個高級語言——FORTRAN語言,這種語言功能很強,而且不依賴於具體機器,用它寫出的程式對任何型號的電腦都適用(或只須做很少的該公),它與具體

  機器距離較遠,故稱為電腦高級語言

  用一種稱為編譯程式的軟體把高級語言寫的程式稱為源程式。轉換為機器指令的程式稱為目標程式,然後讓電腦執行機器指令程式,最後得到結果。

 

三、C語言的發展及其特點

C語言是國際上廣泛流行的電腦高級語言。

1、C語言的由來

CPL——>BCPL——>B語言——>C語言

BCPL:1967年英國劍橋大學的Martin Richards推出沒有類型的BCPL語言;

B語言:1970年美國AT&T貝爾實驗室Ken Thompson設計出B語言取BCPL第一個字母;

C語言:1972--1973年間,美國AT&T貝爾實驗室的D.M.Ritchie在B語言基礎上設計出C語言取BCPL第二個字母。

2、C語言的特點

(1)語言簡潔,緊湊,使用方便靈活;

(2)運算符豐富;

(3)數據類型豐富;

(4)具有結構化的控制語句;

(5)語法限制不太嚴格,程式設計自由度大;

(6)C語言允許直接訪問物理地址,能進行bit操作,能實現彙編語言大部分功能,可以直接對硬體進行控制;

(7)用C語言編寫的程式可移植性好;

(8)生成目標代碼質量高,程式執行效率高。

 

四、最簡單的C語言程式

#include<stdio.h>    //這是編譯預處理指令
int main()    //定義主函數
{    //函數開始的標誌
    printf("Hello World");    //輸出所指定的信息
    return 0;        //函數執行完畢時返回函數值0
}    //函數結束的標誌

int main():C語言的一種聲明方式,表示主函數,是C語言約定的程式入口,main前面的int表示函數的返回值類型是int型(基本整型);

printf:輸出函數;

{}:函數體;

return 0:返回的函數值是給調用main函數的操作系統用的,用來檢測函數是否正常執行,對應main函數的返回值類型;

stdio:standard input 和 output;

.h:頭文件,header file;

stdio.h:系統提供的文件名。輸入輸出函數的相關信息事先放在stdio.h文件中;

#include:把這些信息調入供使用;

#include<stdio.h>:只要用到標準庫中的輸入輸出函數,應該在文件開頭寫上;

//:單行註釋;

/**/:塊註釋。

1、C語言的應用場景

(1)系統軟體;

(2)驅動;

(3)操作系統內核;

(4)嵌入式(單片機)開發;

(5)小程式。

2、C語言程式結構

(1)一個程式由一個或多個源程式文件組成。

  預處理指令:如#include<stdio.h>。先由一個“預處理器”對預處理指令進行預處理。

        對於#include<stdio.h>來說就是將stdio.h頭文件的內容讀進來放在#include指令行,取代了#include<stdio.h>。

  全局聲明:在函數之外進行的數據聲明。

          放在函數外面聲明的變數稱為全局變數反之局部變數。

  函數定義:每個函數用來實現一定的功能。在調用這些函數時,會完成函數定義中指定的功能。

(2)函數是C程式的主要組成部分

程式幾乎全部的工作都是由各個函數分別完成的,函數是C程式的基本單位。編寫C程式的工作主要就是編寫一個個函數。

一個C語言程式是由一個或多個函數組成的,其中必須包含一個main函數(且只能有一個main函數)。

一個小程式只包含一個源程式文件,在一個源程式文件中包含若幹個函數(其中有一個main函數)。

在進行編譯時是以源程式文件為對象進行的。在分別對各源程式文件(程式模塊)進行編譯並得到相應的目標程式後,再將這些目標程式連接成為一個統一的二進位的可執行程式。

(3)一個函數包括兩個部分

函數首部:例max函數首部:int函數類型 ,max函數名,(int函數參數類型 x函數參數名)

函數體:即函數首部下麵的花括弧內的部分。最外層花括弧是函數體範圍。

    函數體包括兩個部分:

      聲明部分:定義在本函數中所用到的變數;int a,b,c;,對本函數所調用函數進行聲明,如:int max(int x,int y);

      執行部分:由若幹個語句組成,指定在函數中進行的操作。

(4)程式總是從main函數開始執行的

main函數可以放在程式最前頭,也可以放在程式最後,或在一些函數之前、另一些函數之後。

(5)程式中對電腦的操作是由函數中的C語句完成的

賦值、輸入輸出數據的操作都是由相應的C語句實現的。C程式書寫格式比較自由,一行可寫多個語句,一個語句可在多行寫。

(6)在每個數據聲明和語句的最後必須有一個分號

分號是C語句的必要組成部分。

(7)C語言本身不提供輸入輸出語句

輸入輸出語句是由庫函數來完成的。使程式具有可移植性。

(8)程式應當包含註釋

加上註釋,增加程式的可讀性

 

總結:

(1)C語言本身不提供輸入輸出語句,輸入輸出操作是由C標準函數庫中的函數實現的;

(2)C語言的演算法可以有0個或多個輸入,但必須要有1個或多個輸出(必須要有輸出);

(3)C源文件(編譯)obj目標文件(連接)exe可執行文件

(4)一條語句 多行寫;多條語句,一行寫。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Java當中的泛型 01 這就存在一個問題,如果集合存儲元素時,而且存儲對象有很多,而且對象類型不相同,就很容易導致隱患。 在 中該文件 在編譯的時候不會出現錯誤是因為該存儲的是 的任何類型的對象,所以不會出現錯誤,編譯通過了。編譯後為 到運行。 如果要解決問題,可以把問題提前到編譯的時候去解決,讓 ...
  • 智能指針 shared_ptr 使用 上一篇 "智能指針是啥玩意" ,介紹了什麼是智能指針。 這一篇簡單說說如何使用智能指針。 一,智能指針分3類:今天只嘮嘮shared_ptr shared_ptr unique_ptr weak_ptr 二,下表是shared_ptr和unique_ptr都支持 ...
  • 異常錯誤:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC dri ...
  • 深淺拷貝 一、淺拷貝 列表中存儲的是數據的記憶體地址,當我們要查詢或修改列表中的數據時,我們是通過列表中的地址找到要訪問的記憶體。當我們修改列表中的數據時,如果修改的是一個不可變類型(整型,長整型,浮點數,複數,布爾,字元串,元組),會開拓一個新的記憶體空間用於存放新的數據,然後把列表中的地址修改為存放新 ...
  • No rabbit death problem ...
  • 迭代器 在Python如果一個對象可被迴圈(遍歷)該對象中每一個元素的過程叫做迭代。例如 ,字典、字元串、列表、元祖、集合等。他們可被迭代的原因是,都有一個共同的內置函數__iter__。通過執行內置對象的__next__函數,可以依次列印該對象的所有元素。例如 有一個列表,該列表存儲了1-100的 ...
  • [TOC] 在公司里一直在用RabbitMQ,由於api已經封裝的很簡單,關於RabbitMQ本身還有封裝的實現沒有瞭解,最近在看RabbitMQ實戰這本書,結合網上的一些例子和spring文檔,實現了RabbitMQ和spring的集成,對著自己平時的疑惑做了一些總結。 關於RabbitMQ基礎不 ...
  • 一些基礎演算法總結一下,作為一個記錄 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...