




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第二章變量和數(shù)據(jù)類型回顧程序是為執(zhí)行一項(xiàng)任務(wù)而編寫的有序指令集算法是解決問題的具體方法和步驟流程圖是算法的圖形化表現(xiàn)形式C語言的特點(diǎn)C程序的編譯和運(yùn)行過程編譯器將源程序轉(zhuǎn)換成機(jī)器能理解的程序連接器用于連接相關(guān)的目標(biāo)文件以生成可執(zhí)行程序目標(biāo)理解變量和常量的含義熟悉基本數(shù)據(jù)類型
-int、char、float和double使用算術(shù)運(yùn)算符理解類型轉(zhuǎn)換熟練使用scanf()和printf()函數(shù)熟練使用getchar()和putchar()函數(shù)本章結(jié)構(gòu)簡介變量和數(shù)據(jù)類型類型轉(zhuǎn)換符號(hào)常量基本數(shù)據(jù)類型輸入輸出函數(shù)算術(shù)運(yùn)算符接收并顯示字符程序指令2.1C語言中的基本元素常量標(biāo)識(shí)符關(guān)鍵字運(yùn)算符分隔符等常量是在程序中保持不變的量常量用于定義具有如下特點(diǎn)的數(shù)據(jù):在程序中保持不變?cè)诔绦騼?nèi)部頻繁使用2.1.1聲明變量聲明變量:Datatype
variablename;變量的命名規(guī)則:變量名可以由字母、數(shù)字和_(下劃線)組合而成變量名不能包含除_以外的任何特殊字符,如:%、#、逗號(hào)、空格等變量名必須以字母或
_(下劃線)開頭變量名不能包含空白字符(換行符、空格和制表符稱為空白字符)C語言中的某些詞(例如int
和float等)稱為保留字,具有特殊意義,不能用作變量名C語言區(qū)分大小寫,因此變量price與變量PRICE是兩個(gè)不同的變量2.1.2變量命名變量初始化定義時(shí)初始化變量Datatype
variablename=value;定義后初始化變量variablename=value;通過運(yùn)算賦值2.2基本數(shù)據(jù)類型char數(shù)據(jù)類型非數(shù)值數(shù)值整型longintdoublefloat非整型shortintint2.2整型名稱全稱類型說明符縮寫類型說明符位數(shù)范圍整型intint32-2,147,483,648至2,147,483,647無符號(hào)整型unsignedintunsigned320至4,294,967,295短整型shortintshort16-32768至+32767無符號(hào)短整型unsignedshortintunsignedshort160至65,535長整型longintlong32-2,147,483,648至2,147,483,647無符號(hào)長整型unsignedlongintunsignedlong320至4,294,967,2952.2使用整型變量聲明:int
page_number;longintpopulation;unsignedintage;可按如下方式初始化:page_number=0;int
max_marks=100;在同一語句中可以聲明多個(gè)類型相同的變量:int
page_number,copies,paper_width;2.2.2單精度浮點(diǎn)型float在C
語言中用于存儲(chǔ)單精度浮點(diǎn)數(shù)float32位10-38
至
10+38,7位有效數(shù)字表示方法:(1)2.2434.2(2)2e530E2
要求e左邊必須有數(shù)據(jù)且e右邊必須是整數(shù)聲明:floatselling_price;初始化:floatselling_price=11.3;selling_price=65.90;2.2.2雙精度浮點(diǎn)型內(nèi)存floatdouble64位取值范圍:10-308
至1030816
位有效數(shù)字聲明:doublepressure_level;初始化:pressure_level=213.5671435568967;doubledvalue=35.4;在線保險(xiǎn)單年齡:_____保險(xiǎn)總額:_____性別:_____2.2.4字符型2398340'M'數(shù)值型字符型int/floatchar2.2.4字符型'''5''p''$'
有效的字符型值"2"
'2'
正確'2'+'2'=4
X值符號(hào)值符號(hào)值符號(hào)0空字符44,91[32空格45-92\33!46.93]34"47/94^35#48~570~9
95-36$58:96`37%59;97~122a~z38&60<123{39'61=124|40(62>125}41)63?126~42*64@127DEL(Delete鍵)43+65~90A~Z
2.2.2字符型char占8位內(nèi)存signed或
unsignedSigned-128至
+127
unsigned0至
255示例:chargender;gender='m';chargender='m';輸入/輸出函數(shù)(printf/scanf)用于接受和顯示數(shù)據(jù)或信息#include<stdio.h>intmain(){
intnum;
printf("請(qǐng)輸入一個(gè)數(shù):");
scanf("%d",&num);
printf("\n%d
的平方為
%d\n",num,num*num);}2.4輸入/輸出函數(shù)轉(zhuǎn)換字符串轉(zhuǎn)義序列2.4.1printf
函數(shù)int
visitor_count=150;printf("
%d"
,visitor_count);printf將一些信息按照指定的格式送到標(biāo)準(zhǔn)輸出(顯示器)"
%d"
visitor_count將按指定的格式顯示該變量的值轉(zhuǎn)換字符串說明%d將參數(shù)按整數(shù)形式轉(zhuǎn)換輸出,對(duì)應(yīng)參數(shù)應(yīng)是int類型%ld將參數(shù)按長整數(shù)形式轉(zhuǎn)換輸出,對(duì)應(yīng)參數(shù)應(yīng)是long類型%c輸出一個(gè)字符,對(duì)應(yīng)參數(shù)應(yīng)該是一個(gè)字符%s輸出一個(gè)字符串,對(duì)應(yīng)參數(shù)應(yīng)該是一個(gè)字符串%f將參數(shù)按帶小數(shù)點(diǎn)數(shù)形式輸出,對(duì)應(yīng)參數(shù)應(yīng)是double類型,默認(rèn)情況下精確到
6位小數(shù)2.4.1printf
函數(shù)int
visitor_count=150;printf("
%d"
,visitor_count);輸出結(jié)果:1502.4.1printf
函數(shù)intsalary=5500;printf("
%10d"
,salary);輸出結(jié)果:
5500輸出結(jié)果的左邊顯示了6個(gè)空格"
%10d"2.4.1printf
函數(shù)floatcircumference=78.53;printf("
%f"
,circumference);輸出結(jié)果:78.530000默認(rèn)情況下精確到六位小數(shù)9.4786789;9.4786792.4.1printf
函數(shù)doublemercury_level=168.2251074;printf("%7.2f"
,mercury_level);輸出結(jié)果:168.23寬度,表示所有的數(shù)字和小數(shù)點(diǎn)所占的位數(shù)。不夠7位右對(duì)齊。"%7.2f"
精度(精確到小數(shù)點(diǎn)后多少位)2.4.1轉(zhuǎn)義序列輸出結(jié)果:Name:AudreyHepburnMovie:‘RomanHoliday’代碼:printf(“Name:AudreyHepburn\nMovie:\‘RomanHoliday\’”);轉(zhuǎn)義序列允許在輸出結(jié)果中包括特殊字符轉(zhuǎn)義序列名稱描述\a警告產(chǎn)生一則警告。\b退格將光標(biāo)回退一格。\f換頁將光標(biāo)移到下一頁的第一格。\n換行將光標(biāo)移到下一行的第一格。\r回車將光標(biāo)移到當(dāng)前行的第一格。\t水平制表將光標(biāo)移到下一個(gè)水平制表位置。\v垂直制表將光標(biāo)移到下一個(gè)垂直制表位置。\'單引號(hào)產(chǎn)生一個(gè)單引號(hào)。\"雙引號(hào)產(chǎn)生一個(gè)雙引號(hào)。\?問號(hào)產(chǎn)生一個(gè)問號(hào)。\\反斜線產(chǎn)生一條反斜線。\0空產(chǎn)生一個(gè)空字符。scanf("%d",&num);2.4.2scanf
函數(shù)scanf
函數(shù)從標(biāo)準(zhǔn)輸入(鍵盤)讀取信息,按照格式描述把讀入的信息轉(zhuǎn)換為指定數(shù)據(jù)類型的數(shù)據(jù),并把這些數(shù)據(jù)賦給指定的程序變量。
轉(zhuǎn)換字符串&符號(hào)(附在讀取的每個(gè)變量上)用于指明變量在內(nèi)存中的位置變量的名稱轉(zhuǎn)換字符串參數(shù)變量的類型要求的實(shí)際輸入%dint
十進(jìn)制數(shù)字序列%ldlong十進(jìn)制數(shù)字序列%ffloat十進(jìn)制數(shù),可以有小數(shù)點(diǎn)及指數(shù)部分%lfdouble十進(jìn)制數(shù),可以有小數(shù)點(diǎn)及指數(shù)部分內(nèi)存2.4.2scanffloattax_rate;scanf("%f"
,&tax_rate);tax_rate在內(nèi)存中分配一塊32位存儲(chǔ)空間存儲(chǔ)空間使用名稱“tax_rate”標(biāo)識(shí)提示用戶輸入一個(gè)值輸入的值存儲(chǔ)在變量中(因?yàn)閟canf
提供此變量的地址)12.2342.5算術(shù)運(yùn)算符算術(shù)
一元
二元操作數(shù)操作數(shù)運(yùn)算符二元運(yùn)算符+-*/%2.5.1一元算術(shù)運(yùn)算符算術(shù)一元--++num++num=num+1num--num=num-1++num--numnum++num--前綴后綴二元表達(dá)式如何計(jì)算結(jié)果(num1=5)num2=++num1;num1=num1+1;num2=num1;num2=6;num1=6;num2=num1++;num2=num1;num1=num1+1;num2=5;num1=6;num2=--num1;num1=num1-1;num2=num1;num2=4;num1=4;num2=num1--;num2=num1;num1=num1-1;num2=5;num1=4;#include<stdio.h>intmain(){
inta=5,b=3,c=25,d=12;floatqu;intre,in,de;/*使用算術(shù)運(yùn)算符*/qu=a/b;//除法re=a%b;//求模in=++c;de=--d;printf("商為
%f\n",qu);printf("余數(shù)為
%d\n",re);printf(“加
1后為
%d\n",in);printf("減
1后為
%d\n",de);return0;}2.5.1算術(shù)運(yùn)算符示例輸出:商為1.000000余數(shù)為2加1后為26減1后為112.6類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換原則:把表示范圍小的類型的值轉(zhuǎn)換到表示范圍大的類型的值
short
intlong
floatdouble強(qiáng)制類型轉(zhuǎn)換語法:(類型名)變量或數(shù)值
例如:
inta=5,b=3;
floatqu=(float)a/b;
2.7接受并顯示字符字符型變量getchar()字符型數(shù)據(jù)字符型數(shù)據(jù)putchar()2.7.1getchar()函數(shù)charvariablename;variablename=functionname;getchar()語法:例如:charc;c=getchar();#include<stdio.h>intmain(){chara,b;
printf("請(qǐng)輸入兩個(gè)字符:\n");a=getchar();
setbuf(stdin,NULL)b=getchar();
setbuf(stdin,NULL)
putchar(a);
putchar(b);
putchar('\n');return0;}getchar()和putchar()示例內(nèi)存abOK輸出:請(qǐng)輸入兩個(gè)字符:OKOKPressanykeytocontinue_變量的作用域
4-1
作用域是某些事物起作用或有效的區(qū)域。限于陸地限于海洋限于空中作用域作用域是編譯期問題四種作用域:文件作用域、函數(shù)作用域、代碼塊作用域、原型作用域inta;intb(intc);intd(inte){intf;intg(inth);……{intf,g,i;……}{inti;……}}程序中變量也有不同的使用范圍,稱為變量的作用域。變量的作用域決定變量的可訪問性變量的作用域
4-2voiddisplayDiscount(){floatdiscount_amt;.........}局部變量:不能在函數(shù)外使用floatdiscount_amt;intmain(){......}voiddisplayDiscount(){......}全局變量:可以在整個(gè)程序中使用變量的作用域4-3#include<stdio.h>voidaddNumbers(){
intnum1,num2,sum;
printf("\n
請(qǐng)輸入兩個(gè)數(shù):");
scanf("%d%d",&num1,&num2);
sum=num1+num2;
printf("子函數(shù)中sum的值是%d\n",sum);}intmain(){
intsum=0;
addNumbers();
printf("\n
主函數(shù)中sum的值是%d\n",sum);}變量的作用域4-4#include<stdio.h>intsum=0;voidaddNumbers(){
intnum1,num2;
printf("\n
請(qǐng)輸入兩個(gè)數(shù):");
scanf("%d%d",&num1,&num2); sum=num1+num2;
printf("子函數(shù)中sum的值是%d\n",sum);}intmain(){
addNumbers();
printf("\n
主函數(shù)中sum的值是%d\n",sum);}存儲(chǔ)類型2-1變量的存儲(chǔ)方式可分為“靜態(tài)存儲(chǔ)”和“動(dòng)態(tài)存儲(chǔ)”兩種靜態(tài)存儲(chǔ)變量是一直存在的,而動(dòng)態(tài)存儲(chǔ)變量則時(shí)而存在時(shí)而消失這種由于變量存儲(chǔ)方式不同而產(chǎn)生的特性稱為變量的生存期生存期表示了變量存在的時(shí)間靜態(tài)局部變量靜態(tài)局部變量生存期為整個(gè)源程序靜態(tài)局部變量作用域與自動(dòng)變量相同,即只能在定義該變量的函數(shù)內(nèi)使用該變量對(duì)基本類型的靜態(tài)局部變量若在說明時(shí)未賦以初值,則系統(tǒng)自動(dòng)賦予0值函數(shù)被調(diào)用時(shí),其中的靜態(tài)局部變量的值將保留前次被調(diào)用的結(jié)果靜態(tài)局部變量示例voidformat(){
staticintm=0;
m++; if(m%10==0)
putchar('\n'); else
putchar('');}intmain(){
inti;
for(i=0;i<50;i++) {
printf("%d",i); format(); }}內(nèi)存i0m011循環(huán)執(zhí)行50次4949010123456789101112131415161718192021222324252627282930313233343536373839404142434445464748492靜態(tài)全局變量靜態(tài)全局變量與普通全局變量在存儲(chǔ)方式上完全相同區(qū)別在于:非靜態(tài)全局變量的作用域是整個(gè)源程序;而靜態(tài)全局變量的作用域只是定義它的文件static關(guān)鍵字static用于函數(shù)定義或則用于代碼塊之外的變量聲明時(shí),static關(guān)鍵字用于修改標(biāo)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備投資計(jì)劃
- 建筑規(guī)劃保安工作計(jì)劃
- 航空領(lǐng)域保安工作的創(chuàng)新計(jì)劃
- 會(huì)計(jì)信息與決策的關(guān)系探討計(jì)劃
- 2025年媒體經(jīng)營項(xiàng)目建議書
- 2025年中國夜游經(jīng)濟(jì)行業(yè)供需態(tài)勢(shì)、競爭格局及投資前景分析報(bào)告(智研咨詢)
- 2025年超硬材料項(xiàng)目合作計(jì)劃書
- 2025年特種大型鋁合金型材項(xiàng)目發(fā)展計(jì)劃
- 構(gòu)建直觀易用的用戶操作面板
- 2025年子宮收縮藥項(xiàng)目發(fā)展計(jì)劃
- 吊籃檢查記錄
- 《我的家族史》課件
- 干部考察報(bào)告表()
- 02S404給排水圖集標(biāo)準(zhǔn)
- 湖北省技能高考機(jī)械類模擬試題
- 六年級(jí)勞動(dòng)與技術(shù)下冊(cè)《課程綱要》
- 高空作業(yè)安全方案及應(yīng)急預(yù)案
- 關(guān)于與旅游發(fā)展集團(tuán)成立合資公司的可行性研究報(bào)告
- 第一部分-氣排球運(yùn)動(dòng)介紹課件
- 世界局勢(shì)與主再來課件
- 思維游戲(小孩都喜歡玩的游戲)教學(xué)內(nèi)容課件
評(píng)論
0/150
提交評(píng)論