# C語言學習筆記001-CH1&CH2基礎概論及基本輸入輸出
### 作者資訊:國立台中科技大學 資訊工程系 陳德恩
### PART A.基礎概論
#### 一.計算機概論
若我們將電腦分成軟體跟硬體,硬體就是由大量的積體電路以及PCB電路板所組成,電腦硬體基本由主機板、CPU中央處理器、記憶體、硬碟等元件組成,其中最核心的CPU中央處理器包含了控制單元以及算術邏輯單元。
1.記憶體:
記憶體分成RAM跟ROM,RAM成本較低,但是只要斷電資料就會消失,ROM成本較高,而且只能寫入資料一次,卻可以在無電力情況下保存資料,BIOS就是使用ROM做為記憶體。
2.算術邏輯單元:
算術運算:加、減、乘、除
控制單元:控制流程及協調輸入、輸出、記憶及算術邏輯等4大單元運作
#### 二.程式語言概論
程式語言存在的目的在於跟電腦溝通,一般我們用來對話的語言稱為自然語言,依據與自然語言接近的程度,我們可以分成機器語言、低階語言、高階語言。
1.機器語言:
由0和1組成,稱為機器碼,不好理解
2.低階語言:
接近機器語言,透過指令來設計程式,例如:組合語言
3.高階語言:
(1).直譯語言:
執行時一行一行翻譯成機器碼,速度比編譯語言慢
ex:Python、javascript
(2).編譯語言:
先把程式編譯成機器碼,之後再執行,速度比較快
ex:C/C++
(3).即時編譯:
先編譯成中介碼(ByteCode),再將ByteCode直譯
結合直譯語言與編譯語言的優點
ex:Java、C#
#### 三.軟體的分類與開發基本觀念
1.電腦由硬體、軟體、韌體所組成,硬體由積體電路以及PCB印刷電路板組成,軔體就是BIOS,軟體有系統程式(作業系統、編譯器等)以及應用程式(Office、繪圖軟體)。
2.開發程式必需常用註解,以免專案交接困難,此外,更應該使用函數包裝,形成精美的Code-Style,這樣可以大大降低開發維護時間,也可以保有系統擴充性。
### PART B.基本輸入輸出語法:
1.基礎Hello World!程式
PS:C/C++由main函式開始執行,這邊須注意程式語言是循序執行,因此若需要寫function來包裝程式區塊的話,必須放置於main函式之前。
``` clike=
#include<stdio.h>//前置處理指令
#include<stdlib.h>
void main()//無回傳值的main函式
{
printf("Hello World!");//輸出字串
return 0;//跳出迴圈
}
```
2.格式化輸出:
``` clike=
#include<stdio.h>
#include<stdlib.h>
void main()
{
printf("Hello World!");
printf("Hello!\nMy name is Andy.\n");//換行
printf("\t I was born in Taiwan.\n");//換行+跳格
printf("\"My habit is play airsoft.\"");//印出反斜線
return 0;
}
```
3.輸入輸出整合應用(1):
``` clike=
#include<stdio.h>
#include<stdlib.h>
void main()
{
int a;//宣告一個變數(整數)
printf("How old are you?");
scanf("%d",&a);//輸入變數區要加上「&」
printf("I am %d years old.",a); //輸出要加上變數型態
return 0;
}
```
#### 4.常見輸入輸出格式分成四種:整數、字串、浮點數、字元
1.整數(int):%d
2.浮點數(float):%f
3.字元(char):%c
4.字串(String):%s
{"metaMigratedAt":"2023-06-17T11:36:52.033Z","metaMigratedFrom":"Content","title":"C語言學習筆記001-CH1&CH2基礎概論及基本輸入輸出","breaks":true,"contributors":"[{\"id\":\"06d0c95a-ede1-43c5-9f53-ed7ff258cc6c\",\"add\":1904,\"del\":250}]"}