C語(yǔ)言程序設(shè)計(jì) 第3版 課件全套 丁紅 第1-11章 帶你認(rèn)識(shí)C語(yǔ)言、數(shù)據(jù)類型-文件_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第3版 課件全套 丁紅 第1-11章 帶你認(rèn)識(shí)C語(yǔ)言、數(shù)據(jù)類型-文件_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第3版 課件全套 丁紅 第1-11章 帶你認(rèn)識(shí)C語(yǔ)言、數(shù)據(jù)類型-文件_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第3版 課件全套 丁紅 第1-11章 帶你認(rèn)識(shí)C語(yǔ)言、數(shù)據(jù)類型-文件_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第3版 課件全套 丁紅 第1-11章 帶你認(rèn)識(shí)C語(yǔ)言、數(shù)據(jù)類型-文件_第5頁(yè)
已閱讀5頁(yè),還剩318頁(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)介

C語(yǔ)言程序設(shè)計(jì)語(yǔ)言C——帶你認(rèn)識(shí)入門

了解計(jì)算機(jī)語(yǔ)言的概念及其發(fā)展史了解常見(jiàn)的高級(jí)語(yǔ)言掌握指令、程序、源程序、目標(biāo)程序的概念理解C語(yǔ)言的基本特點(diǎn)和上機(jī)步驟學(xué)習(xí)目標(biāo)一、什么是計(jì)算機(jī)語(yǔ)言自然語(yǔ)言:

人與人之間進(jìn)行交流的語(yǔ)言計(jì)算機(jī)語(yǔ)言:是人和計(jì)算機(jī)進(jìn)行信息交流的工具,人們可以使用計(jì)算機(jī)語(yǔ)言來(lái)命令計(jì)算機(jī)進(jìn)行各種操作處理。二、計(jì)算機(jī)語(yǔ)言的發(fā)展機(jī)器語(yǔ)言:由0和1二進(jìn)制代碼構(gòu)成。匯編語(yǔ)言:用一組易記的符號(hào)代表機(jī)器指令。高級(jí)語(yǔ)言:接近于人們習(xí)慣使用的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言。又稱為類自然語(yǔ)言。例:“加”命令用二進(jìn)制10110111表示。例:“加”命令用add表示。例:“加”命令用+表示。三、常見(jiàn)的高級(jí)語(yǔ)言及用途C語(yǔ)言:編寫系統(tǒng)軟件,如編寫UNIX,Windows,Linux等操作系統(tǒng).C++,C#:都是在C語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。FORTRAN:用于數(shù)值計(jì)算,如微分方程數(shù)值解,

比如氣候模式,海洋模式,模擬核爆炸試驗(yàn)JAVA:網(wǎng)絡(luò)環(huán)境語(yǔ)言,編手機(jī)上的程序或游戲.Python:開發(fā)人工智能軟件四、源程序和目標(biāo)程序源程序:使用高級(jí)計(jì)算機(jī)語(yǔ)言編寫的程序代碼目標(biāo)程序:源程序必須經(jīng)過(guò)編譯后生成計(jì)算機(jī)可以理解的二進(jìn)制形式,這樣的二進(jìn)制形式的程序稱為目標(biāo)程序。源程序目標(biāo)程序編譯可執(zhí)行程序鏈接五、指令、程序、源程序和目標(biāo)程序指令語(yǔ)句:用來(lái)指揮計(jì)算機(jī)執(zhí)行某個(gè)操作的命令語(yǔ)句。程序:為了實(shí)現(xiàn)一定的目的而用計(jì)算機(jī)語(yǔ)言編寫的一系列指令語(yǔ)句的集合。如:sum=a+b;number1number2sum5625811、編寫程序需要遵循一定的格式嗎?是什么樣的格式呢?2、輸入的數(shù)據(jù)放在什么地方?3、如何使從鍵盤輸入的數(shù)據(jù)到指定的地址中呢?4、如何將計(jì)算好的結(jié)果數(shù)據(jù)輸出來(lái)?案例:輸入兩個(gè)整數(shù),求這兩個(gè)整數(shù)的和。六、C語(yǔ)言的構(gòu)成

intnumber1,number2,sum;printf("請(qǐng)輸入加數(shù):");scanf(“%d”,&number1);printf("請(qǐng)輸入被加數(shù):");scanf("%d",&number2);sum=number1+number2;printf("\n%d+%d=%d",number1,number2,sum);intmain(intargc,char*argv[]){

}

加法器源程序代碼/*定義3個(gè)變量*//*向number1中輸入數(shù)據(jù)*//*主函數(shù)main()*/上一頁(yè)七、總結(jié)—關(guān)于C語(yǔ)言程序結(jié)構(gòu)的介紹C語(yǔ)言程序是由函數(shù)構(gòu)成的,有且只有一個(gè)主函數(shù)main。

一個(gè)函數(shù)由兩部分組成:函數(shù)的首部和函數(shù)體。

函數(shù)體有聲明部分和執(zhí)行部分組成。

函數(shù)的執(zhí)行總是先從主函數(shù)main開始執(zhí)行。

main函數(shù)的位置可以任意。

每條語(yǔ)句后都有一個(gè)分號(hào)“;”作為間隔,分號(hào)不可少。一行內(nèi)可以寫多個(gè)語(yǔ)句,一個(gè)語(yǔ)句也可以寫在多行上。上一頁(yè)八、C語(yǔ)言的上機(jī)步驟輸入編輯源程序編譯連接和生成可執(zhí)行文件.c文件.obj文件.exe文件小結(jié)計(jì)算機(jī)語(yǔ)言是人和計(jì)算機(jī)之間交流的語(yǔ)言C語(yǔ)言是常見(jiàn)的高級(jí)語(yǔ)言,它具有低級(jí)語(yǔ)言和高級(jí)語(yǔ)言的特點(diǎn),不但可以用來(lái)編寫應(yīng)用軟件,也可以用來(lái)編寫系統(tǒng)軟件.用高級(jí)語(yǔ)言編寫出來(lái)的程序稱為源程序,經(jīng)過(guò)編譯以后生成目標(biāo)程序,鏈接后形成可執(zhí)行程序.就象自然語(yǔ)言要遵循一定的語(yǔ)法規(guī)則一樣,使用C語(yǔ)言編程時(shí)也要遵循一定的語(yǔ)法規(guī)則.第二章數(shù)據(jù)類型程序=數(shù)據(jù)結(jié)構(gòu)+算法在程序中定義所要處理數(shù)據(jù)的類型和組織形式對(duì)解題方法和解題步驟的描述C中最常見(jiàn)的三種基本類型:整型實(shí)型字符型2.1常量和變量inta;a=3;a3定義了一個(gè)整型變量,名為a將常數(shù)3賦給變量a變量:在程序運(yùn)行過(guò)程中,其值可以改變的量。每個(gè)變量在計(jì)算機(jī)中對(duì)應(yīng)相應(yīng)長(zhǎng)度的存儲(chǔ)空間。常量:在程序運(yùn)行過(guò)程中,其值不變的量。一、變量

