C語(yǔ)言程序設(shè)計(jì)課件模塊2_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件模塊2_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件模塊2_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件模塊2_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件模塊2_第5頁(yè)
已閱讀5頁(yè),還剩116頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

程序=數(shù)據(jù)結(jié)構(gòu)+算法提示

2.1數(shù)據(jù)類型學(xué)習(xí)目標(biāo)1、了解數(shù)據(jù)類型的劃分標(biāo)準(zhǔn)2、掌握數(shù)據(jù)類型的分類C語(yǔ)言的數(shù)據(jù)類型分析案例2-1

C語(yǔ)言的數(shù)據(jù)類型分析分析日常生活中的一些數(shù)據(jù)適合用什么數(shù)據(jù)類型表達(dá):學(xué)生姓名、學(xué)生性別、學(xué)生人數(shù)、學(xué)生成績(jī)隨堂練習(xí)C語(yǔ)言的數(shù)據(jù)類型:1、基本類型2、構(gòu)造類型3、指針類型4、空類型知識(shí)鏈接C語(yǔ)言數(shù)據(jù)有常量和變量之分,它們分別屬于以上這些類型。即常量有整型、實(shí)型、字符型等類型,變量也是一樣。問(wèn)題:什么是常量?什么是變量?提示學(xué)習(xí)目標(biāo)1、掌握常量的類型和表示方法;2、掌握變量的三個(gè)要素和命名規(guī)則;3、掌握變量的定義和初始化方法。C語(yǔ)言中的數(shù)據(jù),根據(jù)在程序運(yùn)行過(guò)程中是否可以改變,分為常量和變量。2.2常量和變量在程序運(yùn)行過(guò)程中,其值不能改變的量稱為常量。常量一般用于給變量賦初始值,或作為運(yùn)算式中的操作數(shù)等。2.2.1常量區(qū)分下列常量的類型:127,3.14159,‘¥’,“Sound”案例

2-2根據(jù)C語(yǔ)言的常量類型劃分,127是整型常量,3.14159是實(shí)型常量,‘¥’是字符型常量,“Sound”是字符串常量。案例

分析說(shuō)出下列常量的類型:“picture”,‘1’,2.0,123。隨堂練習(xí)常量的分類通過(guò)書(shū)寫(xiě)形式來(lái)區(qū)分,常量可以分為以下幾種:(1)整型常量,如127,-32768等。(2)實(shí)型常量,如3.14159,123.0等。(3)字符常量,如‘A’、‘¥’等。(4)字符串常量,如“Moonriver”、“Sunlight”等。(5)符號(hào)常量,即用符號(hào)(標(biāo)識(shí)符)來(lái)代表一個(gè)常量,一般用大寫(xiě)字母表示。#definePI3.14159知識(shí)鏈接在程序運(yùn)行過(guò)程中,其值可以被改變的量稱為變量。變量用于保存運(yùn)算所需的初始數(shù)據(jù)、變化的中間結(jié)果和最終結(jié)果。2.2.2

變量下面是兩個(gè)變量的定義和初始化,請(qǐng)說(shuō)出兩個(gè)變量的三個(gè)要素,定義格式以及初始化方法的區(qū)別。1、inta=456;2、charc;c=‘#’;案例

