自學單片機第八篇:基礎知識——C語言基礎

2020-08-25 小亮談電氣

對於剛學計算機編程的同學來說,每一個編程知識都覺得很重要,下面小編為大家整理了相關大學C語言必背基礎知識,希望大家喜歡。

特別要注意:C語言中時用非0表示邏輯真的,用0表示邏輯假的。

C語言有構造類型,沒有邏輯類型。

關係運算符號:注意<=的寫法,==和=的區別!

if只管後面一個語句,要管多個,請用大括號!

1)關係表達式:

a、表達式的數值只能為1(表示為真),或0(表示假)。

如 9>8這個關係表達式是真的,所以9>8這個表達式的數值就是1。

如 7<6這個關係表達式是假的,所以7<6這個表達式的數值就是0

b、就是int x=1,y=0,z=2;

x<y<z是真還是假?代入為1<0<2,從數學的角度出發肯定是錯的,但是如果是C語言那麼就是正確的!因為要1<0為假得到0,表達式就變成了0<2那麼運算結果就是1,稱為了真的了!

c、等號和賦值的區別!一定記住&34;就是賦值,&34;才是等號。雖然很多人可以背誦,但我依然要大家一定好好記住,否則,做錯了,我一定會強烈的鄙視你!

2)邏輯表達式:

核心:表達式的數值只能為1(表示為真),或0(表示假)。

a) 共有&& || !三種邏輯運算符號。

b) !>&&>|| 優先的級別。

c) 注意短路現象。考試比較喜歡考到。詳細請見書上例子,一定要會做例1和例2

d) 表示 x 小於0大於10的方法。

0<x<10是不行的(一定記住)。是先計算0<x 得到的結果為1或者0;再用0,或1與10比較得到的總是真(為1)。所以一定要用 (0<x)&&(x<10)表示比0大比10小。

3)if 語句

a、else 是與最接近的if且沒有else的語句匹配。

b、交換的程序寫法:t=x;x=y;y=t;

c、if(a<b)t=a;a=b;b=t;  if(a<b){t=a;a=b;b=t;}兩個的區別,考試多次考到了!

d、單獨的if語句:if(a<b)t=a;  

標準的if語句:if(a<b)min=a;  else min=b;  

嵌套的if語句:if(a<b)  if(b>c)printf(&34;);  

多選一的if語句if(a= =t)printf(&34;);else if(b= =t)printf(&34;);else if(c= =t)printf(&34;);else pritnf(&34;);

通過習題,要熟悉以上幾種if語句!

經典考題:結合上面四種if語句題型做題,答錯了,請自行了斷!預備,開始!

int a=1,b=0;  if(!a)b++;  else if(a= =0)  if(a)b+=2;  else b+=3;請問b的值是多少?

如果沒有看懂題目,你千萬不要自行了斷,這樣看得懂不會做的人才會有理由的活著。

正確的是b為3。

int a=1,b=0;

if(!a)b++; 是假的不執行

else if(a= =0) 是假的不執行

if(a)b+=2; 屬於else if的嵌套if語句,不執行。

else b+=3; if-else-if語句沒有一個正確的,就執行else的語句!

4)條件表達式:

表達式1 ?表達式2 :表達式3

a、考試口訣:真前假後。

b、注意是當表達式1的數值是非0是,才採用表達式2的數值作為整個運算結果,當表達式1的數值為0時,就用表達式3的數值作為整個的結果。

c、int a=1,b=2,c=3,d=4,e=5;

k=a>b?c:d>e?d:e;求k的數值是多少?答案為san

5)switch語句:

a) 執行的流程一定要弄懂!上課時候詳細的過程講了,請自己一定弄懂!

b)注意有break 和沒有break的差別,書上的兩個例子,沒有break時候,只要有一個case匹配了,剩下的都要執行,有break則是直接跳出了swiche語句。break在C語言中就是分手,一刀兩斷的意思。

c) switch只可以和break一起用,不可以和continue用。

d) switch(x) x:是整型常量,字符型常量,枚舉型數據。

{case 1:…。不可以是變量。  case 2:…。  }  e)switch是必考題型,請大家一定要完成書上的課後的switch的習題。

大學C語言複習重點