每個(gè)變量在使用之前必須確定其類型,并為之取一個(gè)合適的名字。intage;floatscore;agescorecharsex;sexsex=‘a(chǎn)’;例:定義變量類型的一般形式為:

類型標(biāo)志符變量名;a(1)標(biāo)識(shí)符只能由字母、數(shù)字、下劃線組成,且第一個(gè)字符不能為數(shù)字。(2)C語(yǔ)言區(qū)分大小寫。(3)標(biāo)識(shí)符的名字不能和C語(yǔ)言中的關(guān)鍵字和特定字相同。(4)標(biāo)識(shí)符的長(zhǎng)度最好不要超過(guò)8個(gè)字符。(5)標(biāo)識(shí)符的命名最好做到見(jiàn)名知意。如age用來(lái)表示年齡,number表示學(xué)號(hào)。標(biāo)志符的命名規(guī)則:二、常量常見(jiàn)的常量如18,65.5,3.14159,‘m’,‘ding’1、整型常量(整常數(shù))1)、十進(jìn)制形式表示:如25,65,23。2)、八進(jìn)制形式表示:以數(shù)字0開頭,如0253)、十六進(jìn)制形式表示:以數(shù)字0x開頭,如

0x25,0x65,0x1A。2、實(shí)型常量(實(shí)數(shù)、浮點(diǎn)數(shù))十進(jìn)制小數(shù)形式:10.25,-1.2314指數(shù)形式表示:如23500可以用指數(shù)形式表示為:2.35e40.00014可以用指數(shù)形式表示為:1.4e-43、字符型常量常見(jiàn)的字符常量有:’a’,‘A’,‘F’,‘*’,‘■’,‘▼

‘1)、普通字符常量2)、轉(zhuǎn)義字符常量如’\n’表示換行的意思

‘\r’表示使光標(biāo)回到本行的開頭

‘\b’表示使光標(biāo)回到前一列‘\t’表示使光標(biāo)移到下一個(gè)Tab的位置‘\a’表示響起報(bào)警聲‘\\’表示一個(gè)\‘\’’表示單撇號(hào)’‘\”’表示雙撇號(hào)”‘\ddd’表示一到三位八進(jìn)制數(shù)所代表的字符‘\xdd’表示一到二位十六進(jìn)制所代表的字符

4、字符串常量字符串常量就是由多個(gè)字符組成的字符序列,用雙撇號(hào)括起來(lái)。例:“DaiChunmei”“$89

”DaiChunmeI\0$89\0回顧1、C語(yǔ)言中三種最基本的數(shù)據(jù)類型包括:()A、整型、實(shí)型、邏輯型B、整型、實(shí)型、字符型C、整型、字符型、邏輯型D、整型、實(shí)型、邏輯型、字符型2、在C語(yǔ)言中,下面哪一個(gè)不是整型常量()A、123B、123LC、0x123D、U1233、在C語(yǔ)言中,下面哪一個(gè)不是字符型常量()A、‘a(chǎn)’B、‘\81’C、‘\0x41’D、“a”E、‘\t’4、下列選項(xiàng)哪個(gè)選項(xiàng)不符合C語(yǔ)言中變量名的命名規(guī)則()A、age_1B、1_ageC、_1ageD、age*1

思考題:現(xiàn)在需要編寫一個(gè)教師的工資管理系統(tǒng),其中涉及到一個(gè)變量,用來(lái)存放教師的工齡。該如何定義。2.2整型變量intT_age;類型標(biāo)志符變量名T_ageint型變量占2個(gè)字節(jié)的存儲(chǔ)空間一、整型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式

補(bǔ)碼表示,最高位表示符號(hào)位,正數(shù)用0表示,負(fù)數(shù)用1表示。假設(shè)使T_age=15,則15在計(jì)算機(jī)中的存儲(chǔ)形式為:0000000000001111假設(shè)使T_age=-15,則15在計(jì)算機(jī)中的存儲(chǔ)形式為:1111111111110001所以,int型數(shù)據(jù)存儲(chǔ)范圍為:-215——215-1-3276832767二、整型變量的分類shortint(短整型)longint(長(zhǎng)整型)int(基本整型)整型[signed]intunsigned[int][signed]short[int]

unsignedshort[int]

[signed]long[int]

unsignedlong[int]

1、短整型(short型)占小于或等于2個(gè)字節(jié)的存儲(chǔ)空間,存儲(chǔ)范圍為:-215——215-12、無(wú)符號(hào)短整型(unsignedshort型)占2個(gè)字節(jié)的存儲(chǔ)空間,存儲(chǔ)范圍為:3、基本整型(int型)占2個(gè)字節(jié)的存儲(chǔ)空間,存儲(chǔ)范圍為:0——216-1-215——215-14、無(wú)符號(hào)基本整型(unsigned型)占2個(gè)字節(jié)的存儲(chǔ)空間,存儲(chǔ)范圍為:0——216-15、長(zhǎng)整型(long型)占4個(gè)字節(jié)的存儲(chǔ)空間,存儲(chǔ)范圍為:-231——231-16、無(wú)符號(hào)長(zhǎng)整型(unsignedlong型)占4個(gè)字節(jié)的存儲(chǔ)空間,存儲(chǔ)范圍為:0——232-12.3實(shí)型變量

思考題:現(xiàn)在需要定義一個(gè)用來(lái)存放教師工資的變量,該將其定義為何種類型?floatT_salary;類型標(biāo)志符變量名T_salaryfloat型變量占4個(gè)字節(jié)的存儲(chǔ)空間用小數(shù)部分和指數(shù)部分來(lái)表示,例如:一、實(shí)型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式(-25.25)原=(-11001.01)B11100101101尾數(shù)位指數(shù)位二、實(shí)型變量的分類變量類型

數(shù)據(jù)長(zhǎng)度

有效數(shù)字

取值范圍

單精度型(float)

4個(gè)字節(jié)

7位

10-37—1038

雙精度型(double)

8個(gè)字節(jié)

16位

10-307—10308

長(zhǎng)雙精度型(longdouble)

16個(gè)字節(jié)

19位

10-4931—1049322.4字符型變量

思考題:現(xiàn)在需要定義一個(gè)用來(lái)存放教師性別的變量,該將其定義為何種類型?charT_sex;類型標(biāo)志符變量名T_sexchar型數(shù)據(jù)占1個(gè)字節(jié)的存儲(chǔ)空間一、字符型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式

字符的存儲(chǔ)就是將其所對(duì)應(yīng)的ASCII代碼的二進(jìn)制形式存放到內(nèi)存中例:字符’A’的ASCII代碼是65,存儲(chǔ)形式如下:01000001例:字符’

