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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

2-4#include<stdio.h>#definePRICE20/*定義符號常量PRICE,代表整數(shù)20,表示單價*/main(){ intnum,total; /*定義整型變量num和total,分別表示數(shù)量和銷售總額*/ num=10; /*給變量num賦初值為10*/ total=num*PRICE; /*將10*30的結(jié)果賦值給變量total,計算出銷售總額*/ printf("total=%d",total); /*將計算出的銷售總額輸出在用戶屏幕上*/}運(yùn)行這個程序,結(jié)果是:total=200案例程序1、本案例程序的目的是熟悉常量和變量的用法。2、代碼開始處定義符號常量PRICE,將程序中用到單價(這里為20)的地方都用PRICE來代替。案例分析編程計算圓的周長和面積隨堂練習(xí)學(xué)習(xí)目標(biāo)1、掌握整型常量的分類;2、掌握整型變量的定義、分類和存儲形式。整型數(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提問:十進(jìn)制數(shù)轉(zhuǎn)換成其他進(jìn)制的方法是什么?案例程序(1)%d、%o、%x分別表示按照十進(jìn)制格式、八進(jìn)制格式和十六進(jìn)制格式輸出。(2)格式控制符“\t”表示輸出一個水平制表位,就是將當(dāng)前屏幕的位置水平移動8列,即要輸出的內(nèi)容在第9列開始顯示。案例分析編程將十進(jìn)制數(shù)8和11分別按照三種格式輸出隨堂練習(xí)整型常量按不同進(jìn)制有三種表示形式:1、十進(jìn)制整數(shù)。例如:12,234,-456等。2、八進(jìn)制整數(shù)。以0開頭作為標(biāo)識的數(shù)據(jù)就是八進(jìn)制數(shù)。其數(shù)碼取值范圍為:0~7,例如:012(十進(jìn)制為10)。3、十六進(jìn)制整數(shù)。以0x或0X開頭的數(shù)據(jù)就是十六進(jìn)制數(shù)。其數(shù)碼取值范圍為:0~9,A~F或a~f。例如:0XA5(十進(jìn)制為165)。知識鏈接提問:如果需要定義一個用來存放班級人數(shù)的變量count,該如何定義呢?2.3.2整型變量整型變量的定義和存儲形式案例

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

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

2-7main(){inta,b; /*定義a、b為有符號基本整型*/unsignedc,d; /*定義c、d為無符號基本整型*/ longe,f; /*定義e、f為有符號長整型*/ 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:以無符號整型的格式輸出*/ printf("long:%ld,%ld\n",e,e+f); /*%ld:以長整型的格式輸出*/}運(yùn)行程序,結(jié)果是:

int:32767,-32768 unsigned:65535,0 long:2147483647,-2147483648案例分析定義各種整型變量,并分析各種整型變量的表示范圍隨堂練習(xí)1、整型變量的分類(1)有符號基本整型:[signed]int“[]”表示括號中的內(nèi)容為可選項,可以不寫。(2)無符號基本整型:unsignedint(3)有符號短整型:[signed]short[int](4)無符號短整型:unsignedshort[int](5)有符號長整型:[signed]long[int](6)無符號長整型:unsignedlong[int]知識鏈接基本整型用int表示,所需的內(nèi)存一般為2字節(jié),短整型用shortint或short表示,所需的內(nèi)存一般也為2字節(jié)長整型用longint或long表示,所需的內(nèi)存一般為4字節(jié)2、整型數(shù)據(jù)的取值范圍整型數(shù)據(jù)的字長和取值范圍3、整型變量的定義和使用inta; /*定義一個整型變量*/ unsigned[int]a; /*定義一個無符號整型變量*/ long[int]a; /*定義一個長整型變量*/ unsignedlong[int]a;/*定義一個無符號長整型變量*/學(xué)習(xí)目標(biāo)1、掌握實型常量的兩種表示形式;2、掌握實型變量的定義、分類和使用。有些數(shù)據(jù),比如學(xué)生成績、圓面積等用整數(shù)表示不夠精確,需要用實數(shù)表示才夠精確。2.4實型數(shù)據(jù)實型常量即實數(shù)(realnumber),又稱浮點(diǎn)數(shù)。2.4.1實型常量判斷下列數(shù)據(jù)是什么類型0.01,2,2.,2.0,-58,1.23e5。案例2-8實型常量有兩種表示形式。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ù)字。知識鏈接1、實型常量都是有符號浮點(diǎn)數(shù),沒有無符號浮點(diǎn)數(shù)。2、按默認(rèn)格式輸出實型常量是,最多只保留小數(shù)點(diǎn)后六位。提示2.4.2實型變量實型數(shù)據(jù)賦值給整型變量時的類型轉(zhuǎn)換問題

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

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