1)程序結構是三種:順序結構 、選擇結構(分支結構)、循環結構。

2)讀程序都要從main()入口, 然後從最上面順序往下讀(碰到循環做循環,碰到選擇做選擇),有且只有一個main函數。

3)計算機的數據在電腦中保存是以 二進位的形式。數據存放的位置就是 他的地址。

4)bit是位 是指為0 或者1。byte 是指字節, 一個字節 = 八個位。

概念常考到的:

1、編譯預處理不是C語言的一部分,不佔運行時間,不要加分號。C語言編譯的程序稱為源程序,它以ASCII數值存放在文本文件中。

2、define PI 3.1415926; 這個寫法是錯誤的,一定不能出現分號。

3、每個C語言程序中main函數是有且只有一個。

4、在函數中不可以再定義函數。

5、算法:可以沒有輸入,但是一定要有輸出。

6、break可用於循環結構和switch語句。

7、逗號運算符的級別最低,賦值的級別倒數第二。

C語言基礎知識大全

C語言程序的結構認識

用一個簡單的c程序例子,介紹c語言的基本構成、格式、以及良好的書寫風格,使小夥伴對c語言有個初步認識。

例1:計算兩個整數之和的c程序:

34;a=%d,b=%d,sum=%d\n&34;主函數&34;a=%d,b=%d,sum=%d\n&include

注意:(1)以34;預編譯處理命令&12 , 8m , tr3:4 , yes no

標識符不能與程序中具有特殊意義的關鍵字相同,不能與用戶編制的函數名、C語言庫函數相同,在程序中各種標識符儘量不要重複,以便區分。選擇變量名和其他標識符時,應注意做到 &34;。

標識符分為如下三類:

1、關鍵字

關鍵字是具有特定含義的,專門用來說明c語言特定成分的一類標識符,不能用作用戶的標識符。

auto break case char union do double else enum extern goto if int long short signed static sizof struct switch unsigned void for while typedef continue float return typedef default

2、預定義標識符

預定義標識符在c語言中也有特定的含義,但可以用作用戶標識符,預定義標識符分為兩類:

(1)、庫函數名字,比如(printf,scanf,sin,isdigit等) (2)、編譯處理命令名,比如(define,include)

3、用戶標識符

用戶根據需要自己定義的標識符稱為用戶標識符。無論如何自定義標識符,都必須符合標識符的三條命名規則。

常量

在程序運行中,其值不能被改變的量稱為常量。常量有5種類型:整型常量、實型常量、字符常量、字符串常量和符號常量。


(一)數值轉換

數字的四種表現形式:

①:二進位:所有數字由0,1構成,逢二進一,二進位數中不會出現2.。例:②:八進位:以數字0(注意不是以字母O,o)開頭,所有數字由0~7構成,逢八進一,八進位數中不會出現8。例:0112,0123,077等 ③:十進位:所有數字由0~9構成,逢十進一,十進位數中不會出現10。例:0,12,-15等 ④:十六進位:以0x或者0X(數字0加字母x)開頭,所有數字由0~9,A~F(或者a~f)構成,逢十六進一(其中A、B、C、D、E、F分別代表10、11、12、13、14、15) 例:0x4A、0X14c7等

在計算機內部,數字均以二進位形式表示和存放,用戶輸入的普通十進位數字都要被計算機轉換成二進位才能在計算機內部存儲,同樣計算機的運算結果也為二進位,一般要將其轉換成十進位數再輸出給用戶閱讀,這種轉換通常由計算機自動實現。

(1)將十進位轉換二進位、八進位和十六進位

除法:將十進位數除以2,記錄餘數,得到的商繼續除以2,直到商為0,然後將各次相處所得的餘數從後往前逆序排列,所得餘數數字序列就是該十進位數對應的二進位數。八進位和十六進位轉換方法同上。

例:十進位數13轉換成二進位數的值為1101,轉換八進位為015,轉換成十六進位為D.

(2)將二進位、八進位和十六進位轉換成十進位

乘積求和:將二進位的每一位從低位到高位(右邊為低位,左邊為高位)分別乘以20,21,22。。。。,然後將這些積求和。

例如:=(13)10 (317)8= (23E)16=

(3)二進位與八進位、十六進位數之間的相互轉換