2-31、語(yǔ)句inta=456;定義變量a,該變量三個(gè)要素是:變量名a,類型為整型,變量值是整數(shù)456。定義格式是:關(guān)鍵字int表示變量a的數(shù)據(jù)類型是整型,類型關(guān)鍵字int后跟著就是定義變量名為a。在定義變量a的同時(shí)進(jìn)行初始化,a的初始化值為456。2、語(yǔ)句charc;定義變量c,該變量三個(gè)要素是:?案例分析1、變量的三個(gè)要素(1)變量名:每個(gè)變量都有一個(gè)名字,即為變量名,變量名由標(biāo)識(shí)符組成,并遵循標(biāo)識(shí)符命名規(guī)則。(2)變量類型:表明變量的數(shù)據(jù)類型,比如整型變量(int)、實(shí)型變量(float)、字符型變量(char)。(3)變量值:在程序運(yùn)行過(guò)程中,通過(guò)變量名來(lái)引用變量的值,變量值存儲(chǔ)在內(nèi)存中。知識(shí)鏈接變量名實(shí)際上是一個(gè)符號(hào)地址,在對(duì)程序編譯連接時(shí)由系統(tǒng)給每一個(gè)變量名分配一個(gè)內(nèi)存地址。在程序中從變量中取值,實(shí)際上是通過(guò)變量名找到相應(yīng)的內(nèi)存地址,從其存儲(chǔ)單元中讀取數(shù)據(jù)。變量在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,變量的類型表明所占用的存儲(chǔ)單元的數(shù)量,如整型(int)占兩個(gè)字節(jié),字符型(char)占一個(gè)字節(jié)。提示2、標(biāo)識(shí)符的命名規(guī)則標(biāo)識(shí)符用于給變量、函數(shù)和其他用戶自定義類型命名。標(biāo)識(shí)符要求必須按以下規(guī)則構(gòu)成:(1)必須以英文字母或下劃線開(kāi)始,并由字母、數(shù)字和下劃線組成。例如:abc,_chred,uY123等都是合法的標(biāo)識(shí)符,而555Won,-hihi,$efg等則是非法的標(biāo)識(shí)符。(2)大寫(xiě)字符和小寫(xiě)字符代表不同的標(biāo)識(shí)符(3)不能使用C語(yǔ)言的關(guān)鍵字作為標(biāo)識(shí)符。(4)一般采用表示變量含義的英文單詞或單詞縮寫(xiě)作變量名,如:“name”表示姓名變量,“sum”表示“求和”變量,“average”或“ave”表示“平均值”變量。3、變量的定義與初始化在C語(yǔ)言中,要求所有的變量必須先定義后使用。(1)變量定義的一般格式:數(shù)據(jù)類型<變量名表>;inti; /*數(shù)據(jù)類型為int,變量名為i,定義i為整型變量*/charch; /*定義ch為字符型變量*/floatsum,difference,product,quotient;/*定義四個(gè)實(shí)型變量,表示和差積商*/(2)變量初始化:定義變量時(shí),系統(tǒng)便為變量分配了存儲(chǔ)空間。若不為該空間指定一個(gè)值,則該空間的值可能是0,也可能是一個(gè)隨機(jī)值。所以使用變量前,一定要將其初始化為一個(gè)確定的值,給變量賦初值有兩種方法:①先定義再賦值,例如:int

val;……val=10;②定義的同時(shí)初始化,例如:floatn1=4.5,n2=8.9;編寫(xiě)一段C程序,已知某種商品的單價(jià)和銷售數(shù)量,求該種商品的總銷售額。案例

2-4#include<stdio.h>#definePRICE20/*定義符號(hào)常量PRICE,代表整數(shù)20,表示單價(jià)*/main(){ intnum,total; /*定義整型變量num和total,分別表示數(shù)量和銷售總額*/ num=10; /*給變量num賦初值為10*/ total=num*PRICE; /*將10*30的結(jié)果賦值給變量total,計(jì)算出銷售總額*/ printf("total=%d",total); /*將計(jì)算出的銷售總額輸出在用戶屏幕上*/}運(yùn)行這個(gè)程序,結(jié)果是:total=200案例程序1、本案例程序的目的是熟悉常量和變量的用法。2、代碼開(kāi)始處定義符號(hào)常量PRICE,將程序中用到單價(jià)(這里為20)的地方都用PRICE來(lái)代替。案例分析編程計(jì)算圓的周長(zhǎng)和面積隨堂練習(xí)學(xué)習(xí)目標(biāo)1、掌握整型常量的分類;2、掌握整型變量的定義、分類和存儲(chǔ)形式。整型數(shù)據(jù)又分為整型常量和變量。2.3整型數(shù)據(jù)整型常量就是整數(shù)(integer)2.3.1整型常量編程練習(xí)三種進(jìn)制表示方法的轉(zhuǎn)換,把十進(jìn)制數(shù)123分別按照十進(jìn)制、八進(jìn)制和十六進(jìn)制格式輸出。案例

