导航:首页 > 编程语言 > c编程实例100篇

c编程实例100篇

发布时间:2023-06-04 08:45:20

1. 单片机c语言编程100个实例

51单片机C语言编程实例 基础知识:51单片机编程基础 单片机的外部结构: 1. DIP40双列直插; 2. P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3. 电源VCC(PIN40)和地线GND(PIN20); 4. 高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5. 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6. 程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7. P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1. 四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2. 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一个串行通信接口;(SCON,SBUF) 4. 一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。 C语言编程基础: 1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。 在某引脚输出低电平的编程方法:(比如P2.7引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 在某引脚输出方波编程方法:(比如P3.1引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 5. { 6. P3_1 = 1; //给P3_1赋值1,引脚P3.1就能输出高电平VCC 7. P3_1 = 0; //给P3_1赋值0,引脚P3.1就能输出低电平GND 8. } //由于一直为真,所以不断输出高、低、高、低……,从而形成方波 9. } 将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) ) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P0.4和P1.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_1 = 1; //初始化。P1.1作为输入,必须输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { 7. if( P1_1 == 1 ) //读取P1.1,就是认为P1.1为输入,如果P1.1输入高电平VCC 8. { P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 2 51单片机C语言编程实例 9. else //否则P1.1输入为低电平GND 10. //{ P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 11. { P0_4 = 1; } //给P0_4赋值1,引脚P0.4就能输出高电平VCC 12. } //由于一直为真,所以不断根据P1.1的输入情况,改变P0.4的输出电平 13. } 将某端口8个引脚输入电平,低四位取反后,从另一个端口8个引脚输出:( 比如 P2 = NOT( P3 ) ) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2和P3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P3 = 0xff; //初始化。P3作为输入,必须输出高电平,同时给P3口的8个引脚输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { //取反的方法是异或1,而不取反的方法则是异或0 7. P2 = P3^0x0f //读取P3,就是认为P3为输入,低四位异或者1,即取反,然后输出 8. } //由于一直为真,所以不断将P3取反输出到P2 9. } 注意:一个字节的8位D7、D6至D0,分别输出到P3.7、P3.6至P3.0,比如P3=0x0f,则P3.7、P3.6、P3.5、P3.4四个引脚都输出低电平,而P3.3、P3.2、P3.1、P3.0四个引脚都输出高电平。同样,输入一个端口P2,即是将P2.7、P2.6至P2.0,读入到一个字节的8位D7、D6至D0。 第一节:单数码管按键显示 单片机最小系统的硬件原理接线图: 1. 接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF 2. 接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容30pF 3. 接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理 4. 接配置:EA(PIN31)。说明原因。 发光二极的控制:单片机I/O输出 将一发光二极管LED的正极(阳极)接P1.1,LED的负极(阴极)接地GND。只要P1.1输出高电平VCC,LED就正向导通(导通时LED上的压降大于1V),有电流流过LED,至发LED发亮。实际上由于P1.1高电平输出电阻为10K,起到输出限流的作用,所以流过LED的电流小于(5V-1V)/10K = 0.4mA。只要P1.1输出低电平GND,实际小于0.3V,LED就不能导通,结果LED不亮。 开关双键的输入:输入先输出高 一个按键KEY_ON接在P1.6与GND之间,另一个按键KEY_OFF接P1.7与GND之间,按KEY_ON后LED亮,按KEY_OFF后LED灭。同时按下LED半亮,LED保持后松开键的状态,即ON亮OFF灭。 代码 1. #include <at89x52.h> 2. #define LED P1^1 //用符号LED代替P1_1 3. #define KEY_ON P1^6 //用符号KEY_ON代替P1_6 4. #define KEY_OFF P1^7 //用符号KEY_OFF代替P1_7 5. void main( void ) //单片机复位后的执行入口,void表示空,无输入参数,无返回值 6. { 7. KEY_ON = 1; //作为输入,首先输出高,接下KEY_ON,P1.6则接地为0,否则输入为1 8. KEY_OFF = 1; //作为输入,首先输出高,接下KEY_OFF,P1.7则接地为0,否则输入为1 9. While( 1 ) //永远为真,所以永远循环执行如下括号内所有语句 10. { 11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1输出高,LED亮 12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1输出低,LED灭 13. } //松开键后,都不给LED赋值,所以LED保持最后按键状态。 14. //同时按下时,LED不断亮灭,各占一半时间,交替频率很快,由于人眼惯性,看上去为半亮态 15. } 数码管的接法和驱动原理 一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点。作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h。对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h。 我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号;对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。 如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极。否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极。 以单支共阴数码管为例,可将段极接到某端口Pn,共阴极接GND,则可编写出对应十六进制码的七段码表字节数据

2. 《单片机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语言一百例子

3. 求C语言编程很长的程序100多行的

C语言写的21点程序!
#include
#include
#include
#define
NULL
0
int
compare(char
sum1,char
sum2)
{
if(sum1>=sum2)
return
1;
else
return
0;
}
int
breakal(int
sum)
{
if(sum>21)
return
0;
else
return
1;
}
char
change(int
card)
{
char
ch,n,m,x;
switch(card)
{
case
1:
ch='A';
break;
case
10:
{
n=1+int(rand()/(RAND_MAX+1.0));
if(n==1)
ch='K';
else
{
m=1+int(rand()/(RAND_MAX+1.0));
if(m==1)
ch='Q';
else
{
x=1+int(rand()/(RAND_MAX+1.0));
if(x==1)
ch='J';
}
}
break;
}
}
//以上switch语句用于将数字转换成字符
return
ch;
}
void
game()
{
int
i,k,n;
char
host_ch,player_ch,host_card[15],player_card[15];
int
host_sum=0,player_sum=0;
srand(time(NULL));
for(i=0;i<2;i++)
{
int
(10.0*rand()/(RAND_MAX+1.0));
player_card[i]=1+int
(10.0*rand()/(RAND_MAX+1.0));
player_ch=change(player_card[i]);
if(player_card[i]>1
&&
player_card[i]<10)
//输出玩家抽到的牌的点数
printf("您抽到的第%d张牌是%d\n",i+1,player_card[i]);
else
if(player_card[i]==10)
printf("您要到的第%d张牌是%c\n",i+1,player_ch);
else
printf("您要到的第%d张牌是A\n",i+1);
if(player_ch=='A')
//询问判断玩家的A的点值为1或11
{
printf("
您有一张A,您想要A作1还是11?\n");
printf("
1.
1\n"
);
printf("
2.
11\n");
if(scanf("%d",&n)
&&
n==1)
player_card[i]=1;
else
player_card[i]=11;
}
host_card[i]=1+int
(10.0*rand()/(RAND_MAX+1.0));
host_ch=change(host_card[i]);
if(host_ch=='A')
//电脑自动判断庄家的A的点值为1或11
{
k=1+int(rand()/(RAND_MAX+1.0));
if(k==1)
host_card[i]=11;
else
host_card[i]=1;
}
player_sum+=player_card[i];
//分别对庄家和玩家的点数求和
host_sum+=host_card[i];
}
printf("您现在的总面值为%d\n",player_sum);//输出玩家的总面值
for(i=2;i<5;i++)
{
if(host_sum<18
&&
host_sum>0)//电脑自动判断庄家是否要牌
{
host_card[i]=1+int
(10.0*rand()/(RAND_MAX+1.0));
host_ch=change(host_card[i]);
if(host_ch=='A')
//电脑自动判断庄家的A的点值为1或11
{
k=1+int(rand()/(RAND_MAX+1.0));
if(k==1)
host_card[i]=11;
else
host_card[i]=1;
}
host_sum+=host_card[i];
}
printf("您还要继续要牌吗?\n");
printf("
1.要\n");
printf("
2.不要\n");
scanf("%d",&k);
if(k==1)
{
{
player_card[i]=1+int
(10.0*rand()/(RAND_MAX+1.0));
player_ch=change(player_card[i]);
if(player_ch=='A')
//询问判断玩家的A的点值为1或11
{
printf("您有一张A,您想要A作1还是11?\n");
printf("
1.
1\n"
);
printf("
2.
11\n");
if(scanf("%d",&n)
&&
n==1)
player_card[i]=1;
else
player_card[i]=11;
printf("您要到的第%d张牌是A\n",i+1);
}
else
printf("您要到的第%d张牌是%d\n",i+1,player_card[i]);
player_sum+=player_card[i];
if(i==4)
printf("您手中已有5张牌,一决胜负的时刻到啦!\n");
if(breakal(host_sum)==0)
{
if(breakal(player_sum)==0)
{
printf("庄家爆牌了,您也爆牌了!庄家的牌面值是%d,您的牌面值是%d\n",host_sum,player_sum);
printf("\nYou
lose..\n");
break;
}
}
else
if(breakal(player_sum)==0)
{
printf("您爆牌了!您的牌面值是%d\n
\nYou
lose..\n",player_sum);
break;
}
}
if(breakal(host_sum)==0)
{
printf("庄家爆牌了!庄家的牌面值是%d\n",host_sum);
printf("\nCongratulations!
YOu
win!\n");
break;
}
}
else
{
printf("庄家的牌面值是%d,您的牌面值是%d\n",host_sum,player_sum);
if(compare(host_sum,player_sum)==1)
printf("\nYou
lose..\n");
else
printf("\nCongratulations!
You
win!\n");
break;
}
}
}
int
main()
{
kaishi:
int
n;
printf("
欢迎进入21点游戏!\n");
printf("
************************************\n");
printf("
1.开始游戏\n");
printf("
2.退出游戏\n");
printf("
************************************\n");
if(scanf("%d",&n)&&n==1)
game();
else
if(n==2)
{
printf("
******************************\n");
printf("
游戏结束!祝您愉快!\n");
printf("\n\n");
printf("
再见!\n");
printf("
******************************\n");
return
0;
}
goto
kaishi;
}

4. 求C语言编程实例100行以上,要有文字大概解释一下

下面是一个用C语言显示一个简单的WIndows窗口的小程序。用C语言对Windows编程的基础。

//+---------------------------------------------------------------------------
//
//HELLO_WIN.C-WindowsGUI'HelloWorld!'示例
//
//+---------------------------------------------------------------------------

#include<windows.h>

#defineAPPNAME"HELLO_WIN"

charszAppName[]=APPNAME;//当前有用程序的名称
charszTitle[]=APPNAME;//标题行显示的文字
constchar*pWindowText;

voidCenterWindow(HWNDhWnd);

//+---------------------------------------------------------------------------
//
//Function:WndProc
//
//Synopsis:处理Windows消息的函数
//
//Arguments:sameasalways.
//----------------------------------------------------------------------------

LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
switch(message){

//-----------------------firstandlast
caseWM_CREATE:
CenterWindow(hwnd);
break;

caseWM_DESTROY:
PostQuitMessage(0);
break;

//-----------------------getoutofit...
caseWM_RBUTTONUP:
DestroyWindow(hwnd);
break;

caseWM_KEYDOWN:
if(VK_ESCAPE==wParam)
DestroyWindow(hwnd);
break;

//-----------------------displayourminimalinfo
caseWM_PAINT:
{
PAINTSTRUCTps;
HDChdc;
RECTrc;
hdc=BeginPaint(hwnd,&ps);

GetClientRect(hwnd,&rc);
SetTextColor(hdc,RGB(240,240,96));
SetBkMode(hdc,TRANSPARENT);
DrawText(hdc,pWindowText,-1,&rc,DT_CENTER|DT_SINGLELINE|DT_VCENTER);

EndPaint(hwnd,&ps);
break;
}

//-----------------------letwindowsdoallotherstuff
default:
returnDefWindowProc(hwnd,message,wParam,lParam);
}
return0;
}

//+---------------------------------------------------------------------------
//
//Function:WinMain
//
//Synopsis:
//
//----------------------------------------------------------------------------
intAPIENTRYWinMain(
HINSTANCEhInstance,
HINSTANCEhPrevInstance,
LPSTRlpCmdLine,
intnCmdShow
)
{
MSGmsg;
WNDCLASSwc;
HWNDhwnd;

pWindowText=lpCmdLine[0]?lpCmdLine:"HelloWindows!";

//
//themainwindow.

ZeroMemory(&wc,sizeofwc);
wc.hInstance=hInstance;
wc.lpszClassName=szAppName;
wc.lpfnWndProc=(WNDPROC)WndProc;
wc.style=CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW;
wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);

if(FALSE==RegisterClass(&wc))
return0;

//createthebrowser
hwnd=CreateWindow(
szAppName,
szTitle,
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
CW_USEDEFAULT,
CW_USEDEFAULT,
360,//CW_USEDEFAULT,
240,//CW_USEDEFAULT,
0,
0,
hInstance,
0);

if(NULL==hwnd)
return0;

//Mainmessageloop:
while(GetMessage(&msg,NULL,0,0)>0){
TranslateMessage(&msg);
DispatchMessage(&msg);
}

returnmsg.wParam;
}

//+---------------------------------------------------------------------------

//+---------------------------------------------------------------------------

voidCenterWindow(HWNDhwnd_self)
{
HWNDhwnd_parent;
RECTrw_self,rc_parent,rw_parent;
intxpos,ypos;

hwnd_parent=GetParent(hwnd_self);
if(NULL==hwnd_parent)
hwnd_parent=GetDesktopWindow();

GetWindowRect(hwnd_parent,&rw_parent);
GetClientRect(hwnd_parent,&rc_parent);
GetWindowRect(hwnd_self,&rw_self);

xpos=rw_parent.left+(rc_parent.right+rw_self.left-rw_self.right)/2;
ypos=rw_parent.top+(rc_parent.bottom+rw_self.top-rw_self.bottom)/2;

SetWindowPos(
hwnd_self,NULL,
xpos,ypos,0,0,
SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE
);
}

//+---------------------------------------------------------------------------

5. C语言编程实例

int countCattles(int cattles, int years){
return years<=0?cattles: countCattles(cattles*2,years-4);
}
===
就可以了
printf("20年后有%d只\n ", countCattles(1,20);

6. c语言编程100题,有没有大神帮帮忙

您好,c语言经典100题:
【程序1】
题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数
都是多少
1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去
掉不满足条件的排列.
2.程序源代码:
main()
{
int
i,j,k;
printf("\n");
for(i1;i<5;i++)
/*以下为三重循环*/
for(j1;j<5;j++)
for
(k1;k<5;k++)
{
if
(i!k&&i!j&&j!k)
/*确保i,j,k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
【程序2】
题目:企业发放的奖金根据利润提成.利润(i)低于或等于10万元时,奖金可提10%;利润高
于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到激锋60万之间时高于
40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分明盯晌,可提成1.5%,高于
100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数
1.程序分析:请利用数轴来分界,定位.注意定义时需把奖金定义成长整型.
2.程序源代码:
main()
{
long
int
i;
int
bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1100000*0.1;bonus2bonus1+100000*0.75;
bonus4bonus2+200000*0.5;
bonus6bonus4+200000*0.3;
bonus10bonus6+400000*0.15;
if(i<100000)
bonusi*0.1;
else
if(i<200000)
bonusbonus1+(i-100000)*0.075;
else
if(i<400000)
bonusbonus2+(i-200000)*0.05;
else
if(i<600000)
bonusbonus4+(i-400000)*0.03;
else
if(i<1000000)
bonusbonus6+(i-600000)*0.015;
else
bonusbonus10+(i-1000000)*0.01;
printf("bonus%d",bonus);
}
【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果.请看具体分析:
2.程序源代码:
#include
"math.h"
main()
{
long
int
i,x,y,z;
for
(i1;i2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("it
is
the
%dth
day.",sum);}
【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
main()
{
int
day,month,year,sum,leap;
printf("\nplease
input
year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计则尘算某月以前月份的总天数*/
{
case
1:sum0;break;
case
2:sum31;break;
case
3:sum59;break;
case
4:sum90;break;
case
5:sum120;break;
case
6:sum151;break;
case
7:sum181;break;
case
8:sum212;break;
case
9:sum243;break;
case
10:sum273;break;
case
11:sum304;break;
case
12:sum334;break;
default:printf("data
error");break;
}
sumsum+day;
/*再加上某天的天数*/
if(year%4000||(year%40&&year%100!0))/*判断是不是闰年*/
leap1;
else
leap0;
if(leap1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It
is
the
%dth
day.",sum);}
【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出.
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小.
2.程序源代码:
main()
{
int
x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if
(x>y)
{tx;xy;yt;}
/*交换x,y的值*/
if(x>z)
{tz;zx;xt;}/*交换x,z的值*/
if(y>z)
{ty;yz;zt;}/*交换z,y的值*/
printf("small
to
big:
%d
%d
%d\n",x,y,z);
}
【程序6】
题目:用*号输出字母c的图案.
1.程序分析:可先用'*'号在纸上写出字母c,再分行输出.
2.程序源代码:
#include
"stdio.h"
main()
{
printf("hello
c-world!\n");
printf("
****\n");
printf("
*\n");
printf("
*
\n");
printf("
****\n");
}
【程序7】
题目:输出特殊图案,请在c环境中运行,看一看,very
beautiful!
1.程序分析:字符共有256个.不同字符,图形不一样.
2.程序源代码:
#include
"stdio.h"
main()
{
char
a176,b219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);}
【程序8】
题目:输出9*9口诀.
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列.
2.程序源代码:
#include
"stdio.h"
main()
{
int
i,j,result;
printf("\n");
for
(i1;i<10;i++)
{
for(j1;j<10;j++)
{
resulti*j;
printf("%d*%d%-3d",i,j,result);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
}
【程序9】
题目:要求输出国际象棋棋盘.
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格.
2.程序源代码:
#include
"stdio.h"
main()
{
int
i,j;
for(i0;i<8;i++)
{
for(j0;j<8;j++)
if((i+j)%20)
printf("%c%c",219,219);
else
printf("
");
printf("\n");
}
}
【程序10】
题目:打印楼梯,同时在楼梯上方打印两个笑脸.
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数.
2.程序源代码:
#include
"stdio.h"
main()
{
int
i,j;
printf("\1\1\n");/*输出两个笑脸*/
for(i1;i<11;i++)
{
for(j1;j<i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
【程序11】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少
1.程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21....
2.程序源代码:
main()
{
long
f1,f2;
int
i;
f1f21;
for(i1;i<20;i++)
{
printf("%12ld
%12ld",f1,f2);
if(i%20)
printf("\n");/*控制输出,每行四个*/
f1f1+f2;
/*前两个月加起来赋值给第三个月*/
f2f1+f2;
/*前两个月加起来赋值给第三个月*/
}
}
【程序12】
题目:判断101-200之间有多少个素数,并输出所有素数.
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数.
2.程序源代码:
#include
"math.h"
main()
{
int
m,i,k,h0,leap1;
printf("\n");
for(m101;m<200;m++)
{
ksqrt(m+1);
for(i2;i<k;i++)
if(m%i0)
{leap0;break;}
if(leap)
{printf("%-4d",m);h++;
if(h%100)
printf("\n");
}
leap1;
}
printf("\nthe
total
is
%d",h);
}

7. 300行c++代码编程实例

#include #include #include void select(); /*自定义函数的全局声明*/ void input(); void output(); void sort(); void search(); void modify(); void deleted(); void save(); void load(); struct student { int number; char name[9]; char sex; char xy[20]; char zy[20]; int classes; double jcj; double pcj; double zcj; }; struct student a[40]; void main() { select(); //调用选择函数 } void select() { int n; system("cls"); printf("|--------------------------------------------------------------|\n"); printf("| 主菜单 |\n"); printf("| 1. 输入功能 |\n"); printf("| 2. 输出功能 |\n"); printf("| 3. 排序功能 |\n"); printf("| 4. 查询功能 |\n"); printf("| 5. 修改功能 |\n"); printf("| 6. 删除功能 |\n"); printf("| 7. SAVE功能 |\n"); printf("| 8. LOAD功能 |\n"); printf("| 9. 退出程序 |\n"); printf("|--------------------------------------------------------------|\n"); printf(" 请你选择功能:"); scanf("%d",&n); switch(n) { case 1: input();select();break; /*当调用完输入函数之后,回到主菜单的函数select函数*/ case 2: output();select();break; case 3: sort();select();break; case 4: search();select();break; case 5: modify();select();break; case 6: deleted();select();break; case 7: save();select();break; case 8: load();select();break; case 9: exit(0);break; } getchar(); getchar(); system("pause"); } void input() { int i,n; system("cls"); printf(" welcome to 输入功能\n\n\n"); for(i=0;i<=39;i++) { printf("------------------------------------------------------------|\n"); printf("| 是否要给1个同学做信息的输入 |\n"); printf("| 1. 输入 |\n"); printf("| 2. 结束输入 |\n"); printf("------------------------------------------------------------|\n"); printf(" 请你输入你的选择:"); scanf("%d",&n); if(n==2) break; printf("学号:"); scanf("%d",&a[i].number); getchar(); printf("姓名:"); gets(a[i].name); printf("性别:"); a[i].sex=getchar(); getchar(); printf("学院:"); gets(a[i].xy); printf("专业:"); gets(a[i].zy); printf("班级:"); scanf("%d",&a[i].classes); printf("卷面成绩:"); scanf("%lf",&a[i].jcj); printf("平时成绩:"); scanf("%lf",&a[i].pcj); } getchar(); getchar(); system("pause"); } void output() { int i; system("cls"); printf(" welcome to 输出功能\n\n\n"); printf("%-9s","学号"); printf("%-9s","姓名"); printf("%-5s","性别"); printf("%-20s","学院"); printf("%-20s","专业"); printf("%-5s","班级"); printf("%-9s","卷面成绩"); printf("%-9s","平时成绩"); printf("%-9s","总成绩"); printf("\n"); for(i=0;i<=39;i++) { a[i].zcj=a[i].jcj*0.6+a[i].pcj; if(a[i].number == 0) break; printf("%-9d",a[i].number); printf("%-9s",a[i].name); printf("%-5c",a[i].sex); printf("%-20s",a[i].xy); printf("%-20s",a[i].zy); printf("%-5d",a[i].classes); printf("%-9.2lf",a[i].jcj); printf("%-9.2lf",a[i].pcj); printf("%-9.2lf",a[i].zcj); printf("\n"); } getchar(); getchar(); system("pause"); } void sort() { int i,j,n; struct student t; system("cls"); printf(" welcome to 排序功能\n\n\n"); printf("------------------------------------------------------------|\n"); printf("| 排序菜单 |\n"); printf("| 1. 按总分总高到低排序输出 |\n"); printf("| 2. 按总分总低到高排序输出 |\n"); printf("| 3. 退出排序功能 |\n"); printf("------------------------------------------------------------|\n"); printf(" 请你输入你的选择:"); scanf("%d",&n); switch(n) { case 1: for(j=38;j>=0;j--) { for(i=0;i<=j;i++) { if(a[i].number == 0 || a[i+1].number == 0) break; else { if(a[i].zcj < a[i+1].zcj) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } } } break; case 2: for(j=38;j>=0;j--) { for(i=0;i<=j;i++) { if(a[i].number == 0 || a[i+1].number == 0) break; else { if(a[i].zcj > a[i+1].zcj) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } } } break; case 3: select(); break; } printf("%-9s","学号"); printf("%-9s","姓名"); printf("%-5s","性别"); printf("%-20s","学院"); printf("%-20s","专业"); printf("%-5s","班级"); printf("%-9s","卷面成绩"); printf("%-9s","平时成绩"); printf("%-9s","总成绩"); printf("\n"); for(i=0;i<=39;i++) { a[i].zcj=a[i].jcj*0.6+a[i].pcj; if(a[i].number == 0) break; printf("%-9d",a[i].number); printf("%-9s",a[i].name); printf("%-5c",a[i].sex); printf("%-20s",a[i].xy); printf("%-20s",a[i].zy); printf("%-5d",a[i].classes); printf("%-9.2lf",a[i].jcj); printf("%-9.2lf",a[i].pcj); printf("%-9.2lf",a[i].zcj); printf("\n"); } getchar(); getchar(); system("pause"); } void search() { int i,n; char search_name[9]; system("cls"); printf(" welcome to 查询功能\n\n\n"); printf("------------------------------------------------------------|\n"); printf("| 查询菜单 |\n"); printf("| 1. 按姓名查询 |\n"); printf("| 2. 按性别查询 |\n"); printf("| 3. 按学号查询 |\n"); printf("| 4. 按专业查询 |\n"); printf("| 5. 按学院查询 |\n"); printf("| 6. 按总成绩及格同学查询 |\n"); printf("| 7. 退出查询功能 |\n"); printf("------------------------------------------------------------|\n"); printf(" 请你输入你的选择:"); scanf("%d",&n); getchar(); switch(n) { case 1: printf("\n\n\n请你输入要查询某同学的姓名:"); gets(search_name); printf("%-9s","学号"); printf("%-9s","姓名"); printf("%-5s","性别"); printf("%-20s","学院"); printf("%-20s","专业"); printf("%-5s","班级"); printf("%-9s","卷面成绩"); printf("%-9s","平时成绩"); printf("%-9s","总成绩"); printf("\n"); for(i=0;i<=39;i++) { if(a[i].number==0) break; else { if(strcmp(a[i].name,search_name) == 0) { printf("%-9d",a[i].number); printf("%-9s",a[i].name); printf("%-5c",a[i].sex); printf("%-20s",a[i].xy); printf("%-20s",a[i].zy); printf("%-5d",a[i].classes); printf("%-9.2lf",a[i].jcj); printf("%-9.2lf",a[i].pcj); printf("%-9.2lf",a[i].zcj); printf("\n"); } } } break; case 2: break; } getchar(); getchar(); system("pause"); } void modify() { int i,n,m; int modify_number; /* 输入修改对象的学号*/ system("cls"); printf(" welcome to 修改功能\n\n\n"); printf("------------------------------------------------------------|\n"); printf("| 修改菜单 |\n"); printf("| 1. 修改全部信息 |\n"); printf("| 2. 修改具体某项信息 |\n"); printf("| 3. 退出修改功能 |\n"); printf("------------------------------------------------------------|\n"); printf(" 请你输入你的选择:"); scanf("%d",&n); getchar(); switch(n) { case 1: printf("\n\n请你输入你要修改的对象的学号:"); scanf("%d",&modify_number); for(i=0;i<=39;i++) { if(modify_number == a[i].number) { printf("学号:"); scanf("%d",&a[i].number); getchar(); printf("姓名:"); gets(a[i].name); printf("性别:"); a[i].sex=getchar(); getchar(); printf("学院:"); gets(a[i].xy); printf("专业:"); gets(a[i].zy);

阅读全文

与c编程实例100篇相关的资料

热点内容
结对程序员 浏览:762
使用过的苹果手机怎么同步app 浏览:344
phpcookie无效 浏览:954
python可以搜数学答案 浏览:706
均线衍生指标源码设置 浏览:496
做精一张图pdf 浏览:851
编程培训小朋友 浏览:787
巴克球制作解压 浏览:851
测量参数时接单片机的 浏览:116
手机音乐添加文件夹 浏览:546
百度智能云b18怎么删除app 浏览:968
单片机中为什么显示找不到头文件 浏览:151
iisweb服务器如何重启 浏览:838
微信没有适配方舟编译器 浏览:81
箍筋加密区梁的净高 浏览:889
samp如何加入外国服务器 浏览:895
保鲜膜解压教学视频 浏览:983
台达plc编程通讯管理软件 浏览:407
优优pdf 浏览:801
程序员职业穿搭 浏览:257