①:二進位轉八進位:從右往左每三位一組轉換成十進位數,將所得數據組合就是對應的八進位數(注意:高位不足三位補零)。例:(010 110 111)2=(267)8 ②:二進位轉十六進位:從右往左每四位一組轉換成十進位數,將所得數據組合就是對應的十六進位數(注意:高位不足四位補零)。例:(0101 1011)2=(5B)16 ③:八進位轉化二進位:每一位數字轉換為三位二進位數字 例:(13)8=(001 011)2= (注意:去掉前面的兩個00,因為0在高位沒有意義) ④:十六進位轉化二進位:每一位數字轉換為四位二進位數字 例:(E3)16=(1110 0011)2

二)整型常量

整型常量有3種形式:十進位整型常量、八進位整型常量和十六進位整型常量。

(注意:c語言中沒有直接表示二進位的整型常量,在c語言源程序中不會出現二進位。)

書寫方式如下:

十進位整型常量:123 , 0 ,-24 , 85L(長整型常量) 等 八進位整型常量:051 ,-026 ,0773 等 十六進位整型常量:0x55 , 0x1101 , 0x , 0x5AC0 , -0xFF。其中L為長整型。

(三)實行常量

實型常量有兩種表示形式:小數形式和指數形式。

小數形式:5.4 0.074 -23.0 指數形式:5.4e0 4.3e-3 -3.3e4

(1)小數部分為0的實型常量,可以寫為453.0 或453。(2)用小數表示時,小數點的兩邊必須有數,不能寫成&34;和&34;,而應該寫成&34;和&34;。(3)用指數寫法時,e前必須有數字,e後面的指數必須為整數(注意:整數階碼可以是正數,負數,也可以是八進位數、十六進位數,但必須為整數)。

(四)字符常量

字符常量的標誌是一對單引號&39;,c語言中的字符常量有兩類:

(1)由一對單引號括起來的一個字符,如&39;, &39; ,&&39;\n&34;\&34;\&39; 單引號符 39 \&34;ni hao&34;happy&34;34;定義的常量,在C程序中可用標識符代表一個常量。

例:計算圓的面積的c程序。

define PI 3. main() { float r,s; r=12.5; S=PI *r*r; printf(&34;,s); }

說明:

34;有符號&34;無符號&39;A&39;B&34;低&34;&34;&34;&34;&34;&34;除&34;除&34;自右向左&34;自右向左&34;i++&34;++i&34;i--&34;--i&34;=&34;將10的值賦值給變量a&34;a-=a*a&34;a+=-132&34;y=%d,x=%d&34;&&&34;||&34;真&34;真&34;短路&34;一假必假&34;一真必真&34;~&34;&&34;∧&34;|&34;<<&34;<< &34;<<&34;&34;&34;&34;>>&34;>> &34;>>"右邊的數指定移動的位數。

例如:設 a=15, a>>2 表示把右移為十進位3)。

應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。

例3:設二進位數a是00 ,若通過異或運算a∧b 使a的高4位取反,低4位不變,則二進位數b是。

解析:異或運算常用來使特定位翻轉,只要使需翻轉的位與1進行異或操作就可以了,因為原數中值為1的位與1進行異或運算得0 ,原數中值為0的位與1進行異或運算結果得1。而與0進行異或的位將保持原值。異或運算還可用來交換兩個值,不用臨時變量。

如 int a=3 , b=4;,想將a與b的值互換,可用如下語句實現:a=a∧b;

b=b∧a;

a=a∧b;

C語言作為一門非常適合編程入門的語言,打好基礎的重要性不言而喻。

還有很多知識沒有列出,建議到慕課去學習一門入門的C語言課程。了解C語言的知識,才能更好的編程。

更多多內容,歡迎關注百家號:小亮談電氣。微信公眾號:電氣學苑。