?’的ASCII代碼是3,存儲(chǔ)形式如下:00000011二、字符變量的定義和使用舉例例1:觀看下面程序的輸出結(jié)果是什么?main(){charch;ch=‘a(chǎn)’;printf(“%c”,ch);}97;main(){intch;ch=97;printf(“%c”,ch);}‘a(chǎn)’;總結(jié):整型數(shù)據(jù)和字符型數(shù)據(jù)之間通用,整型變量和字符型變量之間可以相互賦值;整數(shù)可以以字符型形式輸出,字符型數(shù)據(jù)也可以以整數(shù)形式輸出。思考題:當(dāng)給字符型變量賦整型數(shù)值時(shí),其值應(yīng)該在0-255之間,您知道為什么嗎?字符型變量使用舉例例2:當(dāng)從鍵盤輸入字符‘b’時(shí),輸出結(jié)果是什么?main(){charc;scanf(“%c”,&c);c=c-32;printf(“%c”,c);}三、變量賦初值概念:在編寫程序的時(shí)候,常常需要對(duì)變量預(yù)先設(shè)置一個(gè)值,稱為變量賦初值

如:intnumber;number=21;intnumber=21;inta,b,c;a=4;b=4;c=4;inta,b,c;a=b=c=4;inta=b=c=4;2.5各類型間的混合運(yùn)算三種基本類型整型實(shí)型字符型短整型short基本整型int長(zhǎng)整型long單精度f(wàn)loat雙精度double長(zhǎng)雙精度longdoublechar不同類型數(shù)據(jù)發(fā)生混合運(yùn)算時(shí)的轉(zhuǎn)換規(guī)則:float

double

long

unsignedchar,short

int低例如:1560+245.56+56325-’A’的結(jié)果是什么類型?返回第三章運(yùn)算符和表達(dá)式

當(dāng)變量被定義為某一種類型后,即被分配相應(yīng)的存儲(chǔ)空間,此后并不能放置一旁而不用,還需要對(duì)其進(jìn)行加工。何謂加工?加工就是指運(yùn)算,C中最常見(jiàn)的運(yùn)算有加、減、乘、除等。運(yùn)算符就是用來(lái)表示運(yùn)算的符號(hào),如“+”

、“-”、“*”、“/”

。參加運(yùn)算的數(shù)據(jù)稱為運(yùn)算量,也就是運(yùn)算對(duì)象。由運(yùn)算符把運(yùn)算對(duì)象連接起來(lái)的式子稱為表達(dá)式,如“

sum=a+b;”就是一個(gè)表達(dá)式。C語(yǔ)言中常見(jiàn)的運(yùn)算符3.1算術(shù)運(yùn)算符3.2賦值運(yùn)算符3.3關(guān)系運(yùn)算符3.4邏輯運(yùn)算符3.5位運(yùn)算符3.6逗號(hào)運(yùn)算符3.7求字節(jié)數(shù)運(yùn)算符sizeof和強(qiáng)制類型轉(zhuǎn)換運(yùn)算符3.8復(fù)習(xí)3.1算術(shù)運(yùn)算符和表達(dá)式一、常見(jiàn)的算術(shù)運(yùn)算符+-*/%

當(dāng)兩個(gè)整數(shù)相除時(shí),商的結(jié)果取整。如5/3的結(jié)果為1,-5/3的結(jié)果為-1。當(dāng)兩個(gè)除數(shù)中有一個(gè)為實(shí)數(shù)時(shí),結(jié)果為實(shí)數(shù),如5/2.0=2.5。

實(shí)現(xiàn)兩個(gè)整數(shù)的相除取余,結(jié)果的符號(hào)和被除數(shù)的符號(hào)相同。參加取余運(yùn)算的兩個(gè)數(shù)必須是整數(shù)。二、自增、自減運(yùn)算符++--1)自增運(yùn)算符++:使變量的值增1例:i++;表示使用完i之后,使i的值增1

++i;表示先使i的值增1,然后再使用i2)自減運(yùn)算符--:使變量的值減1例:i--;表示使用完i之后,使i的值減1

--i;表示先使i的值減1,然后再使用i例1:inta,b,c;a=5;b=++a;c=a++;結(jié)果:a=7;b=6;c=6;例2:inta,b,c;a=5;b=--a;c=b--;結(jié)果:a=4;b=3;c=4;三、算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性

思考題:表達(dá)式--x-a*b/c++的結(jié)果值是多少?(假設(shè)x的值為3,a的值為5,b的值為2,c的值為3)

運(yùn)算符的優(yōu)先級(jí):運(yùn)算符的優(yōu)先次序運(yùn)算符的結(jié)合性:當(dāng)優(yōu)先級(jí)相同時(shí),是自左至右或是自右至左計(jì)算(--x)-a*b/c++-1--x-a*b/c++++、--、+(取正)、-(取負(fù))*、/、%+、-自右至左自左至右自左至右number=24;3.2賦值運(yùn)算符和表達(dá)式賦值運(yùn)算符x+5;x*y;

注意:

當(dāng)賦值運(yùn)算符右邊的常量或表達(dá)式的類型和左邊變量的類型不一致時(shí),先將右邊表達(dá)式的類型轉(zhuǎn)換為和左邊相同的類型,然后再賦值。例:

floatx;

X=3;1、普通的賦值運(yùn)算符2、復(fù)合的賦值運(yùn)算符x=x+y;x+=y;復(fù)合的賦值加運(yùn)算符(1)+=(2)-=(3)*=(4)/=

(5)%=常見(jiàn)的復(fù)合的賦值運(yùn)算運(yùn)算符例如:x的值為6,

則x+=4的結(jié)果是什么?3、賦值運(yùn)算符的優(yōu)先級(jí)和結(jié)合性算術(shù)運(yùn)算符賦值運(yùn)算符結(jié)合性為自右而左例:已知a=5,b=8,n未知。求下列各表達(dá)式的值。1、n=b+8;2、n+=a*=2;3、n=a=b;3.3關(guān)系運(yùn)算符和表達(dá)式

關(guān)系運(yùn)算又稱比較運(yùn)算,就是對(duì)兩個(gè)運(yùn)算量進(jìn)行比較,判斷其比較的結(jié)果是否符合給定的條件。如果符合,則結(jié)果為“真”,用1表示;如果不符合,則結(jié)果為“假”,用0表示。1、常見(jiàn)的關(guān)系運(yùn)算符<(小于)、>(大于)、<=(小于或等于)、>=(大于或等于)、==(等于)、!=(不等于)2、關(guān)系運(yùn)算符的優(yōu)先級(jí)和結(jié)合性算術(shù)運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符自左至右自左至右自右至左例:number1=25;判斷下列表達(dá)式的值。

(1)number1>=25;(2)number1==25;

(3)number1%5==0

(4)number1!=24;(5)number1/3<23;

(6)n=number1>4;(7)number1>24>2;(8)number1+1==26;案例已知i=3,j=4,a=5,b=6,m為未知。求下列各式的值。(1)++i+j---a(2)a+b-j*a/i(3)m=-j++

3.4邏輯運(yùn)算符和表達(dá)式思考題:如何表示整數(shù)x既可以被5整除又可以被7

整除.x%5==0x%7==0&&()()邏輯運(yùn)算符”邏輯與”邏輯或(||):

