變量和數(shù)據(jù)類型_第1頁
變量和數(shù)據(jù)類型_第2頁
變量和數(shù)據(jù)類型_第3頁
變量和數(shù)據(jù)類型_第4頁
變量和數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章變量和數(shù)據(jù)類型回顧程序是為執(zhí)行一項任務(wù)而編寫的有序指令集算法是解決問題的具體方法和步驟流程圖是算法的圖形化表現(xiàn)形式C語言的特點C程序的編譯和運行過程編譯器將源程序轉(zhuǎn)換成機器能理解的程序連接器用于連接相關(guān)的目標(biāo)文件以生成可執(zhí)行程序目標(biāo)理解變量和常量的含義熟悉基本數(shù)據(jù)類型

-int、char、float和double使用算術(shù)運算符理解類型轉(zhuǎn)換熟練使用scanf()和printf()函數(shù)熟練使用getchar()和putchar()函數(shù)本章結(jié)構(gòu)簡介變量和數(shù)據(jù)類型類型轉(zhuǎn)換符號常量基本數(shù)據(jù)類型輸入輸出函數(shù)算術(shù)運算符接收并顯示字符程序指令2.1C語言中的基本元素常量標(biāo)識符關(guān)鍵字運算符分隔符等常量是在程序中保持不變的量常量用于定義具有如下特點的數(shù)據(jù):在程序中保持不變在程序內(nèi)部頻繁使用2.1.1聲明變量聲明變量:Datatype

variablename;變量的命名規(guī)則:變量名可以由字母、數(shù)字和_(下劃線)組合而成變量名不能包含除_以外的任何特殊字符,如:%、#、逗號、空格等變量名必須以字母或

_(下劃線)開頭變量名不能包含空白字符(換行符、空格和制表符稱為空白字符)C語言中的某些詞(例如int

和float等)稱為保留字,具有特殊意義,不能用作變量名C語言區(qū)分大小寫,因此變量price與變量PRICE是兩個不同的變量2.1.2變量命名變量初始化定義時初始化變量Datatype

variablename=value;定義后初始化變量variablename=value;通過運算賦值2.2基本數(shù)據(jù)類型char數(shù)據(jù)類型非數(shù)值數(shù)值整型longintdoublefloat非整型shortintint2.2整型名稱全稱類型說明符縮寫類型說明符位數(shù)范圍整型intint32-2,147,483,648至2,147,483,647無符號整型unsignedintunsigned320至4,294,967,295短整型shortintshort16-32768至+32767無符號短整型unsignedshortintunsignedshort160至65,535長整型longintlong32-2,147,483,648至2,147,483,647無符號長整型unsignedlongintunsignedlong320至4,294,967,2952.2使用整型變量聲明:int

page_number;longintpopulation;unsignedintage;可按如下方式初始化:page_number=0;int

max_marks=100;在同一語句中可以聲明多個類型相同的變量:int

page_number,copies,paper_width;2.2.2單精度浮點型float在C

