版權(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è)技術(shù)學(xué)院?jiǎn)卧怀绦蛟O(shè)計(jì)基礎(chǔ)
教學(xué)目標(biāo)
【知識(shí)目標(biāo)】1.了解C語(yǔ)言的特點(diǎn),初步熟悉C語(yǔ)言程序開發(fā)過(guò)程和VC++上機(jī)步驟;2.理解語(yǔ)句的概念,了解C語(yǔ)言的可執(zhí)行語(yǔ)句和return語(yǔ)句;3.領(lǐng)會(huì)標(biāo)識(shí)符的命名規(guī)則、C函數(shù)的定義和結(jié)構(gòu);4.掌握C語(yǔ)言程序的結(jié)構(gòu)、主函數(shù)的結(jié)構(gòu)和程序執(zhí)行的過(guò)程;5.理解函數(shù)的定義、調(diào)用、聲明及三者之間的關(guān)系和區(qū)別,理解參數(shù)傳遞的過(guò)程;單元一程序設(shè)計(jì)基礎(chǔ)
【知識(shí)目標(biāo)】6.理解和掌握整型常量、實(shí)型常量、字符常量、字符串常量及其表示方法和符號(hào)常量的定義及使用;7.掌握變量的定義、賦值和初始化;8.了解整型變量、實(shí)型變量、字符型變量在內(nèi)存中的存儲(chǔ)形式、存儲(chǔ)長(zhǎng)度和取值范圍;9.弄清自動(dòng)變量、靜態(tài)變量和外部變量的生存周期和作用域;10.熟練掌握算術(shù)運(yùn)算、賦值類運(yùn)算等各種運(yùn)算的運(yùn)算規(guī)則、運(yùn)算符的優(yōu)先級(jí)別和結(jié)合方向;11.領(lǐng)會(huì)算術(shù)表達(dá)式、賦值表達(dá)式和逗號(hào)表達(dá)式的值及計(jì)算過(guò)程。單元一程序設(shè)計(jì)基礎(chǔ)
教學(xué)目標(biāo)
【能力目標(biāo)】1.初步熟悉VC++程序開發(fā)環(huán)境;2.能夠在所編寫的程序中正確的定義和使用變量;3.能夠用C語(yǔ)言表達(dá)式表達(dá)實(shí)際問(wèn)題,模仿編寫簡(jiǎn)單應(yīng)用問(wèn)題的程序代碼;4.能夠初步對(duì)C語(yǔ)言程序進(jìn)行調(diào)試。引例描述
單元一程序設(shè)計(jì)基礎(chǔ)
求給定三位整數(shù)的各位數(shù)碼。對(duì)給定的一個(gè)三位整數(shù),求出這個(gè)三位數(shù)的各位上的數(shù)碼,如:386,求得的結(jié)果是:百位數(shù)碼是3,十位數(shù)碼是8,個(gè)位數(shù)碼是6。引例演示
1.1C語(yǔ)言程序開發(fā)過(guò)程
一、C語(yǔ)言的特點(diǎn)1.使用簡(jiǎn)潔、靈活、方便2.運(yùn)算符豐富、表達(dá)能力強(qiáng)3.?dāng)?shù)據(jù)類型豐富4.以函數(shù)作為模塊單位5.允許直接訪問(wèn)物理地址6.生成目標(biāo)代碼質(zhì)量高7.可移植性好
1.1C語(yǔ)言程序開發(fā)過(guò)程
二、程序開發(fā)過(guò)程
1.編輯2.編譯3.連接4.執(zhí)行
編輯編譯連接執(zhí)行編寫輸入源程序
.cpp
.obj
.exe結(jié)果1.1C語(yǔ)言程序開發(fā)過(guò)程
三、VisualC++上機(jī)步驟
第一步:進(jìn)入visualC++6.0用戶界面。第二步:建立項(xiàng)目文件。第三步:建立源程序文件。第四步:編譯源程序。第五步:生成可執(zhí)行文件。第六步:執(zhí)行程序。【例1-1】求兩個(gè)整數(shù)的和的c語(yǔ)言程序如下,對(duì)其進(jìn)行編輯、編譯、連接、執(zhí)行。1.1C語(yǔ)言程序開發(fā)過(guò)程
#include<stdio.h>intSum(intx,inty);intmain(){ inta,b,s; printf("請(qǐng)輸入兩個(gè)整數(shù):");
scanf("%d%d",&a,&b); s=Sum(a,b); printf("兩個(gè)整數(shù)和是:%d\n",s); return0;}intSum(intx,inty){ intz; z=x+y;
returnz;}1.2函數(shù)及其結(jié)構(gòu)
一、函數(shù)的定義(一)語(yǔ)句1.說(shuō)明語(yǔ)句2.可執(zhí)行語(yǔ)句⑴表達(dá)式語(yǔ)句⑵函數(shù)調(diào)用語(yǔ)句⑶空語(yǔ)句⑷復(fù)合語(yǔ)句⑸流程控制語(yǔ)句
1.2函數(shù)及其結(jié)構(gòu)
一、函數(shù)的定義(二)函數(shù)的定義函數(shù)定義的一般格式:返回值類型函數(shù)名(參數(shù)類型1形式參數(shù)1,…,參數(shù)類型N形式參數(shù)N){ 數(shù)據(jù)定義部分 數(shù)據(jù)操作部分
}
標(biāo)識(shí)符的命名規(guī)則:以字母或下劃線開頭,由字母、數(shù)字、下劃線組成。1.2函數(shù)及其結(jié)構(gòu)
二、函數(shù)調(diào)用1.函數(shù)調(diào)用的一般格式
被調(diào)函數(shù)名(實(shí)際參數(shù)表)其中,實(shí)際參數(shù)簡(jiǎn)稱為實(shí)參,實(shí)參表可由一個(gè)或多個(gè)實(shí)參組成,但必須與形參的個(gè)數(shù)和類型一致,兩個(gè)實(shí)參之間用逗號(hào)分隔。2.參數(shù)傳遞
在進(jìn)行函數(shù)調(diào)用時(shí),把實(shí)參的值傳遞給對(duì)應(yīng)的形參,所以,每個(gè)實(shí)參在函數(shù)調(diào)用之前都必須有確定的值。3.函數(shù)調(diào)用的作用1.2函數(shù)及其結(jié)構(gòu)
三、函數(shù)聲明1.函數(shù)聲明的格式
類型標(biāo)識(shí)符函數(shù)名(形參表);其中⑴函數(shù)聲明是一個(gè)說(shuō)明語(yǔ)句必須在結(jié)尾加分號(hào),其它與函數(shù)定義中的函數(shù)頭完全相同。⑵如果被調(diào)用函數(shù)寫在主調(diào)函數(shù)之前,函數(shù)聲明可省略不寫,但應(yīng)該養(yǎng)成書寫函數(shù)聲明的良好習(xí)慣。2.函數(shù)聲明的作用1.2函數(shù)及其結(jié)構(gòu)
四、return語(yǔ)句
1.return語(yǔ)句的一般格式
return(表達(dá)式);其中⑴一對(duì)圓括號(hào)可省略不寫。⑵當(dāng)函數(shù)沒(méi)有返回值時(shí),表達(dá)式甚至整個(gè)返回語(yǔ)句可省略不寫。2.return語(yǔ)句的作用
使程序流程從被調(diào)函數(shù)返回到主調(diào)函數(shù)的函數(shù)調(diào)用處,并將被調(diào)函數(shù)的返回值帶回到函數(shù)調(diào)用處。1.2函數(shù)及其結(jié)構(gòu)
五、主函數(shù)的結(jié)構(gòu)C語(yǔ)言的主函數(shù)的一般格式:intmain(){ 數(shù)據(jù)定義 數(shù)據(jù)輸入 函數(shù)調(diào)用 數(shù)據(jù)輸出 return0;}1.2函數(shù)及其結(jié)構(gòu)
六、程序的執(zhí)行過(guò)程
C語(yǔ)言程序總是從主函數(shù)main()開始執(zhí)行,依次執(zhí)行主函數(shù)函數(shù)體內(nèi)的每一個(gè)可執(zhí)行語(yǔ)句,直到最后一個(gè)右花括號(hào)程序才執(zhí)行完畢。1.2函數(shù)及其結(jié)構(gòu)
七、注釋在VC++環(huán)境中,注釋有兩種:1.以/*開頭,以*/結(jié)束,中間寫待注釋的內(nèi)容。2.以//開頭,在其后寫待注釋的內(nèi)容。注釋的作用:增強(qiáng)程序的可讀性和用于對(duì)程序進(jìn)行調(diào)試。1.2函數(shù)及其結(jié)構(gòu)
【例1-2】以下C語(yǔ)言程序的功能是:對(duì)用戶輸入的矩形邊長(zhǎng)求矩形的周長(zhǎng)。體會(huì)函數(shù)定義、調(diào)用、聲明和注釋的使用,理解程序執(zhí)行和參數(shù)傳遞過(guò)程。
程序執(zhí)行和參數(shù)傳遞過(guò)程:#include<stdio.h>intPerimeter(intx,inty);//函數(shù)Perimeter的聲明intmain(){ intlength,wide,pmt; printf("請(qǐng)輸入矩形的長(zhǎng)和寬:"); scanf("%d%d",&length,&wide);//假設(shè)用戶輸入53 pmt=;
printf("矩形的周長(zhǎng)是:%d\n",pmt); return0;}/*以下是函數(shù)Perimeter的定義*/intPerimeter(intx,inty){ intz; z=;
returnz;}lengthwide**pmt*53Perimeter(length,wide)x*y*z*532*x+2*y1616//函數(shù)調(diào)用161.3數(shù)據(jù)描述一、常量(一)整型常量及表示法1.十進(jìn)制整型常量:2.十進(jìn)制長(zhǎng)整型常量:3.八進(jìn)制整型常量:4.八進(jìn)制長(zhǎng)整型常量:5.十六進(jìn)制整型常量:6.十六進(jìn)制長(zhǎng)整型常量:用數(shù)碼0~9表示的十進(jìn)制整數(shù)在十進(jìn)制整型常量后加小寫字母l或大寫字母L表示的數(shù)以數(shù)字0開頭用數(shù)碼0~7表示的整數(shù),開頭的數(shù)字0代表所表示的數(shù)為八進(jìn)制數(shù)在八進(jìn)制整型常量后加小寫字母l或大寫字母L表示的數(shù)以數(shù)字0和小寫字母x或大寫字母X開頭,用數(shù)碼0~9或小寫字母a~f或大寫字母A~F表示的十六進(jìn)制整數(shù),0x代表所表示的數(shù)為十六進(jìn)制數(shù)在十六進(jìn)制整型常量后加小寫字母l或大寫字母L表示的數(shù)【示例】32,-7等都是十進(jìn)制整型常量。【示例】64L,65783l等都是十進(jìn)制長(zhǎng)整型常量?!臼纠?27,036,-015等都是合法的八進(jìn)制整型常量,而049是不合法的八進(jìn)制整型常量,因?yàn)椋?49中有數(shù)碼9?!臼纠?32l,057L等都是八進(jìn)制長(zhǎng)整型常量?!臼纠?xa8,0X59,-0X39等都是十六進(jìn)制整型常量,而0xag,2f等都不是合法的十六進(jìn)制整型常量,因?yàn)?xag中有符號(hào)g;2f前沒(méi)有0x?!臼纠?XFFl,0x64L等都是十六進(jìn)制長(zhǎng)整型常量。1.3數(shù)據(jù)描述一、常量(二)實(shí)型常量及表示法1.十進(jìn)制小數(shù)形式:由數(shù)碼0~9、正負(fù)號(hào)和小數(shù)點(diǎn)(必須有小數(shù)點(diǎn))組成的十進(jìn)制小數(shù)表示的實(shí)數(shù)。2.指數(shù)形式:由尾數(shù)、字母e或E、階碼三部分組成,其中尾數(shù)為十進(jìn)制小數(shù)或整數(shù),階碼為1位或2位的十進(jìn)制(有符號(hào))整數(shù)?!臼纠?.14,-0.271,0.0,0.,.6等都是十進(jìn)制小數(shù)形式的實(shí)型常量?!臼纠?.14159e2表示十進(jìn)制數(shù)3.14159×102,31415.9E-2表示十進(jìn)制數(shù)31415.9×10-2,它們都表示十進(jìn)制小數(shù)314.159;1e03表示十進(jìn)制數(shù)1×103,這里的尾數(shù)1不能省,而E03,-2e314都是不合法的實(shí)型常量,因?yàn)镋03中缺少尾數(shù);-2e314中階碼是3位整數(shù),超過(guò)了階碼的范圍。1.3數(shù)據(jù)描述一、常量(三)字符型常量及表示法
1.字符型常量:用單引號(hào)括起來(lái)的單一字符(包括轉(zhuǎn)義字符)稱為字符型常量?!臼纠?a','A','2','\n','\101'等都是字符型常量,其中'\n','\101'都是轉(zhuǎn)義字符,而''','\'都是不合法的字符型常量,對(duì)于單撇號(hào)和反斜杠必須用轉(zhuǎn)義字符來(lái)表示。1.3數(shù)據(jù)描述一、常量(三)字符型常量及表示法
2.轉(zhuǎn)義字符:⑴以反斜杠“\”開頭后跟一個(gè)規(guī)定的字母代表一個(gè)控制字符;⑵\\代表反斜杠字符“\”,\'代表單撇號(hào)字符“'”;⑶以反斜杠開頭后跟1~3位八進(jìn)制數(shù)代表ASCII碼值為該八進(jìn)制數(shù)的字符(此方法可表示ASCII字符集中的任一字符);⑷以反斜杠和小寫字母x開頭,即以\x開頭,后跟1~2位十六進(jìn)制數(shù)代表ASCII碼值為該十六進(jìn)制數(shù)的字符(也可表示ASCII字符集中的任一字符)。
字符形式含義ASCII值(十進(jìn)制)\n回車換行,將當(dāng)前光標(biāo)位置移到下一行的開頭10\t水平跳格(跳到下一個(gè)制表區(qū)的起始位置)9\b退格,光標(biāo)前移一列,光標(biāo)經(jīng)過(guò)位置不變8\r回車(不換行)13\f換頁(yè)12\\反斜杠字符 92\′單引號(hào)(撇號(hào))字符39\〞雙引號(hào)字符34\ddd1到3位8進(jìn)制數(shù)代表的字符\xhh以x開頭的1到2位16進(jìn)制數(shù)代表的字符1.3數(shù)據(jù)描述一、常量(四)字符串常量及表示法
字符串常量:用雙撇號(hào)括起來(lái)的字符序列稱為字符串常量,簡(jiǎn)稱字符串。字符串中含字符的個(gè)數(shù)稱為該字符串的長(zhǎng)度?!臼纠?Howdoyoudo","A","He\154lo.\n"都是字符串常量,它們的長(zhǎng)度分別是13,1,7,應(yīng)注意:\154和\n都是轉(zhuǎn)義字符,都只代表一個(gè)字符。1.3數(shù)據(jù)描述一、常量(五)符號(hào)常量
符號(hào)常量的定義方法:在程序的開頭,使用如下的編譯預(yù)處理命令:
#define符號(hào)常量常量1.3數(shù)據(jù)描述
【例1-3】符號(hào)常量的使用——求圓的面積。
#include<stdio.h>#definePI3.14159doubleArea(doubler);intmain(){ doubleRadii,s; printf("請(qǐng)輸入圓的半徑:"); scanf("%lf",&Radii); s=Area(Radii); printf("半徑為%lf的圓的面積是%lf\n",Radii,s); return0;}doubleArea(doubler){
doubles; s=PI*r*r;
returns;}二、變量變量:在程序運(yùn)行過(guò)程中,其值可以改變的量。(一)變量的定義1.變量的定義變量定義的一般形式 [類別標(biāo)識(shí)符]類型標(biāo)識(shí)符變量名表;1.3數(shù)據(jù)描述
二、變量存儲(chǔ)類別標(biāo)識(shí)符包括:auto(自動(dòng))、register(寄存器)、static(靜態(tài));類型標(biāo)識(shí)符包括:short(短整型)、int(基本整型)、long(長(zhǎng)整型)、float(單精度實(shí)型)、double(雙精度實(shí)型)、char(字符型)等。1.3數(shù)據(jù)描述
【示例1】inti,j,k;缺省存儲(chǔ)類別標(biāo)識(shí)符系統(tǒng)默認(rèn)是auto,通過(guò)此說(shuō)明語(yǔ)句定義了3個(gè)變量i,j,k都是基本整型變量、都是自動(dòng)變量。
【示例2】staticfloata,b;通過(guò)該說(shuō)明語(yǔ)句定義了2個(gè)變量a,b都為單精度實(shí)型變量、都是靜態(tài)變量
。二、變量2.變量的賦值變量賦值的一般形式
變量=表達(dá)式;作用:把賦值號(hào)右端表達(dá)式的值賦給賦值號(hào)左端的變量,即把賦值號(hào)右端表達(dá)式的值寫到賦值號(hào)左端變量的存儲(chǔ)空間中。1.3數(shù)據(jù)描述
【示例】a=b+2;把b+2的值賦給變量a,此時(shí),b必須已有確定的值。二、變量3.變量的初始化變量賦值的一般形式
變量=表達(dá)式;作用:把賦值號(hào)右端表達(dá)式的值賦給賦值號(hào)左端的變量,即把賦值號(hào)右端表達(dá)式的值寫到賦值號(hào)左端變量的存儲(chǔ)空間中。1.3數(shù)據(jù)描述
【示例1】inta=5,b;在定義變量a,b的同時(shí)給變量a賦值為5,是對(duì)變量a進(jìn)行初始化?!臼纠?】inta,b; a=5;先定義兩個(gè)整型變量a,b,然后給變量a賦值為5,不是初始化。二、變量(二)整型變量1.整型變量的類型標(biāo)識(shí)符⑴有符號(hào)基本整型:[signed]int⑵無(wú)符號(hào)基本整型:unsigned[int]⑶有符號(hào)短整型:[signed]short[int]⑷無(wú)符號(hào)短整型:unsignedshort[int]⑸有符號(hào)長(zhǎng)整型:[signed]long[int]⑹無(wú)符號(hào)長(zhǎng)整型:unsignedlong[int]注:方括號(hào)的內(nèi)容表示是可選的。
1.3數(shù)據(jù)描述
【示例1】inta,b;定義變量a,b都是整型變量、都是自動(dòng)變量?!臼纠?】unsignedlongc,d;定義變量c,d都是無(wú)符號(hào)長(zhǎng)整型變量、都是自動(dòng)變量。二、變量(二)整型變量2.整型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)叫做數(shù)據(jù)的存儲(chǔ)長(zhǎng)度。VC++系統(tǒng)規(guī)定:short型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié)(16位),以16位二進(jìn)制數(shù)的補(bǔ)碼形式存放;int型和long型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)(32位),以32位二進(jìn)制數(shù)的補(bǔ)碼形式存放。1.3數(shù)據(jù)描述
二、變量(二)整型變量3.整型數(shù)據(jù)的取值范圍
1.3數(shù)據(jù)描述
類型存儲(chǔ)長(zhǎng)度取值范圍[signed]short[int]2字節(jié)(16位)-32768~32767(-215~215-1)unsignedshort[int]2字節(jié)(16位)0~65535(0~216-1)[signed]int4字節(jié)(32位)-2147483648~2147483647(-231~231-1)unsigned[int]4字節(jié)(32位)0~4294967295(0~232-1)[signed]long[int]4字節(jié)(32位)-2147483648~2147483647(-231~231-1)unsignedlong[int]4字節(jié)(32位)0~4294967295(0~232-1)二、變量(三)實(shí)型變量1.實(shí)型變量的類型標(biāo)識(shí)符類型標(biāo)識(shí)符分別是:float(單精度實(shí)型)和double(雙精度實(shí)型)。2.實(shí)型數(shù)據(jù)的存儲(chǔ)長(zhǎng)度、取值范圍和精度1.3數(shù)據(jù)描述
類型存儲(chǔ)長(zhǎng)度取值范圍有效數(shù)字精度f(wàn)loat4字節(jié)±(3.4×10-38~3.4×1038)6~7位6位double8字節(jié)±(1.7×10-308~1.7×10308)15~16位6位二、變量(四)字符型變量1.字符型變量的類型標(biāo)識(shí)符⑴(有符號(hào))字符型:[signed]char⑵無(wú)符號(hào)字符型:unsignedchar2.字符型數(shù)據(jù)的存儲(chǔ)形式及取值范圍
字符型數(shù)據(jù)在內(nèi)存中占1個(gè)字節(jié),以其相應(yīng)的ASCII碼值的8位二進(jìn)制數(shù)(補(bǔ)碼)形式存儲(chǔ),char型數(shù)據(jù)的取值范圍是-128~127,unsignedchar型數(shù)據(jù)的取值范圍是0~255,每一個(gè)數(shù)值對(duì)應(yīng)一個(gè)字符。1.3數(shù)據(jù)描述
1.3數(shù)據(jù)描述
【例1-4】將大寫字母轉(zhuǎn)換為小寫字母。#include<stdio.h>charToLower(charch);intmain(){ charch,low; printf("請(qǐng)輸入一個(gè)大寫字母:"); scanf("%c",&ch); low=ToLower(ch); printf("大寫字母%c轉(zhuǎn)換為小寫字母是%c\n",ch,low); return0;}charToLower(charch){ chartlow; tlow=ch+32; returntlow;}二、變量(五)動(dòng)態(tài)變量1.自動(dòng)變量
用存儲(chǔ)類別標(biāo)識(shí)符auto定義的變量是自動(dòng)變量,自動(dòng)變量的存儲(chǔ)空間是在程序運(yùn)行時(shí)分配的,分配和釋放由系統(tǒng)自動(dòng)完成。使用時(shí),應(yīng)注意以下幾點(diǎn):⑴在定義變量時(shí),缺省存儲(chǔ)類別標(biāo)識(shí)符系統(tǒng)默認(rèn)是自動(dòng)變量;⑵自動(dòng)變量的存儲(chǔ)空間在程序運(yùn)行期間分配和釋放,稱為動(dòng)態(tài)存儲(chǔ);1.3數(shù)據(jù)描述
二、變量(五)動(dòng)態(tài)變量1.自動(dòng)變量⑶自動(dòng)變量只在定義它的那個(gè)局部范圍內(nèi)才起作用,稱為局部變量;⑷自動(dòng)變量在賦值之前,它的值是不確定的;⑸對(duì)同一個(gè)函數(shù)的兩次調(diào)用之間,自動(dòng)變量的值不保留。這是因?yàn)椋{(diào)用一次之后存儲(chǔ)空間被釋放,再調(diào)用時(shí),又另分配了存儲(chǔ)空間。2.寄存器變量1.3數(shù)據(jù)描述
【示例】intmain(){ intx=1; { voidprt(void); intx=3; prt(); printf("2ndx=%d\n",x); } printf("1ndx=%d\n",x);
return0;}voidprt(void){ intx=5;
printf("3ndx=%d\n",x);}【示例】intmain(){ intx;
printf("x=%d\n",x);
return0;}【示例】voidcount(intn);intmain(){ count(1); count(2); return0;}voidcount(intn){ intx=1;
printf("%d:x=%d,",n,x); x=x+2; printf("%d\n",x);}二、變量(六)靜態(tài)變量
用標(biāo)識(shí)符static定義的變量是靜態(tài)變量。1.靜態(tài)變量是在編譯時(shí)分配存儲(chǔ)空間,程序運(yùn)行結(jié)束存儲(chǔ)空間才被釋放,稱為永久存儲(chǔ),即,存在于程序執(zhí)行的全過(guò)程,直到程序執(zhí)行結(jié)束;2.靜態(tài)變量的初始化是在編譯時(shí)進(jìn)行的,如果不顯式為靜態(tài)變量初始化,系統(tǒng)自動(dòng)置靜態(tài)變量的初值為0(整型)或0.0(實(shí)型);1.3數(shù)據(jù)描述
二、變量(六)靜態(tài)變量3.在函數(shù)多次被調(diào)用的過(guò)程中,靜態(tài)變量的值具有繼承性,即本次調(diào)用的初值是上次調(diào)用結(jié)束時(shí)變量的值;4.靜態(tài)局部變量的作用域具有局部性,靜態(tài)局部變量的值只能在本函數(shù)中使用,但生存周期是永久存儲(chǔ)。1.3數(shù)據(jù)描述
【示例】voidincrement(void);intmain(){ increment(); increment(); increment(); return0;}voidincrement(void){ staticintx=1; x=x+2; printf("%d\n",x);}【示例】voidincrement(void);intmain(){ intx=5; increment(); printf("1:x=%d\n",x); return0;}voidincrement(void){ staticintx=1;
x=x+2; printf("2:x=%d\n",x);}二、變量(七)外部變量
定義在所有函數(shù)體之外的變量稱為外部變量。1.外部變量是在編譯時(shí)為其分配存儲(chǔ)空間的,在靜態(tài)存儲(chǔ)區(qū)中存儲(chǔ),生存周期是永久存儲(chǔ),作用域是從定義點(diǎn)到本文件結(jié)束;2.外部變量的初始化也是在編譯時(shí)進(jìn)行的,如果不顯式為外部變量初始化,系統(tǒng)自動(dòng)置外部變量的初值為0(整型)或0.0(實(shí)型)。1.3數(shù)據(jù)描述
一、運(yùn)算符與表達(dá)式1.運(yùn)算量:參加運(yùn)算的對(duì)象稱為運(yùn)算量,運(yùn)算量包括:常量、變量、函數(shù)等。2.運(yùn)算符:用來(lái)表示運(yùn)算的符號(hào)稱為運(yùn)算符或操作符。3.表達(dá)式:用運(yùn)算符把運(yùn)算量連接起來(lái)的符合C語(yǔ)言語(yǔ)法規(guī)則的式子稱為表達(dá)式。
1.4數(shù)據(jù)操作
二、算術(shù)運(yùn)算1.單目算術(shù)運(yùn)算(正、負(fù)號(hào)運(yùn)算)⑴運(yùn)算符:+正(取原值),-負(fù)(取相反數(shù))。⑵優(yōu)先級(jí)別:+,-同級(jí)別,是第2級(jí)。⑶結(jié)合方向:右結(jié)合。1.4數(shù)據(jù)操作
二、算術(shù)運(yùn)算2.雙目算術(shù)運(yùn)算⑴運(yùn)算符及運(yùn)算規(guī)則:+(加),-(減),*(乘),/(除),%(求余或模)。%的運(yùn)算規(guī)則是:對(duì)于a%b,求a被b除所得的余數(shù),結(jié)果的符號(hào)與被除數(shù)a的符號(hào)相同。⑵優(yōu)先級(jí)別:+,-第4級(jí);*,/,%第3級(jí)。⑶結(jié)合方向:均為左結(jié)合。1.4數(shù)據(jù)操作
二、算術(shù)運(yùn)算2.雙目算術(shù)運(yùn)算⑷運(yùn)算量的類型與結(jié)果類型:
對(duì)于+,-,*,/這四種運(yùn)算,參加運(yùn)算的兩個(gè)運(yùn)算量可以是整型數(shù)據(jù),也可以是實(shí)型數(shù)據(jù);如果兩個(gè)運(yùn)算量都是整型數(shù)據(jù),則結(jié)果也是整型數(shù)據(jù),如果兩個(gè)運(yùn)算量中至少有一個(gè)是實(shí)型數(shù)據(jù),則結(jié)果也是實(shí)型數(shù)據(jù)。對(duì)于模運(yùn)算%,要求參加運(yùn)算的兩個(gè)運(yùn)算量必須都是整型數(shù)據(jù),運(yùn)算所得的結(jié)果也是整型數(shù)據(jù)。
1.4數(shù)據(jù)操作
【示例】inta=5,b=2;則a+b的結(jié)果為7,a/b的結(jié)果為2,而不是2.5。floata=5.0,b=2.0;則a+b的結(jié)果為7.0,a/b的結(jié)果為2.5。所以,C語(yǔ)言中的除法運(yùn)算“/”,有兩方面的含義:當(dāng)運(yùn)算符兩側(cè)的運(yùn)算量都是整型數(shù)據(jù)時(shí),結(jié)果也是整型數(shù)據(jù),此時(shí)稱為整除;當(dāng)運(yùn)算符兩側(cè)的運(yùn)算量至少有一個(gè)是實(shí)型數(shù)據(jù)時(shí),結(jié)果是double類型數(shù)據(jù),此時(shí)稱為除法。【示例】inta=5,b=-5,c=3,d=-3;則a%c的結(jié)果為2,b%c的結(jié)果為-2,a%d的結(jié)果為2,b%d的結(jié)果為–2,a%b的結(jié)果為0,b%a的結(jié)果為0,0%a的結(jié)果為0,0%b的結(jié)果也為0。因此,對(duì)一個(gè)正整數(shù)求模運(yùn)算,不論除數(shù)是正數(shù)還是負(fù)數(shù),所得的結(jié)果都是非負(fù)數(shù);對(duì)一個(gè)負(fù)整數(shù)求模運(yùn)算,不論除數(shù)是正數(shù)還是負(fù)數(shù),所得的結(jié)果都是非正數(shù),對(duì)0求模運(yùn)算的結(jié)果還是0,即結(jié)果的符號(hào)與被除數(shù)的符號(hào)相同?!纠?-5】設(shè)n是一個(gè)兩位整數(shù),用C語(yǔ)言的表達(dá)式分別表示n的個(gè)位和十位數(shù)碼。1.4數(shù)據(jù)操作
解答:n的個(gè)位數(shù)碼可表示為n%10;n的十位數(shù)碼可表示為n/10。三、賦值類運(yùn)算1.賦值運(yùn)算給變量賦值的一般形式:變量=表達(dá)式優(yōu)先級(jí)別:賦值運(yùn)算的優(yōu)先級(jí)別是第14級(jí)的,僅高于逗號(hào)運(yùn)算符。結(jié)合方向:右結(jié)合。賦值表達(dá)式:根據(jù)運(yùn)算符的優(yōu)先級(jí)別和結(jié)合方向,通過(guò)加括號(hào)最終化為用賦值號(hào)把變量和表達(dá)式連接起來(lái)的式子稱為賦值表達(dá)式。賦值表達(dá)式的值為賦值后賦值號(hào)左邊變量的值。1.4數(shù)據(jù)操作
【示例1】inta;a=2;a=a+3;【示例2】inta=3,b;b=a=a+5;三、賦值類運(yùn)算2.自反算術(shù)賦值運(yùn)算自反算術(shù)賦值運(yùn)算符包括:自反加賦值:+=;自反減賦值:-=;自反乘賦值:*=;自反除賦值:/=;自反模賦值:%=。優(yōu)先級(jí)別:與賦值運(yùn)算符同級(jí),都是第14級(jí)。結(jié)合方向:右結(jié)合注意:與賦值運(yùn)算符一樣,自反算術(shù)賦值運(yùn)算符的左邊通常也必須是變量。1.4數(shù)據(jù)操作
【示例】inta=5,b=3,c;c=b*=a+2;
三、賦值類運(yùn)算3.自加和自減運(yùn)算前綴形式:++變量,--變量后綴形式:變量++,變量--
對(duì)于前綴形式++i或--i,運(yùn)算規(guī)則是:把i+1或i-1賦給變量i,而表達(dá)式(++i或—i)取變量i被賦值后的值,即++i與i=i+1等價(jià)或—i與i=i-1等價(jià)。對(duì)于后綴形式i++或i--,運(yùn)算規(guī)則是:把i+1或i-1賦給變量i,而表達(dá)式(i++或i—)取變量i被賦值前的值。優(yōu)先級(jí)別:自加、自減運(yùn)算符的優(yōu)先級(jí)別是第2級(jí)。結(jié)合方向:右結(jié)合。
1.4數(shù)據(jù)操作
【示例】inta=2,b=2,c=2,d=2;a++;b--;++c;--d;表達(dá)式表達(dá)式執(zhí)行前變量值表達(dá)式執(zhí)行后變量值表達(dá)式的值a++232b--212++c233--d211【例1-5】設(shè)有定義inta=3,b,c=5;請(qǐng)將以下兩條語(yǔ)句a--;b=a+c;寫成一條語(yǔ)句。1.4數(shù)據(jù)操作
解答:因?yàn)檎Z(yǔ)句b=a+c;中的a使用的是語(yǔ)句a--;執(zhí)行后a的值,所以,兩條語(yǔ)句可寫成一條語(yǔ)句b=--a+
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年版酒店餐飲行業(yè)食品安全與售后服務(wù)標(biāo)準(zhǔn)協(xié)議3篇
- 二零二五年船舶安全監(jiān)督與船員資質(zhì)審核協(xié)議3篇
- 2025年度商業(yè)空間瓷磚定制及安裝服務(wù)合同4篇
- 二零二五版蒙娜麗莎瓷磚環(huán)保認(rèn)證與市場(chǎng)準(zhǔn)入?yún)f(xié)議4篇
- 2025年度校園建筑裝修設(shè)計(jì)及施工合同模板4篇
- 2025年跨境電商物流成本分析與合同執(zhí)行監(jiān)控協(xié)議4篇
- 2025年度購(gòu)房贈(zèng)送全屋水電改造及裝修服務(wù)合同4篇
- 2025年度廠外施工環(huán)境保護(hù)合同范本3篇
- 2025版虛擬貨幣交易平臺(tái)免責(zé)聲明合同范本4篇
- 2025年智慧環(huán)衛(wèi)綠化服務(wù)外包合同標(biāo)準(zhǔn)范本3篇
- 農(nóng)民工考勤表(模板)
- 承臺(tái)混凝土施工技術(shù)交底
- 臥床患者更換床單-軸線翻身
- 加強(qiáng)保育員隊(duì)伍專業(yè)化建設(shè)提升幼兒園保教質(zhì)量
- 計(jì)量基礎(chǔ)知識(shí)培訓(xùn)教材201309
- 中考英語(yǔ) 短文填詞、選詞填空練習(xí)
- 一汽集團(tuán)及各合資公司組織架構(gòu)
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 初一至初三數(shù)學(xué)全部知識(shí)點(diǎn)
- 新課程理念下的班主任工作藝術(shù)
- (完整版)企業(yè)破產(chǎn)流程圖(四張)
評(píng)論
0/150
提交評(píng)論