一般形式a||b,a和b中任一為真,結(jié)果為真.邏輯與(&&):一般形式:a&&b;

只有當(dāng)a和b都為真時(shí),結(jié)果才為真.邏輯非(!):

一般形式!a,a為真,!a就為假;a為假,!a為真.例:判斷下列各邏輯表達(dá)式的值假設(shè)a=5,b=6,c=3,d=10;(a>b)&&(c>d);(a<b)||(c>d)!a!a&&b3||101001邏輯運(yùn)算符的優(yōu)先級(jí)和結(jié)合性

高?。ㄟ壿嫹牵┧阈g(shù)運(yùn)算符關(guān)系運(yùn)算符

&&和||

低賦值運(yùn)算符自左至右自右至左X=!a+2||x>y+2&&a==3,已知a=3,x=5,y=4,求x的值。實(shí)訓(xùn)1、若a=5,b=4,x=0,判斷下面兩個(gè)表達(dá)式的結(jié)果及x的值:

(1)0&&x=a>b(2)a>b||++x2、要判別某一年是否閏年。閏年的條件是符合下面兩個(gè)條件的其中一個(gè)就可以了:

(1)能被4整除,但不能被100整除;

(2)能被4整除,又能被400整除;(year%4==0&&year%100!=0)||(year%400==0)3.5位運(yùn)算符和表達(dá)式位運(yùn)算:就是對(duì)二進(jìn)制位進(jìn)行的運(yùn)算.C中常用的位運(yùn)算符:

&(按位與)|(按位或)^(按位異或)

~(取反)

>>(右移)

<<(左移)“按位與”運(yùn)算符‘&’

“按位與”又稱“按位乘”,即二進(jìn)位相乘?!鞍次慌c”的規(guī)則為:

0&0=0,0&1=0,1&0=0,1&1=1

例:

求-1和5按位與的結(jié)果.-1的補(bǔ)碼:1111111111111111

5的補(bǔ)碼:00000000000001010000000000000101按位與的作用:使一個(gè)存儲(chǔ)單元清零3.6逗號(hào)運(yùn)算符和表達(dá)式,逗號(hào)運(yùn)算符作用在于將若干個(gè)表達(dá)式連接起來(lái)。逗號(hào)表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,表達(dá)式3,……,表達(dá)式n整個(gè)逗號(hào)表達(dá)式的值就是最后的表達(dá)式n的值實(shí)訓(xùn)已知a=3,求下面逗號(hào)表達(dá)式的值。(1)++a,a+5,a+6(2)a=2*3,b=a-2,b-a,a+=23.7sizeof運(yùn)算符和強(qiáng)制類型轉(zhuǎn)換運(yùn)算符一、求字節(jié)數(shù)運(yùn)算符sizeof()功能:求數(shù)據(jù)在存儲(chǔ)器中所占的字節(jié)數(shù)例:sizeof(longdouble);sizeof(x+y);sizeof(123456);二、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符思考:假設(shè)現(xiàn)在需要編寫一個(gè)程序,判斷一個(gè)實(shí)數(shù)x的整數(shù)部分是否為偶數(shù),要求x從鍵盤輸入。main(){floatx;scanf(“%f”,&x);if(

)printf(“Yes!”);elseprintf(“No!”);強(qiáng)制類型轉(zhuǎn)換運(yùn)算符的一般使用形式:(類型名)(表達(dá)式);希望被轉(zhuǎn)換的對(duì)象希望轉(zhuǎn)換的類型已知x=2.5,y=3.7,求(int)x+y和(int)(x+y)的值案例1、求下列算術(shù)表達(dá)式的值(1)a+b/2%3*(int)c/d*3

設(shè)a=3.5,b=11,c=5.7,d=2(2)(int)x/y+(float)y%x

設(shè)x=8.3,y=3(3)?。▁+y)+z&&x*z-1x的值為2,y的值為3,z的值為1

運(yùn)算符小結(jié)優(yōu)先級(jí)運(yùn)算符結(jié)合性1!

~++--

+(取正)-(取負(fù))

sizeof類型轉(zhuǎn)換運(yùn)算符自右至左2*/%自左至右3+-自左至右4<<>>自左至右5<<=>>=自左至右6==!=自左至右7&自左至右8^自左至右9|自左至右10&&自左至右11||自左至右12=+=-=*=/=%=>>=<<=&=^=|=自右至左第四章輸入/輸出函數(shù)chara;輸入scanf(“%c”,&a);a=getch();01000001輸出printf(“%c”,a);putchar(a);gets();puts();#include“stdio.h”或#include<stdio.h>

4.1輸出函數(shù)putchar()和printf()一、字符輸出函數(shù)putchar()1、功能輸出一個(gè)字符2、一般形式putchar(c);可以是字符變量字符常量整型常量整型變量轉(zhuǎn)義字符putchar(c);putchar(‘c’);putchar(99);putchar(c);putchar(‘\n’);1、功能一、格式輸出函數(shù)printf()它可以將任意多個(gè)數(shù)據(jù)按各自指定的格式輸出來(lái)。例:intnumber=24;floatscore=95.5;charsex=‘m’;printf(“%d,%f,%c”,number,score,sex);輸出結(jié)果:24,95.000000,mprintf(“number=%d,score=%f,sex=%c”,number,score,sex);輸出結(jié)果:number=24,score=95.000000,sex=m二、一般形式printf(“格式控制”,輸出表列);上一頁(yè)三、格式說(shuō)明符1、%d:用來(lái)輸出十進(jìn)制int型數(shù)據(jù)%md:m是一個(gè)常數(shù),用來(lái)限定輸出數(shù)據(jù)所占的寬度。%ld:以長(zhǎng)整型形式輸出數(shù)據(jù)。

下一頁(yè)2、%u格式符輸出十進(jìn)制unsigned型數(shù)據(jù)。3、%o格式符以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù),輸出時(shí)將符號(hào)位一起轉(zhuǎn)化為八進(jìn)制數(shù)值。4、%x格式符以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù),輸出時(shí)將符號(hào)位一起轉(zhuǎn)化為十六進(jìn)制數(shù)值。實(shí)訓(xùn)main(){inta=-1;printf(“%d,%o,%8o”,a,a,a);}a在計(jì)算機(jī)中的存儲(chǔ)形式111111111111111177777輸出結(jié)果:-1,177777,1777775、%c格式符以字符形式輸出數(shù)據(jù)charch;ch=‘a(chǎn)’;printf(“%c”,ch);%dinta;a=65;printf(“%c”,a);字符型數(shù)據(jù)可以以字符形式輸出,也可以以整型形式輸出。整型數(shù)據(jù)(0—255)也可以以字符形式輸出。例1例26、%f格式符以實(shí)數(shù)形式輸出數(shù)據(jù)%f:輸出帶6位小數(shù)的實(shí)數(shù)。對(duì)于單精度實(shí)數(shù),有效位數(shù)為7位%m.nf:指定輸出數(shù)據(jù)占m列,其中有n位小數(shù)%.nf:表示帶n位小數(shù),對(duì)列寬無(wú)限制。main(){floatx=12345.1111001;printf(“%f\n”,x);printf(“%10.2f,%-10.1f,%.2f”,x,x,x);}實(shí)訓(xùn)輸出結(jié)果:12345.11132812345.1112345.112345.117、%s格式符用來(lái)輸出一個(gè)字符串printf(“%s”,”china”);8、%e格式符以指數(shù)形式輸出實(shí)數(shù)printf(“%e”,123.456);輸出為:1.23456e+02。4.2輸入函數(shù)getchar()和scanf()一、字符輸入函數(shù)getchar()1、功能:從鍵盤輸入一個(gè)字符2、一般形式:字符變量=getchar();思考題:從鍵盤輸入任一字符,如果該字符是小寫字符,將其轉(zhuǎn)換為大寫字符輸出,否則不變輸出。main(){charch;ch=

;if(ch<=‘z’&&ch>=‘a(chǎn)’)ch=ch-32;

;}

