當前位置:首頁 » 編程語言 » c語言源程序執行過程
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言源程序執行過程

發布時間: 2023-02-15 02:14:00

1. c語言程序的執行過程是什麼

順序執行,從main函數開始,順序執行。
遇到調用的其它函數就先運行函數,然後繼續執行主函數下面的語句。
當整個程序編寫好後,編譯器先編譯,再連接各種庫函數,然後執行程序。

2. [C語言] 運行C程序的步驟

(1)上機輸入和編輯源程序。通過鍵盤向計算機輸入程序,如發現有錯誤,要及時改正。最後將此源程序以文件形式存放在自己指定的文件夾內(如果不特別指定,一般存放在用戶當前目錄下),文件用.c作為後綴,生成源程序文件,如f.c。

(2)對源程序進行編譯,先用C編譯系統提供的「預處理器」(又稱「預處理程序」或「預編譯器」)對程序中的預處理指令進行編譯預處理。例如,對於#include<stdio.h>指令來說,就是將stdio.h頭文件的內容讀進來,取代#include<stdio.h>行。由預處理得到的信息與程序其他部分一起組成一個完整的、可以用來進行正式編譯的源程序,然後由編譯系統對該源程序進行編譯。
編譯的作用首先是對源程序進行檢查,判定它有無語法方面的錯誤,如有,則發出「出錯信息」,告訴編程人員認真檢查改正。修改程序後重新進行編譯,如果還有錯,再發出「出錯信息」。如此反復進行,直到沒有語法錯誤為止。這時,編譯程序自動把源程序轉換為二進制形式的目標程序(在Visual C++中後綴為.obj,如f.obj)。如果不特別指定,此目標程序一般也存放在用戶當前目錄下,此時源文件沒有消失。
在用編譯系統對源程序進行編譯時,自動包括了預編譯和正式編譯兩個階段,一氣呵成。用戶不必分別發出二次指令。
(3)進行連接處理。經過編譯所得到的二進制目標文件(後綴為.obj)還不能供計算機直接執行。前面已說明:一個程序可能包含若干個源程序文件,而編譯是以源程序文件為對象的,一次編譯只能得到與一個源程序文件相對應的目標文件(也稱目標模塊),它只是整個程序的一部分。必須把所有的編譯後得到的目標模塊連接裝配起來,再與函數庫相連接成一個整體,生成一個可供計算機執行的目標程序,稱為可執行程序(executive program),在Visual C++中其後綴為.exe,如f.exe。
即使一個程序只包含一個源程序文件,編譯後得到的目標程序也不能直接運行,也要經過連接階段,因為要與函數庫進行連接,才能生成可執行程序。
以上連接的工作是由一個稱為「連接編輯程序」(linkage editor)的軟體來實現的。
(4)運行可執行程序,得到運行結果。
以上過程如圖1.2所示。其中實線表示操作流程,虛線表示文件的輸入輸出。例如,編輯後得到一個源程序文件f.c,然後在進行編譯時再將源程序文件f.c輸入,經過編譯源程序,找出問題,修改源程序,並重新編譯,直到無錯為止。有時編譯過程未發現錯誤,能生成可執行程序,但是運行的結果不正確。一般情況下,這不是語法方面的錯誤,而可能是程序邏輯方面的錯誤,例如計算公式不正確、賦值不正確等,應當返回檢查源程序,並改正錯誤。
為了編譯、連接和運行C程序,必須要有相應的編譯系統。目前使用的很多C編譯系統都是集成開發環境(IDE)的,把程序的編輯、編譯、連接和運行等操作全部集中在一個界面上進行,功能豐富,使用方便,直觀易用。

3. C語言程序運行過程

  1. 第一題答案:

    60.5

    70.5

    運行過程:首先struct xscj xs[]={{1,60,61},{2,70,71}};這條語句是對結構體數組xs賦初值,{1,60,61}分別賦值給xs[0].n=1, xs[0].cj1=60, xs[0].cj2=61;xs[0].cj3未賦值。同理,{2,70,71}分別賦值:xs[1].n=2, xs[1].cj1=70, xs[1].cj2=71;xs[1].cj3未賦值.

    其次,

    for(i=0;i<2;i++){

xs[i].cj3=(xs[i].cj1+xs[i].cj2)/2;

printf("%5.1f ",xs[i].cj3);

}

這條語句是分別對xs[1],xs[2]的cj3欄位賦值,賦值為(cj1+cj2)/2的值。輸出語句 printf("%5.1f ",xs[i].cj3);限定了輸出寬度和小數點位數,故輸出60.5 和 70.5.