相關焦點

  • 自學單片機第十篇:基礎知識--萬用表的使用
    #自學單片機##自學單片機第九篇:基礎知識--計算機基礎操作自學單片機第八篇:基礎知識--C語言基礎自學單片機第七篇:基礎知識--物理<電學部分>
  • 自學單片機第九篇:基礎知識--計算機基礎操作
    這個更基礎了也許是我說的都是一些百度認為完全可以靠百度就能知道的東西,所以一直不給推薦,或許我這個不食人間煙火的標題讓百度覺得太稀鬆平淡,覺得絲毫吸引不到眼球,於是就放棄了推薦,但是,作為一個理科男,腦子有時候就是會稍微倔強那麼一絲絲,我就是不寫《連這個操作都會,還說自己會玩電腦?》
  • 自學單片機第十一篇:基礎知識--電工常識
    自學單片機第十篇:基礎知識--萬用表的使用
  • 第一篇:C語言編程基礎語法
    本專欄系列分六篇,總結了C語言基礎知識的核心要點。教學視頻已上線,讀者可根據自身情況有選擇性地學習。01編程基礎C語言——貝爾實驗室、Dennis Ritchie屬於高級語言,更接近人類語言邏輯,需要編譯器編譯,執行依賴運行環境;但容易學習。其特點:模塊化編程程序設計,層次清晰;語句簡潔,提出程序庫概念;功能強大,系統、應用軟體均可開發;移植性好,適合不同的作業系統。除此之外,C語言還有豐富的運算符、數據結構等,程序設計自由度大,可以對硬體進行操作。
  • Linux下C語言編程基礎知識
    這篇文章介紹在LINUX下進行C語言編程所需要的基礎知識。在這篇文章當中,我們將會學到以下內容: -源程序編譯 -Makefile的編寫 -程序庫的連結 -程序的調試 -頭文件和系統求助 本文引用地址:http://www.eepw.com.cn/article/241179.htm1.源程序的編譯在Linux下面,如果要編譯一個
  • 0基礎學習嵌入式,C語言、Linux基礎技能必不可少
    其實,對於新人來說,首先就是要掌握好C語言,接著就要學習Linux相關知識,它們是學習嵌入式必不可少的技能。Part1 、C語言基礎篇C語言作為嵌入式學習基礎,在C語言學會以後,其他的語言像C++、java、python、html就會變的非常簡單,
  • C語言基礎知識
    pow(x, y)函數C 和 Python 語言的 pow(x, y) 方法都是用於返回 (x 的 y 次方) 的值,C 語言中其原型為:double pow(double x, double y)。值範圍和精度的細節:IO 函數sprintf()函數fopen()函數fwrite()函數預編譯指令-條件編譯c
  • C Sharp 基礎知識系列- 16 開發工具篇
    前言這是C# 基礎知識系列的最後一個內容講解篇,下一篇是基礎知識-實戰篇。這一篇主要講解一下C#程序的結構和主要編程工具。1. 工具工欲善其事必先利其器,在實際動手之前我們先來看看想要編寫一套C#程序需要做哪些準備吧。
  • C語言基礎知識學習(一)
    C程序基礎1. 標識符在程序中使用的變量名、函數名、數組名、指針名、標號等稱為標識符.標識符分類a) 關鍵字原先的C89標準中只有32個關鍵字然後在1999年之後進行了兩次技術修正,新出臺了C99標準新增加了5個關鍵字 分別是:restrict, inline, _Complex, _Imaginary, _Boolb) 預定義標識符包括C語言提供的庫函數、預編譯處理命令。
  • PHP丨PHP基礎知識之條件語IF判斷「理論篇」
    if語句是指程式語言(包括c語言、C#、VB、java、php、彙編語言等)中用來判定所給定的條件是否滿足,根據判定的結果(真或假)決定執行給出的兩種操作之一。if語句概述if語句是指程式語言(包括c語言、C++、C#、java、php、VB、彙編語言等)中用來判定所給定的條件是否滿足,根據判定的結果(真或假)決定執行給出的兩種操作之一。if的返回值為真或假,可以用bool型變量進行存儲,佔用一字節。
  • C語言基礎知識學習(四)
    在C語言中,NULL和0的值都是一樣的,NULL用於指針,0用於數值。對於字符串的結尾,使用'\0',它的值也是0,但是讓人一看就知道這是字符串的結尾,不是指針,也不是普通的數值.補碼(1)原碼:最左邊的一位即最高位為符號位,其餘各位為數值本身的絕對值(最高位為0為整數).
  • 中考數學基礎知識鞏固篇(一)函數相關知識,保基礎拿高分
    中考最後階段,大家慢慢放緩節奏,對自己能得到的分數一定要心裡默默暗示,不能因為粗心在丟分,今天為大家整理函數基礎知識複習篇,在過一遍基礎知識點,做到心裡有數一,一次函數一次函數題目比較簡單,它是函數的入門題我們在中考中需要注意的考點主要有1,一次函數與坐標軸交點的計算
  • 無基礎怎麼入門C語言?經驗分享
    而就語言本身而言,在C中更多的是算法的概念,那麼是不是C就不重要了?錯!算法是程序設計的基礎,好的設計如果沒有好的算法,一樣不行。而且,「C加上好的設計」也能寫出非常好的東西。工作中,接觸過很多想到學習c語言而又沒有一點計算機基礎的人
  • 單片機C語言教程-基礎語句
    C語言入門之基礎語句  從程序流程的角度來看,程序可以分為三種基本結構,即順序結構、分支結構、循環結構。這三種基本結構可以組成所有的各種複雜程序。c語言提供了多種語句來實現這些程序結構。
  • 大學知識乾貨:10 種C語言基礎算法(珍藏源碼),考試必備
    算法是一個程序和軟體的靈魂,作為一名優秀的程式設計師,只有對一些基礎的算法有著全面的掌握,才會在設計程序和編寫代碼的過程中顯得得心應手。本文是近百個C語言算法系列的第二篇,包括了經典的Fibonacci數列、簡易計算器、回文檢查、質數檢查等算法。也許他們能在你的畢業設計或者面試中派上用場。
  • C語言基礎知識學習(二)
    函數C語言函數說明1. 一個C程序的基本結構包括預處理部分和函數部分;2. 函數是C語言的基本單位;3. C語言程序開始於主函數,結束於主函數;4. C語言中沒有輸入輸出語句但有輸入輸出函數.使用條件a) 可以把問題轉化為新問題,並且新問題解決方法與原問題的解決方案相同;b) 可以提高轉化過程,使問題得到解決;c) 必須有結束條件.2.
  • C語言入門基礎整理
    學習計算機技術,C語言可以說是必備的,他已經成為現在計算機行業人學習必備的,而且應用也是十分的廣泛,今天就來看看擁有幾年c語言工作經驗的大神整理的C語言入門基礎知識,沒有學不會,只有不肯學。最常見的數據類型,這是你必須要知道的:常量:常量包括字面常量、直接常量和符號常量;變量:C語言規定標誌符只能由字母、數字和下劃線三種字符組成,且第一個字符必須是字母或者下劃線;必須壓迫先定義後使用;每一個變量被定義以確定類型後,在編譯時就能為其分配相應的存儲單元;整數類型:整數常量有十進位、八進位和十六進位;「%d」整形變量:數據在內存中存放形式是以二進位形式存放
  • 新手如何開始C語言基礎學習?
    因此,對於剛剛入門編程的新手來講,從C語言開始你的編程生涯無疑是最好的選擇。那麼,新手如何開始C語言基礎學習呢?下面我們來一起看一看。在學習之前,我們首先要知道為什麼學習C語言。眾所周知,C語言是一門簡單、底層、較早的程式語言,後來的很多語言在語法上都和C語言類似,比如Java、PHP等程式語言都是從C語言衍生出來的,因此掌握C語言將為學習其他程式語言打下更好的基礎。但同時大家也要知道,只會C語言的話,想要找工作還是很困難的。總的來講,C語言的基礎學習不過是冰山一角,要想成為一名優秀的程式設計師,需要學習的東西還有很多。
  • C語言是嵌入式開發學習的基礎
    打開APP C語言是嵌入式開發學習的基礎 發表於 2019-06-19 17:16:45 想要學習嵌入式開發需要知道什麼是嵌入式
  • STM32 嵌入式學習入門(0)——C語言基礎複習
    本文並沒有將相關C語言知識點介紹地很詳細,畢竟這麼多知識點要想掌握絕對不是看幾篇文檔就能掌握的。因此博主建議,如果上述的C語言知識掌握得還不是很好的話,找一本C語言的書好好研究研究。尤其是結構體和結構體指針、還有函數的知識(本文沒提到),一定要很熟練。