c編程100例
A. 《單片機c語言程序設計實訓100例——基於8051+Proteus模擬》 第03篇源代碼
單片機c語言編程100個實例目錄1
函數的使用和熟悉
實例3:用單片機控制第一個燈亮
實例4:用單片機控制一個燈閃爍:認識單片機的工作頻率
實例5:將 P1口狀態分別送入P0、P2、P3口:認識I/O口的引腳功能
實例6:使用P3口流水點亮8位LED
實例7:通過對P3口地址的操作流水點亮8位LED
實例8:用不同數據類型控制燈閃爍時間
實例9:用P0口、P1 口分別顯示加法和減法運算結果
實例10:用P0、P1口顯示乘法運算結果
實例11:用P1、P0口顯示除法運算結果
實例12:用自增運算控制P0口8位LED流水花樣
實例13:用P0口顯示邏輯"與"運算結果
實例14:用P0口顯示條件運算結果
實例15:用P0口顯示按位"異或"運算結果
實例16:用P0顯示左移運算結果
實例17:"萬能邏輯電路"實驗
實例18:用右移運算流水點亮P1口8位LED
實例19:用if語句控制P0口8位LED的流水方向
實例20:用swtich語句的控制P0口8位LED的點亮狀態
實例21:用for語句控制蜂鳴器鳴笛次數
實例22:用while語句控制LED
實例23:用do-while語句控制P0口8位LED流水點亮
實例24:用字元型數組控制P0口8位LED流水點亮
實例25: 用P0口顯示字元串常量
實例26:用P0 口顯示指針運算結果
實例27:用指針數組控制P0口8位LED流水點亮
實例28:用數組的指針控制P0 口8 位LED流水點亮
實例29:用P0 、P1口顯示整型函數返回值
實例30:用有參函數控制P0口8位LED流水速度
實例31:用數組作函數參數控制流水花樣
實例32:用指針作函數參數控制P0口8位LED流水點亮
實例33:用函數型指針控制P1口燈花樣
實例34:用指針數組作為函數的參數顯示多個字元串
單片機c語言編程100個實例目錄2
實例35:字元函數ctype.h應用舉例
實例36:內部函數intrins.h應用舉例
實例37:標准函數stdlib.h應用舉例
實例38:字元串函數string.h應用舉例
實例39:宏定義應用舉例2
實例40:宏定義應用舉例2
實例41:宏定義應用舉例3
* 中斷、定時器中斷、定時器 *中斷、定時器*中斷、定時器 /
實例42:用定時器T0查詢方式P2口8位控制LED閃爍
實例43:用定時器T1查詢方式控制單片機發出1KHz音頻
實例44:將計數器T0計數的結果送P1口8位LED顯示
實例45:用定時器T0的中斷控制1位LED閃爍
實例46:用定時器T0的中斷實現長時間定時
實例47:用定時器T1中斷控制兩個LED以不同周期閃爍
實例48:用計數器T1的中斷控制蜂鳴器發出1KHz音頻
實例49:用定時器T0的中斷實現"渴望"主題曲的播放
實例50-1:輸出50個矩形脈沖
實例50-2:計數器T0統計外部脈沖數
實例51-2:定時器T0的模式2測量正脈沖寬度
實例52:用定時器T0控制輸出高低寬度不同的矩形波
實例53:用外中斷0的中斷方式進行數據採集
實例54-1:輸出負脈寬為200微秒的方波
實例54-2:測量負脈沖寬度
實例55:方式0控制流水燈循環點亮
實例56-1:數據發送程序
實例56-2:數據接收程序
實例57-1:數據發送程序
實例57-2:數據接收程序
實例58:單片機向PC發送數據
實例59:單片機接收PC發出的數據
*數碼管顯示*數碼管顯示 數碼管顯示數碼管顯示*/
實例60:用LED數碼顯示數字5
實例61:用LED數碼顯示器循環顯示數字0~9
實例62:用數碼管慢速動態掃描顯示數字"1234"
實例63:用LED數碼顯示器偽靜態顯示數字1234
實例64:用數碼管顯示動態檢測結果
實例65:數碼秒錶設計
實例66:數碼時鍾設計
實例67:用LED數碼管顯示計數器T0的計數值
實例68:靜態顯示數字「59」
單片機c語言編程100個實例目錄3
鍵盤控制*鍵盤控制* *鍵盤控制 *鍵盤控制 */
實例69:無軟體消抖的獨立式鍵盤輸入實驗
實例70:軟體消抖的獨立式鍵盤輸入實驗
實例71:CPU控制的獨立式鍵盤掃描實驗
實例72:定時器中斷控制的獨立式鍵盤掃描實驗
實例73:獨立式鍵盤控制的4級變速流水燈
實例74:獨立式鍵盤的按鍵功能擴展:"以一當四"
實例75:獨立式鍵盤調時的數碼時鍾實驗
實例76:獨立式鍵盤控制步進電機實驗
實例77:矩陣式鍵盤按鍵值的數碼管顯示實驗
//實例78:矩陣式鍵盤按鍵音
實例79:簡易電子琴
實例80:矩陣式鍵盤實現的電子密碼鎖
液晶顯示LCD*液晶顯示LCD *液晶顯示LCD * *液晶顯示LCD*液晶顯示LCD *液晶顯示LCD */
實例81:用LCD顯示字元'A'
實例82:用LCD循環右移顯示"Welcome to China"
實例83:用LCD顯示適時檢測結果
實例84:液晶時鍾設計
*一些晶元的使用*24c02 DS18B20 X5045 ADC0832 DAC0832 DS1302 紅外遙控/
實例85:將數據"0x0f"寫入AT24C02再讀出送P1口顯示
實例86:將按鍵次數寫入AT24C02,再讀出並用1602LCD顯示
實例87:對I2C匯流排上掛接多個AT24C02的讀寫操作
實例88:基於AT24C02的多機通信 讀取程序
實例89:基於AT24C02的多機通信 寫入程序
實例90:DS18B20溫度檢測及其液晶顯示
實例91:將數據"0xaa"寫入X5045再讀出送P1口顯示
實例92:將流水燈控制碼寫入X5045並讀出送P1口顯示
實例93:對SPI匯流排上掛接多個X5045的讀寫操作
實例94:基於ADC0832的數字電壓表
實例95:用DAC0832產生鋸齒波電壓
實例96:用P1口顯示紅外遙控器的按鍵值
實例97:用紅外遙控器控制繼電器
實例98:基於DS1302的日歷時鍾
實例99:單片機數據發送程序
實例100:電機轉速表設計
模擬霍爾脈沖
http://www.dzkfw.com.cn/myxin/51c_language.chm 單片機c語言一百例子
B. 10道經典的C語言例題(含參考程序)
1.列印出所有的「水仙花數」,所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數本身。例如,153是一個「水仙花數」,因為153=1^3+5^3+3^3。
#include
#include
int main()
{
int _wei,shi_wei,ge_wei,i,sum=0;
for(i=100;i<1000;i++)
{
_wei=i/100;
shi_wei=(i%100)/10;
ge_wei=i%10;
if(i==pow(_wei,3)+pow(shi_wei,3)+pow(ge_wei,3))
{
printf("%d ",i);
sum++;
if(sum%5==0)
printf(" ");
}
}
printf(" ");
return 0;
}
2.請輸入任意兩個整數x和y,求其最大公約數和最小公倍數。
#include
int main()
{
int x,y,min,max,i;
printf("請輸入任意兩個整數:");
scanf("%d%d",&x,&y);
min=x>y?y:x;
max=x>y?x:y;
for(i=min;i>0;i--)
if(x%i==0&&y%i==0)
{
printf("這兩個整數的最大公約數為:%d ",i);
break;
}
for(i=max;i<=x*y;i++)
if(i%x==0&&i%y==0)
{
printf("這兩個整數的最小公倍數為:%d ",i);
break;
}
return 0;
}
3.輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。
#include
#include
#define N 50
int main()
{
int sum1=0,sum2=0,sum3=0,sum4,i=0;
char str[N];
printf("請輸入一串字元串:");
scanf("%s",str);
for(i=0;i<strlen(str);i++) p=""> </strlen(str);i++)>
{
if((str[i]>='a'&&str[i]='A'&&str[i]<='Z'))
sum1++;
if(str[i]==' ')
sum2++;
if(str[i]>=Ɔ'&&str[i]<=Ə')
sum3++;
}
sum4=strlen(str)-sum1-sum2-sum3;
printf("英文字母的個數:%d ",sum1);
printf("空格的個數:%d ",sum2);
printf("數字的個數:%d ",sum3);
printf("其他符號的個數:%d ",sum4);
return 0;
}
4.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。
#include
#include
int main()
{
int a,n,s=0,i,x=0,y=0;
printf("請輸入整數a的值:");
scanf("%d",&a);
printf("請輸入相加的個數n:");
scanf("%d",&n);
for(i=0;i<n;i++) p=""> </n;i++)>
{
x=y+2*pow(10,i);
y=x;
s=s+x;
}
printf("s=%d ",s);
return 0;
}
5.一個數如果恰好等於它的因子之和,這個數就稱為「完數」。例如6=1+2+3。編程找出1000以內的所有完數。
#include
int main()
{
int sum=0,i,j;
printf("在1000以內的完數有:");
for(i=2;i<=1000;i++)
{
for(j=1;j<i;j++) p=""> </i;j++)>
if(i%j==0)
sum=sum+j;
if(sum==i)
printf("%d ",i);
sum=0;
}
printf(" ");
return 0;
}
6.輸入一個不多於5位的正整數,要求:1、求它是幾位數;2、逆序列印出個位數字。
#include
int pows(int a,int n)
{
int sum=1,i;
for(i=0;i<n;i++) p=""> </n;i++)>
sum=sum*a;
return sum;
}
int main()
{
int n,i,k,x;
printf("n=");
scanf("%d",&n);
for(i=1;i<6;i++)
if(n/pows(10,i)==0)
{
printf("%d ",i);
k=i;
break;
}
for(i=0;i<k;i++) p=""> </k;i++)>
{
x=n/pows(10,i)%10;
printf("%d",x);
}
printf(" ");
return 0;
}
7.輸入一個5位數,判斷它是不是迴文數。即12321是迴文數,個位與萬位相同,十位與千位相同。
#include
int main()
{
int n,a[5],i=0;
printf("請輸入一個5位數:");
scanf("%d",&n);
while(n!=0)
{
a[i]=n%10;
n=n/10;
i++;
}
if(a[0]==a[4]&&a[1]==a[3])
printf("這個數是迴文數 ");
else
printf("這個數不是迴文數 ");
return 0;
}
8.利用遞歸演算法,將所輸入的5個字元,以相反順序列印出來。
#include
void digui(char a[],int n)
{
if(n==1)
printf("%c",a[0]);
else
{
printf("%c",a[n-1]);
digui(a,n-1);
}
}
int main()
{
char str[5];
printf("請輸入5個字元:");
scanf("%s",str);
digui(str,5);
printf(" ");
return 0;
}
9.有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13…球出這個序列的前20項之和。
#include
int main()
{
int i,a=1,b=1;
float sum=0.0;
for(i=1;i<=20;i++)
{
sum=sum+(float)(a+i)/b;
b=a+i;
a=i;
}
printf("sum=%f ",sum);
return 0;
}
10.利用遞歸演算法求5!。
#include
int digui(int n)
{
if(n==1)
return 1;
else
return n*digui(n-1);
}
int main()
{
int n,sum;
printf("n:");
scanf("%d",&n);
sum=digui(n);
printf("sum=%d ",sum);
return 0;
}
C. 誰有好的C語言例題
1、以下程序實現:輸入圓的半徑 r 和運算標志 m ,按照運算標志進行指定計算。
標志 運算
A 面積
B 周長
C 二者均計算
2、以下程序實現輸出 x , y , z 三個數中的最大者。
3、以下程序實現:輸入三個整數,按從大到小的順序進行輸出。
4、以下程序對輸入的一個小寫字母,將字母循環後移 5 個位置後輸出。如』a』變成『f』 , 『w 『變成』b』。
5、某郵局對郵寄包裹有如下規定:若包裹的長寬高任一尺寸超過 1 米或重量超過 30 千克,不予郵寄;對可以郵寄的包裹每件收手續費 0. 2 元,再加上根據下表按重量 wei 計算的郵資:
重量(千克) 收費標准(元)
wei < 10 0. 80
10 < wei < = 20 0 . 75
20 < wei<=30 0 . 70
6、某個自動加油站有A,B,C三種汽油,單價分別為 1.05 , 1 . 35 , 1 . 18 (元/千克),也提供了」自己加」或「協助加」 兩個服務等級,這樣用戶可以得到 5%或 10%的優惠。本程序針對用戶輸入加油量 a ,汽油品種 b 和服務類型 c
(f ---自動, m----自己,e---協助),輸出應付款 m 。
7、編程實現以下功能:讀入兩個運算數( datal 和 dataZ )及一個運算符(叩) , 計算表達式 datal op dataZ 的值,其中 op 可為+,一, * , / (用 Switch 語句實現)。
8、有一堆零件( 100到 200 之間),如果分成 4 個零件一組的若干組,則多 2 個零件;若分成 7 個零件一組,則多 3 個零件;若分成 9 個零件一組,則多 5 個零件。請編程序是求這堆零件總數。
9、請編程實現求 1000以內的所有完全數。(說明:一個數如果恰好等於它的因子之和(除自身外),則稱該數為完全數,例如: 6 = 1 + 2 + 3 , 6 為完全數)
10、編寫程序實現功能:從三個紅球、五個白球、六個黑球中任意取出八個球,且其中必須有白球,輸出所有可能的方案。
11、編寫程序實現功能:計算 100 至 1000 之間有多少個數其各位數字之和是 5 。
12、每個蘋果 0 . 8 元,第一天買 2 個蘋果,第二天開始,每天買前一天的 2 倍,直至購買的蘋果個數達到不超過 100 的最大值。編寫程序求每天平均花多少錢?
13、試編程序,找出 1 至1000之間的全部同構數。同構數是這樣一組數:它出現在它的平方數的右邊。例如: 5 是 25 右邊的數, 25 是 625 右邊的數, 5 和 25 都是同構數。
14、試編程序,求一個整數任意次方的最後三位數。即求 xy的最後三位數,要求 x , y 從鍵盤輸入。
15、編寫程序,從鍵盤輸入 6 名學生的 5 門成績,分別統計出每個學生的平均成績。
如果做完基礎,可以繼續追問!
D. 經典C語言程序例子
題目01:在一個已知的字元串中查找最長單詞,假定字元串中只含字母和空格,空格用來分隔不同的單詞。
(4)c編程100例擴展閱讀:
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
E. 單片機C語言程序設計實訓100例:基於8051+Proteus模擬的目錄
第1章8051單片機C語言程序設計概述1
1.1 8051單片機引腳1
1.2 數據與程序內存2
1.3 特殊功能寄存器3
1.4 外部中斷、定時/計數器及串口應用4
1.5 有符號與無符號數應用、數位分解、位操作5
1.6 變數、存儲類型與存儲模式7
1.7 數組、字元串與指針9
1.8 流程式控制制11
1.9 可重入函數和中斷函數11
1.10 C語言在單片機系統開發中的優勢12
第2章Proteus操作基礎13
2.1 Proteus操作界面簡介13
2.2 模擬電路原理圖設計14
2.3 元件選擇16
2.4 調試模擬20
2.5 Proteus與? V3的聯合調試21
第3章 基礎程序設計22
3.1 閃爍的LED 22
3.2 從左到右的流水燈23
3.3 左右來回循環的流水燈25
3.4 花樣流水燈26
3.5 LED模擬交通燈28
3.6 單只數碼管循環顯示0~9 30
3.7 8隻數碼管滾動顯示單個數字31
3.8 8隻數碼管顯示多個不同字元33
3.9 數碼管閃爍顯示35
3.10 8隻數碼管滾動顯示數字串36
3.11 K1~K4控制LED移位37
3.12 K1~K4按鍵狀態顯示39
3.13 K1~K4分組控制LED 40
3.14 K1~K4控制數碼管移位顯示42
3.15 K1~K4控制數碼管加減演示44
3.16 4×4鍵盤矩陣控制條形LED顯示46
3.17 數碼管顯示4×4鍵盤矩陣按鍵48
3.18 開關控制LED 51
3.19 繼電器控制照明設備52
3.20 數碼管顯示撥碼開關編碼53
3.21 開關控制報警器55
3.22 按鍵發音56
3.23 播放音樂58
3.24 INT0中斷計數59
3.25 INT0中斷控制LED 61
3.26 INT0及INT1中斷計數63
3.27 TIMER0控制單只LED閃爍66
3.28 TIMER0控制流水燈68
3.29 TIMER0控制4隻LED滾動閃爍70
3.30 T0控制LED實現二進制計數72
3.31 TIMER0與TIMER1控制條形LED 73
3.32 10s的秒錶75
3.33 用計數器中斷實現100以內的按鍵計數77
3.34 10 000s以內的計時程序78
3.35 定時器控制數碼管動態顯示81
3.36 8×8 LED點陣屏顯示數字83
3.37 按鍵控制8×8 LED點陣屏顯示圖形85
3.38 用定時器設計的門鈴87
3.39 演奏音階89
3.40 按鍵控制定時器選播多段音樂91
3.41 定時器控制交通指示燈93
3.42 報警器與旋轉燈96
3.43 串列數據轉換為並行數據98
3.44 並行數據轉換為串列數據99
3.45 甲機通過串口控制乙機LED閃爍101
3.46 單片機之間雙向通信104
3.47 單片機向主機發送字元串108
3.48 單片機與PC串口通信模擬110
第4章 硬體應用115
4.1 74LS138解碼器應用115
4.2 74HC154解碼器應用116
4.3 74HC595串入並出晶元應用118
4.4 用74LS148擴展中斷121
4.5 I2C-24C04與蜂鳴器123
4.6 I2C-24C04與數碼管127
4.7 用6264擴展內存132
4.8 用8255實現介面擴展134
4.9 555的應用136
4.10 BCD解碼數碼管顯示數字138
4.11 MAX7221控制數碼管動態顯示139
4.12 1602字元液晶滾動顯示程序142
4.13 1602液晶顯示的DS1302實時時鍾148
4.14 12864LCD圖像滾動顯示154
4.15 160128LCD圖文演示160
4.16 2×20串列字元液晶顯示167
4.17 開關控制12864LCD串列模式顯示169
4.18 ADC0832模數轉換與顯示175
4.19 用ADC0808控制PWM輸出178
4.20 ADC0809模數轉換與顯示181
4.21 用DAC0832生成鋸齒波183
4.22 用DAC0808實現數字調壓184
4.23 PCF8591模數與數模轉換186
4.24 DS1621溫度感測器輸出顯示193
4.25 DS18B20溫度感測器輸出顯示198
4.26 正反轉可控的直流電動機203
4.27 正反轉可控的步進電動機205
4.28 鍵控看門狗208
第5章 綜合設計211
5.1 可以調控的走馬燈211
5.2 按鍵選播電子音樂214
5.3 可演奏的電子琴216
5.4 1602LCD顯示仿手機鍵盤按鍵字元219
5.5 1602LCD顯示電話撥號鍵盤按鍵222
5.6 12864LCD顯示計算器鍵盤按鍵225
5.7 數碼管隨機模擬顯示乘法口訣231
5.8 1602LCD隨機模擬顯示乘法口訣234
5.9 用數碼管設計的可調式電子鍾236
5.10 用1602LCD設計的可調式電子鍾239
5.11 用DS1302與數碼管設計的可調式電子表243
5.12 用DS1302與1602LCD設計的可調式電子日歷與時鍾247
5.13 用DS1302與12864LCD設計的可調式中文電子日歷252
5.14 用PG12864LCD設計的指針式電子鍾257
5.15 高模擬數碼管電子鍾266
5.16 1602LCD顯示的秒錶269
5.17 數碼管顯示的頻率計274
5.18 字元液晶顯示的頻率計276
5.19 用ADC0832調節頻率輸出279
5.20 用ADC0832設計的兩路電壓表281
5.21 用數碼管與DS18B20設計的溫度報警器284
5.22 用1602LCD與DS18B20設計的溫度報警器289
5.23 數碼管顯示的溫控電動機295
5.24 溫度控制直流電動機轉速298
5.25 用ADC0808設計的調溫報警器303
5.26 160128LCD中文顯示溫度與時間306
5.27 用DAC0808設計的直流電動機調速器309
5.28 160128液晶中文顯示ADC0832兩路模數轉換結果310
5.29 160128液晶曲線顯示ADC0832兩路模數轉換結果313
5.30 串口發送數據到2片8×8點陣屏滾動顯示315
5.31 用74LS595與74LS154設計的16×16點陣屏318
5.32 用8255與74LS154設計的16×16點陣屏320
5.33 8×8 LED點陣屏仿電梯數字滾動顯示323
5.34 用24C04與1602LCD設計電子密碼鎖325
5.35 光耦控制點亮和延時關閉照明設備331
5.36 12864LCD顯示24C08保存的開機畫面334
5.37 12864LCD顯示EPROM2764保存的開機畫面340
5.38 160128液晶顯示當前壓力342
5.39 單片機系統中自製硬體字型檔的應用344
5.40 用8051與1601LCD設計的整數計算器349
5.41 模擬射擊訓練游戲357
參考文獻363
F. 璋佽兘鐢╟璇璦涓鐨刦or璇鍙ワ紝緙栧啓涓浠1鍔犲埌100鐨勭▼搴
褰撶劧鍙浠ワ紒浠ヤ笅鏄鐢–璇璦緙栧啓浠1鍔犲埌100鐨勭▼搴忕殑紺轟緥浠g爜錛
Copy code
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 1; i <= 100; i++) { // 浠1鍔犲埌100
sum += i;
}
printf("1鍒100鐨勫拰涓猴細%d\n", sum);
return 0;
}
鍦ㄧ▼搴忎腑錛屾垜浠浣跨敤浜 for 寰鐜錛屽驚鐜鍙橀噺浠 1 寮濮嬶紝鍒 100 緇撴潫錛屾瘡嬈″驚鐜灝嗗綋鍓嶇殑 i 鍔犲叆鍒 sum 鍙橀噺涓銆傛渶鍚庯紝鎴戜滑浣跨敤 printf 杈撳嚭璁$畻寰楀埌鐨勫拰銆
G. C語言編程題目
下面是一些C編程題目:1. 編寫程序,從鍵盤輸入兩個整數,輸出它們的和、差、積、商、余數。2. 編寫程序,從鍵盤輸入三角形的三條邊長,判斷它們是否可以構成三角形,並輸出三角形的類型(等邊、等腰、一般)。3. 編寫程序,從鍵盤輸入字元串,統櫻派計其中的大寫字母、小寫字母、數字和其他字元的個數,並輸出脊鉛賀結果。4. 編寫程序,從鍵盤輸入整數n,列印出n個斐波那契數列的數(斐波那契數列:1 1 2 3 5 8 13...,後數是前兩個數之和)。5. 編寫程序,從鍵盤輸入字元串,判斷它是否為迴文字元串(即正著讀和倒激信著讀都一樣),並輸出結果。6. 編寫程序,從鍵盤輸入整數n,列印出從1到n的所有素數(素數是只能被1和本身整除的數,如2、3、5、7、11等)。7. 編寫程序,從鍵盤輸入一組數據(1~100之間的整數),將它們存入數組中,並按從小到大的順序輸出。8. 編寫程序,從鍵盤輸入整數n,列印出n行的楊輝三角形。9. 編寫程序,實現冒泡排序(以升序為例)。10. 編寫程序,實現二分查找演算法(在有序數組中查找指定元素)。