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. 编写程序,实现二分查找算法(在有序数组中查找指定元素)。