2-5main(){intx=123;/*定義整型變量x并賦初值為123*/printf("\t%d,%o,%x\n",x,x,x);/*按三種格式輸出*/}運(yùn)行程序,結(jié)果是:

123,173,7b提問(wèn):十進(jìn)制數(shù)轉(zhuǎn)換成其他進(jìn)制的方法是什么?案例程序(1)%d、%o、%x分別表示按照十進(jìn)制格式、八進(jìn)制格式和十六進(jìn)制格式輸出。(2)格式控制符“\t”表示輸出一個(gè)水平制表位,就是將當(dāng)前屏幕的位置水平移動(dòng)8列,即要輸出的內(nèi)容在第9列開(kāi)始顯示。案例分析編程將十進(jìn)制數(shù)8和11分別按照三種格式輸出隨堂練習(xí)整型常量按不同進(jìn)制有三種表示形式:1、十進(jìn)制整數(shù)。例如:12,234,-456等。2、八進(jìn)制整數(shù)。以0開(kāi)頭作為標(biāo)識(shí)的數(shù)據(jù)就是八進(jìn)制數(shù)。其數(shù)碼取值范圍為:0~7,例如:012(十進(jìn)制為10)。3、十六進(jìn)制整數(shù)。以0x或0X開(kāi)頭的數(shù)據(jù)就是十六進(jìn)制數(shù)。其數(shù)碼取值范圍為:0~9,A~F或a~f。例如:0XA5(十進(jìn)制為165)。知識(shí)鏈接提問(wèn):如果需要定義一個(gè)用來(lái)存放班級(jí)人數(shù)的變量count,該如何定義呢?2.3.2整型變量整型變量的定義和存儲(chǔ)形式案例

2-6main(){ intcount; /*定義一個(gè)整型變量用來(lái)存儲(chǔ)班級(jí)人數(shù)*/ count=39; printf("%x\n",count); /*以十六進(jìn)制形式輸出班級(jí)人數(shù)*/}運(yùn)行程序,結(jié)果是:

27案例程序1、定義為整型intcount;/*int為類型標(biāo)識(shí)符,表示整型,count為變量名*/2、系統(tǒng)為被定義的變量count分配存儲(chǔ)空間,由于是整型,所以分配2個(gè)字節(jié)(16位二進(jìn)制)的存儲(chǔ)空間。在計(jì)算機(jī)中最終都是以二進(jìn)制的形式存儲(chǔ)在內(nèi)存空間中讀者必須掌握內(nèi)存空間的概念,知道各種數(shù)據(jù)類型在內(nèi)存中是如何分配存儲(chǔ)空間的。3、本案例結(jié)果輸出整數(shù)39的十六進(jìn)制形式為:27,在內(nèi)存中存儲(chǔ)的就是整數(shù)0x27的二進(jìn)制形式:00100111B,B表示二進(jìn)制。案例分析十進(jìn)制數(shù)39對(duì)應(yīng)的二進(jìn)制為100111知識(shí)鏈接-39的原碼:1000000000100111-39的反碼:1111111111011000(符號(hào)位不變,其余位取反)-39的補(bǔ)碼:1111111111011001(反碼加1)整型變量的分類和表示范圍案例

2-7main(){inta,b; /*定義a、b為有符號(hào)基本整型*/unsignedc,d; /*定義c、d為無(wú)符號(hào)基本整型*/ longe,f; /*定義e、f為有符號(hào)長(zhǎng)整型*/ a=32767;b=1; c=65535;d=1; e=2147483647;f=1; printf("int:%d,%d\n",a,a+b); /*%d:以十進(jìn)制整型的格式輸出*/ printf("unsigned:%u,%u\n",c,c+d); /*%u:以無(wú)符號(hào)整型的格式輸出*/ printf("long:%ld,%ld\n",e,e+f); /*%ld:以長(zhǎng)整型的格式輸出*/}運(yùn)行程序,結(jié)果是:

int:32767,-32768 unsigned:65535,0 long:2147483647,-2147483648案例分析定義各種整型變量,并分析各種整型變量的表示范圍隨堂練習(xí)1、整型變量的分類(1)有符號(hào)基本整型:[signed]int“[]”表示括號(hào)中的內(nèi)容為可選項(xiàng),可以不寫(xiě)。(2)無(wú)符號(hào)基本整型:unsignedint(3)有符號(hào)短整型:[signed]short[int](4)無(wú)符號(hào)短整型:unsignedshort[int](5)有符號(hào)長(zhǎng)整型:[signed]long[int](6)無(wú)符號(hào)長(zhǎng)整型:unsignedlong[int]知識(shí)鏈接基本整型用int表示,所需的內(nèi)存一般為2字節(jié),短整型用shortint或short表示,所需的內(nèi)存一般也為2字節(jié)長(zhǎng)整型用longint或long表示,所需的內(nèi)存一般為4字節(jié)2、整型數(shù)據(jù)的取值范圍整型數(shù)據(jù)的字長(zhǎng)和取值范圍3、整型變量的定義和使用inta; /*定義一個(gè)整型變量*/ unsigned[int]a; /*定義一個(gè)無(wú)符號(hào)整型變量*/ long[int]a; /*定義一個(gè)長(zhǎng)整型變量*/ unsignedlong[int]a;/*定義一個(gè)無(wú)符號(hào)長(zhǎng)整型變量*/學(xué)習(xí)目標(biāo)1、掌握實(shí)型常量的兩種表示形式;2、掌握實(shí)型變量的定義、分類和使用。有些數(shù)據(jù),比如學(xué)生成績(jī)、圓面積等用整數(shù)表示不夠精確,需要用實(shí)數(shù)表示才夠精確。2.4實(shí)型數(shù)據(jù)實(shí)型常量即實(shí)數(shù)(realnumber),又稱浮點(diǎn)數(shù)。2.4.1實(shí)型常量判斷下列數(shù)據(jù)是什么類型0.01,2,2.,2.0,-58,1.23e5。案例2-8實(shí)型常量有兩種表示形式。1、十進(jìn)制形式。9.17、0.147、.123、-89.02、指數(shù)形式。指數(shù)形式是:<小數(shù)部分>e或E<整型指數(shù)>123e3或123E3都代表123×1031.23E5、12.3e4、0.123e61.23E5稱為規(guī)范的指數(shù)形式,即在字母e或E之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有且只能有一位非零的數(shù)字。知識(shí)鏈接1、實(shí)型常量都是有符號(hào)浮點(diǎn)數(shù),沒(méi)有無(wú)符號(hào)浮點(diǎn)數(shù)。2、按默認(rèn)格式輸出實(shí)型常量是,最多只保留小數(shù)點(diǎn)后六位。提示2.4.2實(shí)型變量實(shí)型數(shù)據(jù)賦值給整型變量時(shí)的類型轉(zhuǎn)換問(wèn)題

案例2-9main(){inti; floatj=1.8; /*定義一個(gè)實(shí)型變量j并同時(shí)賦初值*/ clrscr(); printf("%f\n",j); /*輸出j的值*/ i=j; /*把實(shí)型變量j的值賦值給整型變量i*/ printf("%d\n",i); /*輸出i的值*/ i=(int)j; /*把j的值強(qiáng)制轉(zhuǎn)換成整型再賦值給整型變量i*/ printf("%d\n",i); /*再次輸出i的值*/}案例程序運(yùn)行程序,結(jié)果是:

1.800000 1 11、語(yǔ)句printf("%f\n",j);表示把變量j的值按照%f格式(即浮點(diǎn)型格式)輸出,小數(shù)點(diǎn)后保留六位(見(jiàn)運(yùn)行結(jié)果)。2、在實(shí)際編程過(guò)程中經(jīng)常會(huì)遇到不同數(shù)據(jù)類型賦值,這就涉及到類型轉(zhuǎn)換的問(wèn)題。3、還有一種轉(zhuǎn)換方法叫作顯示轉(zhuǎn)換,語(yǔ)句i=(int)j;就是先把j的值通過(guò)顯示類型轉(zhuǎn)換符(int)顯示轉(zhuǎn)換成整型,再賦值給變量i的。4、語(yǔ)句clrscr();表示調(diào)用清屏幕操作函數(shù)clrscr()。案例分析1、實(shí)型變量的分類在C語(yǔ)言中,實(shí)型變量分為單精度型和雙精度型兩類,其類型說(shuō)明符為float和double知識(shí)鏈接2、實(shí)型變量的定義根據(jù)字長(zhǎng)、精度和取值范圍可以把實(shí)型變量定義成單精度型或雙精度型。(1)定義成單精度型:floatscore; /*把學(xué)習(xí)成績(jī)變量score定義成單精度型*/(2)定義成雙精度型:doublea; /*把變量a定義成雙精度型*/學(xué)習(xí)目標(biāo)掌握字符常量與其ASCII碼的對(duì)應(yīng)關(guān)系;掌握字符常量和字符串常量的區(qū)別;掌握字符變量的定義和使用。2.5字符型數(shù)據(jù)定義學(xué)生成績(jī)等級(jí)為‘A’、‘B’、‘C’、‘D’、‘E’五個(gè)等級(jí),用什么樣的數(shù)據(jù)類型來(lái)存放這樣的字符常量呢?提問(wèn)在C語(yǔ)言中用一對(duì)單引號(hào)括起來(lái)的單個(gè)字符,稱為字符常量。如成績(jī)等級(jí)‘A’、‘B’、‘C’等。2.5.1字符常量輸入一個(gè)字符,輸出該字符及其對(duì)應(yīng)的ASCII碼案例2-10main(){ charch; scanf("%c",&ch); /*從鍵盤(pán)輸入一個(gè)字符*/ printf("Thecharacteris:%c\n",ch); /*按字符格式輸出*/ printf("ThedecimalASCIIis:%d\n",ch); /*輸出對(duì)應(yīng)的十進(jìn)制ASCII碼*/ printf("ThehexASCIIis:%x\n",ch); /*輸出對(duì)應(yīng)的十六進(jìn)制ASCII碼*/}案例程序運(yùn)行程序,輸入字符‘$’,輸出結(jié)果是:

Thecharacteris:$ ThedecimalASCIIis:36 ThehexadecimalASCIIis:241、字符‘$’的十進(jìn)制形式ASCII碼是:36,十六進(jìn)制形式ASCII碼是24。2、字符和它的ASCII碼是一一對(duì)應(yīng)的關(guān)系,以%c格式輸出字符本身,以%d格式輸出對(duì)應(yīng)的十進(jìn)制ASCII碼,以%x格式輸出對(duì)應(yīng)的十六進(jìn)制ASCII碼。案例分析求ASCII碼是33的對(duì)應(yīng)字符隨堂練習(xí)1、字符常量的ASCII碼形式2、字符常量的運(yùn)算printf("%c\n",35+36);printf("%c\n",‘#’+‘$’);3、字符串常量例:“China” 知識(shí)鏈接1、‘\0’和‘\n’等一樣,是C語(yǔ)言的轉(zhuǎn)義字符,表示與原來(lái)的字符‘0’不同的含義,‘\0’是“空操作字符”,常用來(lái)作為字符串的結(jié)束標(biāo)志。2、字符常量和字符串常量是不同的,字符常量是用單引號(hào)括起來(lái)的單個(gè)字符,字符串常量是用雙引號(hào)括起來(lái)的字符序列。例如‘a(chǎn)’為字符常量,而“a”為字符串常量。3、‘\0’字符是系統(tǒng)自動(dòng)加上的,不需要在寫(xiě)字符串時(shí)加字符‘\0’。提示整型變量用來(lái)存儲(chǔ)整型數(shù)據(jù),實(shí)型變量用來(lái)存儲(chǔ)實(shí)型數(shù)據(jù),同理,字符變量是用來(lái)存儲(chǔ)字符常量的。2.5.2字符變量字符數(shù)據(jù)和整型數(shù)據(jù)互相賦值問(wèn)題案例2-11main(){charch; /*定義一個(gè)字符變量ch*/ch=97; /*給字符變量賦值*/printf("%c\n",ch); /*按字符格式輸出變量ch的值*/printf("%d\n",ch); /*按十進(jìn)制整數(shù)格式輸出ch的值*/}案例程序運(yùn)行程序,結(jié)果是:

a 97本例中實(shí)際上可以求出ASCII值(97)的對(duì)應(yīng)字符‘a(chǎn)’,現(xiàn)在編程求出一個(gè)字符的對(duì)應(yīng)ASCII碼,應(yīng)該怎么做呢?隨堂練習(xí)字符變量和整型變量之間的賦值以及它們之間的運(yùn)算案例2-12main(){inti; /*聲明一個(gè)整型變量*/charj; /*聲明一個(gè)字符變量*/i='A'; /*將字符數(shù)據(jù)賦值給整型變量*/j=66; /*將整型數(shù)據(jù)賦值給字符型變量*/i=i+32;j=j+32; /*字符數(shù)據(jù)和整型數(shù)據(jù)之間的運(yùn)算*/printf("%c,%c\n",i,j); /*以字符型格式輸出*/printf("%d,%d\n",i,j); /*以整型格式輸出*/}案例程序運(yùn)行程序,結(jié)果是:

a,b 97,98編程將大寫(xiě)字符‘C’和‘D’轉(zhuǎn)換成小寫(xiě)字符輸出隨堂練習(xí)1、字符變量的定義格式2、字符變量的初始化及存儲(chǔ)形式ch=66;或ch=‘B’;則在內(nèi)存中實(shí)際上存儲(chǔ)字符‘B’的ASCII值66,十進(jìn)制數(shù)66轉(zhuǎn)換成二進(jìn)制是:1000010知識(shí)鏈接01000010學(xué)習(xí)目標(biāo)掌握c語(yǔ)言的運(yùn)算符的優(yōu)先級(jí)和結(jié)合方向;掌握運(yùn)算符和表達(dá)式的應(yīng)用;掌握表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換。2.6運(yùn)算符和表達(dá)式運(yùn)算符就是對(duì)一個(gè)或多個(gè)操作數(shù)(運(yùn)算對(duì)象)執(zhí)行某種運(yùn)算的符號(hào),表達(dá)式是由運(yùn)算符、常量及變量構(gòu)成的式子。例如:a+5就是一個(gè)表達(dá)式。定義C語(yǔ)言的運(yùn)算符有不同的優(yōu)先級(jí)和結(jié)合方向規(guī)則算術(shù)運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符、條件運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符優(yōu)先級(jí)和結(jié)合方向????jī)?yōu)先級(jí)和結(jié)合方向案例2-13算術(shù)表達(dá)式的求值問(wèn)題:求表達(dá)式(float)(a+b)/2+(int)c%(int)d的結(jié)果,其中a=1,b=2,c=3.5,d=2.5。2.6.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式main(){inta=1,b=2;floatc=3.5,d=2.5,s; /*定義a,b,c,d,s四個(gè)變量,其中s用來(lái)保存結(jié)果*/s=(float)(a+b)/2+(int)c%(int)d;printf("Theresultis:%f\n",s); /*按照浮點(diǎn)型格式輸出結(jié)果*/}運(yùn)行程序,結(jié)果是:

Theresultis:2.500000案例程序提示:算術(shù)表達(dá)式和運(yùn)算符的結(jié)合性指的是在同級(jí)運(yùn)算的情況下,運(yùn)算順序?yàn)橹磷笙蛴?。提示?jì)算表達(dá)式(int)a/2+3*-2/(int)(a+b)-12的結(jié)果并編程驗(yàn)證,已知a=1.7,b=2.7。 隨堂練習(xí)算術(shù)運(yùn)算符算術(shù)運(yùn)算要注意的問(wèn)題 知識(shí)鏈接運(yùn)算符說(shuō)明范例+加法運(yùn)算符4+3-減法運(yùn)算符4-3*乘法運(yùn)算符4*3/除法運(yùn)算符4/3%取余運(yùn)算符或稱模運(yùn)算符4%3提示:?jiǎn)文窟\(yùn)算符就是操作數(shù)是一個(gè)的運(yùn)算符,依此類推,雙目運(yùn)算符就是操作數(shù)是兩個(gè)的運(yùn)算符。在C語(yǔ)言中,單目運(yùn)算符包括:!(邏輯非運(yùn)算符)、~(按位取反運(yùn)算符)、++(自增運(yùn)算符)、--(自減運(yùn)算符)、-(負(fù)號(hào)運(yùn)算符)、(類型)(類型轉(zhuǎn)換運(yùn)算符)、*(指針運(yùn)算符)、&(取地址運(yùn)算符)、sizeof(求長(zhǎng)度運(yùn)算符)提示3、算術(shù)表達(dá)式算術(shù)表達(dá)式就是用算術(shù)運(yùn)算符將運(yùn)算對(duì)象(又稱操作數(shù),如常量、變量、函數(shù)等)連接起來(lái)的式子。例如:(a+b)/2+c-‘e’。求模運(yùn)算:求一個(gè)正整數(shù)的個(gè)、十、百、千位的數(shù)字并輸出案例2-14main(){unsignedintn,bt,bh,bd,bu; /*定義無(wú)符號(hào)整型變量分別保存要輸入的數(shù)及千、百、十、個(gè)位上的數(shù)*/printf("Pleaseinputanumber(0<n<10000):"); /*提示輸入一個(gè)數(shù)*/scanf("%d",&n); /*從鍵盤(pán)輸入整數(shù),保存在變量n中*/bt=n/1000; /*求n的千位數(shù)字*/bh=n%1000/100; /*求n的百位數(shù)字*/bd=n%1000%100/10; /*求n的十位數(shù)字*/bu=n%1000%100%10; /*求n的個(gè)位數(shù)字*/printf("%3d,%3d,%3d,%3d\n",bt,bh,bd,bu); /*輸出各位上的數(shù)字*/}案例程序運(yùn)行程序,由鍵盤(pán)輸入:9876↙輸出結(jié)果是:

Pleaseinputanumber(0<n<10000):9876 9,8,7,6自增運(yùn)算符++如m++,++m,都等價(jià)于m=m+1。自減運(yùn)算符--如m--,--m,都等價(jià)于m=m-1。2.6.2自增和自減運(yùn)算符單目運(yùn)算符的使用:分別使用自增和自減運(yùn)算的前置和后置兩種方式,查看結(jié)果有什么不同?案例2-15main(){intm=5,n;n=m++; /*m++表示自增后置方式,m的值先賦值給n,再自加1*/printf("n=%d,m=%d\n",n,m); /*輸出n和m的值*/m=5; /*重新給m賦值,把m還原成原來(lái)的值*/n=++m; /*改用前置方式,++m表示前置方式*/printf("n=%d,m=%d\n",n,m); /*再次輸出n和m的值*/案例程序m=5;n=m--; /*m自減,后置方式*/printf("n=%d,m=%d\n",n,m); m=5;n=--m; /*m自減,前置方式*/printf("n=%d,m=%d\n",n,m); }運(yùn)行程序,結(jié)果是:

n=5,m=6 n=6,m=6 n=5,m=4 n=4,m=4m++; /*表示在使用m之后,再使變量m的值加1。*/--m; /*先使變量m的值減1之后,再使用變量m*/案例分析在tuboc中編輯下列代碼并分析程序的輸出結(jié)果。main(){ inti=5,j=5; printf(“%3d,%3d\n”,++i,j++); printf(“%3d,%3d\n”,i,j);}隨堂練習(xí)提示:在printf()語(yǔ)句中,后置方式是變量先輸出后變化,前置方式是變量先變化后輸出。提示符號(hào)“=”就是賦值運(yùn)算符,賦值表達(dá)式就是由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子。2.6.3賦值運(yùn)算符和賦值表達(dá)式案例程序main(){inta,b,c; /*聲明三個(gè)整型變量*/clrscr(); /*清屏幕*/a=b=c=5; /*為三個(gè)變量賦初值*/a+=b; /*修改變量a的值,相當(dāng)于a=a+b*/b*=c; /*修改變量b的值,相當(dāng)于b=b*c*/printf("a=%d,b=%d,c=%d\n",a,b,c); /*輸出三個(gè)變量值*/printf("Theresultofexpressionis:%d\n",a+=b*=b-c);/*輸出賦值表達(dá)式的值*/printf("Theresultofexpressionis:%d\n",a=(b=4)*(c=6));}案例2-16運(yùn)行程序,結(jié)果是:

a=10,b=25,c=5 Theresultofexpressionis:510 Theresultofexpressionis:24表達(dá)式a+=b*=b-c的運(yùn)算順序是:①由于“-”運(yùn)算優(yōu)先級(jí)高于賦值運(yùn)算符(包括復(fù)合賦值運(yùn)算符),故先進(jìn)行b-c的運(yùn)算。②根據(jù)賦值運(yùn)算符(包括復(fù)合賦值運(yùn)算符)的右結(jié)合性,即從右至左,所以下一步進(jìn)行b*=b-c的運(yùn)算,相當(dāng)于b=b*(b-c)。③最后計(jì)算a+=b(上一步表達(dá)式的值),相當(dāng)于a=a+b。案例分析計(jì)算當(dāng)a=10時(shí),表達(dá)式a+=a-=a*a的值。記得編程驗(yàn)證隨堂練習(xí)1.復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符就是在賦值符“=”之前加上其它的運(yùn)算符構(gòu)成的運(yùn)算符,其它的運(yùn)算符包括“+”、“-”、“*”、“/”、“%”等。(1)+=:如m+=n,相當(dāng)于m=m+n。(2)-=:如m-=n,相當(dāng)于m=m-n。(3)*=:如m*=n,相當(dāng)于m=m*n。(4)/=:如m/=n,相當(dāng)于m=m/n。(5)%=:如m%=n,相當(dāng)于m=m%n。2.賦值表達(dá)式的值賦值表達(dá)式的值就是被賦值變量的值例如i=10這個(gè)賦值表達(dá)式的值就是10,也就是說(shuō)變量i的值是10,同時(shí),該賦值表達(dá)式的值也是10。用printf(“%d”,i=10);輸出結(jié)果就是10,注意“%d”的位置輸出對(duì)應(yīng)的i=10這個(gè)表達(dá)式的值。知識(shí)鏈接條件運(yùn)算符是C語(yǔ)言的惟一的三目運(yùn)算符。2.6.4條件運(yùn)算符和條件表達(dá)式main(){inta,b,max; /*定義三個(gè)整型變量,max用來(lái)保存較大的數(shù)*/scanf("%d,%d",&a,&b); /*鍵盤(pán)輸入值給變量a和b*/max=(a>b?a:b); /*用條件表達(dá)式求出較大數(shù),再賦值給變量max保存*/printf("Themaxnumberis:%d\n",max); /*輸出較大數(shù)的值*/}案例2-17運(yùn)行程序,輸入5,9↙結(jié)果是:

5,9 Themaxnumberis:91、條件表達(dá)式的一般形式是: 表達(dá)式1?表達(dá)式2:表達(dá)式32、條件表達(dá)式a>b?a:b的運(yùn)算順序先計(jì)算第一個(gè)表達(dá)式a>b,也就是a>b要么成立,要么不成立,如果成立認(rèn)為表達(dá)式結(jié)果為真(true),否則為假(false)。案例分析C語(yǔ)言規(guī)定,不同類型的數(shù)據(jù)在參加運(yùn)算前要先轉(zhuǎn)化成同一種類型,再進(jìn)行運(yùn)算2.6.5表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換假設(shè)m為float,n為int型,分析下面表達(dá)式在運(yùn)算時(shí)數(shù)據(jù)類型的轉(zhuǎn)換。19+‘a(chǎn)’-2.5+m/n案例2-181、“/”的優(yōu)先級(jí)高2、“+”、“-”為同級(jí)運(yùn)算,按照從左至右的結(jié)合性3、19+‘a(chǎn)’-2.5相當(dāng)于116-2.5,2.5為float型,應(yīng)自動(dòng)轉(zhuǎn)換成double類型案例分析1、自動(dòng)類型轉(zhuǎn)換知識(shí)鏈接垂直方向由低到高longunsignedintfloatchar,short水平方向,自動(dòng)轉(zhuǎn)換double2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論