getchar()putchar()#include”stdio.h”實(shí)訓(xùn)1二、格式輸入函數(shù)scanf()思考1:如何實(shí)現(xiàn)向整型變量a中輸入數(shù)據(jù)?scanf(“%d”,&a);思考2:如何實(shí)現(xiàn)向?qū)嵭妥兞縝中輸入數(shù)據(jù)?scanf(“%f”,&b);思考3:如何實(shí)現(xiàn)向整型變量a和實(shí)型變量b中輸入數(shù)據(jù)?scanf(“%d%f”,&a,&b);1、scanf()函數(shù)的一般形式scanf(“格式控制”,地址表列);2、scanf()函數(shù)使用示例inta,b,c;scanf(“%d%d%d”,&a,&b,&c);scanf(“%d,%d,%d”,&a,&b,&c);scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);程序=數(shù)據(jù)結(jié)構(gòu)+算法數(shù)據(jù)的類型和組織形式解決問(wèn)題的方法和步驟第五章算法描述算法的方法:自然語(yǔ)言、流程圖例1:輸入兩個(gè)數(shù)a和b,要求實(shí)現(xiàn)將a和b中的數(shù)據(jù)進(jìn)行交換。算法描述125abt1、定義三個(gè)變量a、b、t2、輸入a和b的值3、t=a;a=b;b=t;4、輸出a和b5.1算法的概念和使用舉例一、三個(gè)典型實(shí)例main(){floata,b,t;scanf(“%f%f”,&a,&b);t=a;a=b;b=t;printf(“%f,%f”.a.b);}思考題:

從鍵盤輸入兩個(gè)數(shù),將這兩個(gè)數(shù)按照從小到大的順序輸出來(lái)。比如輸入5和1,則輸出結(jié)果為1,5。例2:從鍵盤輸入三個(gè)整數(shù),將這三個(gè)整數(shù)按照從大到小的順序輸出來(lái)。比如:如果輸入34、12、89;則輸出為89、34、121、定義四個(gè)變量a、b、c、t;2、輸入a、b、c的值3、如果b>a,則{t=b;b=a;a=t;}4、如果c>a,則{t=c;c=a;a=t;}5、如果c>b,則{t=c;c=b;b=t;}6、輸出a、b、c的值例3:編寫一個(gè)程序,求1×3×5×……×99

1×3×5×7×9×……×99假設(shè)用S表示乘積結(jié)果,用i表示被乘數(shù)S=1i=11、定義2個(gè)變量S和i2、S=1;i=1;3、S=S*i;i=i+2;4、如果i<=99;返回3繼續(xù)否則,轉(zhuǎn)到55、輸出s執(zhí)行算法所占用的空間資源和時(shí)間資源二、衡量算法好壞的兩個(gè)因素算法是否容易理解、調(diào)試和測(cè)試

有窮性

應(yīng)該在有限的步驟內(nèi)完成三、算法的特點(diǎn)確定性

明確而可以執(zhí)行必須有輸出有效性每一步都應(yīng)該有效而可以執(zhí)行5.2算法的流程圖表示例1:輸入兩個(gè)數(shù)a和b,要求實(shí)現(xiàn)將a和b中的數(shù)據(jù)進(jìn)行交換。用傳統(tǒng)流程圖表示。返回定義a、b、t輸入a、bt=a;a=b;b=t;輸出a、b開始結(jié)束一、算法的傳統(tǒng)流程圖表示例2:從鍵盤輸入三個(gè)整數(shù),將這三個(gè)整數(shù)按照從大到小的順序輸出來(lái)。1、定義四個(gè)變量a、b、c、t;2、輸入a、b、c的值3、如果b>a,則{t=b;b=a;a=t;}4、如果c>a,則{t=c;c=a;a=t;}5、如果c>b,則{t=c;c=b;b=t;}6、輸出a、b、c的值常用的流程圖符號(hào)開始/結(jié)束框處理框輸入/輸出框條件判斷框流程線結(jié)束定義S和iS=1;i=1S=S*I;i=i+2;i<=99Y輸出S開始例3:編寫一個(gè)程序,求1×3×5×……×99N1、定義2個(gè)變量S和i2、S=1;i=1;3、S=S*i;i=i+2;4、如果i<=99;返回3繼續(xù)否則,轉(zhuǎn)到55、輸出s傳統(tǒng)流程圖的三種基本結(jié)構(gòu)順序結(jié)構(gòu)操作A操作B操作C選擇結(jié)構(gòu)操作D操作A條件P操作B操作C操作D循環(huán)結(jié)構(gòu)操作A條件P操作B操作CYNYN實(shí)訓(xùn)(請(qǐng)用傳統(tǒng)流程圖表示下列兩個(gè)題目的算法)1、當(dāng)從鍵盤輸入一個(gè)字符時(shí),實(shí)現(xiàn)判斷該字符是大寫字符還是小寫字符。如果是大寫字符,輸出“UPWORD”,并將其轉(zhuǎn)換為小寫字符輸出;如果是小寫字符,則輸出“DOWNWORD”,并將其轉(zhuǎn)換為大寫字符輸出。

