驚歎號是勇士滴在攀登路上的血,也是懦夫失望時流淌的淚。以下是小編為大家搜尋整理了C語言基礎知識總結,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
主要內容:1.C資料型別
2.簡單的算術運算和表示式
3.鍵盤輸入和螢幕輸出
4.選擇控制結構
總結風格:分條羅列,主要是知識點,有例題不多
5.迴圈控制結構
一、C資料型別
1.C語言處理兩種資料:常量和變數
2.常量:整形常量、實型常量、字元常量、字串常量、列舉常量
3.整形常量:正整數、負整數、零 eg: 10,-30,0
4.實型常量:實數、小數、浮點數 eg: 3.14,-0.56,18.0
5.字元常量:字元型常量、用單引號括起來的任意字元 eg: 'x' 'X' '?' ',' '9'
6.字串常量:用雙引號括起來的一個或多個字元 eg: "x" "Hello" "Y78"
7.在C程式中,整型常量可以用十進位制、八進位制、十六進位制形式表示,但編譯器都會自動將
其轉換成二進位制儲存
8.整型常量的型別:長整型、短整型、有符號、無符號。
9.不同進位制的整型常量的表示形式:
1)十進位制:0~9數字組合,可帶正負號 eg: 256,-128,0,+7
2)八進位制:0開頭,後面跟0~7數字組合 eg: 021,-017
3)十六進位制:0x(0X)開頭,後跟0~9,a~f(A~F)數字組合 eg:0x12,-0x1F
10.不同型別的整形常量的表示形式:
1) 有符號整型常量:預設int型定義為有符號整數,無需signed eg:10,-30,0
2) 無符號整形常量:常量值後跟u或U,只能表示>=0的數 eg:30u,256U
3) 長整型常量:常量值後跟l或L eg:-256l,1024L
4) 無符號長整型常量:常量值後跟LU、Lu 、lU 、lu eg:30lu
11.C程式中,實型常量兩種表示形式:小數、指數
12.不同形式的實型常量的表示形式:
1) 十進位制表示形式:數字和小數點組成,必須要有小數點,整數部分可省略 eg:0.123, -12.35, .98
2) 指數形式:e或E代表以10為底的指數, e左邊是數值部分(有效數字,可以是整
數、小數,不能省略),e右邊是指數部分(必須是整數形式) eg:3.45e-6
13.實型常量有單精度和雙精度之分,無有符號和無符號之分
14.不同型別的實型常量表示形式:
1)單精度實型常量:常量值後跟F或f eg:1.25F,1.25e-2f
2)雙精度實型常量(double):實型常量預設按雙精度處理 eg:0.123,-12.35, .98
3)長雙精度實型常量(long double):常量值後跟L或l eg:1.25L
15.變數:在程式執行過程中可以改變的量
16.變數在必須先定義後使用,定義時需要宣告變數的型別和變數名,一般形式:型別關鍵
字 變數名;
17.關鍵字是C語言預先規定具有特殊意義的單詞,型別關鍵字用於宣告變數的型別
18.標準C語言編寫的程式都是以main()作為開頭,指定了C程式執行的起點,在C程式中
只能出現一次,稱為主函式
19.C程式總是從main函式開始執行,與他在程式中的位置無關,main函式主體部分稱為語
句,用{}括起來,一般C語句以;結束
20.變數的型別決定了編譯器為其分配記憶體單元的位元組數、資料在記憶體單元中的存放形式、
該型別變數合法的取值範圍以及該型別變數可參與的運算種類
21.變數名是使用者定義的識別符號,用於標識記憶體中具體的儲存單元,存放的資料稱為變數的
值
22.新資料存放於儲存單元時,舊資料將會被修改,反應變數的值是可以改變的
23.變數名的命名規則:
1)識別符號只能由英文字母、數字、下劃線組成
2)識別符號必須以字母或下劃線開頭
3)不允許使用C關鍵字為識別符號命名
4)識別符號可以包含任意多個字元,但一般會有最大長度限制,預編譯器有關,一般不會超過,最好不超過8個字元
注意:識別符號區分大小寫
eg:x y3 _imax ELSE X A_to_B (合法)
eg:7x int #No bad one re-input(不合法)
24.標準C規定所有變數必須在第一條可執行語句之前定義
25.在同一條語句中可以同時定義多個相同型別變數,多個變數之間用逗號分隔,沒有順序要求
26.在使用標準輸入/輸出函式時,必須在程式開頭加上編譯預處理命令
27.中stdio為標頭檔案,std是standard,i為input,o為output,h為head
28.編譯預處理命令#include的作用:將在輸入/輸出函式的標頭檔案stdio.h包含到使用者原始檔中
29.%d按十進位制整數個格式輸出,%f按十進位制小數格式輸出,一般輸出6位小數,%c輸出一個字元,n換行,雙引號內字元原樣輸出
30.不同型別的資料在記憶體中佔用不同大小的儲存單元,他們所能表示的資料的取值範圍各不相同,不同型別的資料表示形式及其可以參與的運算種類也不同
31.定義整型變數時,只要不指定為無符號型,其隱含型別為有符號型,signed通常省略不寫
32.C程式中每個變數的值都是按位元組編址,都被儲存在記憶體中特定的儲存單元中,這個儲存空間實際是一個線性地址表,即每個位元組的儲存空間對應一個唯一的地址
33.1個位元組等於8個二進位制位,即8個位為一個位元組,一個位元組可以表示的整數最小為0,最大255,即8個位可以表示0-255之間的數,一個二進位制位的值只能是0或1
34.同種型別在不同的平臺所佔位元組數不同,要計算資料型別所佔記憶體空間的位元組數需要用sizeof()運算子
of是C語言關鍵字,不是函式名,sizeof(變數名)計算一個變數所佔記憶體的位元組數
36.計算不同型別運算子的表示式時,要考慮運算子的優先順序和結合性
37.正數的反碼、補碼與原碼都相同,負數的補碼等於反碼加1
38.在計算機記憶體中負數都是用補碼來表示
39.對於實數,無論小數海曙指數形式,在計算機記憶體中都採用浮點形式來儲存
40.浮點數分為階碼、尾數兩部分,實數N=S*pow(r,j),S為尾數(無論正負,規定用存小數),j為階碼(無論正負,必須是整數),r是基數 eg:10.0111=0.100111*pow(2,10)
41.階碼所佔位數決定實數的取值範圍,尾數所佔位數決定實數的精度,尾數的符號決定實數的正負,階碼和尾數的位元組大小與編譯器有關
t型變數能接收實型常量的7位有效數字,double型變數能接收16位
43.運算子的優先順序:單目運算<算術運算<關係運算<邏輯運算<條件運算<賦值運算<逗號運算
44.素數:又稱質數,指在大於1的自然數中,除1和本身不能被其他自然數整除的數
45.合數:指在自然數中除1和本身外還能被其他自然數整除的數
46.因子:所有能整除這個數的數,不包括自身,但包括1
47.閏年:能被4整除但不能被100整除,或能被400整除
二、 簡單的算術運算和表示式
1.條件運算子是C語言提供的唯一一個三元運算子,C語言中沒有冪運算子
2.只有計算相反數是一元運算子,其餘運算子都是二元運算子
3.一元運算子也叫單目運算子,二元運算子也叫雙目運算子,三元運算子也叫三目運算子
4.整數除法的結果是整數,浮點數除法的結果是浮點數
5.求餘運算限定參與運算的兩個運算元必須為整型,餘數的符號與被除數的符號相同,不能對兩個實型數進行求餘運算
6.所有的算術運算子中只有一元的去相反數運算子為右結合,其餘的結合性都為左結合
7.同一優先順序的運算子進行混合運算時,從左向右依次進行
8.運算子的優先順序:單目運算>算術運算>關係運算>邏輯運算>條件運算>賦值運算>逗號運算
9.計算並輸出一個三位整數的個位、十位、百位數字之和
#include
void main()
{
int x=321;
int a,b,c,sum;
a=x%10;//a=1
b=(x/10)%10;//b=2
c=x/100;//c=3
sum=a+b+c;
printf("a=%d,b=%d,c=%dnsum=%dn",a,b,c,sum);
}
10.涉及算術運算的複合賦值運算子有5個:+=,-=,*=,/=,%=
11.增1運算子也稱自增運算子,減1運算子也稱自減運算子,都是一元運算子,只有一個運算元必須是變數不能是常量或表示式
12.自增自減運算子作為字首時,先執行加1或減1然後使用;自增自減運算子作為字尾時,先使用再執行加1或減1;
13.考慮優先順序與結合性的例項
m=-n++《=》m=-(n++)《=》m=-n,n=n+1;
//正面:-和++都是一元運算子,優先順序相同,此時要考慮結合性,結合性都是右結合的,所以先算++後算-
//反面:如果等價m=(-n)++就不合法了,因為表示式不能進行自增操作
f函式和printf函式都是C的標準輸入/輸出函式,&為取地址運算子
15.巨集常量與巨集替換:
1) 在程式中直接使用的常數稱為幻數,將幻數定義為巨集常量或const常量是為了提高程式的可讀性和可維護性
2) 巨集常量也稱符號常量,沒有資料型別,編譯器不對其進行型別檢查,只進行字串替換
3) 巨集定義一般形式:#define 識別符號 字串。識別符號被稱為巨集名,巨集名與字串之間可有多個空白符,不加等號,結尾不加分號
4) 巨集常量是由巨集定義編譯預處理命令來定義,巨集名替換成字串的過程稱為巨集替換,巨集替換不做任何語法檢查
5) 當巨集定義是一個表示式時,呼叫時,是一個數就可以直接帶入,而是表示式也要看成是一個數代進巨集定義表示式中,
而看成一個數這就要求把呼叫的數加上圓括號,為了減少不必要的錯誤,最好都加上圓括號
6) 巨集替換的過程是將巨集名原樣替換成字串,而不是直接計算出值,所以要用呼叫後的結果參與其他運算就需要把呼叫的結果加上圓括號
7) 例題:
#include
#define N 2 //N=2
#define M N+1 //M=2+1
#define NUM 2*M+1 //NUM=2*2+1+1=6
void main()
{
int i;
for(i=1;i<=NUM;i++);
printf("%dn",i); //執行完空迴圈,i=7
i--; // i=6
printf("%dn",i);
}
8) 例題:
#include
#define f(x) x*x
void main()
{
int b;
b=f(4+4); //b=4+4*4+4=24,解釋見5)
printf("b=%dn",b);
}
9) 例題:
#include
#define f(x) x*x
void main()
{
int b;
b=f(4+4)/(2+2); //b=4+4*4+4/(2+2)=21解釋見6)
printf("b=%dn",b);
}
10) 例題:
#include
#define f(x) x*x
void main()
{
int b;
b=f((4+4)); //b=(4+4)*(4+4)=64
printf("b=%dn",b);
}
11) 例題:
#include
#define f(x) (x*x)
void main()
{
int b;
b=f((4+4))/(2+2); //b=((4+4)*(4+4))/(2+2)=16
printf("b=%dn",b);
}
t常量
1) const常量只能在定義時賦初值,因為編譯器將其放在只讀儲存區,不允許在程式中修改
2) const常量的定義一般形式:const 型別名 識別符號=字串;//將識別符號宣告為具有該資料型別的const常量
3) const是一種型別修飾符,const常量具有資料型別,編譯器要對其進行型別檢查
17.表示式中的自動型別轉換:
1) 表示式中,運算元型別相同,運算的結果型別與運算元型別相同
2) 表示式中,運算元型別不相同,C編譯器自動將所有運算元進行型別提升,轉換成同一型別,所佔位元組最大,再計算
18.賦值中的自動型別轉換:
1) 賦值運算子左側變數與右側表示式型別不同時,發生自動型別轉換:右側表示式的值轉換成左側變數的型別
19.強制型別轉換:
1) 強制型別轉換運算子是一元運算子
2) 強制型別轉換也稱強轉,是將表示式的值轉換為任意型別,並不改變變數本身的資料型別
3) 強轉一般形式:(型別)表示式
4) 演示強制型別轉換運算子的使用
#include
void main()
{
int m=5;
printf("m/2=%dn",m/2);//m=2
printf("(float)(m/2)=%fn",(float)(m/2));//m=2.000000
printf("(float)m/2=%fn",(float)m/2);//m=2.500000
printf("m=%dn",m);//m=5,只是將m強轉為實型資料,並不改變m的資料型別 }
20.常用的標準數學函式:
1) 使用C標準數學函式,要在程式開頭加上編譯預處理命令:#include
2) 例:已知三角形三邊長為a,b,c,計算三角形的面積
#include
#include
void main()
{
float a,b,c,s,area;
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
s=(a+b+c)/2;
area=(float)sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%fn",area);
}
21.賦值運算子的左側不能出現表示式,變數與變數之間可以賦值
例1:若有定義:int a,b,c;下列表達式中哪一個是合法的C語言賦值表示式(C、D)
A)a=7+b=c=7 B)a=b++=c=7 C)a=(b=7,c=12) D)a=3,b=a+5,c=b+2
//A.7+b表示式不能做左值 B.b++表示式不能做左值 C.逗號表示式a=12 D.依次賦值
例2:下面不正確的賦值語句是(B)
A)a=++a B)a=b++=10 C)a+=b D)a=1>'a'
//D.算術運算子優先順序高於賦值運算子,先算1>'a'再將其結果賦給a
例3:若有下列定義:int a=3,b=2,c=1;以下選項錯誤的賦值表示式是(A)
A)a=(b=4)=3 B)a=b=c+1 C)a=(b=4)+c D)a=1+(b=c=4)
//A.先計算圓括號裡的值等於4,然後按照賦值表示式的順序從右向左計算,將3賦值給4這是不對的,
即賦值號左側只能是變數,不能出現表示式b=4
三、 鍵盤輸入和螢幕輸出
1.字元常量:
把字元放在一對單引號內,適用於多數可列印字元
2.轉義字元:
以反斜線()開頭,也是放在一對單引號內,適用於控制字元(如回車符,換行符)
3.常用的轉義字元:
1) 'n' — 換行 8) 'a' — 響鈴報警提示音
2) 'r' — 回車(不換行) 9) '"' — 一個雙引號
3) '