第一篇:C語言學習筆記6
六.循環結構程序設計
1.循環控制
a)程序中常用到順序結構和選擇結構,但只有這兩種結構是不夠的,還需要用到循環結構(重復結構)
b)對于某些問題,通過原始的方法需要分別編寫若干個相同或相似的語句或程序段進行處理,工作量大、程序冗長、重復、難以閱讀和維護,因而C語言提供了循環控制來處理需要進行的重復操作
c)循環結構、順序結構、選擇結構是結構化程序設計的3種基本結構,它們是各種復雜程序的基本構成單元
2.用while語句實現循環
while語句的一般形式為:
while(表達式)語句
a)“語句”就是循環體,循環體只能是一個語句,可以是一個簡單語句,也可以是復合語句。循環體如果包含一個以上的語句,應該用花括號括起來作為復合語句出現,否則while語句的范圍只到while后面的第1個分號處
b)在循環體中應當有使循環趨向于結束的語句,如果無此語句,則循環條件始終不變,循環永遠無法結束
c)執行循環體的次數是由循環條件控制的,這個循環條件就是上面一般形式中的“表達式”,它也稱為循環條件表達式
d)while語句的循環控制:當循環條件表達式為“真”(非0)時就立即執行循環體語句,當循環條件表達式為“假”(0)時就不再執行循環體語句
e)while語句的過程特點:先判斷循環條件表達式,后執行循環體語句
3.用do…while語句實現循環
a)do ? while語句的一般形式 do 語句 while(表達式)a.1.為了使程序清晰、易讀,建議把循環體用花括號括起來,以防看到第2行語句就誤以為整個語句結束了
a.2.do ?while語句的循環控制:先執行一次循環體語句,然后判斷循環條件表達式,當循環條件表達式為“真”(非0)時返回再次執行循環體語句,如此反復,直到循環條件表達式的值為“假”(0)為止,此時本次循環結束
a.3.do ?while語句的過程特點:先無條件執行循環體語句,再判斷循環條件表達式
b)while語句與do ?while語句的比較
b.1.對同一個問題,可以用while語句處理,也可以用do ?while語句處理,while語句與do ?while語句的結構可以互相轉換
b.2.while語句可以一次也不執行循環體語句,而do ?while語句至少執行一次循環體語句。因此當用while語句與do ?while語句處理同一問題(循環體部分相同)時,若循環條件表達式的初始值為“真”(非0)時,則兩種循環得到的結果相同,若循環條件表達式的初始值為“假”(0),則兩種循環得到的結果不同
4.用for語句實現循環
a)for語句的一般形式
for(表達式1;表達式2;表達式3)語句
a.1.表達式1:設置初始條件,只執行一次,可以為0個、一個或多個變量設置初值。允許在表達式1中定義變量并賦初值,這樣使程序簡練、靈活方便,但所定義變量的有效范圍只限于for循環中,在循環之外不能使用此變量
a.2.表達式2:是循環條件表達式,用來判定是否繼續循環,在每次執行循環體之前先執行此表達式來決定是否繼續執行循環體
a.3.表達式3:作為循環的調整使循環趨向于結束,例如使循環變量增值,它是在執行完循環體后才進行的
a.4.由上所述,for語句可以理解為:
for(循環變量賦初值;循環條件;循環變量增值)語句
b)關于for語句的一些說明 b.1.表達式1可以省略,即不設置初值,但表達式1后面的分號不能省略。由于for語句省略了表達式1,沒有對循環變量賦初值,因而為了能正常執行循環,應當在for語句之前先給循環變量賦初值
b.2.表達式2可以省略,即不用表達式2來作為循環條件表達式,不設置和檢查循環的條件。此時循環將無終止地進行下去,也就是認為表達式2始終為“真”(非0)
b.3.表達式3可以省略,但此時程序設計者應當另外設法保證循環能夠正常結束,即使循環趨向于結束的操作不放在表達式3的位置,而是作為循環體的一部分,如果在循環體中沒有這種語句,則循環體將無止境地執行下去
b.4.表達式1和表達式3可以都省略,只有表達式2,即只給定循環條件,但如c.1和c.3所述,應當在for語句之前先給循環變量賦初值,且在循環體中設置使循環趨向于結束的語句
b.5.表達式
1、表達式
2、表達式3可以都省略,即不設初值,不判斷條件(此時認為表達式2始終為“真”),循環變量不增值,將無終止地執行循環體語句
b.6.可以把循環體和一些與循環控制無關的操作也作為表達式1或表達式3出現,這樣使程序短小簡潔,但過分利用這一特點會使for語句顯得雜亂、可讀性降低,因而最好不要把與循環控制無關的內容放到for語句中。
表達式1可以是設置循環變量初值的賦值表達式,也可以是與循環變量初值無關的其他表達式。
表達式3可以是與循環控制無關的任意表達式,for語句可以在表達式中完成本來應該在循環體內完成的操作,即for語句的循環體為空語句,把本來應該在循環體內處理的內容放到表達式3中,作用也是一樣的
b.7.表達式1和表達式3可以是一個簡單表達式,也可以是逗號表達式,即包含一個以上的簡單表達式,中間用逗號間隔。在逗號表達式中按自左至右的順序求解,整個逗號表達式的值為最右邊的表達式的值
b.8.表達式2一般是關系表達式或邏輯表達式,但也可以是數值表達式或字符表達式,只要其值為非0(“真”)就執行循環體
b.9.for語句可以與while語句互相轉換,二者無條件等價 即for(表達式1;表達式2;表達式3)語句 可以改寫為 表達式1;while(表達式2){ 語句 表達式3;} c)for語句的執行過程 c.1.求解表達式1 c.2.求解表達式2,若此條件表達式的值為“真”(非0)則執行for語句中的循環體,然后執行第b.3步,若此條件表達式的值為“假”(0)則結束循環,轉到第b5步
c.3.求解表達式3 c.4.轉回第b.2步繼續執行
c.5.循環結束,執行for語句下面的一個語句
5.循環的嵌套
a)一個循環體內又包含另一個完整的循環結構,稱為循環的嵌套 b)內嵌的循環中還可以嵌套循環,這就是多層循環
c)3種循環(while循環、do ?while循環、for循環)可以互相嵌套
6.3種循環方式的比較
a)3種循環都可以用來處理同一問題,一般情況下(循環條件表達式的初始值為“真”)它們可以互相代替
b)在while循環和do ? while循環中,只在while后面的括號內指定循環條件,因此為了使循環能正常結束,應在循環體中包含使循環趨向于結束的語句。for循環可以在表達式3中包含使循環趨向于結束的操作,甚至可以將循環體中的操作全部放到表達式3中,因此for語句功能更強,凡是while循環能完成的,用for循環都能實現
c)用while和do ? while循環時,循環變量初始化的操作應當在while和do ? while語句之前完成,而for語句可以在表達式1中實現循環變量的初始化
d)while循環、do ? while循環和for循環都可以用break語句跳出循環,用continue語句結束本次循環 7.改變循環執行的狀態
一般情況下,都是根據事先指定的循環條件正常執行和終止循環,但當出現某種情況需要提早結束正在執行的循環操作時,可以用break語句和continue語句來實現提前結束循環
7.1.用break語句提前終止循環
a)break語句可以使流程跳出switch結構而繼續執行switch語句下面的一個語句,還可以用來從循環體內跳出循環體,即提前結束循環,接著執行循環下面的語句,但break語句只能用于循環語句和switch語句而不能單獨使用
b)break語句的一般形式為: break;c)執行break語句,流程跳轉到循環體結束的花括號之外,即不再繼續執行其余的幾次循環而提前結束循環
7.2.用continue語句提前結束本次循環
a)有時不希望終止整個循環的操作,而只希望提前結束本次循環,而接著執行下一次循環,這時可以用continue語句
b)continue語句的一般形式為 continue;c)執行continue語句,流程跳轉到循環體結束的花括號之前(不是花括號之外),即跳過循環體中continue語句下面尚未執行的語句而結束本次循環,然后接著執行后面的循環過程
7.3.break語句和continue語句的區別
a)continue語句只結束本次循環,而不是終止整個循環的執行;而break語句則是結束整個循環過程,不再判斷循環條件是否成立
b)如果是雙重循環,在內循環體中有一個break語句,則使用break語句提前終止循環是指提前終止內循環
第二篇:C語言面向對象編程學習筆記
C語言面向對象編程筆記
1、在底層驅動函數前加static標識符的作用:
a:加了static后表示該函數失去了全局可見性,只在該函數所在的文件作用域內可見 b:當函數聲明為static以后,編譯器在該目標編譯單元內只含有該函數的入口地址,沒有函數名,其它編譯單元便不能通過該函數名來調用該函數,這也是對1的解析與說明
2、底層驅動的封裝模板
通常將存儲類,顯示類,AD-DA類的外設驅動函數封裝為以下幾個函數: Void Open(void);
此函數用于開啟外設,通常函數體中包涵IO和外設的初始化 Void Close(void)此函數用于關閉外設,特別是一些在休眠下功耗很大的外設,可用mos管控制其Vcc的通斷,以此達到降低系統功耗的目的
Void Read(unsigned int address,unsigned char *data[],unsigned int count)
此函數用于讀取數據,參數分別為:address,地址,*data[],存放數據的數組,count,要讀取的字節數
Void Write(unsigned int address,unsigned char *data[],unsigned int count)此函數用于寫數據,參數功能與讀函數中相似。
Void control(unsigned char cmd,unsigned char data)此函數用于控制外設的工作狀態,如休眠,低功耗等等
3、命名規則
A、宏定義全部用大寫
如:#define OLED_CS PBout(12)B、驅動函數名稱大小寫,并且動詞放置在末尾如
static long _OLED_Close(void)C、結構體的名稱,結構體名大寫,變量名小寫,“驅動”的首字母大寫
如:struct OLED_DEVICE oledDevice;
4、關于外設的數據手冊
外設的數據手冊應該去芯片的官網下載最新版本,特別注意芯片的是否有功耗控制方面的內容,
第三篇:c語言筆記總結
字體:font-family 字體大小:font-size
font-weight 設置或檢索對象中的文本字體的粗細。
text-decoration 檢索或設置對象中的文本的裝飾。
font-style 設置或檢索對象中的字體樣式。line-height 設置或檢索行距。
text-transform 檢索或設置對象中的文本的大小寫。
background-color 設置或檢索對象的背景顏色。
background-image 設置或檢索對象的背景圖像。
background-attachment : 設置或檢索背景圖像是隨對象內容滾動還是固定的。
background-position: 設置或檢索對象的背景圖像位置。必須先指定 background-image 屬性。
display: 設置或檢索對象是否及如何顯示
margin 檢索或設置對象四邊的外補丁。默認值為 0 0。如果提供全部四個參數值,將按上-右-下-左的順序作用于四邊。如果只提供一個,將用于全部的四邊。如果提供兩個,第一個用于上-下,第二個用于左-右。如果提供三個,第一個用于上,第二個用于左-右,第三個用于下。
第四篇:C語言程序設計筆記
C語言程序設計的概論:
什么是程序設計:
編譯環境 程序設計就是用戶告訴計算機按程序員的思路一步一步的去工作
而C語言程序設計就是,通過c這門語言與計算機通信,并告訴計算機應如何工作
在微機上廣泛使用的C語言編譯系統有Microsoft C、Turbo C、Borland C等。雖然它們的基本部分都是相同的,但還是有一些差異,所以請大家注意自己所使用的C編譯系統的特點和規定(參閱相應的手冊)。我們所有使用的環境是WIN-TC(WINDOWS2000操作系統)。
簡單的C程序 例1.1 main(){ printf(“This is a c program.n”);} 本程序的作用是輸出一行信息: This is a c program 注意:
每一個C程序都必須有main()函數 函數體內由大括弧{ }括起來 大括弧內每條語句后必須有一個分號
符號和字母,都要用半角格式的(必須切換到英文輸入法輸入符號字母)Printf()輸出函數
n 轉義字母,代表換行(回車)
/* */注釋符
試一試: 參照例題,編寫一個C程序,輸出以下信息: * * * * * * * * * * * * * * * * * * * very good!* * * * * * * * * * * * * * * * * * *
Printf(“******n”);n轉意字符,代表換行 數據類型 1.2.3.整型:12, 0 ,-3 實型:4.6 ,-1.23 字符型:’a’ , ‘b’
算術運算符 1.2.3.4.5.+ 加法運算符-減法運算符 * 乘法運算符 / 除法運算符 % 求余運算符
算術運算符的優先級同數學:先括號,后乘除,再加減 題目:求兩個數的余數的程序
什么是變量 : 其值可改變的量稱為變量,也把變量看成用來裝數據的容器 變量的作用 : 增加程序的靈活度,可以說任何一個程序基本上都用到了變量度 如何定義變量: 數據類型 變量名; int a;數據類型 變量名1,變量名2,?變量名N;float a,b,c;char c1,c2;變量命名規則:
只能以字母、數字、下劃線三種字符組成,且第一個字符必須為字母或下劃線。
在C語言中,變量名是區分大小寫的。
int a=3 int A=4 變量命名的良好習慣──見名知意: 例如:年齡 intAge/intNl 變量數據類型:
int 代表整型類型 范圍:-32768~32768 float 代表實型 范圍:-3.14×10-38~ 3.14×1038 有效數字:6~7 char 代表字符型 該類型變量只能容納一個字符 變量的賦值: int a=3 int a=3.4 錯誤 float a=3.4 char a=’c‘
或:int a =3,b=4;注意:定義什么類型的變量就賦什么類型的數據
%d 以整型的形式輸出
printf()輸出函數 :
例: printf(“this is what?”)直接把雙引號內的字符串原樣輸出 printf(“this is what? n ”)n 轉意字符 不原樣輸出該字符串,而是起到換行作用,將當前位置移到下一行開頭
b 退格
???
Printf(“this is %d ”,i)%d 用來代替“,”后面的變量,并指定該變量以什么類型輸出
%d 按整型輸出
%f 按實型輸出
%c 以字符形式輸出,只輸出一個字符 例:
scanf(“%d%d”,&a,&b)讓用戶輸出兩個整放,放到變量a,b中.注意:
變量前一定要加& 輸入多個變量時,可用空格或回車間隔,但不能用”,” 1.用戶輸入圓半徑,輸出圓的周長和面積
2.用戶輸入兩個整數,求兩個數的和,差,積,余 3.用戶輸入兩門成績,輸出總分,平均分 1.2.3.4.5.6.每一個C程序都必須有main()函數 函數體內由大括弧{ }括起來 大括弧內每條語句后必須有一個分號 符號和字母,都要用半角格式的
Printf()輸出函數 n 轉義字母,代表換行 /* */注釋符
7.C語言結構化程序設計的三種基礎結構介紹 8.關系運算符和關系表達式 9.邏輯運算符和邏輯表達式 10.if語句 11.條件運算符 選擇結構是根據條件有選擇的執行程序代碼!如果(用戶輸入的密碼是:123)輸出:“密碼正確” 否則
輸出:“密碼錯誤” if(判斷式){判斷式成立時所執行的語句} else {判斷式不成立時所執行的語句} 說明: 只有當判斷式成立時才會執行語句塊1 否則執行語句塊2 兩者不會同時執行或不執行 關系運算符
所謂的“關系運算”實際上是”比較運算” C語言提供如下6種關系運算符
< 小于
<= 小于等于
> >= == 是否等于
!= 是否不等于 優先級
前四種關系運算符優先級相同,后兩種也相同,但前4種大于后2種 關系運算符的優先級低于算術運算符 關系運算符的優先級低于賦值運算符 試一試:
用戶輸入密碼,如密碼是123,則輸出恭喜你,登錄成功,否則輸出不要試我密碼哦.!注意知識點: 提示:
If語句和}后都沒有分號結束符
else 后沒有條件表達式
如果IF或ELSE后的語句塊只有一句的話,{} 可省略!
如果不滿足IF后面的條件,什么都不做的話,可以省略else 題目: 根據上網用戶輸入的年齡,決定彈出信息,如年齡小于18則彈出“你太小了,還不能到網吧上網哦”否則彈出“OK,沒問題祝你玩的愉快”; :
用戶輸入數,判斷輸出是奇數還是偶數
邏輯運算符
C 提供的三種邏輯運算符
&& 與(相當于and 且)
|| 或(相當于or 或)
!非(相當于not 取反)
例:
a&&b 若a,b為真,則a&&b為真
a||b 若a,b之一為真,則a||b為真
!a 若a為真,則!a為假 運算符優先級!(非)算術運算符 關系運算符 && 和 || 賦值運算符 由高往低 條件運算符
若if 語句中,在表達式為”真”,和”假”時,且都只執行一個賦值語句給同一個變量賦值時,可以用簡單的條件運算符來處理,例:若有以下if語句: if(a>b)max = a;else max =b;可以用下面的條件運算符來處理
max =(a>b)? a:b;多分支選擇結構
如果用IF ELSE的話。雖然可以做出徠,但要用到眾多的IF ELSE非常的煩瑣。像這種多分支的選擇,我們一般采用下面的語句 switch(變量){ case 值1: 代碼; break;
???..case 值n: 代碼; break;default:語句 N;//當變量不等于上面所有值時,執行default后的語句; } 注意: 1.break退出{} 2.case 后只能跟一個值,而不能是一個表達式 3.switch(變量)后沒有”;” {}前后都沒有”;” 三種選擇語句的比較 If //只有條件成立時執行
I f else //適用于只有兩種情況出現,要么執行A,要么執行B Switch //適合多種情況,且變量是精確值時 注意
If(a>b>c)錯誤 If(a>b&&a>c)正確 字符一定要加’’引起來 Case,后不能是表示式 Default 后面不必加break
第五篇:小班語言教學筆記.
教育筆記
薩日娜
故事是幼兒最愛的一種文學形式.通過故事教學,能培養幼兒良好的品德,幫助幼兒發展語言的方法。對于小班的幼兒來說,是以教師講述故事為重要部分。教師在講述故事時,咬字要清楚,速度要適當,節奏要比平時談話稍慢,使他們一邊聽一邊想;講述故事時,面部表情,眼神和手勢都要隨著故事情節的發展而有所變化,這樣對小班幼兒的語言表達起輔助的作用。
作為教師,對故事教學中往往不是只講一遍的而要講多遍,并要注意方式的變換,培養幼兒傾聽的積極性。而我在上《安全大使熊先生》的時候,我在講述第一遍時就直接用上掛圖,發現有些幼兒開始把注意集中在掛圖上,對故事的傾聽興趣不高,在給幼兒第二,三遍講述過程中還是簡單的用了掛圖的形式,沒變換方式,以至在講述第二遍的過程中幼兒的注意力更加不集中,甚至有的幼兒開始互相說話,因此整個活動來看效果不明顯。其實現在來看,一般講第一遍故事的時候,以不用直觀的教具為宜,因為直觀的教具容易分散幼兒的注意,不利培養幼兒傾聽的習慣。
在故事中的提問,對于小班幼兒的心理發展水平,只能是一些簡單,細小的問題。但作為教師要引導幼兒去回答,我們說答案雖然長些,但不要求每個幼兒能連貫的回答,教師自己示范,再讓幼兒按順序連貫的講述,這樣的效果會使幼兒很容易接受、理解。在這個過程中,對于回答不出的或回答錯的幼兒,教師不應該表示厭煩,而要肯定他們愿意回答。教師應該是啟發和提示,盡量幫助幼兒自己找到正確的答案,總之,要讓全體幼兒都有回答問題的機會,提高幼兒語言能力。