語言中用于存儲單精度浮點數(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雙精度浮點型內(nèi)存floatdouble64位取值范圍:10-308

至1030816

位有效數(shù)字聲明:doublepressure_level;初始化:pressure_level=213.5671435568967;doubledvalue=35.4;在線保險單年齡:_____保險總額:_____性別:_____2.2.4字符型2398340'M'數(shù)值型字符型int/floatchar2.2.4字符型'''5''p''$'

有效的字符型值"2"

'2'

正確'2'+'2'=4

X值符號值符號值符號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("請輸入一個數(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)換輸出,對應(yīng)參數(shù)應(yīng)是int類型%ld將參數(shù)按長整數(shù)形式轉(zhuǎn)換輸出,對應(yīng)參數(shù)應(yīng)是long類型%c輸出一個字符,對應(yīng)參數(shù)應(yīng)該是一個字符%s輸出一個字符串,對應(yīng)參數(shù)應(yīng)該是一個字符串%f將參數(shù)按帶小數(shù)點數(shù)形式輸出,對應(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個空格"

%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ù)點所占的位數(shù)。不夠7位右對齊。"%7.2f"

精度(精確到小數(shù)點后多少位)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)移到下一個水平制表位置。\v垂直制表將光標(biāo)移到下一個垂直制表位置。\'單引號產(chǎn)生一個單引號。\"雙引號產(chǎn)生一個雙引號。\?問號產(chǎn)生一個問號。\\反斜線產(chǎn)生一條反斜線。\0空產(chǎn)生一個空字符。scanf("%d",&num);2.4.2scanf

函數(shù)scanf

函數(shù)從標(biāo)準(zhǔn)輸入(鍵盤)讀取信息,按照格式描述把讀入的信息轉(zhuǎn)換為指定數(shù)據(jù)類型的數(shù)據(jù),并把這些數(shù)據(jù)賦給指定的程序變量。

轉(zhuǎn)換字符串&符號(附在讀取的每個變量上)用于指明變量在內(nèi)存中的位置變量的名稱轉(zhuǎn)換字符串參數(shù)變量的類型要求的實際輸入%dint

十進制數(shù)字序列%ldlong十進制數(shù)字序列%ffloat十進制數(shù),可以有小數(shù)點及指數(shù)部分%lfdouble十進制數(shù),可以有小數(shù)點及指數(shù)部分內(nèi)存2.4.2scanffloattax_rate;scanf("%f"

,&tax_rate);tax_rate在內(nèi)存中分配一塊32位存儲空間存儲空間使用名稱“tax_rate”標(biāo)識提示用戶輸入一個值輸入的值存儲在變量中(因為scanf

提供此變量的地址)12.2342.5算術(shù)運算符算術(shù)

一元

二元操作數(shù)操作數(shù)運算符二元運算符+-*/%2.5.1一元算術(shù)運算符算術(shù)一元--++num++num=num+1num--num=num-1++num--numnum++num--前綴后綴二元表達式如何計算結(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ù)運算符*/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ù)運算符示例輸出:商為1.000000余數(shù)為2加1后為26減1后為112.6類型轉(zhuǎn)換自動類型轉(zhuǎn)換原則:把表示范圍小的類型的值轉(zhuǎn)換到表示范圍大的類型的值

short

intlong

floatdouble強制類型轉(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("請輸入兩個字符:\n");a=getchar();

setbuf(stdin,NULL)b=getchar();

setbuf(stdin,NULL)

putchar(a);

putchar(b);

putchar('\n');return0;}getchar()和putchar()示例內(nèi)存abOK輸出:請輸入兩個字符: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(){......}全局變量:可以在整個程序中使用變量的作用域4-3#include<stdio.h>voidaddNumbers(){

intnum1,num2,sum;

printf("\n

請輸入兩個數(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

請輸入兩個數(shù):");

scanf("%d%d",&num1,&num2); sum=num1+num2;

printf("子函數(shù)中sum的值是%d\n",sum);}intmain(){

addNumbers();

printf("\n

主函數(shù)中sum的值是%d\n",sum);}存儲類型2-1變量的存儲方式可分為“靜態(tài)存儲”和“動態(tài)存儲”兩種靜態(tài)存儲變量是一直存在的,而動態(tài)存儲變量則時而存在時而消失這種由于變量存儲方式不同而產(chǎn)生的特性稱為變量的生存期生存期表示了變量存在的時間靜態(tài)局部變量靜態(tài)局部變量生存期為整個源程序靜態(tài)局部變量作用域與自動變量相同,即只能在定義該變量的函數(shù)內(nèi)使用該變量對基本類型的靜態(tài)局部變量若在說明時未賦以初值,則系統(tǒng)自動賦予0值函數(shù)被調(diào)用時,其中的靜態(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)全局變量與普通全局變量在存儲方式上完全相同區(qū)別在于:非靜態(tài)全局變量的作用域是整個源程序;而靜態(tài)全局變量的作用域只是定義它的文件static關(guān)鍵字static用于函數(shù)定義或則用于代碼塊之外的變量聲明時,static關(guān)鍵字用于修改標(biāo)

溫馨提示

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

評論

0/150

提交評論