版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章運算符第1頁,課件共41頁,創(chuàng)作于2023年2月第2章內(nèi)容回顧常量在程序中不能被更改,而變量在程序中可以被更改C語言中的基本數(shù)據(jù)類型包括整型、單精度浮點型、雙精度浮點型和字符型整型分為短整型、整型、長整型,每種整型又可分為有符號型和無符號型單精度浮點型和雙精度浮點型變量可以存儲實數(shù)字符型變量可以存儲單個字符,其值是該字符的ASCII碼算術(shù)運算符提供運算功能,包括+、-、*、/、%、++、--printf()和scanf()函數(shù)屬于格式輸入輸出函數(shù)getchar()和putchar()函數(shù)用來輸入輸出單個字符的函數(shù)第2頁,課件共41頁,創(chuàng)作于2023年2月
第3章
運算符第3頁,課件共41頁,創(chuàng)作于2023年2月預(yù)習檢查表達式由那些元素組成?C語言用什么值代表假和真呢?c=a+++b;后c的值是?第4頁,課件共41頁,創(chuàng)作于2023年2月本章目標
理解表達式掌握賦值運算符的用法熟練使用關(guān)系運算符掌握簡單的條件語句的使用熟練使用邏輯運算符了解sizeof運算符理解運算符的優(yōu)先級第5頁,課件共41頁,創(chuàng)作于2023年2月本章結(jié)構(gòu)表達式和運算符簡介運算符Sizeof運算符關(guān)系運算符賦值運算符條件結(jié)構(gòu)邏輯運算符運算符的優(yōu)先級第6頁,課件共41頁,創(chuàng)作于2023年2月3-1表達式之組成Sum=num1+num2操作數(shù)運算符第7頁,課件共41頁,創(chuàng)作于2023年2月Z=(X*2)+(5–Y)
3-1表達式之表達式再當操作數(shù)操作數(shù)操作數(shù)表達式表達式表達式運算符第8頁,課件共41頁,創(chuàng)作于2023年2月3-1表達式之簡介表達式由操作數(shù)和運算符的組合而成表達式中的操作數(shù)可以是變量、常量或者子表達式一個表達式也可以成為另一個表達式的操作數(shù)運算符的主要類型有:算術(shù)運算符:+-*/%++--賦值運算符:=+=-=*=/=%=>>=<<=&=^=|=關(guān)系運算符:>>=<<===!=邏輯運算符:&&||!位運算符:<<>>~|^& 條件運算符:?:逗號運算符:,指針運算符:*&求字節(jié)數(shù)運算符:sizeof強制類型轉(zhuǎn)換運算符:(type)分量運算符:.->下標運算符:[]其它運算符:()第9頁,課件共41頁,創(chuàng)作于2023年2月變量
表達式;3-2賦值運算符Height=177.5;Weight=78;Gender=’m’;x=a+b;w=sin(a)+sin(b);y=i++-j;那么,表達式a=b的值是多少呢?最簡單的運算符:=第10頁,課件共41頁,創(chuàng)作于2023年2月賦值運算符= 1.把右側(cè)表達式的值賦給左側(cè)的變量; 2.一般情況下,賦值運算符左側(cè)只能是變量; 3.賦值運算符的優(yōu)先級較低,“自右向左”結(jié)合; 4.運算符兩側(cè)類型不一致時,要進行類型轉(zhuǎn)換; 6.賦值表達式可嵌套。 舉例 a=5;/*表達式的值為5*/ a=b=3;/*a=(b=3)*/ a=(b=4)+(c=3);/*b=4,c=3,a=7*/3-2賦值運算符第11頁,課件共41頁,創(chuàng)作于2023年2月3-2賦值運算符運算符表達式計算結(jié)果(假設(shè)X=10)+=X+=5X=X+515-=X-=5X=X-55*=X*=5X=X*550/=X/=5X=X/52%=X%=5X=X%50復(fù)合賦值運算符 在=前加上算術(shù)運算符或位運算符 第12頁,課件共41頁,創(chuàng)作于2023年2月3-2賦值運算符之示例#include<stdio.h>intmain(){floatbook_price=60.75;printf("\n書的價格
=%f",book_price);book_price+=12.50;printf("\n書的新價格
=%f\n",book_price);}book_price=book_price+12.50;輸出:書的價格=60.750000書的新價格=73.250000第13頁,課件共41頁,創(chuàng)作于2023年2月3-2賦值運算符探討a*=b等價于a=a*b的話那a*=(b+1)等價于a=a*b+1還是a=a*(b+1)那么表達式a*=b作為操作數(shù)時,它的值是多少?Index_declared_by_zeffiris
project_help[max_world]+=18;你愿意把它寫成a=a+b的形式嗎?第14頁,課件共41頁,創(chuàng)作于2023年2月3-3關(guān)系運算符操作數(shù)關(guān)系運算符關(guān)系表達式的計算結(jié)果=邏輯值(真或假)在C語言中,“0”表示“假”,“非0”表示“真”操作數(shù)關(guān)系運算符用于測試兩個操作數(shù)或兩個表達式之間的關(guān)系,其中操作數(shù)可以是變量、常量或表達式。第15頁,課件共41頁,創(chuàng)作于2023年2月關(guān)系運算符3-3關(guān)系運算符>!===>=<=<操作數(shù)1操作數(shù)2if(x==y)&if(x=y)之間不可混淆注意第16頁,課件共41頁,創(chuàng)作于2023年2月3-3關(guān)系運算符num1=10;num2=5;num3=20;num4=10;(num1+num2)>
(num3–num4)num=40;num/10!=2gender=‘m’真假==如果
gender=‘f’如果
gender=‘m’第17頁,課件共41頁,創(chuàng)作于2023年2月3-4條件結(jié)構(gòu)條件結(jié)構(gòu)就是需要根據(jù)不同條件進行判斷,然后執(zhí)行不同的操作簡單if
語句的一般形式為:if(<條件>)<語句塊1>
如果條件為真,if語句執(zhí)行一個語句或一組語句;如果條件為假,則執(zhí)行if語句后面的語句(如果有)。第18頁,課件共41頁,創(chuàng)作于2023年2月3-4條件結(jié)構(gòu)
if-else語句的一般形式為:
if
(<條件1>){
<語句塊1>}elseif(<條件2>){
<語句塊2>}…else{<語句塊n>}第19頁,課件共41頁,創(chuàng)作于2023年2月#include<stdio.h>intmain(){ intnum; printf("\n請輸入一個整數(shù):");scanf("%d",&num); if((num%2)==0) printf("%d是一個偶數(shù)。\n",num);else printf("%d是一個奇數(shù)。\n",num);}3-4條件結(jié)構(gòu)之示例內(nèi)存num57請輸入一個整數(shù):5757是一個奇數(shù)。第20頁,課件共41頁,創(chuàng)作于2023年2月3-5邏輯運算符運算運算符表達式邏輯“與”&&operand1&&operand2邏輯“或”||operand1||operand2邏輯“非”!!operand1邏輯運算符用于連接一個或多個條件,判斷這些條件是否成立邏輯運算符的類型為:第21頁,課件共41頁,創(chuàng)作于2023年2月3-5邏輯運算符之邏輯與&&表達式1表達式2結(jié)果000010100111所有學科及格考勤率達到75%留級NoNo升級YesYes留級NoYes留級NoYes第22頁,課件共41頁,創(chuàng)作于2023年2月問題描述:要求用戶輸入一個字符,用程序判斷該字符是否為小寫字母,并輸出相應(yīng)的信息。#include<stdio.h>intmain(){ chara; printf("\n請輸入一個字符:"); scanf("%c",&a); if(a>='a'&&a<='z') printf("您輸入的字符是小寫字母\n",a); else printf("您輸入的字符不是小寫字母\n",a);}3-5邏輯運算符之邏輯與示例內(nèi)存numT請輸入一個字符:T您輸入的字符不是小寫字母第23頁,課件共41頁,創(chuàng)作于2023年2月現(xiàn)金信用卡3-5邏輯運算符之邏輯或||表達式1表達式
2結(jié)果000011101111無法支付NoNo可支付NoYes可支付NoYes可支付YesYes第24頁,課件共41頁,創(chuàng)作于2023年2月問題描述:接受用戶輸入的三種商品的價格。如果購買的三種商品中至少有一種商品的價格大于50或者三種商品的總額大于100,則折扣率為15%,否則折扣率為0,計算并顯示用戶應(yīng)付的錢數(shù)。#include<stdio.h>intmain(){floatrate1,rate2,rate3;doublediscount,total;printf("\n請輸入第一種商品的價格:");scanf("%f",&rate1);printf("\n請輸入第二種商品的價格:");scanf("%f",&rate2);printf("\n請輸入第三種商品的價格:");scanf("%f",&rate3);total=rate1+rate2+rate3;if((rate1>50)||(rate2>50)||(rate3>50)||(total>100)){ discount=0.15*total; total=total-discount; printf("\n折后總價為:%6.2f\n",total);}else printf("\n總價為:%6.2f\n",total);}3-5邏輯運算符之邏輯或示例
if((rate1>50)||(rate2>50)||(rate3>50)||(total>100))輸出:請輸入第一種商品的價格:34請輸入第二種商品的價格:42請輸入第三種商品的價格:38折后總價為:96.90第25頁,課件共41頁,創(chuàng)作于2023年2月3-5邏輯運算符之邏輯非!表達式結(jié)果1001天氣NOT
陰天真假帶傘操作不帶傘第26頁,課件共41頁,創(chuàng)作于2023年2月問題描述:確定用戶輸入的數(shù)字是否可以被5整除,并輸出相應(yīng)的消息。#include<stdio.h>intmain(){intnum;printf("\n請輸入一個數(shù):");scanf("%d",&num);
if(!(num%5)) printf("\n該數(shù)能被5整除
\n");else printf("\n該數(shù)不能被5整除
\n");}3-5邏輯運算符之邏輯非示例請輸入一個數(shù):90該數(shù)能被5整除第27頁,課件共41頁,創(chuàng)作于2023年2月3-5邏輯運算符之總結(jié)所有學科及格考勤率達到75%&&天氣NOT陰天只有當兩個條件都為真時才執(zhí)行操作只要任何一個條件為真時就執(zhí)行操作對原條件取反,即:如果原條件為假時就執(zhí)行操作||!第28頁,課件共41頁,創(chuàng)作于2023年2月3-5邏輯運算符之注意inta=1,b=13;if(a++||b--) printf(“b=%d\n”,b);結(jié)果會是?
條件表達式將從左到右一個一個執(zhí)行并進行判斷,一旦給定的條件足以判斷真假時,之后的條件就會被無視,換句話說,不執(zhí)行&&當兩個運算量都是真時,其結(jié)果為真因此,當左邊已是0,右邊的表達式不再求解。||當兩個運算量有一個為真時,其結(jié)果為真。因此,當左邊已是1,右邊的表達式不再求解第29頁,課件共41頁,創(chuàng)作于2023年2月3-6sizeof運算符示例:sizeof(int);floatnum;sizeof(num);44char 1int 4shortint 2long 4float 4double 8sizeof運算符返回的大小使用sizeof運算符可以獲得數(shù)據(jù)類型占用內(nèi)存空間的大小。其一般形式為:sizeof(type_name) sizeof(variable_name)sizeof運算符的結(jié)果以字節(jié)為單位顯示注意:在32位計算機中,int類型的變量占4字節(jié)的內(nèi)存大小,和long類型的大小一樣,所以現(xiàn)在基本上可以直接使用int類型,而不需要使用long類型。
第30頁,課件共41頁,創(chuàng)作于2023年2月3-7逗號運算符逗號運算符一般形式
表達式1,表達式2其計算規(guī)則 先計算表達式1,再計算表達式2,最后值為表達式2的值注意 1.逗號運算符的優(yōu)先級最低,比賦值運算符還低,結(jié)合性是“自左向右” 2.逗號表達式的值是最后一個表達式的值 3.用于把多個表達式組合成一個表達式使用第31頁,課件共41頁,創(chuàng)作于2023年2月3-8運算符優(yōu)先級當我們遇到一個復(fù)雜表達式時,需要確定先執(zhí)行哪種運算,此時就需要考慮運算符的優(yōu)先級z=x+y–g*h*
(t/20)+65–r%2先算哪部分加?減?取余?除?括號?要解決此問題,需要使用:運算符優(yōu)先級第32頁,課件共41頁,創(chuàng)作于2023年2月3-8運算符的優(yōu)先級 優(yōu)先級: 運算符的運算次序按優(yōu)先級由高到低執(zhí)行 可以用圓括號()改變運算符的執(zhí)行次序 舉例: a+b*c–d/e /*先算乘除,后算加減*/ /*乘除比加減優(yōu)先級高*/ (a+b)*(c-d)/e /*先算加減,后算乘除*/第33頁,課件共41頁,創(chuàng)作于2023年2月3-8運算符的結(jié)合方向 結(jié)合方向: 當一個操作數(shù)兩側(cè)的運算符優(yōu)先級相同時,運算次序按照結(jié)合方向的規(guī)定進行。自左向右,為左結(jié)合性,反之為右結(jié)合性。 舉例:
a+b-c
/*+和-的結(jié)合方向都是從左向右*/ /*b先與+結(jié)合計算a+b,然后執(zhí)行減法*/ a=b=1
/*=的結(jié)合方向是從右向左,先計算b=1*/第34頁,課件共41頁,創(chuàng)作于2023年2月3-8運算符優(yōu)先級與結(jié)合方向總結(jié)不同優(yōu)先級的運算符,運算次序按優(yōu)先級由高到低執(zhí)行同一優(yōu)先級的運算符,運算次序按結(jié)合方向的規(guī)定執(zhí)行可以使用圓括號()明確運算次序圓括號()具有最高的優(yōu)先級第35頁,課件共41頁,創(chuàng)作于2023年2月3-8運算符優(yōu)先級第36頁,課件共41頁,創(chuàng)作于2023年2月問題描述:判定給定的年份是否為閏年。提示:閏年的判定規(guī)則為:能被4整除但不能被100整除的年份,或能被400整除的年份。
#include<stdio.h>intmain(){intyear;printf("\n請輸入年份:");scanf("%d",&year);
if((year%4==0&&year%100!=0)||(year%400==0)) printf("\n%d年是閏年
\n",year);else printf("\n%d年不是閏年
\n",year);}3-8綜合示例1請輸入年份:20052005年不是閏年第37頁,課件共41頁,創(chuàng)作于2023年2月問題描述:輸入一個5位數(shù),判斷它是不是回文數(shù)。例如:12321是回文數(shù),個位與萬位相
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店管理者工作心得分享
- 急診科護理經(jīng)驗交流
- 健康保健行業(yè)安全管理工作總結(jié)
- 淺談青少年素質(zhì)教育的論文
- 保證進度的各項措施
- 服裝行業(yè)清潔衛(wèi)生標準
- 幼兒園教學反思與改進方案計劃
- 2024版水電暖消防工程承包合同
- 2025年度城市更新改造土石方運輸與景觀優(yōu)化合同匯編3篇
- 2024版借貸居間合同
- Exchange配置與規(guī)劃方案專項方案V
- 資本市場與財務(wù)管理
- 三年級上冊脫式計算練習200題及答案
- 新生兒腭裂護理查房課件
- 二年級下冊科學課程綱要
- 前交叉韌帶重建術(shù)后康復(fù)訓(xùn)練
- 河南近10年中考真題數(shù)學含答案(2023-2014)
- 八年級上學期期末家長會課件
- 2024年大學試題(宗教學)-佛教文化歷年考試高頻考點試題附帶答案
- 軟件項目服務(wù)外包工作管理辦法
- 紅薯系列產(chǎn)品項目規(guī)劃設(shè)計方案
評論
0/150
提交評論