欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      51單片機(jī)4路搶答器的原理及C語言源程序(精選5篇)

      時(shí)間:2019-05-14 16:33:12下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《51單片機(jī)4路搶答器的原理及C語言源程序》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《51單片機(jī)4路搶答器的原理及C語言源程序》。

      第一篇:51單片機(jī)4路搶答器的原理及C語言源程序

      51單片機(jī)4路搶答器的原理及C語言源程序

      單片機(jī),當(dāng)然不只是51,51單片機(jī)是一種稍通用型的單片機(jī),通過I/O口的定義,可以實(shí)現(xiàn)多種控制功能。

      搶答器,原理:如果為四路,當(dāng)其中任一路控下后,其他幾路即失效,結(jié)果為第一次按下的,可以用數(shù)碼管或是LED燈來顯示,當(dāng)然這里只是講原理與編程,具體可以根據(jù)搶答器路數(shù)及顯示方式更改程序即可。源程序如下:

      /*用的是AT89S52開發(fā)板,獨(dú)立按鍵接口如下,就用這四路。先按下的用LED燈來顯示,對(duì)應(yīng)第一個(gè)到第四個(gè)LED燈,其他再按無效,如果想再次實(shí)現(xiàn),可手動(dòng)復(fù)位單片機(jī)*/ #include sbit key1=P3^0;//定義按鍵,根據(jù)需要連接線路,如獨(dú)立按鍵(4路)sbit key2=P3^1;sbit key3=P3^2;sbit key4=P3^3;/*void delay(unsigned int cnt)//如果有抖動(dòng)或是干擾,可以用個(gè)小延時(shí)去抖 { while(--cnt);} */ void main(){ bit Flag;while(!Flag){ if(!key1){P1=0xFE;Flag=1;} /*LED燈來顯示按下的鍵,第一個(gè)燈,我這里是8位LED燈,即:0111 1111,反過來讀數(shù)為:1111 1110 即:0xFE *,P1口對(duì)應(yīng)LED燈,給P1賦值/

      else if(!key2){P1=0xFD;Flag=1;} //第二個(gè)燈亮 else if(!key3){P1=0xFB;Flag=1;} //第三個(gè)燈亮

      else if(!key4){P1=0xF7;Flag=1;} //第四個(gè)燈亮,意味著第四路首先按下 } while(Flag);//可以再加個(gè)I/O,控制Flag,這樣初始化,繼續(xù)搶答,還可以設(shè)計(jì)按下時(shí)的聲音

      } 以上程序測試只能測試一次,如再想測試,只能手動(dòng)復(fù)位單片機(jī)。當(dāng)然,可以根據(jù)此原理,設(shè)計(jì)出功能強(qiáng)大的搶答器。如加入聲音提示,數(shù)碼管或是LCD液晶顯示,裁判確定后可復(fù)位繼續(xù)搶答等。

      當(dāng)然,用51單片機(jī),是浪費(fèi),可根據(jù)I/O口(搶答路數(shù))來用其他的單片機(jī)實(shí)現(xiàn)。

      第二篇:c語言源程序

      基于單片機(jī)msp430和溫度傳感器ds18b20的水溫度控制系統(tǒng)的c語言源程序(不是測量,要有加熱跟制冷)

      我這是用STC做的,應(yīng)該很容易移植到MPS430上的給你參考一下。#include #include #define uchar unsigned char #define uint unsigned int

      sbit scl=P1^3;sbit sda=P1^4;

      sbit key1=P1^6;sbit key2=P1^7;sbit key3=P2^0;sbit key4=P2^1;

      sbit lcrs=P3^7;//數(shù)據(jù)/命令 sbit lcwr=P3^5;//讀/寫 sbit lcden=P3^4;//使能

      sbit DS=P2^2;

      /*sbit lcrs=P3^4;//數(shù)據(jù)/命令 sbit lcwr=P3^7;//讀/寫 sbit lcden=P3^5;//使能 */ sbit jrk=P2^2;sbit cyk=P2^3;sbit xhk=P2^4;bit flag=0,rsg=0,not=0,he=0,in=0;int acon=0,bcon=0,dcon=0,econ=0, temp=0,y=0,j=0,l=0,cfj=0,ec=0,dc=0,at;uchar code table[]={48,49,50,51,52,53,54,55,56,57};uchar code ta1[]={“Temperature UP”};uchar code ta2[]={“Temperature DN”};uchar code ta3[]={“Inflator Cycle”};uchar code ta4[]={“Inflator Time ”};uchar code ta5[]={“ Heating UP ”};uchar code ta6[]={“ Inflator ”};uchar code table7[]={“Temperature”};uchar table1[]={0,0,0,'.',0};uchar table3[]={“AptitudeAquarium”};uchar table4[]={0,0,0,0,0};uchar n,c=0;void delay(uchar);void wen_kong();void xh();void rso();void weno();

      void Init_Com(void){ TMOD = 0x11;PCON = 0x00;TH1=0x61;TL1=0x99;EA=1;ET1=1;TR1=1;} void delay(uchar count)//delay { uint i;while(count){ i=200;while(i>0)i--;count--;} } ////初始化18B20///////// bit init18b20(void){ uint i;bit no;DS=0;i=103;while(i>0)i--;DS=1;i=4;while(i>0)i--;no=DS;if(no==0){ DS=1;i=100;while(i>0)i--;no=DS;if(no==1)not=0;else not=1;} else not=1;return(not);}

      bit tmpread()bit(void)//讀一位

      { uint i;bit dat;DS=0;i++;DS=1;i++;i++;dat=DS;i=8;while(i>0)i--;return(dat);}

      uchar tmpread()(void)//讀一個(gè)字節(jié) { uchar i,j,dat;dat=0;for(i=1;i<=8;i++){ j=tmpread()bit();dat=(j<<7)|(dat>>1);//讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里

      } return(dat);}

      void tmpwritebyte(uchar dat)//寫一個(gè)字節(jié)到 ds18b20 { uint i;uchar j;bit testb;for(j=1;j<=8;j++){ testb=dat&0x01;dat=dat>>1;if(testb)//write 1 { DS=0;i++;i++;DS=1;i=8;while(i>0)i--;} else { DS=0;//write 0 i=8;while(i>0)i--;DS=1;i++;i++;} } }

      int tmp()//DS18B20溫度讀取 { float tt;int a,b;if(init18b20()==0){ WDT_CONTR=0x36;/////喂狗 EA=0;delay(1);

      tmpwritebyte(0xcc);// 跳過讀ROM操作 tmpwritebyte(0x44);// 啟動(dòng)溫度轉(zhuǎn)換 delay(10);init18b20();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);a=tmpread();b=tmpread();temp=b;temp<<=8;//將高字節(jié)溫度數(shù)據(jù)與低字節(jié)溫度數(shù)據(jù)整合 temp=temp|a;c=b>>4;

      tt=temp*0.0625;

      temp=tt*10+0.5;//放大10倍輸出并四舍五入 EA=1;return temp;} else not=1;}

      //////1062///////// void ydelay(uint x){ uint a,b;for(a=x;a>0;a--)for(b=10;b>0;b--);} void write_com(uchar com){ P0=com;lcwr=0;lcrs=0;lcden=0;ydelay(10);lcden=1;ydelay(10);lcden=0;lcwr=1;}

      void write_date(uchar date)//寫數(shù)據(jù) {

      P0=date;lcwr=0;lcrs=1;lcden=0;ydelay(10);lcden=1;ydelay(10);lcden=0;lcwr=1;}

      void init1602()//初始化 { write_com(0x38);//設(shè)置顯示模式 ydelay(20);write_com(0x0c);//開顯示 ydelay(20);write_com(0x06);//指針和光標(biāo)自動(dòng)加一 ydelay(20);write_com(0x01);//清屏指令 ydelay(20);}

      ///////顯示程序////// void display(int num){ uint i,A1,A2;WDT_CONTR=0x35;/////喂狗 if(c!=0)num=~num+1;A1=num/1000;A2=num%1000/100;if(not==0){

      if(c!=0){ c=0;table1[0]='-';} else if(A1==0)table1[0]=' ';else

      table1[0]=table[A1];if(A1==0)if(A2==0)table1[1]=' ';else table1[1]=table[A2];

      table1[2]=table[num%1000%100/10];table1[4]=table[num%1000%100%10];} else { table1[0]='?';table1[1]='?';table1[2]='?';table1[4]='?';}

      write_com(0x80);for(i=0;i<11;i++){write_date(table7[i]);delay(2);} write_com(0x8b);for(i=0;i<5;i++){write_date(table1[i]);delay(2);} write_com(0xc0);for(i=0;i<16;i++){ if(he==1)write_date(ta5[i]);else if(in==1)write_date(ta6[i]);else write_date(table3[i]);} c=0;WDT_CONTR=0x35;/////喂狗 } ////顯示2//////////////////// display2(uchar bh,int dat){ uchar a,A,B;WDT_CONTR=0x35;/////喂狗 //write_com(0x01);//清屏指令 y=dat;y=y&0x8000;if(y!=0)dat=~dat+1;A=dat/1000;B=dat%1000/100;if((bh!=4)&&(bh!=5)){ if(A!=0)table4[0]=table[dat/1000];else if((c!=0)||(y!=0)){ c=0;y=0;table4[0]='-';} else table4[0]=' ';if(B!=0)table4[1]=table[B];else table4[1]=' ';table4[2]=table[dat%1000%100/10];table4[3]='.';table4[4]=table[dat%1000%100%10];} else { table4[0]=' ';if((c!=0)||(y!=0)){ c=0;y=0;table4[1]='-';} else table4[1]=' ';table4[2]=' ';table4[3]=table[dat%1000%100/10];table4[4]=table[dat%1000%100%10];}

      write_com(0xc4);delay(2);for(a=0;a<5;a++)write_date(table4[a]);delay(2);write_com(0x80);switch(bh){ case 1:for(a=0;a<14;a++)write_date(ta1[a]);break;case 2:for(a=0;a<14;a++)write_date(ta2[a]);break;case 3:for(a=0;a<14;a++)write_date(ta3[a]);break;case 4:for(a=0;a<14;a++)write_date(ta4[a]);break;default:break;} }

      ///////////x24c02////////////////// void delay24(){;;}

      void init24c02()//初始化 { sda=1;delay24();scl=1;delay24();}

      void start()//開始信號(hào) { sda=1;delay24();scl=1;delay24();sda=0;delay24();}

      void stop()//停止 { sda=0;delay24();scl=1;delay24();sda=1;delay24();}

      void respons()//應(yīng)答 { uchar i;scl=1;delay24();while((sda==1)&&(i<250))i++;scl=0;delay24();}

      void write_byte(uchar date)// 寫數(shù)據(jù)子函數(shù) { uchar i,temp;temp=date;

      for(i=0;i<8;i++){ temp=temp<<1;scl=0;delay24();sda=CY;delay24();scl=1;delay24();} scl=0;delay24();sda=1;delay24();}

      uchar read_byte()// 讀數(shù)據(jù)子函數(shù) { uchar i,k;scl=0;delay24();sda=1;delay24();for(i=0;i<8;i++){ scl=1;delay24();k=(k<<1)|sda;scl=0;delay24();} return k;} ///////寫數(shù)據(jù)函數(shù)/////////////////// void write_add(uchar address,uint date){ start();write_byte(0xa0);respons();write_byte(address);respons();write_byte(date/256);respons();write_byte(date%256);respons();stop();} uchar read_add(uchar address)//讀數(shù)據(jù)函數(shù) { uchar date;start();write_byte(0xa0);respons();write_byte(address);respons();start();write_byte(0xa1);respons();date=read_byte();stop();return date;}

      void delay1ms(uchar ms){

      uchar i;while(ms--){ for(i = 0;i< 250;i++){ _nop_();_nop_();_nop_();_nop_();} } }

      int keyf(int *num,int up,int dn){ uint i;uchar z;for(i=0;i<600;i++){

      display2(n,*num);if(key1==0){ delay1ms(30);if(key1==0){ i=0;n++;if(n>=9)n=0;while(!key1)display2(n,*num);break;} } if(key2==0){

      delay1ms(10);if(key2==0){ i=0;if(*num>=up)*num=up;else if(n!=4)*num=*num+1;else if(*num<100)*num=*num+5;else

      *num=*num+10;for(z=0;z<65;z++){ display2(n,*num);if(key2!=0)break;} while(!key2){ for(z=0;z<2;z++)display2(n,*num);if(*num>=up)*num=up;else if(n!=4)*num=*num+1;else if(*num<100)*num=*num+5;else

      *num=*num+10;} } }

      if(key3==0){ delay1ms(10);if(key3==0){ i=0;if(*num<=dn)*num=dn;else if(n!=4)*num=*num-1;else if(*num<100)*num=*num-5;else

      *num=*num-10;for(z=0;z<65;z++){ display2(n,*num);if(key3!=0)break;} while(!key3){ for(z=0;z<2;z++)display2(n,*num);if(*num<=dn)*num=dn;else if(n!=4)*num=*num-1;else if(*num<100)*num=*num-5;else

      *num=*num-10;} } } } return(*num);} void keyjc(){ uchar i=0;if(key1==0){ delay1ms(10);if(key1==0){ EA=0;

      for(i=0;i<20;i++){

      display(tmp());} if(key1==0){

      write_com(0x01);//清屏指令

      n++;if(n>=5)n=0;while(!key1){ switch(n){ case 1:display2(n,acon);break;case 0:break;} } if(n==1){ keyf(&acon,1250,-530);if((acon-bcon)<3)bcon=acon-3;} if(n==2){ keyf(&bcon,1240,-550);if((acon-bcon)<3)acon=bcon+3;} write_add(1,acon);//A delay1ms(15);write_add(3,bcon);//B n=0;write_com(0x01);//清屏指令 } EA=1;} } }

      key(){ uint i;if(key4==0)delay1ms(50);if(key4==0){ write_com(0x01);//清屏指令

      for(i=0;i<500;i++){ if(key4==0){ delay1ms(15);if(key4==0){ i=0;n++;if(n>=5)n=0;while(!key4){ switch(n){ case 1: display2(1,acon);break;case 2: display2(2,bcon);break;default: break;} } } } switch(n){ case 1: display2(1,acon);break;case 2: display2(2,bcon);break;default: break;} } n=0;} }

      ///////濾波//////// int filter(){ int tm,buf[6];uchar i,j;EA=0;for(i=0;i<6;i++){ buf[i]=tmp();delay1ms(20);WDT_CONTR=0x35;/////喂狗 }

      for(j=0;j<5;j++)for(i=0;i<5-j;i++)if(buf[i]>buf[i+1]){ tm=buf[i];buf[i]=buf[i+1];buf[i+1]=tm;} tm=((buf[2]+buf[3])/2);EA=1;return(tm);}

      void main(){ uchar b,c;Init_Com();init1602();init24c02();

      b=read_add(1);delay1ms(15);c=read_add(2);delay1ms(15);acon=b*256+c;b=read_add(3);delay1ms(15);c=read_add(4);delay1ms(15);bcon=b*256+c;

      AUXR=0x01;// 禁止ALE輸出 WDT_CONTR=0x35;//啟動(dòng)看門狗 write_com(0x01);//清屏指令

      while(1){ at=filter();display(at);keyjc();key();

      wen_kong();weno();} }

      //////溫度控制//////////////

      void wen_kong(){ if((flag==0)&&(not==0)){ at=filter();if(at<=bcon)

      { flag=1;jrk=0;xhk=0;he=1;} } }

      void weno(){ if(flag){ at=filter();if(at>=acon){ flag=0;jrk=1;if(rsg)xhk=0;else xhk=1;he=0;} } if(not==1){ flag=0;jrk=1;if(rsg)xhk=0;else xhk=1;he=0;} }

      第三篇:c語言源程序段

      1.有三個(gè)整數(shù)a,b,c,由鍵盤輸入,輸出其中最大的數(shù)。#include void main(){ int a,b,c;printf(“輸入三個(gè)不同的整數(shù): ”);

      scanf(“%d%d%d”,&a,&b,&c);if(a>b&&a>c)

      printf(“%dn”,a);else

      if(b>a&&b>c)

      printf(“%dn”,b);

      else

      printf(“%dn”,c);} 2.編程輸入整數(shù)a和b,若a2?b2大于100,則輸出a2?b2百位以上的數(shù)字,否則輸出兩數(shù)之和。

      #include void main(){ int a,b,c,d,e,f;c=10;printf(“輸入兩個(gè)整數(shù):”);scanf(“%d%d”,&a,&b);e=(a*a+b*b)/c;d=(a*a+b*b)%c;f=(a*a+b*b)/(c*c);if((a*a+b*b)<100)

      printf(“%dn”,(d+e));else

      printf(“%dn”,f);} 3.有一函數(shù):

      ?x(x?1)? y??2x?11(1?x?10)

      ?3x?11(x?10)?編寫一程序,輸入x,輸出y值。#include void main(){ int x,y;printf(“輸入一個(gè)整數(shù):”);scanf(“%d”,&x);if(x<1)

      y=x;else

      if(x<10&&x>=1)

      y=2*x-11;

      else

      y=3*x-11;

      printf(“%dn”,y);} 4.給出一百分制成績,要求輸出成績等級(jí)’A’,’B’,’C’,’D’,’E’。90分以上為’A’,80-89分為’B’,70-79分為’C’,60-69分為’D’,60分以下為’E’ #include void main(){ int x;printf(“輸入學(xué)生成績:”);scanf(“%d”,&x);if(x>=90)

      printf(“A”);else

      if(x<90&&x>=80)

      printf(“B”);

      else

      if(x<80&&x>=70)

      printf(“C”);

      else

      if(x<70&&x>=60)

      printf(“D”);

      else

      printf(“E”);printf(“n”);} 5.提高題:給一個(gè)不多于5位的正整數(shù),要求:①求出它是幾位數(shù);②分別打印出每一位數(shù)字;③按逆序打印出各位數(shù)字,例如原數(shù)是321,應(yīng)輸出123。#include void main(){ int a,b,i,k;float j;printf(“jghg:”);scanf(“%d”,&a);j=a;{

      for(i=0;j>1;i++)

      j=j/10;}

      printf(“%dnn”,i);{

      for(k=1;k<=i;k++){

      b=a%10;

      a=a/10;

      printf(“%d”,b);} } }.求解一元二次方程a*x2+b*x+c=0 #include

      int main(){ int a,b,c,m;double x1,x2,n;

      //解為double類型

      printf(“請(qǐng)輸入ax2+bx+c=0中的a,b,c: n”);scanf(“%d %d %d”,&a,&b,&c);//輸入?yún)?shù)

      m=(b*b-4*a*c);if(m<0)

      printf(“方程無解”);else

      n=sqrt((double)m);

      //對(duì)m進(jìn)行強(qiáng)制類型轉(zhuǎn)換為double,因?yàn)榻訛閐ouble

      x1=(-b-m)/(2*(double)a);

      x2=(-b+m)/(2*(double)a);

      printf(“x1=%.2lf x2=%.2lfn”,x1,x2);return 0;}.有一個(gè)分?jǐn)?shù)數(shù)列: 23581321,,,?求出這個(gè)數(shù)列前20項(xiàng)之和 1235813#include

      double sum(int n){ int i;double part = 0;

      for(i = 1.0;i <= n;i++)

      part +=(1.0 / i);return 2 * n-part;}

      int main(void){ printf(“%.18fn”, sum(20));return 0;} 將從鍵盤輸入的偶數(shù)寫成兩個(gè)素?cái)?shù)之和。#include #include main(){

      int a,b,c,d;

      scanf(“%d”,&a);

      for(b=3;b<=a/2;b+=2)

      {

      for(c=2;c<=sqrt(b);c++)

      if(b%c==0)break;

      if(c>sqrt(b))

      d=a-b;

      else break;

      for(c=2;c<=sqrt(d);c++)

      if(d%c==0)break;

      if(c>sqrt(d))

      printf(“%d=%d+%dn”,a,b,d);

      } } 1:5位跳水高手參加10米高臺(tái)跳水決賽,有好事者讓5人據(jù)實(shí)力預(yù)測比賽結(jié)果.A選手說:B第二,我第三B選手說:我第二,E第四;C選手說:我第一,D第二;D選手說:C最后,我第三;E選手說:我第四,A第一.決賽成績公布之后,每位選手的預(yù)測都只說對(duì)了一半,即一對(duì)一錯(cuò).請(qǐng)編程解出比賽的實(shí)際名次.

      1.#include void main(){ int a,b,c,d,e;for(a=1;a<=5;a++)for(b=1;b<=5;b++)for(c=1;c<=5;c++)for(d=1;d<=5;d++)for(e=1;e<=5;e++){ if(a!=b&&a!=c&&a!=d&&a!=e)if(b!=c&&b!=d&&b!=e)if(c!=d&&c!=e)if(d!=e)if((b==2)+(a==3)==1)if((b==2)+(e==4)==1)if((c==1)+(d==2)==1)if((c==5)+(d==3)==1)if((e==4)+(a==1)==1)printf(“ A=%d B=%d C=%d D=%d E=%dn”,a,b,c,d,e);} getch();}.2:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問該數(shù)是多少?

      #include void main(){ int i,j,k;for(i=0;i<1000;i++)for(j=10;j<100;j++)for(k=13;k<100;k++)if(i+100==j*j&&i+168==k*k){ printf(“%dn”,i);break;} } 3:猴子吃桃問題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘了多少。.#include“stdio.h” #include void main(){ int j,k;int i;for(i=10000;i>1;i--){ k=i;for(j=1;j<=10;j++){ if(k!=(k/2)*2)break;k=k/2-1;} if(k==1)break;} printf(“%dn”,i);} 4.4:某個(gè)公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過程中是加密的,加密規(guī)則如下:每位數(shù)字都加上5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。#include void main(){ int a[4],j,i,b,k;printf(“請(qǐng)輸入4位數(shù)n”);scanf(“%d”,&b);for(j=1;j<=4;j++){

      } for(i=1;i<=4;i++)

      b=a[0];a[0]=a[3];a[3]=b;b=a[1];a[1]=a[2];a[2]=b;for(k=1;k<=4;k++)printf(“%d”,a[k-1]);{ } a[i-1]=(a[i-1]+5)%10;a[4-j]=b%10;b=b/10;}

      2、編寫程序,對(duì)輸入兩個(gè)正整數(shù)m和n,求出它們的最大公約數(shù)和最小公倍數(shù) #include “stdio.h” #include “math.h” void main(){ int n,m,maxgy,mingb,i,p;printf(“please input n and m:”);scanf(“%d%d”,&n,&m);if(n>m){

      p=n;n=m;m=p;/*m和n交換*/ } for(i=n;i>=1;i--)

      if(m%i==0&&n%i==0)

      break;maxgy=i;printf(“nmaxgy=%d mingb=%dn”,maxgy,m*n/maxgy);

      }

      2、編寫程序,對(duì)輸入兩個(gè)正整數(shù)m和n,求出它們的最大公約數(shù)和最小公倍數(shù)

      #include “stdio.h” #include “math.h” void main(){ int n,m,maxgy,mingb,t,p;printf(“please input n and m:”);scanf(“%d%d”,&n,&m);if(n>m){

      p=n;n=m;m=p;/*m和n交換*/ } p=m*n;while(m%n!=0){

      t=m%n;

      m=n;

      n=t;} maxgy=n;printf(“nmaxgy=%d mingb=%dn”,maxgy,p/maxgy);} #include “stdio.h” #include “math.h” void main(){ int n,m,maxgy,p;int maxgy1(int m,int n);printf(“please input n and m:”);scanf(“%d%d”,&n,&m);if(n>m){

      p=n;n=m;m=p;/*m和n交換*/ } p=m*n;

      maxgy=maxgy1(m,n);printf(“nmaxgy=%d mingb=%dn”,maxgy,p/maxgy);} int maxgy1(int m,int n){ if(n==0)

      return m;else return maxgy1(n,m%n);}

      3輸入n判斷n是否為素?cái)?shù) #include “stdio.h” void main(){ int n,i,flag;flag=1;printf(“please input n:”);scanf(“%d”,&n);for(i=2;i

      if(n%i==0)

      {

      flag=0;

      break;

      } if(flag==1)

      printf(“n%d is ssn”,n);else

      printf(“n%d is not ssn”,n);} #include “stdio.h”、求100以內(nèi)的所有素?cái)?shù),并按10個(gè)一行進(jìn)行打印。#include “math.h” void main(){ int n,i,flag,sum;sum=0;for(n=2;n<=100;n++){

      flag=1;

      for(i=2;i<=sqrt(n);i++)

      if(n%i==0)

      {

      flag=0;

      break;

      }

      if(flag==1)

      {

      sum++;

      printf(“%5d”,n);

      if(sum%10==0)

      printf(“n”);

      } } printf(“n”);}

      4、用遞歸求1到100的和

      #include void main(){ long lj(int);printf(“sum=%ldn”,lj(100));} long lj(int n){ if(n==1)

      return 1;else

      return n+lj(n-1);} 累加法求1到100的和 #include void main(){ int i,sum=0;for(i=1;i<=100;i++)

      sum=sum+i;printf(“result=%dn”,sum);} #include void main(){ int i,sum;for(i=1,sum=0;i<=100;sum=sum+i,i++);

      printf(“result=%dn”,sum);} #include void main(){ int i,sum;i=1;sum=0;for(;;)//i<=100 {

      if(i>100)

      break;

      sum=sum+i;

      i++;} printf(“result=%dn”,sum);}

      求20到40以及60到80中所有能被3整除數(shù)的和 #include void main(){ int i,sum=0;for(i=20;i<=80;i++){

      if(i%3==0)

      sum=sum+i;

      if(i==40)

      i=i+19;} //i%3==0&&i>=20&&i<=40||i>=60&&i<=80 printf(“result=%dn”,sum);} A+aa+aaa+….+a…..a #include void main(){ int a,n,i;long sum=0,t=0;printf(“please input a and n:”);scanf(“%d%d”,&a,&n);for(i=1;i<=n;i++){

      t=t*10+a;

      sum=sum+t;} printf(“result=%ldn”,sum);}

      1、請(qǐng)從鍵盤上輸入年、月、日,求該年月日是該年的第多少天? #include void main(){

      int year,month,day,sum=0,i;int days(int,int);printf(“please input year month and day:”);scanf(“%d%d%d”,&year,&month,&day);for(i=1;i

      int day;switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12:day=31;break;case 4: case 6: case 9: case 11:day=30;break;case 2:if(year%4==0&&year%100!=0||year%400==0)

      } return day;

      day=29;else day=28;}

      2、求3到1000內(nèi)所有尾數(shù)為3的素?cái)?shù)之和。#include #include void main(){

      } int ss(int n){

      int flag=1,i;for(i=2;i<=sqrt(n);i++)if(n%i==0){

      flag=0;break;int i,sum=0;int ss(int);for(i=3;i<=1000;i++)if(ss(i)==1)

      if(i%10==3)

      sum=sum+i;printf(“result=%dn”,sum);

      } } return flag;

      3、從鍵盤上輸入一個(gè)整數(shù),將它拆成質(zhì)因子的乘積。例如

      18=2*3*3 #include #include void main(){ int n,i;printf(“please input n:”);scanf(“%d”,&n);printf(“%d=”,n);i=2;while(n!=1){

      } if(n%i==0){ } else i++;printf(“%d*”,i);n=n/i;printf(“b n”);}

      4、從鍵盤上輸入一串字符,統(tǒng)計(jì)字母、數(shù)字、空格和其它字符的個(gè)數(shù)。#include #include void main(){

      char ch;int c,d,s,o;c=d=s=o=0;while((ch=getchar())!=10){ if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')

      c++;else if(ch>='0'&&ch<='9')

      d++;else if(ch==' ')

      s++;else o++;} printf(“c=%dnd=%dns=%dno=%dn”,c,d,s,o);}

      5、從鍵盤上輸入10個(gè)數(shù),求它們的最大值。#include #include void main(){

      }

      int n,i,max;scanf(“%d”,&n);max=n;for(i=1;i<10;i++){ scanf(“%d”,&n);if(max

      max=n;} printf(“max=%dn”,max);3. 一個(gè)數(shù)恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如,6的因子為1,2,3而6=1+2+3,因此6是完數(shù)。編程找出求1000以內(nèi)的所有完全數(shù)。#include “stdio.h” #include “math.h” void main(){ int n,s,i,k;for(n=1;n<=1000;n++){

      s=0;

      for(i=1;i

      if(n%i==0)

      s=s+i;

      if(n==s)

      {

      printf(“%5d its factors is ”,n);

      for(k=1;k

      if(n%k==0)

      printf(“%d,”,k);

      printf(“b n”);

      } } printf(“n”);} .打印出楊輝三角形(要求打印出10行如下圖)#include “stdio.h” #include “math.h” void main(){ long i,j,x,y,z,k;long jc(int);for(i=0;i<10;i++){

      for(j=0;j<=i;j++)

      {

      x=jc(i);

      y=jc(j);

      z=jc(i-j);

      printf(“%4d”,x/(y*z));

      }

      printf(“n”);} } long jc(int n){ long x=1,k;if(n==0)

      return 1;else

      for(k=1;k<=n;k++)

      x=x*k;return x;}

      #include “stdio.h” #include “math.h” void main(){ long i,j,x,y,z,k;for(i=0;i<10;i++){

      for(j=0;j<=i;j++)

      {

      x=y=z=1;

      for(k=1;k<=i;k++)

      x=x*k;

      for(k=1;k<=j;k++)

      y=y*k;

      for(k=1;k<=i-j;k++)

      z=z*k;

      printf(“%4d”,x/(y*z));

      }

      printf(“n”);} }

      7.用*打印圖形 #include “stdio.h” void main(){ int i,j,k,n;printf(“please input n:”);scanf(“%d”,&n);for(i=1;i<=n;i++)/**/ {

      for(j=1;j<=40-i;j++)/**/

      printf(“ ”);

      for(k=1;k<=2*i-1;k++)/**/

      printf(“*”);

      printf(“n”);} for(i=n-1;i>=1;i--)/**/ {

      for(j=1;j<=40-i;j++)/**/

      printf(“ ”);

      for(k=1;k<=2*i-1;k++)/**/

      }

      } printf(“*”);printf(“n”);

      第四篇:單片機(jī)C語言學(xué)習(xí)心得

      8、指針的使用

      8.1 在定義的時(shí)候,*ap中的‘*’是指針類型說明符;

      在進(jìn)行指針預(yù)算時(shí),x = *ap 中的‘*’是指針運(yùn)算符。8.2 如果在已定義好的指針變量,并引用,即

      int *ap, int a;ap = &a;則在進(jìn)行指針運(yùn)算的時(shí)候:

      (1)*ap與a是等價(jià)的,即 *ap就是a;

      (2)&*ap:由于*ap與a等價(jià),則&*ap與&a等價(jià)(地址);

      (3)*&a:由于&a = ap,則*&a與*ap等價(jià),即*&a與a等價(jià)(變量);(4)*ap++相當(dāng)于a++。

      8.3 指向數(shù)組的指針變量的定義,應(yīng)用,賦值:

      int a[10];int *app;則有兩種方法:app = &a[0];或 app = &a;(1)app+I 或a+i就是數(shù)組元素a[i]的地址;(2)*(app+i)或 *(a+i)就是元素a[i]中的內(nèi)容;

      (3)指針變量也可以帶下表,即app[i]與*(app+i)等價(jià)。8.4 數(shù)組和指針可以互換,但在代碼執(zhí)行的效率上卻大不相同。用數(shù)組找元素必須每次計(jì)算元素的地址,效率不高;而用指針則直接指向某個(gè)元素,不必每次計(jì)算地址,可以大大的提高運(yùn)算效率。8.5 關(guān)于指針的運(yùn)算:

      (1)p++(或p+=1):使指針p指向下一個(gè)數(shù)組元素,地址加1;

      (2)*p++:先得到p指向的變量值,再執(zhí)行p加1,指向下一個(gè)數(shù)組元素;(3)*++p:先使p加1,指向下一個(gè)數(shù)組元素,再去p指向的變量值;(4)(*p)++:表示p指向的變量值加1;

      (5)若p指向當(dāng)前數(shù)組中的第i個(gè)元素,則:

      (p--)與a[i--] 等價(jià):先執(zhí)行*p,然后p自減;(++p)與a[++i] 等價(jià):先執(zhí)行p自加,再執(zhí)行*p;(--p)與a[--p] 等價(jià):先執(zhí)行p自減,再執(zhí)行*p。

      8.6 指向多維數(shù)組:

      定義一個(gè)二維數(shù)組:a[3][4];定義一個(gè)指針變量:(*p)[4];(注意:列數(shù)相同(第二維相同))使指針變量指向數(shù)組:p = a;此時(shí): p與a等價(jià):指向數(shù)組a[3][4]的第0行首地址;

      p+1與a+1等價(jià):指向數(shù)組a[3][4]的第1行首地址; p+2與a+2等價(jià):指向數(shù)組a[3][4]的第2行首地址;

      而:

      *(p+1)+3與& a[1][3]等價(jià),指向a[1][3]的地址;

      *(*(p+1)+3)與a[1][3]等價(jià),表示a[1][3]的值; 一般的:對(duì)于數(shù)組a[i][j]來講,有

      *(p+i)+j相當(dāng)于&a[i][j],表示第i行第j列元素的地址; *(*(p+i)+j)相當(dāng)于a[i][j],表示第i行第j列元素的值。

      8.7 指向結(jié)構(gòu)體:

      如果指針p指向結(jié)構(gòu)體數(shù)組msg1[0]的首地址,則:

      (1)(*p).flg與p->flg和msg1[0].flg三者完全等價(jià),即(*p).成員名 與p->成員名 以及 結(jié)構(gòu)體數(shù)組元素成員名三種形式是等價(jià)的;

      (2)p+1:使指針指向結(jié)構(gòu)數(shù)組msg1[0]的下一個(gè)元素msg1[1]的首地址;(3)由于指向運(yùn)算符->的優(yōu)先級(jí)高于自加運(yùn)算符++,則:

      (++p)->flg:先使p自加1指向msg1[1]的地址,再指向msg1[1]的flg成員值;(p++)->flg:先得到msg1[0].flg的值,再使p自加1指向msg1[1]的首地址;

      p->flg++:先得到msg1[0].flg的值,使用完后再使msg1[0].flg的值加1; ++p->flg:先將msg1[0].flg的值加1,再使用。

      第五篇:單片機(jī)C語言學(xué)習(xí)心得

      8、指針的使用

      8.1 在定義的時(shí)候,*ap中的‘*’是指針類型說明符;

      在進(jìn)行指針預(yù)算時(shí),x = *ap 中的‘*’是指針運(yùn)算符。

      8.2 如果在已定義好的指針變量,并引用,即

      int *ap, int a;

      ap = &a;

      則在進(jìn)行指針運(yùn)算的時(shí)候:

      (1)*ap與a是等價(jià)的,即 *ap就是a;

      (2)&*ap:由于*ap與a等價(jià),則&*ap與&a等價(jià)(地址);

      (3)*&a:由于&a = ap,則*&a與*ap等價(jià),即*&a與a等價(jià)(變量);

      (4)*ap++相當(dāng)于a++。

      8.3 指向數(shù)組的指針變量的定義,應(yīng)用,賦值:

      int a[10];int *app;

      則有兩種方法:app = &a[0];或 app = &a;

      (1)app+I 或a+i就是數(shù)組元素a[i]的地址;

      (2)*(app+i)或 *(a+i)就是元素a[i]中的內(nèi)容;

      (3)指針變量也可以帶下表,即app[i]與*(app+i)等價(jià)。

      8.4 數(shù)組和指針可以互換,但在代碼執(zhí)行的效率上卻大不相同。用數(shù)組找元素必須每次計(jì)算

      元素的地址,效率不高;而用指針則直接指向某個(gè)元素,不必每次計(jì)算地址,可以大大的提高運(yùn)算效率。

      8.5 關(guān)于指針的運(yùn)算:

      (1)p++(或p+=1):使指針p指向下一個(gè)數(shù)組元素,地址加1;

      (2)*p++:先得到p指向的變量值,再執(zhí)行p加1,指向下一個(gè)數(shù)組元素;

      (3)*++p:先使p加1,指向下一個(gè)數(shù)組元素,再去p指向的變量值;

      (4)(*p)++:表示p指向的變量值加1;

      (5)若p指向當(dāng)前數(shù)組中的第i個(gè)元素,則:

      (p--)與a[i--] 等價(jià):先執(zhí)行*p,然后p自減;

      (++p)與a[++i] 等價(jià):先執(zhí)行p自加,再執(zhí)行*p;

      (--p)與a[--p] 等價(jià):先執(zhí)行p自減,再執(zhí)行*p。

      8.6 指向多維數(shù)組:

      定義一個(gè)二維數(shù)組:a[3][4];定義一個(gè)指針變量:(*p)[4];(注意:列數(shù)相同(第二維相同))

      使指針變量指向數(shù)組:p = a;

      此時(shí): p與a等價(jià):指向數(shù)組a[3][4]的第0行首地址;

      p+1與a+1等價(jià):指向數(shù)組a[3][4]的第1行首地址;

      p+2與a+2等價(jià):指向數(shù)組a[3][4]的第2行首地址;

      而:*(p+1)+3與& a[1][3]等價(jià),指向a[1][3]的地址;*(*(p+1)+3)與a[1][3]等價(jià),表示a[1][3]的值; 一般的:對(duì)于數(shù)組a[i][j]來講,有*(p+i)+j相當(dāng)于&a[i][j],表示第i行第j列元素的地址; *(*(p+i)+j)相當(dāng)于a[i][j],表示第i行第j列元素的值。

      8.7 指向結(jié)構(gòu)體:

      如果指針p指向結(jié)構(gòu)體數(shù)組msg1[0]的首地址,則:

      (1)(*p).flg與p->flg和msg1[0].flg三者完全等價(jià),即(*p).成員名 與p->成員名 以及 結(jié)

      構(gòu)體數(shù)組元素成員名三種形式是等價(jià)的;

      (2)p+1:使指針指向結(jié)構(gòu)數(shù)組msg1[0]的下一個(gè)元素msg1[1]的首地址;

      (3)由于指向運(yùn)算符->的優(yōu)先級(jí)高于自加運(yùn)算符++,則:

      (++p)->flg:先使p自加1指向msg1[1]的地址,再指向msg1[1]的flg成員值;(p++)->flg:先得到msg1[0].flg的值,再使p自加1指向msg1[1]的首地址; p->flg++:先得到msg1[0].flg的值,使用完后再使msg1[0].flg的值加1; ++p->flg:先將msg1[0].flg的值加1,再使用。

      下載51單片機(jī)4路搶答器的原理及C語言源程序(精選5篇)word格式文檔
      下載51單片機(jī)4路搶答器的原理及C語言源程序(精選5篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        單片機(jī)C語言學(xué)習(xí)

        單片機(jī)C語言之一___________________________________________________________________ _____________________ 預(yù)處理 一》宏定義: 1、不帶參數(shù): #define 標(biāo)識(shí)符 常量表達(dá)......

        C語言編程 “畫圓”源程序(精選5篇)

        #include void main { int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,""); setcolor(15); line(66,66,88,88); lineto(100,100); linerel(36,64); ge......

        單片機(jī)c語言學(xué)習(xí)心得(改編)

        單片機(jī)c語言學(xué)習(xí)心得(一) 相信很多愛好電子的朋友,對(duì)單片機(jī)這個(gè)詞應(yīng)該都不會(huì)陌生了吧。不過有些朋友可能只聽說他叫單片機(jī),他的全稱是什么也許并不太清楚,更不用說他的英文全稱......

        單片機(jī)c語言設(shè)計(jì)試題答案

        單片機(jī)C語言程序設(shè)計(jì)師試題 一、填空題 1、設(shè)X=5AH,Y=36H,則X與Y“或”運(yùn)算為_________,X與Y的“異或”運(yùn)算為________。 2、若機(jī)器的字長為8位,X=17,Y=35,則X+Y=_______,X-Y=______......

        單片機(jī)c語言學(xué)習(xí)心得轉(zhuǎn)載

        單片機(jī)c語言學(xué)習(xí)心得(一)相信很多愛好電子的朋友,對(duì)單片機(jī)這個(gè)詞應(yīng)該都不會(huì)陌生了吧。不過有些朋友可能只聽說他叫單片機(jī),他的全稱是什么也許并不太清楚,更不用說他的英文全稱和......

        c語言編寫單片機(jī)感想

        用C語言對(duì)單片機(jī)編程感想 起先接觸單片機(jī),單片機(jī)的程序是用匯編語言編寫的。匯編語言是面向機(jī)器的低級(jí)語言,保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡捷的特點(diǎn),目標(biāo)代碼簡短,占用內(nèi)存少......

        學(xué)習(xí)單片機(jī)c語言還是語言

        匯編語言(AssemblyLanguage)是面向機(jī)器的程序設(shè)計(jì)語言。匯編語言是一種用文字助記符來表示機(jī)器指令的符號(hào)語言,是最接近機(jī)器碼的一種語言。其主要優(yōu)點(diǎn)是占用資源少、程序執(zhí)行......

        單片機(jī)C語言知識(shí)點(diǎn)大全

        【C語言】 【數(shù)據(jù)類型】 【轉(zhuǎn)義字符】 【語句】 【#define】 #define 新名 原名 【typedef】 typedef 原類型名 新類型名; 【sbit】 sbit P1_0=P1^0; 在reg52.h或reg51.h的......