2、整數(shù)累乘:如果求1×2×3×4×5×……×100的結(jié)果。二、算法的N-S流程圖表示定義a、b、t輸入a、bt=a;a=b;b=t;輸出a、b開始結(jié)束傳統(tǒng)流程圖定義a、b、t輸入a、bt=a;a=b;b=t;輸出a、bN-S流程圖輸入a、b、cb<aYNt=b;b=a;a=t;c<aYNt=c;c=a;a=t;c<bYNt=c;c=b;b=t;輸出a、b、c從鍵盤輸入三個(gè)整數(shù),將這三個(gè)整數(shù)按照從大到小的順序輸出來(lái)。結(jié)束定義S和iS=1;i=1;S=S*I;i=i+2;i<=99Y輸出S開始例3:編寫一個(gè)程序,求1×3×5×……×99定義s和iS=1;i=1;輸出SS=S*I;i=i+2;i<=99傳統(tǒng)流程圖N-S流程圖總結(jié):傳統(tǒng)流程圖的三種基本結(jié)構(gòu)順序結(jié)構(gòu)操作A操作B操作C操作D操作A操作B操作C操作D選擇結(jié)構(gòu)操作A條件P操作B操作C操作DYN操作A條件PYN操作B操作C操作D循環(huán)結(jié)構(gòu)操作A條件P操作B操作CYN操作A條件P操作B操作C1、奇偶數(shù)識(shí)別:要求從鍵盤輸入一個(gè)整數(shù),判別其是奇數(shù)或偶數(shù),如果是奇數(shù),輸出“Itisanoddnumber!”;如果是偶數(shù),輸出“Itisanevennumber!”。2、整數(shù)累乘:如果求1×2×3×4×5×……×100的結(jié)果。實(shí)訓(xùn)

(請(qǐng)用N-S流程圖表示下列兩個(gè)題目的算法)編寫一個(gè)程序,要求從鍵盤輸入一個(gè)數(shù),能夠輸出該數(shù)的所有公約數(shù)。綜合實(shí)訓(xùn)6.1、順序結(jié)構(gòu)程序設(shè)計(jì)實(shí)例導(dǎo)入:

編寫一個(gè)程序,實(shí)現(xiàn)這樣的功能:要求從鍵盤輸入任一八進(jìn)制數(shù)字,可以實(shí)現(xiàn)將該數(shù)字轉(zhuǎn)換為十進(jìn)制數(shù)字,比如當(dāng)輸入八進(jìn)制4520時(shí),輸出4520所對(duì)應(yīng)的十進(jìn)制數(shù)2384。第六章結(jié)構(gòu)化程序設(shè)計(jì)(4520)8=4*8*8*8+5*8*8+2*80+解析:4520/10004520%1000/1004520%100/10千位數(shù)4:百位數(shù)5:十位數(shù)2:個(gè)位數(shù)0:4520%10求一個(gè)四位八進(jìn)制數(shù)o_number所對(duì)應(yīng)的十進(jìn)制d_number,則需先求出o_number的千位、百位、十位、個(gè)位數(shù),假如分別用a、b、c、d表示。a=o_number/1000;b=o_number%1000/100;c=o_number%100/10;d=o_number%10;d_number=a*8*8*8+b*8*8+c*8+d;算法描述1、定義變量into_number1,d_number2,a,b,c,d;2、輸入o_number1Lscanf(“%d”,&number);3、求出a、b、c、d:a=o_number/1000;b=o_number%1000/100;c=o_number%100/10;d=o_number%10;4、求出d_number2

:d_number=a*8*8*8+b*8*8+c*8+d;5、輸出d_number2

:printf(“%d”,d_number);完整的程序main(){into_number,d_number,a,b,c,d;

scanf("%d",&o_number);a=o_number/1000;b=o_number%1000/100;c=o_number%100/10;d=o_number%10;d_number=a*8*8*8+b*8*8+c*8+d;

printf(“O:%d,D:%d",o_number,d_number);}printf(“pleaseinputaoctalnumber:\n”);getch();實(shí)訓(xùn)編寫一個(gè)體重測(cè)量?jī)x:要求從鍵盤輸入身高和體重后,能夠計(jì)算出體重指數(shù)。體重指數(shù)=體重(kg)/(身高)2;算法描述:1、定義3個(gè)變量:floatindex,weight,height;2、輸入體重:scanf(“%f”,&weight);3、輸入身高:scanf(“%f”,&height);4、計(jì)算指數(shù):index=weight/(height*height);5、輸出指數(shù):printf(“%f”,index);完整程序main(){floatweight,height,index;

scanf("%f",&weight);

scanf("%f",&height);index=weight/(height*height);

printf("Theindexofyourweightis:%f",index);}printf(“\npleaseinputyourweight:");printf(“\npleaseinputyourheight:");getch();總結(jié):1、順序結(jié)構(gòu)是最簡(jiǎn)單的一種結(jié)構(gòu),它按照操作執(zhí)行的先后順序來(lái)編寫程序。2、編程應(yīng)該遵循:先根據(jù)功能要求設(shè)計(jì)出算法(用自然語(yǔ)言描述或用流程圖描述),然后再根據(jù)算法編寫程序。3、程序應(yīng)該結(jié)構(gòu)清晰、界面美觀、容易操作

編寫一個(gè)體重測(cè)量?jī)x:要求從鍵盤輸入身高和體重后,能夠計(jì)算出體重指數(shù)。

體重指數(shù)=體重(kg)/(身高)2;要求實(shí)現(xiàn)這樣的判斷:如果體重指數(shù)<25,屬于正常;

否則屬于肥胖.實(shí)訓(xùn):體重測(cè)量?jī)x改進(jìn)版16.2、選擇結(jié)構(gòu)程序設(shè)計(jì)如果index<25,輸出“Youareright!”否則輸出“Youarefat!”main(){floatweight,height,index;

scanf("%f",&weight);

scanf("%f",&height);index=weight/(height*height);

printf("Theindexofyourweightis:%f",index);

}printf(“\npleaseinputyourweight:");printf(“\npleaseinputyourheight:");if(index<25)printf(“Youareright!”);elseprintf(“Youarefat!”);一、if語(yǔ)句的使用1、if語(yǔ)句的標(biāo)準(zhǔn)形式if(表達(dá)式)語(yǔ)句1else語(yǔ)句2表達(dá)式語(yǔ)句1語(yǔ)句2例:如果工資salary大于1600元,則多余部分按15%征稅,否則按5%征稅.If(salary>1600)revenue=(salary-1600)*0.15;elserevenue=(salary-1600)*0.05;YN

從鍵盤輸入一個(gè)數(shù),求出該數(shù)絕對(duì)值所對(duì)應(yīng)的開方開始定義變量a,b,c輸入aa>=0b=ab=-ac=sqrt(b)輸出c結(jié)束YN算法1實(shí)訓(xùn)#include"math.h"main(){floata,b,c;printf("\npleaseinputanumber:\n");scanf("%f",&a);

if(a>=0)b=a;elseb=-a;c=sqrt(b);printf("Thesqrtof%fis%f\n",a,c);getch();}程序1開始定義變量a,b,c輸入aa<=0b=ab=-ac=sqrt(b)輸出c結(jié)束N算法2Y程序2#include"math.h"main(){floata,b,c;printf("\npleaseinputanumber:\n");scanf("%f",&a);b=a;