a 97本例中實際上可以求出ASCII值(97)的對應(yīng)字符‘a(chǎn)’,現(xiàn)在編程求出一個字符的對應(yīng)ASCII碼,應(yīng)該怎么做呢?隨堂練習(xí)字符變量和整型變量之間的賦值以及它們之間的運(yùn)算案例2-12main(){inti; /*聲明一個整型變量*/charj; /*聲明一個字符變量*/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編程將大寫字符‘C’和‘D’轉(zhuǎn)換成小寫字符輸出隨堂練習(xí)1、字符變量的定義格式2、字符變量的初始化及存儲形式ch=66;或ch=‘B’;則在內(nèi)存中實際上存儲字符‘B’的ASCII值66,十進(jìn)制數(shù)66轉(zhuǎn)換成二進(jìn)制是:1000010知識鏈接01000010學(xué)習(xí)目標(biāo)掌握c語言的運(yùn)算符的優(yōu)先級和結(jié)合方向;掌握運(yùn)算符和表達(dá)式的應(yīng)用;掌握表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換。2.6運(yùn)算符和表達(dá)式運(yùn)算符就是對一個或多個操作數(shù)(運(yùn)算對象)執(zhí)行某種運(yùn)算的符號,表達(dá)式是由運(yùn)算符、常量及變量構(gòu)成的式子。例如:a+5就是一個表達(dá)式。定義C語言的運(yùn)算符有不同的優(yōu)先級和結(jié)合方向規(guī)則算術(shù)運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符、條件運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符優(yōu)先級和結(jié)合方向???優(yōu)先級和結(jié)合方向案例2-13算術(shù)表達(dá)式的求值問題:求表達(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四個變量,其中s用來保存結(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é)合性指的是在同級運(yùn)算的情況下,運(yùn)算順序為至左向右。提示計算表達(dá)式(int)a/2+3*-2/(int)(a+b)-12的結(jié)果并編程驗證,已知a=1.7,b=2.7。 隨堂練習(xí)算術(shù)運(yùn)算符算術(shù)運(yùn)算要注意的問題 知識鏈接運(yùn)算符說明范例+加法運(yùn)算符4+3-減法運(yùn)算符4-3*乘法運(yùn)算符4*3/除法運(yùn)算符4/3%取余運(yùn)算符或稱模運(yùn)算符4%3提示:單目運(yùn)算符就是操作數(shù)是一個的運(yùn)算符,依此類推,雙目運(yùn)算符就是操作數(shù)是兩個的運(yùn)算符。在C語言中,單目運(yùn)算符包括:!(邏輯非運(yùn)算符)、~(按位取反運(yùn)算符)、++(自增運(yùn)算符)、--(自減運(yùn)算符)、-(負(fù)號運(yùn)算符)、(類型)(類型轉(zhuǎn)換運(yùn)算符)、*(指針運(yùn)算符)、&(取地址運(yùn)算符)、sizeof(求長度運(yùn)算符)提示3、算術(shù)表達(dá)式算術(shù)表達(dá)式就是用算術(shù)運(yùn)算符將運(yùn)算對象(又稱操作數(shù),如常量、變量、函數(shù)等)連接起來的式子。例如:(a+b)/2+c-‘e’。求模運(yùn)算:求一個正整數(shù)的個、十、百、千位的數(shù)字并輸出案例2-14main(){unsignedintn,bt,bh,bd,bu; /*定義無符號整型變量分別保存要輸入的數(shù)及千、百、十、個位上的數(shù)*/printf("Pleaseinputanumber(0<n<10000):"); /*提示輸入一個數(shù)*/scanf("%d",&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的個位數(shù)字*/printf("%3d,%3d,%3d,%3d\n",bt,bh,bd,bu); /*輸出各位上的數(shù)字*/}案例程序運(yùn)行程序,由鍵盤輸入:9876↙輸出結(jié)果是:

Pleaseinputanumber(0<n<10000):9876 9,8,7,6自增運(yùn)算符++如m++,++m,都等價于m=m+1。自減運(yùn)算符--如m--,--m,都等價于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還原成原來的值*/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ùn)算符,賦值表達(dá)式就是由賦值運(yùn)算符將一個變量和一個表達(dá)式連接起來的式子。2.6.3賦值運(yùn)算符和賦值表達(dá)式案例程序main(){inta,b,c; /*聲明三個整型變量*/clrscr(); /*清屏幕*/a=b=c=5; /*為三個變量賦初值*/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); /*輸出三個變量值*/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)先級高于賦值運(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)。③最后計算a+=b(上一步表達(dá)式的值),相當(dāng)于a=a+b。案例分析計算當(dāng)a=10時,表達(dá)式a+=a-=a*a的值。記得編程驗證隨堂練習(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這個賦值表達(dá)式的值就是10,也就是說變量i的值是10,同時,該賦值表達(dá)式的值也是10。用printf(“%d”,i=10);輸出結(jié)果就是10,注意“%d”的位置輸出對應(yīng)的i=10這個表達(dá)式的值。知識鏈接條件運(yùn)算符是C語言的惟一的三目運(yùn)算符。2.6.4條件運(yùn)算符和條件表達(dá)式main(){inta,b,max; /*定義三個整型變量,max用來保存較大的數(shù)*/scanf("%d,%d",&a,&b); /*鍵盤輸入值給變量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)算順序先計算第一個表達(dá)式a>b,也就是a>b要么成立,要么不成立,如果成立認(rèn)為表達(dá)式結(jié)果為真(true),否則為假(false)。案例分析C語言規(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ù)據(jù)類型的轉(zhuǎn)換。19+‘a(chǎn)’-2.5+m/n案例2-181、“/”的優(yōu)先級高2、“+”、“-”為同級運(yùn)算,按照從左至右的結(jié)合性3、19+‘a(chǎn)’-2.5相當(dāng)于116-2.5,2.5為float型,應(yīng)自動轉(zhuǎn)換成double類型案例分析1、自動類型轉(zhuǎn)換知識鏈接垂直方向由低到高longunsignedintfloatchar,short水平方向,自動轉(zhuǎn)換double2

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論