初學C語言
1、什麼是計算機程式?什麼是程式語言?為什麼需要程式語言?程式語言是用來幹嘛的?舉例一些程式語言,以及他們各自的特點?
計算機程式(英語:Computer program),也稱為軟體(英語:software),簡稱程式(英語:Program)是指一組指示計算機或其他具有資訊處理能力裝置每一步動作的指令,通常用某種程式設計語言編寫,運行於某種目標體系結構上。 程式語言(programming language),是用來定義計算機程式的形式語言。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算機語言讓程式設計師能夠準確地定義計算機所需要使用的資料,並精確地定義在不同情況下所應當採取的行動。
C語言是一種計算機程式設計語言,它既具有高階語言的特點,又具有組合語言的特點。C
Pascal語言語法嚴謹,層次分明,程式易寫,具有很強的可讀性,是第一個結構化的程式語言。
2、編輯好的程式到成為可以執行的可執行檔案,要經歷哪幾個過程? 預處理、編譯、彙編、連結
3、現階段為什麼要學習C語言,而不是其他的程式語言?C語言有什麼特點? C作為入門語言,其原因是C比較接近底層,又有一定的抽象性,雖然將來未必會使用它,但可以更瞭解計算機原理以及資料結構。可能對於大多數程式設計師來說沒太大用處,但原理和資料結構能以計算機角度來思考程式問題,寫出更高效的程式碼。這算是專業的程式設計師的一種修為。而且C現在還是主流,作為入門語言是很適合的。
C語言是一種計算機程式設計語言,屬高階語言範疇。它既具有高階語言的特點,又具有組合語言的特點。它可以作為工作系統設計語言,編寫系統應用程式,也可以作為應用程式設計語言,編寫不依賴計算機硬體的應用程式,程式碼清晰精簡,十分靈活。4、什麼是常量,什麼是變數?都有哪些分類? 在C語言中,常量和變數都是可以用來儲存和表示資料的,常量值在程式執行的過程中是不可變的,而變數是可變的。 常量:常量是不可變的量,C語言中數值可以用常量表示,常量可以表示各種資料型別的值。 變數:變數和常量是相對的,變數在程式執行過程中是可變的量,由變數名和變數值組成,變數名是一個標識,變數值是一個數據值,程式為每個變數開闢了儲存空間,變數值就儲存在這個空間當中,可以通過變數名訪問這個空間。 分類:
1符號常量 格式:#define
2整型常量 如6,27,-299
3 實型常量(實數或浮點浮點數)如5.43,-2.3,5.67f,12.3e3
4字元常量 如‘6’,‘a’,‘F’(不能是中文如‘男’)
5字串常量 如“6”,“男”,“nanabc”
整型變數
1)基本型別int
2)短整型short int
3)長整型long int
4)無符號行unsigned
實型變數
1)單精度float
2)雙精度double
字元變數char 5、識別符號的命名規範是什麼?
1.識別符號由字母、數字和下劃線組成。
2.識別符號的第一位必須是字母或者下劃線,不能是數字。6、什麼是資料型別?資料型別分為哪些種類?每種資料型別佔多少個位元組大小?每種資料型別的取值範圍怎麼計算?思考:對於資料型別為什麼要分類? 1)資料型別是按照規定形式表示資料的一種方式,不同的資料型別佔用空間也不同。
整型
2)加上不同的修飾符, 整型數有以下幾種型別;
signed short int 有符號短整型數說明。簡寫為short或int, 字長為2位元組共16位二進位制數, 數的範圍是-32768~32767。
signed long int 有符號長整型數說明。簡寫為long, 字長為4位元組共32位二進位制數, 數的範圍是-2147483648~2147483647。
unsigned short int 無符號短整型數說明。簡寫為unsigned int, 字長為2位元組共16位二進位制數, 數的範圍是0~65535。
unsigned long int 無符號長整型數說明。簡寫為unsigned long, 字長為4位元組共32位二進位制數, 數的範圍是0~4294967295。
浮點型
Turbo C中有以下兩種型別的浮點數:
float 單浮點數。字長為4 個位元組共32 位二進位制數, 數的範圍是3.4x10-38E~3.4x10+38E。 double 雙浮點數。字長為 8個位元組共 64 位二進位制數, 數的範圍是 1.7x10-308E~1.7x10+308E。
字元型(char)
加上不同的修飾符, 可以定義有符號和無符號兩種型別的字元型變數, 例如:
char a: /*a被定義為有符號字元變數*/ unsigned char l; /*l被定義為無符號字元變數*/
字元在計算機中以其ASCII碼方式表示, 其長度為1個位元組, 有符號字元型數取值範圍為-128~127, 無符號字元型數到值範圍是0~255。
字元型(char)
加上不同的修飾符, 可以定義有符號和無符號兩種型別的字元型變數, 例如:
char a: /*a被定義為有符號字元變數*/ unsigned char l; /*l被定義為無符號字元變數*/
字元在計算機中以其ASCII碼方式表示, 其長度為1個位元組, 有符號字元型數取值範圍為-128~127, 無符號字元型數到值範圍是0~255。
無值型(void)
無值型位元組長度為0, 主要有兩個用途: 一是明確地表示一個函式不返回任何值; 一是產生一個同一型別指標(可根據需要動態分配給其記憶體)。
5)思考
據資料型別分配其儲存位置、確定其作用範圍等等
7、位元組大小是什麼意思?怎麼計算資料型別或者變數的位元組大小? 位元組(Byte /bait/ n. [C])是計算機資訊科技用於計量儲存容量的一種計量單位,也表示一些計算機程式語言中的資料型別和語言字元。 1KB=1024B;1MB=1024KB=1024×1024B。 1B(byte,位元組)= 8 bit8、什麼是原碼?什麼是補碼?什麼是反碼?正數的原碼補碼反碼怎麼表示,負數的原碼補碼反碼怎麼表示? 1. 原碼
原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值. 比如如果是8位二進位制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符號位. 因為第一位是符號位, 所以8位二進位制數的取值範圍就是:
[1111 1111 , 0111 1111]
即
[-127 , 127]
原碼是人腦最容易理解和計算的表示方式.
2. 反碼
反碼的表示方法是:
正數的反碼是其本身
負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
可見如果一個反碼錶示的是負數, 人腦無法直觀的看出來它的數值. 通常要將其轉換成原碼再計算.
3. 補碼
補碼的表示方法是:
正數的補碼就是其本身
負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]補
[-1] = [10000001]原 = [11111110]反 = [11111111]補
對於負數, 補碼錶示方式也是人腦無法直觀看出其數值的. 通常也需要轉換成原碼在計算其數值。9、運算子有哪幾種?每種運算子進行什麼運算? 算術運算子:用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。
關係運算符:用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。
邏輯運算子:用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
位操作運算子:參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
賦值運算子:用於賦值運算,分為簡單賦值(=)、複合算術賦值(+=,-=,*=,/=,%=)和複合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
條件運算子:這是一個三目運算子,用於條件求值(?:)。
逗號運算子:用於把若干表示式組合成一個表示式(,)。
指標運算子:用於取內容(*)和取地址(&)二種運算。
求位元組數運算子:用於計算資料型別所佔的位元組數(sizeof)。
特殊運算子:有括號(),下標[],成員(→,.)等幾種。10、C語言中有哪些控制語句,每種控制語句有什麼功能? 1.if( )~else 條件語句
2.for( )~ 迴圈語句
3.while( )~ 迴圈語句
4.do~while( ) 迴圈語句
5.continue 結束本次迴圈語句
6.break 中止執行switch或迴圈語句
7.switch 多分支選擇語句
8.goto 轉向語句
9.return 從函式返回語句11、搞清楚if...else,for迴圈,while迴圈,switch...case怎麼執行的? 1. for(i=0;i<a;i++)
if(條件一滿足)
語句一;
else
語句二;
在for的語句中,只要滿足i<a,就一直執行語句一,i++是迴圈計數,直到不滿足i<a時,執行語句二結束迴圈。 2.while(條件)
{
語句;
}
當while迴圈開始後,先判斷條件是否滿足,如果滿足就執行迴圈體內的語句,執行完畢後再回來判斷條件是否滿足,如此無限重複;直到條件不滿足時,執行while迴圈後邊的語句。 3.switch (表示式){
case 值1 : 語句1 break;
case 值2 : 語句2 break;
...
default : 語句n break;
}
從表示式值等於某個case語句後的值開始,它下方的所有語句都會一直執行,直到遇到一個break為止。假如任何一個case語句的值都不等於表示式的值,就執行可選標籤default之下的語句。12、break和continue有什麼區別?
1.break
有時候我們想在某種條件出現的時候終止迴圈而不是等到迴圈條件為false才終止。
這是我們可以使用break來完成。break用於完全結束一個迴圈,跳出迴圈體執行迴圈後面的語句。
2.continue
continue和break有點類似,區別在於continue只是終止本次迴圈,接著還執行後面的迴圈,break則完全終止迴圈。
可以理解為continue是跳過當次迴圈中剩下的語句,執行下一次迴圈。