2.第二題填空:st.name @st.age

首先明白scanf的格式:

scanf("格式化字元串",變數地址表);

「變數地址表」是接受輸入數據的變數的地址。第一個輸入格式是%s,接收字元串,字元串名字即為首地址,所以直接st.name就可以了;第二個格式是%d,接收整型數據,所以必須取地址,使用取地址符號&,所以第二空答案就是&st.age.

4. C語言程序開發的四個步驟是什麼

C語言程序開發的四個步驟是什麼

1 寫代碼。

2 編譯。

3 鏈接。

4 運行。

C語言設計的三個步驟:

一、分析問題

二、畫出問題的基本輪廓

三、實現該程序

計算機語言包括機器語言、匯編語言、高級語言。機器語言是用二進制代碼表示的計算機能直接識別和執行的一種機器指令的集合。它是計算機的設計者通過計算機的硬體結構賦予計算機的操作功能,比如匯編語言(assembly language)。機器語言具有靈活、直接執行和速度快等特點。高級語言比較容易識記和理解,像C B語言等。

C程序開發的四個步驟依次是?

輸入與編輯源程序--對源程序進行編譯--與庫函數連接--運行可執行的目標程序。

開發一個c語言程序要經過哪四個步驟

提供《計算機考試題庫》的答案(填空):

開發—個C語言程序需要經過______、______、______和______四個基本過程。

答案:編輯 編譯 連接 運行


擴充解釋:

1. 編輯:編寫源程序代碼(.c、.h文件)
2. 編譯:將源代碼編譯為目標文件(.OBJ文件)
3. 鏈接:將目標文件生成可執行文件( .EXE文件)
4. 運行:執行 .EXE文件,得到運行結果。

1. 編寫C語言程序四個步驟是: --------- , -------- , -------- , -------- . ?

四個步驟?第一次聽有人這么說,如果寫很大代碼量的程序的話,那可得幾百行甚至幾千行的代碼,沒什麼具體步驟啊!如果說框架,那一般是
#include<stdio.h><>括弧內是你需要包含的頭文件,是具體情況而定。
void main()主函數開始,這是都有的,不過也有的是int型的。
{
}
不知道我的答案能不能幫到你!

C語言程序開發歷史

C語言的原型ALGOL 60語言。(也稱為A語言)1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。即是著名的ANSI C。1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《C語言程序》(The C Programming Language),從而使C語言成為當時世界上流行最廣泛的高級程序設計語言。1988年,隨著微型計算機的日益普及, C語言出現了許多版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准, 成為現行的C語言標准3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。

簡述開發一個c語言程序的步驟是什麼樣的?

1 寫代碼。這是最基礎的一步,即實現C語言的源文件(.c,必需),和可能的頭文件(.h,非必需)。

2 編譯。將編寫好的代碼,通過編譯工具,轉換為目標文件。此步中,會對文件內部及包含的頭文件進行語法語義的分析檢查。如果出錯,則必須返回到一步對代碼進行修改,直到沒有錯誤為止。

3 鏈接。將目標文件鏈接成可執行文件。此步會對文件直接的關聯進行檢查。如果出錯需要返回到1修改代碼。直到沒有錯誤。

4 運行。這個是最後一步,也是C語言的最終目的。

5 在運行結果與期望不符時,需要檢查原因,修改代碼,重新執行一二三直到程序沒有問題。

(1)語言簡潔、緊湊靈活。二十八個關鍵字、九種控制語句,程序形式自由,運算符豐富。三十四種運算符。

(2)數據類型豐富,具有現代語言的各種數據結構。

(3)C程序的主要結構是函數,是完全模塊化和結構化的語言。

(4)允許直接訪問物理地址,能進行位操作,能實現匯編語言的大部分功能,可直接對硬體進行操作。兼有高級和低級語言的特點。

(5)程序可移植性好(與匯編語言比)。基本上不做修改就能用於各種型號的計算機和各種操作系統。

(6)目標代碼質量高,程序執行效率高。只比匯編程序生成的目標代碼效率低10%-20%。

(7)語法限制不太嚴格,程序設計自由度大。

使用CB開發平台做一個c語言程序的步驟是什麼?

安裝CB平台
1、在界面上加一個按鈕控制
2、雙擊按鈕,在游標閃爍處寫入代碼,可以寫C代碼。

軟體是用C語言程序開發出來的。C語言用什麼開發呢?