if(a<=0)b=-a;c=sqrt(b);printf(“Thesqrtof%fis%f\n",a,c);getch();}2、if語(yǔ)句最簡(jiǎn)單的形式if(表達(dá)式)語(yǔ)句表達(dá)式語(yǔ)句1NYmain(){inta,b,max;scanf(“%d%d”,&a,&b);max=a;if(b>max)max=b;printf(“max=%d”,max);}思考:當(dāng)輸入45和32時(shí),下面這個(gè)程序的輸出結(jié)果是什么?體重測(cè)量?jī)x改進(jìn)版2編寫一個(gè)體重測(cè)量?jī)x:要求從鍵盤輸入身高和體重后,能夠計(jì)算出體重指數(shù)。

體重指數(shù)=體重(kg)/(身高)2;要求實(shí)現(xiàn)這樣的判斷:

偏瘦:體重指數(shù)<18

正常:18<=體重指數(shù)<25;

微胖:25<=體重指數(shù)<30;

較胖:30<=體重指數(shù)<35;

肥胖:35<=體重指數(shù)<40;

很胖:體重指數(shù)>=40;

如果體重指數(shù)小于18,偏瘦否則如果體重指數(shù)小于25,標(biāo)準(zhǔn)

否則如果體重指數(shù)小于30,微胖

否則如果體重指數(shù)小于35,較胖

否則如果體重指數(shù)小于40,肥胖

否則很胖3、if語(yǔ)句的第三種形式if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3

elseif(表達(dá)式4)語(yǔ)句4else表達(dá)式5

表達(dá)式1語(yǔ)句1YN表達(dá)式2語(yǔ)句2YN表達(dá)式3Y語(yǔ)句3N表達(dá)式4Y語(yǔ)句4N語(yǔ)句5從鍵盤輸入一個(gè)學(xué)生的分?jǐn)?shù),要求實(shí)現(xiàn)這樣的判斷功能:如果分?jǐn)?shù)大于100,輸出”Inputerror!”如果分?jǐn)?shù)介于100到90之間,輸出”VeryGood!”如果分?jǐn)?shù)介于80到90只,輸出”Good!”如果分?jǐn)?shù)介于70到80之間,輸出”Middle”如果分?jǐn)?shù)介于60到70之間,輸出”Pass”如果分?jǐn)?shù)小于60,輸出”NoPass!”實(shí)訓(xùn)算法1描述1、定義一個(gè)變量score;2、輸入score的值;3、如果score>100,輸出“Inputerror!”4、否則如果score>=90,輸出“VeryGood!”5、否則如果score>=80,輸出“Good!”6、否則如果score>=70,輸出“Middle!”7、否則如果score>=60,輸出“Pass!”8、否則輸出“NoPass!”9、否則輸出“Inputerror!main(){floatscore;printf("pleaseinputanumber:\n");scanf("%f",&score);

if(score>100)printf("Inputerror!");elseif(score>=90)printf("verygood!");elseif(score>=80)printf("good!"); elseif(score>=70)printf("middle!"); elseif(score>=60)printf("pass!"); elseprintf("nopass!"); getch();}_x001A_elseif(score>=0)printf(“Nopass!”);elseprintf(“Inputerror!”);}總結(jié)if語(yǔ)句的三種基本形式if(表達(dá)式)語(yǔ)句1else語(yǔ)句21、最基本的形式2、最簡(jiǎn)單的形式if(表達(dá)式)語(yǔ)句3、層次形式if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3

elseif(表達(dá)式4)語(yǔ)句4else表達(dá)式5

實(shí)訓(xùn)假如從鍵盤輸入67,下面這個(gè)程序的結(jié)果是什么,如果輸入89,90,101呢?main(){floatscore;scanf("%f",&score);if(score>=60)if(score>=90)printf("A");elseprintf("B");elseif(score>=0)printf("C");elseprintf("Inputerror!");}_x001A_二、if語(yǔ)句的嵌套if(表達(dá)式1)if(表達(dá)式2)語(yǔ)句1else語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3else語(yǔ)句4一般使用形式假如從鍵盤輸入5,下面程序的輸出結(jié)果是什么?main(){intx,y;scanf("%d",&x);if(x>=0)if(x>10)y=x*x-5;elseif(x>5)y=x*x*x+2; elsey=x;elseif(x<-10)y=x*x+5;elsey=x*x+11;printf("%d",y);}_x001A_思考題某單位的工資是這樣計(jì)算的:

