版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
智能小車C語言程序控制秦磊
梁爽
主編第五章:制作模擬交通燈
交通燈中有一種“行人請(qǐng)求式過街信號(hào)燈”,即在路口燈柱上設(shè)置一個(gè)按鈕,可以一鍵控制路口綠燈,方便行人緊急通行,試用Arduino系統(tǒng)設(shè)計(jì)完成,通過一個(gè)按鍵控制LED的亮滅?【案例導(dǎo)入】【案例導(dǎo)入】:案例程序行業(yè)PPT模板/hangye/constintbuttonPin=2;
//定義按鍵輸入引腳為2號(hào)引腳constintledPin=13;
//定義LED輸入引腳為13號(hào)引腳//注:此處使用的LED是Arduino開發(fā)板自帶的LEDintbuttonState=0;
//定義按鍵狀態(tài)變量初始值為0//對(duì)Arduino開發(fā)板或相關(guān)狀態(tài)進(jìn)行初始化voidsetup(){
pinMode(ledPin,OUTPUT);
//設(shè)置ledPin端口為輸出端口
pinMode(buttonPin,INPUT);
//設(shè)置buttonPin端口為輸入端口}//系統(tǒng)調(diào)用,無限循環(huán)voidloop()
{
buttonState=digitalRead(buttonPin);
//讀取按鍵狀態(tài)
(buttonState==HIGH)?digitalWrite(ledPin,HIGH):digitalWrite(ledPin,LOW);//檢查按鍵狀態(tài),如果為HIGH,則點(diǎn)亮LED,否則熄滅LED}5.1PARTONE運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式
運(yùn)算符是告訴編譯程序執(zhí)行特定算術(shù)或邏輯操作的符號(hào),即用來對(duì)數(shù)據(jù)進(jìn)行運(yùn)算的符號(hào)。
表達(dá)式是由變量、常量和運(yùn)算符組成的式子,它描述了一個(gè)具體的求值運(yùn)算過程。表達(dá)式求值按運(yùn)算符的優(yōu)先級(jí)和結(jié)合性所規(guī)定的順序進(jìn)行。C語言運(yùn)算符5.1.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式1.算術(shù)運(yùn)算符2.算術(shù)表達(dá)式
用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來的、符合C語言語法規(guī)則的式子,稱為算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。例如:3+4.5*a-b*4/3-
-a+b%c5.1.2賦值運(yùn)算符和賦值表達(dá)式1.基本賦值運(yùn)算符賦值運(yùn)算符“=”的作用是將賦值運(yùn)算符右邊的表達(dá)式的值賦給其左邊的變量。例如,b=88就是將常量88賦給變量b。賦值運(yùn)算符的左邊必須是變量,右邊可以是C語言中任意合法的表達(dá)式。由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來的式子稱為賦值表達(dá)式。其格式如下:<變量><賦值運(yùn)算符><表達(dá)式>5.1.2賦值運(yùn)算符和賦值表達(dá)式2.復(fù)合賦值運(yùn)算符
為了簡(jiǎn)化程序并提高編譯效率,C語言允許在賦值運(yùn)算符“=”之前加上其他運(yùn)算符,以構(gòu)成復(fù)合賦值運(yùn)算符,例如:x=x+5可以寫成x+=5。x=x*(y+1)可以寫成x*=y+1。
可以這樣理解,對(duì)于A+=B這樣的式子,相當(dāng)于將A+復(fù)制到“=”的右邊變成A=A+B。若B是一個(gè)表達(dá)式,則相當(dāng)于B的兩邊有一個(gè)括號(hào)。例如,x*=y+z等價(jià)于x=x*(y+z)。C語言中的復(fù)合算術(shù)賦值運(yùn)算符有:+=、-=、*=、/=、%=。練一練行業(yè)PPT模板/hangye/嘗試分析以下程序的運(yùn)行結(jié)果。#include<stdio.h>main(){inta=6,b=8,c=2,x;x=a;printf("x=%d\n",x);x+=a;printf("x=%d\n",x);x*=b+c;printf("x=%d\n",x);return0;}5.1.3關(guān)系運(yùn)算符和關(guān)系表達(dá)式1.關(guān)系運(yùn)算符關(guān)系運(yùn)算是邏輯運(yùn)算的一種簡(jiǎn)單形式,主要用于比較。5.1.3關(guān)系運(yùn)算符和關(guān)系表達(dá)式2.關(guān)系表達(dá)式
由關(guān)系運(yùn)算符和操作數(shù)組成的表達(dá)式稱為關(guān)系表達(dá)式,例如:a+b>cx>yz!=x15*y==20
關(guān)系表達(dá)式的值只有兩個(gè),即“真”和“假”。在C語言中“真”用1表示,“假”用0表示。當(dāng)關(guān)系式成立時(shí)其值為“真”,否則為“假”。練一練行業(yè)PPT模板/hangye/嘗試分析以下程序的運(yùn)行結(jié)果。#include<stdio.h>main(){
intx=20;inty=40;printf("%d\n",x<y);
printf("%d\n",x>y);
return0;}5.1.4邏輯運(yùn)算符和邏輯表達(dá)式
邏輯運(yùn)算就是將關(guān)系表達(dá)式或邏輯量用邏輯運(yùn)算符連接起來,并對(duì)其求值的一個(gè)運(yùn)算過程。
1.邏輯運(yùn)算符為了表示復(fù)雜的條件,需要將若干個(gè)關(guān)系表達(dá)式連接起來,C語言提供的邏輯運(yùn)算符就是實(shí)現(xiàn)這一目的的,邏輯運(yùn)算符有:&& 邏輯與|| 邏輯或! 邏輯非設(shè)A和B為參加運(yùn)算的邏輯量,則以上運(yùn)算符的含義見下表2.邏輯表達(dá)式
邏輯表達(dá)式是用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的有意義的式子。邏輯表達(dá)式的值也只有兩個(gè),即“真”和“假”,其表示方法同關(guān)系表達(dá)式,用1表示“真”,用0表示“假”。
可以將邏輯表達(dá)式的結(jié)果賦給一個(gè)整型或字符型變量,如當(dāng)x=10,y=15時(shí),下面的語句是正確的。z=(x!=y)&&(y==15); /*z的值為1*/a=(x==y)||(x==15); /*a的值為0*/
5.1.5條件運(yùn)算符和條件表達(dá)式條件運(yùn)算符需要有三個(gè)操作對(duì)象,稱為三目運(yùn)算符,它是C語言中唯一的一個(gè)三目運(yùn)算符。它可以替代部分選擇流程控制語句。條件運(yùn)算符構(gòu)成的表達(dá)式稱為條件表達(dá)式,又稱問號(hào)表達(dá)式。條件表達(dá)式的一般形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3條件表達(dá)式的執(zhí)行行業(yè)PPT模板/hangye/
條件表達(dá)式的執(zhí)行過程:
當(dāng)表達(dá)式1的值為“真”(非0)時(shí),條件表達(dá)式取表達(dá)式2的值,否則取表達(dá)式3的值。具體執(zhí)行過程如下圖所示。條件運(yùn)算符的優(yōu)先級(jí)行業(yè)PPT模板/hangye/
小貼士條件運(yùn)算符的優(yōu)先級(jí)比賦值運(yùn)算符高,比關(guān)系運(yùn)算符和算術(shù)運(yùn)算符低。例如:min=(a<b)?a:b中的括號(hào)可以不要,寫成min=a<b?a:b;而min=a<b?a:b*2相當(dāng)于min=a<b?a:(b*2),而不是min=(a<b?a:b)*2?!纠?-1-1】輸入一個(gè)字符,判別是否為小寫字母,如果是,則將其轉(zhuǎn)換為大寫字母;如果不是,就不轉(zhuǎn)換。輸出最后得到的字母。行業(yè)PPT模板/hangye/#include<stdio.h>intmain(){
charch;printf("\nPleaseinputacharacter:");scanf("%c",&ch);ch=(ch>='a'&&ch<='z')?(ch-32):ch; printf("%c\n",ch);
return0;}程序運(yùn)行結(jié)果如圖所示:【例5-1-2】使用條件表達(dá)式實(shí)現(xiàn)求三個(gè)整數(shù)中的最大值。行業(yè)PPT模板/hangye/#include<stdio.h>intmain(){
intmax=0;intone=66;inttwo=77;intthree=88;max=one>two?one:two;
max=max>three?max:three;
printf("三個(gè)整數(shù)中最大的值為%d\n",max);
return0;}程序運(yùn)行結(jié)果如圖所示:5.1.6逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式在C語言中,逗號(hào)既可以作為分隔符使用,又是一種運(yùn)算符,用逗號(hào)將若干個(gè)表達(dá)式分開便構(gòu)成了逗號(hào)表達(dá)式。其一般形式如下:表達(dá)式1,表達(dá)式,…,表達(dá)式n逗號(hào)表達(dá)式的運(yùn)算次序如下:先計(jì)算表達(dá)式1的值,再計(jì)算表達(dá)式2的值,最后計(jì)算表達(dá)式n的值。逗號(hào)表達(dá)式的值為表達(dá)式n的值。例如:13,17,19,23-11是一個(gè)逗號(hào)表達(dá)式,其值為23-11,即12。5.1.7sizeof運(yùn)算符
sizeof運(yùn)算符以字節(jié)形式給出其操作數(shù)在內(nèi)存中占用空間的大小。1.用于數(shù)據(jù)類型使用形式:sizeof(type)數(shù)據(jù)類型名必須用括號(hào)括起來,如sizeof(int)。2.用于變量使用形式:sizeof(var_name)5.1.8數(shù)據(jù)類型轉(zhuǎn)換
不同類型數(shù)據(jù)的存儲(chǔ)形式有所區(qū)別,如字符型數(shù)據(jù)在內(nèi)存中是以ASCII碼的形式存儲(chǔ)的,與整型數(shù)據(jù)的存儲(chǔ)形式類似。
除字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用之外,不同類型的數(shù)據(jù)在進(jìn)行混合運(yùn)算時(shí),往往需要進(jìn)行類型轉(zhuǎn)換。5.1.9運(yùn)算符的優(yōu)先級(jí)和結(jié)合性
C語言中的運(yùn)算符和數(shù)學(xué)運(yùn)算符類似,不僅具有不同的優(yōu)先級(jí),而且有相應(yīng)的結(jié)合性。
在C語言中,運(yùn)算符的優(yōu)先級(jí)共分為15級(jí)。1級(jí)最高,15級(jí)最低。在表達(dá)式中,優(yōu)先級(jí)較高的運(yùn)算符先于優(yōu)先級(jí)較低的運(yùn)算符進(jìn)行運(yùn)算。
C語言中運(yùn)算符的結(jié)合性分為兩種,即自左至右和自右至左。5.2PARTTWO語句
C程序的功能是通過執(zhí)行語句實(shí)現(xiàn)的。語句的作用是向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令,要求其執(zhí)行相應(yīng)的操作。
一個(gè)C程序可以由若干個(gè)源程序文件組成,一個(gè)源程序文件可以由若干個(gè)函數(shù)和預(yù)處理命令及全局變量聲明部分組成。
一個(gè)函數(shù)由數(shù)據(jù)聲明部分和執(zhí)行語句組成。
在C程序中,任何以分號(hào)結(jié)尾的表達(dá)式都是一條語句。語句是C程序的基本組成部分C語句的分類行業(yè)PPT模板/hangye/
(1)表達(dá)式語句。(2)控制語句。(3)復(fù)合語句。(4)空語句。(5)函數(shù)調(diào)用語句。1.表達(dá)式語句
表達(dá)式語句是由表達(dá)式加上分號(hào)組成的。其一般形式如下:表達(dá)式;
一個(gè)表達(dá)式的末尾加一個(gè)分號(hào)就構(gòu)成了一條語句。表達(dá)式語句的末尾必須有一個(gè)分號(hào)。2.控制語句
控制語句用于完成一定的控制功能。控制語句是用于控制程序的流程,以實(shí)現(xiàn)程序的各種結(jié)構(gòu)方式的語句。它由特定的語句定義符組成。C語言中的控制語句有以下幾種。(1)條件語句:if語句、switch語句。(2)循環(huán)語句:do-while語句、while語句、for語句。(3)轉(zhuǎn)向語句:break語句、goto語句、continue語句、return語句。3.復(fù)合語句
C程序中把多條語句用大括號(hào)括起來組成的一條語句稱為復(fù)合語句。在程序中應(yīng)把復(fù)合語句看成單條語句,而不是多條語句。
復(fù)合語句內(nèi)的各條語句都必須以分號(hào)結(jié)尾,而在大括號(hào)外不能再加分號(hào)。4.空語句
僅由分號(hào)組成的語句稱為空語句。空語句是什么也不執(zhí)行的語句。在程序中空語句可用作空循環(huán)體。例如:while(getchar()!='\n');上述語句的功能是,只要從鍵盤輸入的字符不是回車符就重新輸入。這里的循環(huán)體為空語句。5.函數(shù)調(diào)用語句
函數(shù)調(diào)用語句由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成。其一般形式如下:函數(shù)名(實(shí)際參數(shù)表);執(zhí)行函數(shù)調(diào)用語句就是調(diào)用函數(shù)體,并把實(shí)際參數(shù)賦予函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)用函數(shù)體中的語句,求取函數(shù)值。5.3PARTTWOC語言中的基本輸入/輸出函數(shù)
C語言標(biāo)準(zhǔn)庫提供了兩個(gè)控制臺(tái)格式化輸入/輸出函數(shù):scanf()和printf()。這兩個(gè)函數(shù)可以在標(biāo)準(zhǔn)輸入/輸出設(shè)備上以各種不同的格式讀/寫數(shù)據(jù)。scanf()函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上讀數(shù)據(jù),printf()函數(shù)用來向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)寫數(shù)據(jù)。數(shù)據(jù)輸入/輸出庫函數(shù)預(yù)處理命令“#include”行業(yè)PPT模板/hangye/
在使用C語言庫函數(shù)時(shí),要用預(yù)處理命令“#include”將有關(guān)頭文件包含到源文件中。
在使用標(biāo)準(zhǔn)輸入/輸出庫函數(shù)時(shí)需要用到“stdio.h”文件,因此源文件開頭應(yīng)有以下預(yù)處理命令:#include<stdio.h>或#include"stdio.h"5.3.1printf()函數(shù)printf()函數(shù)是格式化輸出函數(shù),其功能是按照用戶指定的格式,把指定的數(shù)據(jù)輸出到屏幕上。printf()函數(shù)的格式如下:printf("格式控制字符串",輸出表項(xiàng));
【例5-3-1】整型數(shù)據(jù)的輸出。行業(yè)PPT模板/hangye/#include<stdio.h>intmain(){
inta=11,b=22;intm=-1;longn=123456789;printf("%d%d\n",a,b);
printf("a=%d,b=%d\n",a,b); printf("m:%d,%o,%x,%u\n",m,m,m,m); printf("n=%d\n",n);printf("n=%ld\n",n); return0;}程序運(yùn)行結(jié)果如圖所示:5.3.2scanf()函數(shù)scanf()函數(shù)是格式化輸入函數(shù),即按照格式控制字符串規(guī)定的格式,從鍵盤上把數(shù)據(jù)輸入指定的變量之中。scanf()函數(shù)的一般形式如下:
scanf("格式控制字符串",輸入項(xiàng)地址列表);
小貼士行業(yè)PPT模板/hangye/(1)在格式控制字符串中可以指定數(shù)據(jù)的寬度,但不能指定數(shù)據(jù)的精度。例如:float
a;scanf("%10f",&a);
//正確scanf("%10.2f",&a);
//錯(cuò)誤(2)輸入long型數(shù)據(jù)時(shí)必須使用%ld,輸入double型數(shù)據(jù)時(shí)必須使用%lf或%le。5.3.3putchar()函數(shù)putchar()函數(shù)是字符輸出函數(shù),其功能是在顯示器上輸出單個(gè)字符。其一般形式如下:putchar(字符變量);例如:putchar('A'); //輸出大寫字母Aputchar(x); //輸出字符變量x的值5.3.4getchar()函數(shù)getchar()函數(shù)的功能是從鍵盤輸入一個(gè)字符。其一般形式如下:getchar();通常把輸入的字符賦給一個(gè)字符變量,構(gòu)成賦值語句,例如:charc;c=getchar(); //從鍵盤輸入一個(gè)字符賦給變量c5.4PARTTWO順序結(jié)構(gòu)程序設(shè)計(jì)舉例
所謂順序結(jié)構(gòu),是指程序從頭到尾按部就班地執(zhí)行下去,不會(huì)出現(xiàn)中途放棄或者跳轉(zhuǎn)的情況。
相應(yīng)的程序稱為順序結(jié)構(gòu)程序。
順序結(jié)構(gòu)是程序設(shè)計(jì)中最簡(jiǎn)單的程序結(jié)構(gòu),也是最常用的程序結(jié)構(gòu),只要按照解決問題的先后順序?qū)懗鱿鄳?yīng)的語句即可,它的執(zhí)行順序是自上而下,依次執(zhí)行。順序結(jié)構(gòu)程序設(shè)計(jì)【例5-4-1】使用“第三變量法”交換a和b之中的數(shù)據(jù)。行業(yè)PPT模板/hangye/#include<stdio.h>intmain(){
inta,b,t;printf("輸入兩個(gè)數(shù):");scanf("%d%d",&a,&b);t=a;a=b;b=t; //第三變量法,將a和b的值互換printf("a=%db=%d\n",a,b);return0;}程序運(yùn)行結(jié)果如圖所示:預(yù)處理命令“#include”行業(yè)PPT模板/hangye/
在使用C語言庫函數(shù)時(shí),要用預(yù)處理命令“#include”將有關(guān)頭文件包含到源文件中。
在使用標(biāo)準(zhǔn)輸入/輸出庫函數(shù)時(shí)需要用到“stdio.h”文件,因此源文件開頭應(yīng)有以下預(yù)處理命令:#include<stdio.h>或#include"stdio.h"5.3.1printf()函數(shù)printf()函數(shù)是格式化輸出函數(shù),其功能是按照用戶指定的格式,把指定的數(shù)據(jù)輸出到屏幕上。printf()函數(shù)的格式如下:printf("格式控制字符串",輸出表項(xiàng));
【例5-3-1】整型數(shù)據(jù)的輸出。行業(yè)PPT模板/hangye/#include<stdio.h>intmain(){
inta=11,b=22;intm=-1;longn=123456789;printf("%d%d\n",a,b);
printf("a=%d,b=%d\n",a,b); printf("m:%d,%o,%x,%u\n",m,m,m,m); printf("n=%d\n",n);printf("n=%ld\n",n); return0;}程序運(yùn)行結(jié)果如圖所示:練一練行業(yè)PPT模板/hangye/
編程實(shí)現(xiàn):從鍵盤輸入一個(gè)小寫字母,輸出相應(yīng)的大寫字母。參考程序行業(yè)PPT模板/hangye/
#include"stdio.h"main
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)發(fā)動(dòng)機(jī)曲軸行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)鉭電容器行業(yè)并購(gòu)重組擴(kuò)張戰(zhàn)略制定與實(shí)施研究報(bào)告
- 高效會(huì)議管理培訓(xùn)課件
- 消防水炮知識(shí)培訓(xùn)課件
- 煤氣安全知識(shí)培訓(xùn)課件
- 2024中國(guó)采礦、采石設(shè)備制造市場(chǎng)前景及投資研究報(bào)告
- 廣西賀州市八步區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末化學(xué)試題
- 炭疽防控知識(shí)培訓(xùn)課件下載
- 電磁學(xué)知識(shí)培訓(xùn)課件
- 市引申蒙氏教學(xué)幼兒園工作參考計(jì)劃
- 建筑公司員工合規(guī)手冊(cè)
- 質(zhì)量保證的基本原則與方法
- 第1講-句子結(jié)構(gòu)
- 鼻腔沖洗護(hù)理技術(shù)團(tuán)體標(biāo)準(zhǔn)解讀
- 《流感科普宣教》課件
- 紅領(lǐng)巾知識(shí)伴我成長(zhǎng)課件
- 廚邦醬油推廣方案
- 腦血管病的三級(jí)預(yù)防
- 保險(xiǎn)產(chǎn)品創(chuàng)新與市場(chǎng)定位培訓(xùn)課件
- 2022-2023學(xué)年山東省淄博四中高二(上)期末數(shù)學(xué)試卷含答案
- 《建筑賦比興》一些筆記和摘錄(上)
評(píng)論
0/150
提交評(píng)論