C語言不是匯編語言開發的、C語言是在B語言基礎上發展而來的、可以網路

5. 開發一個c語言程序要經過哪四個步驟

開發一個C語言程序需要經過的四個步驟:編輯、編譯、連接、運行。

C語言程序可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的C語言編譯器和庫,然後將C源代碼編譯、連接成目標二進制文件之後即可運行。

1、預處理:輸入源程序並保存(.C文件)。

2、編譯:將源程序翻譯為目標文件(.OBJ文件)。

3、鏈接:將目標文件生成可執行文件(.EXE文件)。

4、運行:執行.EXE文件,得到運行結果。

(5)c語言源程序執行過程擴展閱讀:

C語言代碼變為程序的幾個階段:

1、首先是源代碼文件test.c和相關的頭文件,如stdio.h等被預處理器cpp預處理成一個.i文件。經過預編譯後的.i文件不包含任何宏定義,因為所有的宏已經被展開,並且包含的文件也已經被插入到.i文件中。

2、編譯過程就是把預處理完的文件進行一系列的詞法分析、語法分析、語義分析以及優化後產生相應的匯編代碼文件,這個過程往往是我們所說的整個程序的構建的核心部分,也是最復雜的部分之一。

3、匯編器不直接輸出可執行文件而是輸出一個目標文件,匯編器可以調用ld產生一個能夠運行的可執行程序。即需要將一大堆文件鏈接起來才可以得到「a.out」,即最終的可執行文件。

4、在鏈接過程中,對其他定義在目標文件中的函數調用的指令需要被重新調整,對實用其他定義在其他目標文件的變數來說,也存在同樣問題。

參考資料來源:網路-c語言

6. C語言程序是如何執行的

C語言怎麼運行,以linux舉例:
1、編寫好源代碼example.c;假設是放在目錄/home/user/下面;
2、進入/home/user/目錄,編譯源代碼:gcc example.c -o example,如果沒有編譯錯誤,將生成執行文件example;
3、在當前目錄下輸入./example,就可以運行了;
當然還有在TC和VC下運行的方法,那些都是圖形化的,比較簡單,唯一需要注意的是在TC下運行,要設定好環境變數

7. 編寫一個c語言程序直到運行,經過幾個步驟每一步生成的文件類型是什麼類型

首先建立源代碼(生成.c或者.cpp文件),然後編譯(生成.o文件),最後鏈接(生成可執行文件,windows下是.exe文件。)x0dx0a舉個例子:x0dx0alizi.cpp(編寫代碼文件)x0dx0alizi.o(編譯後生成文件)x0dx0alizi.exe(鏈接後生成可執行文件)x0dx0a x0dx0a現在大多數人都用可視化的編寫軟體,從源程序到可執行文件的中間過程肯定看不到的

8. c語言程序的運行過程中在哪些過程中會產生文件

編譯過程會產生.o文件(目標文件)鏈接後產生可執行文件。

目標代碼包括機器碼和符號表(函數及變數名)。連接器的主要作用是通過符號表在庫文件和其他模塊中找到在目標代碼中引入或未定義的符號(函數及變數名),將幾個目標代碼合成可執行文件。

不同的系統,產生的文件不一樣;

win:

->.obj目標文件

->.obj目標文件->.exe可執行文件

->.rc

(8)c語言源程序執行過程擴展閱讀:

解釋方式下,計算機對高級語言書寫的源程序一邊解釋一邊執行,不能形成目標文件和執行文件。

編譯方式下,首先通過一個對應於所用程序設計語言的編譯程序對源程序進行處理,經過對源程序的詞法分析、語法分析、語意分析、代碼生成和代碼優化等階段將所處理的源程序轉換為用二進制代碼表示的目標程序,通過連接程序處理將程序中所用的函數調用、系統功能調用等嵌入到目標程序中,構成一個可以連續執行的二進制執行文件。

調用這個執行文件就可以實現程序員在對應源程序文件中所指定的相應功能。

9. [C語言] 運行C程序的步驟

c運行要經過4個步驟:
1 編輯代碼
2 編譯代碼
3 運行exe文件

10. C語言源程序到運行程序經過哪幾個步驟

C源程序到運行程序步驟:x0dx0a1.編輯:輸入源程序並存檔(.C)x0dx0a2.編譯:將源程序翻譯為目標文件(.OBJ)x0dx0a3.鏈接:將目標文件生成可執行文件( .EXE)x0dx0a4.運行:執行.EXE文件,得到運行結果