工資=基本工資+工齡工資;工齡為1年:工齡工資=基本工資*0.1;工齡為2—3年:工齡工資=基本工資*0.25;工齡為4—5年:工齡工資=基本工資*0.5;工齡為6—8年:工齡工資=基本工資*0.8;工齡大于8年的:工齡工資=基本工資*工齡*0.1;基本工資為1500元。要求從鍵盤輸入教師的工齡,可以根據(jù)工齡計(jì)算該教師的基本工資。使用if語(yǔ)句來(lái)編寫如下的程序:實(shí)訓(xùn)算法描述:1、定義兩個(gè)實(shí)型變量:工資salary、工齡工資a_salary;定義一個(gè)整型變量:工齡age;2、輸入工齡age;3、如果age==1;a_salary=1500*0.1;4、如果2<=age<=3;a_salary=1500*0.25;5、如果4<=age<=5;a_salary=1500*0.5;6、如果6<=age<=8;a_salary=1500*0.8;7、如果8<=age;a_salary=1500*age*0.1;8、salary=1500+a_salary;9、輸出salary;main(){floatsalary,a_salary;intage;scanf("%d",&age);if(age==1)a_salary=1500*0.1;elseif(age>=2&&age<=3)a_salary=1500*0.25;elseif(age>=4&&age<=5)a_salary=1500*0.5; elseif(age>=6&&age<=8)a_salary=1500*0.8; elseif(age>8)a_salary=1500*age*0.1;salary=1500+a_salary;printf("%.1f",salary);}_x001A_main(){floatsalary,a_salary;intage;scanf("%d“,&age);

switch(age){case1:a_salary=1500*0.1;break;case2:a_salary=1500*0.25;break;case3:a_salary=1500*0.25;break;case4:a_salary=1500*0.5;break;case5:a_salary=1500*0.5;break;case6:a_salary=1500*0.8;break;case7:a_salary=1500*0.8;break;case8:a_salary=1500*0.8;break;default:a_salary=1500*age*0.1;}salary=1500+a_salary;printf("salary:%.1f",salary);}復(fù)習(xí)判斷一個(gè)學(xué)生成績(jī)的“優(yōu)、良、中、差”:假如從鍵盤輸入的字母是‘A’,輸出評(píng)語(yǔ)“YouareExcellent!”;如果輸入‘B’,輸出評(píng)語(yǔ)“Youarewell!”;如果輸入‘C’,輸出評(píng)語(yǔ)“Youarepassing!”;如果輸入‘D’,輸出評(píng)語(yǔ)“Youarenotpassing!”。如果輸入的不是這四個(gè)字母,則出現(xiàn)提示“Inputerror!”請(qǐng)編寫一個(gè)程序,實(shí)現(xiàn)該判斷功能。1、定義一個(gè)字符型變量score;2、輸入字符score;3、如果score==‘A’,輸出“Excellent!”4、如果score==‘B’,輸出“well!”5、如果score==‘C’,輸出“pass!”6、如果score==‘D’,輸出“Notpass!”7、如果以上都不是,則輸出“Inputerror!”算法描述If語(yǔ)句實(shí)現(xiàn)main(){charscore;scanf(“%c”,&score);if(score==‘A’)printf(“excellent!”);elseif(score==‘B)printf(“well!”);elseif(score==‘C’)printf(“pass!”);elseif(score==‘D’)printf(“Nopass”);elseprintf(“Inputerror!”);}switch語(yǔ)句實(shí)現(xiàn)main(){charscore;scanf(“%c”,&score);switch(score){case‘A’:printf(“Excellent!”);case‘B’:printf(“Well!”);case‘C’:printf(“Pass!”);case‘D’:printf(“Nopass!”);default:printf(“Inputerror!”);}}break;break;break;break;三、switch語(yǔ)句的使用switch(表達(dá)式)

{case常量表達(dá)式:語(yǔ)句1case常量表達(dá)式:語(yǔ)句2……case常量表達(dá)式:語(yǔ)句ndefault:語(yǔ)句n+1}四、條件運(yùn)算符的使用程序段1if(a>b)max=a;elsemax=b;max=(a>b)

?a:

b一般使用形式:

表達(dá)式1?表達(dá)式2:表達(dá)式3程序段2if(x>=0)y=x;elsey=-X;y=(X>=0)?x:-x;優(yōu)先級(jí)僅僅比賦值運(yùn)算符和逗號(hào)運(yùn)算符高,自右至左的結(jié)合性.

某企業(yè)發(fā)放的年終獎(jiǎng)金根據(jù)職工該年的積分計(jì)算。積分等于或低于0分的,獎(jiǎng)金為0;積分在1到19分之間的,獎(jiǎng)金為積分?jǐn)?shù)乘以100;積分在20到29之間的,獎(jiǎng)金為積分?jǐn)?shù)乘以150;積分在30到39之間的,獎(jiǎng)金為積分?jǐn)?shù)乘以200;積分在40到49分之間的,獎(jiǎng)金為積分?jǐn)?shù)乘以250;積分在50分以上的,獎(jiǎng)金都為積分?jǐn)?shù)乘以300。編寫一程序,從鍵盤輸入積分?jǐn)?shù),可以求出該職工的年終獎(jiǎng)。分別用if和switch語(yǔ)句來(lái)實(shí)現(xiàn)綜合實(shí)訓(xùn)6.3、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)所謂循環(huán),就是對(duì)一段程序重復(fù)執(zhí)行多次循環(huán)體語(yǔ)句:程序中需要被重復(fù)執(zhí)行的部分循環(huán)的初始條件:循環(huán)的執(zhí)行條件:i=0;i<50;實(shí)現(xiàn)循環(huán)的三種方法:while語(yǔ)句do_while語(yǔ)句for語(yǔ)句while語(yǔ)句while語(yǔ)句的一般形式:while(循環(huán)的執(zhí)行條件){循環(huán)體語(yǔ)句

}條件循環(huán)體YNprintf("pleaseinputthescoreofexam:");scanf("%f",&E_score);printf("\npleaseinputthescoreofperformance:");scanf("%f",&P_score);printf("\npleaseinputthescoreof:");scanf("%f",&M_score);F_score=E_score*0.4+P_score*0.3+M_score*0.3;printf("%.1f",F_score);while(i<50)

{

}i=0;i=i+1;main(){floatE_score,P_score,M_score,F_score;int}do_while語(yǔ)句do_while語(yǔ)句的一般形式是:do{

循環(huán)體語(yǔ)句

}while(循環(huán)的執(zhí)行條件);條件循環(huán)體YNIf(number%i==0)printf(“%6d”,i);while(i<sqrt(number));i=2;i=i+1;{}main(){intnumber,i;scanf(“%d”,&number);}#include”math.h”dofor語(yǔ)句for語(yǔ)句的一般形式是:for(循環(huán)變量初始值;循環(huán)的條件;循環(huán)變量變化)

循環(huán)體語(yǔ)句main(){intnumber,i;scanf(“%d”,&number);for(i=2;i<sqrt(number);i++)if(number%i==0)printf(“%6d”,i);}#include”math.h”循環(huán)變量賦初始值循環(huán)條件循環(huán)體語(yǔ)句循環(huán)變量變化YNfor(循環(huán)變量初始值;循環(huán)的條件;循環(huán)變量變化)

循環(huán)體語(yǔ)句綜合實(shí)訓(xùn)編寫一個(gè)程序,輸出1到200間所有可以被18整除的數(shù)。1、如果1%18==0,輸出1;2、如果2%18==0,輸出2;3、如果3%18==0,輸出3;4、如果4%18==0,輸出4;5、如果5%18==0,輸出5;200、如果200%18==0,輸出200;If(i%18==0)printf(“%d”,i);i=1;i<=200;i++for(

)inti;main(){}變形1:If(i%18==0)printf(“%d”,i);i<=200;i++for(

;

)inti;main(){}i=1;結(jié)論1:表達(dá)式1可以省略,但是分號(hào)不能省.If(i%18==0)printf(“%d”,i);i=1;i++for(

;

)inti;main(){}變形2:{If(i>200)break;}結(jié)論2:表達(dá)式2也可以省略,如果省略,分號(hào)不能省,而且需要在循環(huán)體中加使循環(huán)能夠結(jié)束的語(yǔ)句If(i%18==0)printf(“%d”,i);i=1;i<=200;for(

)inti;main(){變形3:}{i++;}結(jié)論3:表達(dá)式3也可以省略,如果省略,分號(hào)不能省,應(yīng)該在循環(huán)體中加入使循環(huán)趨于結(jié)束的語(yǔ)句If(i%18==0)printf(“%d”,i);i=1;i++;for(;;;)inti;main(){}If(i>200)break;{}變形4:結(jié)論4:三個(gè)表達(dá)式都可以省略,但是分號(hào)不能省.循環(huán)結(jié)構(gòu)程序設(shè)計(jì)復(fù)習(xí)和訓(xùn)練實(shí)例2:

百錢百雞實(shí)例1:

兔子繁殖問(wèn)題兔子繁殖問(wèn)題題目:一個(gè)飼養(yǎng)場(chǎng)引進(jìn)一對(duì)剛出生的新品種兔子,這對(duì)兔子從出生的第三個(gè)月開始,每月新生一對(duì)兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,問(wèn)到第三年末,該飼養(yǎng)場(chǎng)共有兔子多少對(duì)?

解析1123581321f1f22、printf(“%d%d”,f1,f2);f13、f1=f1+f2;f2f2=f1+f2;4、printf(“%d%d”,f1,f2);f15、f1=f1+f2;f2f2=f1+f2;循環(huán)體迭代:

不斷以新值代替舊值的操作Fibonacci數(shù)列1、f1=1;f2=1;printf(“%ld,%ld”,f1,f2);f1=f1+f2;f2=f1+f2;while(i<=18)i=1;i=i+1;f1=1;f2=1;inti;longf1,f2;main()/*循環(huán)控制變量初始化*/

溫馨提示

  • 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)論