① C語言的三種循環結構為
三種循環結構:
(1) for:
for (循環控制變數初始化; 循環終止條件; 循環控制變數增量)
{
循環體
}
循環執行步驟:第一,先進行循環控制變數初始化;
第二,執行循環終止條件,如果判斷結果為真,則進入第三步;如果為假則循環終止並退出;
第三,執行循環體;
第四,執行循環控制變數增量,轉入第二步;
註:for循環()中的三部分除了循環終止條件外,其他兩部分都可以省略,但標準的for循環中,應該把循環控制變數的初始化,增量都放在()當中,並且在循環體中絕對不應該更改循環控制變數;
(2) while:
循環控制變數初始化
while(循環終止條件)
{
循環體
循環控制變數增量
}
循環執行步驟:第一,先進行循環控制變數初始化(在while之前);
第二,判斷循環終止條件,如果判斷結果為真,則進入第三步;如果為假則不執行循環體;
第三,執行循環體;
第四,執行循環控制變數增量,轉入第二步;
(3) do while:
循環控制變數初始化
do
{
循環體
循環控制變數增量
}while (循環終止條件);
循環執行步驟:第一,先進行循環控制變數初始化(在do while之前);
第二,執行循環體;
第三,執行循環控制變數增量;
第四,判斷循環終止條件,如果判斷結果為真,則返回第二步;如果為假則直接退出循環;
② 用C語言編寫,兩個按鈕控制蜂鳴器工作。按鈕1按下,蜂鳴器以500Hz的頻率工作。按鈕2按下,蜂鳴器停止工作
#include"reg52.h"
#defineucharunsignedchar
#defineuintunsignedint
sbitBELL=P1^0;//定義蜂鳴器
sbitkey1=P1^1;//定義按鍵
sbitkey2=P1^2;//定義按鍵
uintnum;
/*1ms廷時*/
voiddelay_ms(uintz)
{
uinti,j;
for(i=0;i<z;i++)
for(j=0;j<110;j++);
}
/*定時器初始化*/
voidinit_timer0()
{
TMOD=0x01;
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;
EA=0;
ET0=1;
TR0=1;
}
voidmain()
{
BELL=0;
init_timer0();
while(1)
{
if(key1==0)
{
delay_ms(10);//延時消抖
if(key1==0) //再次判斷按鍵是否真的被按下
{
while(key1==0);//等待釋放按鍵
EA=1; //開啟總中斷
}
}
if(key2==0)
{
delay_ms(10);//延時消抖
if(key2==0) //再次判斷按鍵是否真的被按下
{
while(key2==0); //等待釋放按鍵
EA=0; //關閉總中斷
BELL=0; //關閉蜂鳴器
}
}
}
}
voidtimer0()interrupt1
{
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;//中斷計時2ms(500Hz),之所以用中斷是因為定時比較准確想改延時就把裡面的2000改掉,這個數除以1000得的數就是多少毫秒
num++;
if(num==1) //讓蜂鳴器工以500Hz頻率工作
{
num=0;
BELL=~BELL;
}
}
③ C語言 行編輯程序
/*TC2編譯通過*/
/*以回車符為結束符輸入一行*/
#include <stdio.h>
#define MAXSIZE 128
int main()
{
char base[MAXSIZE];
char *stack,*p;
char c;
stack=base;
while((c=getchar())!='\n')
{
if(c=='@') stack=base;
else if(c=='#'){if(stack!=base) stack--;}
else *(++stack)=c;
}
if(stack==base) printf("√");/*沒有可輸出的字元*/
p=base;
while(p!=stack) printf("%c",*(++p));
getch();
}