C语言(二)C语言程序结构及简单的C程序举例
C語言小白報道!和老劉一起開始學習C語言吧!
一、C語言程序的結構
(1)一個程序由一個或多個源程序文件組成。
(2)函數是C程序的主要組成部分。
(3)一個函數包括兩個部分。
(4)程序總是從main函數開始執行的。
(5)程序中要求計算機完成的操作是由函數中的C語句完成的。
(6)在每個數據聲明和語句的最后必須有一個分號。
(7)C語言本身不提供輸入輸出語句。
(8)程序應當包含注解。
以下開始細說:
1)①預處理指令 #include<stdio.h>(例如還有#define等)C語言能對源程序進行翻譯之前,先由一個預處理器(又叫預處理程序、預編譯器)對預處理系統進行預處理,對#include<stdio.h>指令來說,就是將stdio.h頭文件的內容讀進來,取代#include<stdio.h>。由預處理得到的結果與程序其他部分一起,組成一個完整的、可以用來編譯的最后的源程序,然后由編譯程序對該源程序正式進行編譯,才得到目標程序。
②全局聲明 如一會在主程序中見到的 int a,b,sum 放在main函數的前面,這就是全局申明。在函數外面聲明的變量稱為全局變量。如:在程序開頭(定義函數之前)聲明的變量,就在整個源程序文件范圍內有效。在函數中聲明的變量是局部變量,只在函數范圍內有效。
③? 一個C語言程序由一個或多個函數組成,其中必須包含一個main函數(有且僅有一個main函數)。一個小程序只包含一個源程序文件,在一個源程序文件中包含若干個函數(其中有且僅有一個main函數),但是程序規模較大時,所包含的函數就會比較多,這樣文件就會很大并且不利于編譯和調試。為了方便編譯和調試,可以使一個程序包含若干個源程序文件,每個源程序文件又包含若干個函數。一個源程序文件就是一個程序模塊,即,將一個程序分成若干個程序模塊。C語言的這種特點使得容易實現程序的模塊化。
④函數首部
以int max (int a,int b)為例:
第一個int是函數類型,max是函數名,后兩個int是函數參數類型,a,b是函數參數名。
一個函數名后面必須跟一對圓括號,括號內寫函數的參數名以及類型。若函數沒有參數,可以在括號中寫void,也可以是空括號。例:int main(void)/int main()
⑤函數體。這是函數首部下面花括號內的部分,若有很多花括號,一般認為最外層的花括號是函數體的范圍。
函數體一般包括聲明部分和執行部分。
在某些情況下,可以沒有聲明部分,甚至可以既無聲明部分也無執行部分。例:
void dump()
{}? ? ? ? ? ? ? ? ? ? ? ? ? ————————該例選自《C程序設計》
這是一個空函數,什么也不做但也是合法的。
⑥主函數mian不論放在整個程序中的任意位置均可。
⑦ 注釋。注釋放在? ?//? ? ?后,或者在? ? ? /*? ? ?*/? ? 之間。
二、開始實例
先來個簡單的:?這是最基礎的
#include<stdio.h> int main() {printf("This is a c program!\n");return 0; }以下兩個逐漸復雜,涉及到部分聲明、函數調用以及接收輸入、打印結果等函數,值得注意的是? \n? 是換行的意思,%d? 是占位符,就像有個坑用%d先占住,后面的&a(&b)等,是填入前面占位坑的數。?
//求兩整數之和 #include<stdio.h> int main() {int a, b, sum;scanf_s("%d,%d", &a, &b);//輸入數字sum = a + b; //求和printf("sum is %d\n", sum);//輸出return 0; //結束程序 } //求兩整數的較大者 #include<stdio.h> int main() {int max(int x, int y);//調用max函數int a, b, c; //聲明scanf_s("%d,%d", &a, &b);//接受輸入的數c = max(a, b);printf("max=%d", c);return 0; } int max(int x, int y) {int z;if (x < y)z = y;else z = x;return(z);}下面我們再復雜點
#include<stdio.h> #define Height 10//定義用戶常量,在之后的程序中遇見Height自動默認為10int main() {int calculate(int Long, int Width);printf("長方體的高度為:%d\n", Height);//可替換成自主輸入int inlong;int inwidth;printf("請輸入寬度:");scanf_s("%d", &inwidth);printf("請輸入長度:");scanf_s("%d", &inlong);int result;result = calculate(inlong, inwidth);printf("長方體的體積是:%d", result);return 0; } int calculate(int inlong, int inwidth)//自定義計算體系 {int result;result = inlong * inwidth * Height;return result; }?注意#define此處的含義。我相信,層層理解,這些都已經被大家理解了、并且很有條理。那么,不用預處理Height等于10,而換成用戶輸入可以做到嗎?
#include<stdio.h> //#define Height 10//定義用戶常量,在之后的程序中遇見Height自動默認為10int main() {int calculate(int inlong, int inwidth, int inheight);//printf("長方體的高度為:%d\n", Height);//可替換成自主輸入int inheight;printf("請輸入高度:");scanf_s("%d", &inheight);int inlong;int inwidth;printf("請輸入寬度:");scanf_s("%d", &inwidth);printf("請輸入長度:");scanf_s("%d", &inlong);int result;result = calculate(inlong, inwidth,inheight);printf("長方體的體積是:%d", result);return 0; } int calculate(int inlong, int inwidth,int inheight)//自定義計算體系 {int result;result = inlong * inwidth * inheight;return result; }PS:scanf在該軟件版本只能用scanf_s,不然會說不安全,具體原因不是很清楚欸
總結
以上是生活随笔為你收集整理的C语言(二)C语言程序结构及简单的C程序举例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 思聪吃热狗(双人版)
- 下一篇: winform html5 ui,C#