第3章數(shù)據(jù)類型、運算符與表達式_第1頁
第3章數(shù)據(jù)類型、運算符與表達式_第2頁
第3章數(shù)據(jù)類型、運算符與表達式_第3頁
第3章數(shù)據(jù)類型、運算符與表達式_第4頁
第3章數(shù)據(jù)類型、運算符與表達式_第5頁
已閱讀5頁,還剩105頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章數(shù)據(jù)類型及格式輸出、運算符與表達式主要內(nèi)容

C的數(shù)據(jù)類型

常量與變量整型數(shù)據(jù)及格式輸出實型數(shù)據(jù)及格式輸出字符型數(shù)據(jù)及格式輸出字符串及格式輸出變量的賦初值各類數(shù)值型數(shù)據(jù)混合計算算術(shù)運算符和算術(shù)表達式賦值運算符和賦值表達式逗號運算符和逗號表達式3.1C的數(shù)據(jù)類型

整型(int,long,unsigned,unsignedlong)

字符型(char)

基本類型單精度型(float)

浮點型雙精度型(double)

枚舉類型(enum)

數(shù)據(jù)類型數(shù)組類型([])構(gòu)造類型結(jié)構(gòu)體類型(struct)

共用體類型(union)

指針類型(*)空類型(void)3.2常量和變量一、常量概念:在程序運行中,其數(shù)值不能被改變的量。分類:直接常量和符號常量1.直接常量:是在程序中直接引用的數(shù)據(jù)。分為:整型、實型、字符型、字符串如:3,4.5,’S’,“china”等以數(shù)據(jù)的原形出現(xiàn)!2.符號常量:特點:在程序中不能給它賦值。概念:是用標識符來表示一個常量。定義形式(定義在函數(shù)體之外):#define標識符常量數(shù)據(jù)例如:#definePI3.14159在程序預處理時,凡是出現(xiàn)標識符PI的地方都將用數(shù)據(jù)3.14159來替換。如:2*2.3*PI就等價于2*2.3*3.14159。習慣上,符號常量用大寫字母表示。#definePRICE30

intmain(){

int

num,total;num=10;total=num*PRICE;

printf(“total=%d”,total);return0;}符號常量在其作用域內(nèi)不能再被賦值。使用符號常量的好處:(1)含義清楚;(2)一改全改二、變量變量是指在程序運行中,其值可以被改變的量?;靖拍睿鹤兞看碛嬎銠C內(nèi)存中的某一存儲空間,該存儲空間中存放的數(shù)據(jù)就是變量的值。在同一程序塊中,每個變量都有唯一的名字,不能被重復定義。

inta,b,c;floatx,y;charc1,c2;或intc1,c2;

自己設定,滿足標識符的規(guī)定。如:int,float,char“;”不可省定義形式:類型標識符變量名1[,變量名2,變量名3,...];例如:注意事項:(1)變量必須先定義后使用

(2)每個變量必須被指定為一種類型

(3)一般習慣上用小寫字母表示變量,用大寫字母表示符號常量,以示區(qū)別。(僅是習慣不是規(guī)定)三、C語言中的標識符概念:就是用來標識變量名、符號常量名、函數(shù)名、類型名、文件名等的有效字符序列。(1)標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。定義規(guī)則:如:_1yearmonthstudent_namesum0M.D.Jones$123#a3b?ca=b(2)在C語言中,大寫字母和小寫字母被認為是不同的字符。因此,a和A,I和i,Sum和sum,分別是兩個不同的標識符。一般,變量名用小寫字母,與人們習慣一致。(3)用戶自定義的標識符不能與保留字(關(guān)鍵字)同名。保留字關(guān)鍵字概念:就是具有特定含義的標識符,用戶不能用來作自定義標識符。C語言中的關(guān)鍵字較少,由ANSI標準推薦的關(guān)鍵字有32個。常用的有:(1)與數(shù)據(jù)類型有關(guān)的(14):charintfloatdoublesignedunsignedshortlongvoidstructuniontypedef

enum

sizeof(3)

與程序控制結(jié)構(gòu)有關(guān)的(12):

dowhileforifelseswitchcase

defaultgotocontinue

breakreturn 見課本P365附錄II(2)與存儲類別有關(guān)的:

autoexternregisterstatic一、整型常量的表示方法整型常量的表示方法:

1.十進制整數(shù):123、-76、02.八進制整數(shù)(以0開頭):076、-0253076轉(zhuǎn)換成十進制:7*8+63.十六制整數(shù)(以0x開頭):0xa、0x20、0xf40xf4轉(zhuǎn)換成十進制:15*16+43.3整型數(shù)據(jù)(1)整型變量的分類基本型,以int表示。長整型,以longint表示,或以long表示。無符號型,其中無符號型又分為無符號整型和無符號長整型,分別以unsignedintunsignedlong表示。默認為有符號型:(signed)int,(signed)long

int二、整型變量類型比特數(shù)最小取值范圍[signed]int16-215~(215-1)即-32768~32767[signed]long[int]32-231~(231-1)unsigned[int]160~(216-1)即0~65535unsignedlong[int]320~(232-1)intx;longy;2000200120022005xy內(nèi)存內(nèi)存地址20032004所有變量必須先定義再使用??!(2)整數(shù)在內(nèi)存中的存放形式整數(shù)在內(nèi)存中以補碼表示:一個正數(shù)的補碼和其原碼的形式相同;負數(shù)的補碼:將該數(shù)的絕對值的原碼,按位取反再加1。例如:整數(shù)8的16位(2字節(jié))編碼原碼:0000000000001000反碼:0000000000001000補碼:00000000

00001000例如:整數(shù)-8的16位(2字節(jié))編碼原碼:1000000000001000反碼:1111111111110111補碼:11111111

11111000內(nèi)存中存儲形式內(nèi)存中存儲形式(3)整型變量的定義類型標識符變量名1[,變量名2,變量名3,...];如:inta,b;(指定變量a,b為整型)unsignedintc,d;(指定變量c,d為無符號整型)longe,f;(指定變量e,f為長整型)(5)整型數(shù)據(jù)的格式輸出例:main(){inta,b,sum;a=123;b=456;sum=a+b;printf(”a=%d,b=%d,c=%d\n”,a,b,sum);}

結(jié)果:a=123,b=456,c=579

原樣輸出格式符與輸出項一一對應轉(zhuǎn)義字符(換行)printf函數(shù)的一般格式:printf("格式控制字符串",輸出項列表);◆必須用英文的雙引號括起來。

◆作用是控制輸出項的格式和輸出一些提示信息?!粢敵龅谋磉_式?!舫A?、變量、運算符表達式、函數(shù)返回值等,每個輸出項之間用逗號“,”分隔。格式控制字符組成:普通字符、轉(zhuǎn)義字符、格式說明。普通字符按原樣輸出,主要用于輸出提示信息。:轉(zhuǎn)義字符“\”起頭的轉(zhuǎn)義字符(輸出所表示的字符或?qū)崿F(xiàn)其功能,見P25表3-1,詳后述)格式說明由"%"

和"格式字符串"組成:%格式字符串。它表示按規(guī)定的格式輸出數(shù)據(jù),與輸出項一一對應。:常用的整型數(shù)據(jù)的輸出格式符:%d:以有符號十進制數(shù)形式輸出整數(shù)。%ld:以有符號十進制數(shù)形式輸出長整數(shù)。%md:以有符號十進制數(shù)形式輸出整數(shù),至少占m位。如果數(shù)據(jù)的位數(shù)小于m,右對齊,若大于m,則按實際位數(shù)輸出。例如:printf("%d\n",100);100printf("%5d\n",100);100100printf("%d%8d″,100,100*100);10010010010000C語言的整型數(shù)據(jù)在內(nèi)存中的存儲形式是【】A)原碼B)補碼C)反碼D)ASCII碼以下【】組中的標識符都是合法的C語言用戶標識符:A)a_10B)charC)_intDsigned3aba#bdaya一、實型常量的表示方法:十進制形式:由數(shù)字和小數(shù)點組成;例如:3.44.

.3注意:必須有小數(shù)點指數(shù)形式:由“十進制小數(shù)”+“e(或E)”+“十進制數(shù)整數(shù)”三部分組成。例如:12.5e-6表示12.5×10-6十進制小數(shù)(尾數(shù)部分)e(或E)十進制數(shù)整數(shù)(指數(shù)部分)3.4實型數(shù)據(jù)注意:e或E的兩邊必須有數(shù),且其后面必須為整數(shù);

如:6E0.2e56E

二、實型變量(1)實型變量在內(nèi)存中的存放形式和變量定義實型數(shù)據(jù)在內(nèi)存中是按照規(guī)范化的浮點數(shù)形式存儲的。變量定義:float變量名;

double變量名;數(shù)符尾數(shù)指數(shù)符號指數(shù)如:floata,b,c;doublea1,a2;a,b,c為float型變量名。a1,a2為double型變量名。(2)實型變量的分類單精度(float)型雙精度(double)型長雙精度(longdouble)型類型比特數(shù)有效數(shù)字數(shù)值范圍float326~7-10-38~1038double6415~16-10-308~10308

longdouble12818~19-10-4932~-104932實例floatx;doubley;2000200320042011xy內(nèi)存內(nèi)存地址(3)實型數(shù)據(jù)的輸出舉例P47例3.4:main(){floata,b;a=1.23e1;b=a+20;

printf("%f\n",a);printf("%f\n",b);}運行結(jié)果:12.30000032.300000TC默認浮點數(shù)據(jù)輸出6個小數(shù)位數(shù)(4)實型數(shù)據(jù)的輸出格式符(P37)%f:按小數(shù)形式輸出實型數(shù),整數(shù)部分全部輸出,默認6位小數(shù)。%m.nf:按小數(shù)形式輸出實數(shù),制定保留n位小數(shù),數(shù)據(jù)總寬度至少為m位,右對齊,超過m位按實際長度輸出。例如:printf(“b=%5.2f”,2.3);

二種表現(xiàn)形式:用單引號括起來的一個字符;如:'A'、'1'、'?'等。只能是英文的單引號3.5字符型數(shù)據(jù)一、字符常量注意:a、’a’、”a”互不相同,分別為變量、字符常量、字符串常量。9、’9’、”9”互不相同,分別為整型常量、字符常量、字符串常量。用單引號括起來的由右斜杠(\)引導的轉(zhuǎn)義字符,長度為一個字節(jié),其含義不是字符本身,而是轉(zhuǎn)成新的意義。(P25表3-1)如:'\n''\101''\x41'在統(tǒng)計字符個數(shù)時,只能記為一個字符轉(zhuǎn)義字符表字符形式功能

\n換行\(zhòng)t橫向跳格\b退格,將當前位置移到前一列\(zhòng)f\\、\'、\"8進制數(shù)表示的ASCII碼對應的字符反斜杠、單引號、雙引號\ddd換頁

\xhh16進制數(shù)表示的ASCII碼對應的字符一個字符的多種表示方法:任一字符都可用’\ddd’或’\xhh’表示,其中ddd為該字符的ASCII碼八進制形式、hh為該字符的ASCII碼十六進制形式例:’A’、’\101’、’\x41’均表示A要避免的錯誤:表示單引號:不是'''表示雙引號:不是'"'表示斜線:

不是'\'轉(zhuǎn)義字符應用舉例printf("\n1234\nabcd\n");1234abcdprintf("\n1234\\\n");printf("\'\"\x41\n");1234\'"AP25例子3.1字符的值域:即字符的取值范圍。ASCII字符表中的所有字符,每個字符型數(shù)據(jù)在內(nèi)存中占一個字節(jié),包括可顯示字符和非顯示字符。例如:charc;c=’A’;c=65;c=’\101’;c=’\x41’;

c=0101;c=0x41;

二、字符變量字符變量用來存放字符常量,注意一個字符變量只能存放一個字符。一般以一個字節(jié)來存放一個字符,或者說一個字符變量在內(nèi)存中占一個字節(jié)。變量中可存儲一個字符或者一個0~255之間的無符號整數(shù)。三、字符數(shù)據(jù)在內(nèi)存中的存儲形式及使用方法

存儲形式:按ASCII碼存儲,不是字符本身,其形式與整數(shù)的存儲形式一樣。使用方法:

按字符使用:則使用字符本身。

按數(shù)值使用:則使用該字符的ASCII碼值。例3.6向字符變量賦以整數(shù)main(){chara,b;a=97;b=98;printf("%c,%c\n",a,b);printf("%d,%d\n",a,b);}運行結(jié)果:a,b97,98例3.7大小寫字母的轉(zhuǎn)換main(){chara,b;a='a';b='b';a=a-32;b=b-32;printf("%c,%c\n%d,%d\n",a,b,a,b);}運行結(jié)果:A,B65,66四、字符型數(shù)據(jù)輸出格式符%c:按字符輸出一個字符,但不輸出單引號。%mc:按字符輸出一個字符,占m位,右對齊。main(){charc=‘a(chǎn)’;

inti=97;printf(“%c,%d\n”,c,c);printf(“%c,%d\n”,i,i);}a,97a,97注:C語言允許字符變量參與數(shù)值運算,用ASCII碼運算;大小寫字母ASCII碼相差32。五、字符串常量字符串常量是用一對雙引號括起來的若干字符序列,隱含以’\0’結(jié)尾。字符串中字符的個數(shù)稱為字符串長度。長度為0的字符串(即一個字符都沒有的字符串)稱為空串,表示為“”(一對緊連的雙引號)。字符串常量和字符常量區(qū)別:1)字符常量由單引號括起來,字符串常量由雙引號括起來。2)字符常量只能是單個字符,字符串常量則可以含0個或多個字符。3)可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。例如:charc1='A';是可以的,但charc1="A";是不合法的。如:有一個字符串為“CHINA”,則它在內(nèi)存中的實際存儲如下所示:最后一個字符‘\0’是系統(tǒng)自動加上的,它占用6字節(jié)而非5字節(jié)內(nèi)存空間。又如:“ab\tcd”存儲長度為6個字節(jié)。

注意:在源程序中書寫字符串常量時,不必加結(jié)束字符‘\0’,否則畫蛇添足。CHINA\04)字符常量占一個字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個字節(jié)中存放字符“\0”(ASCII碼為0)。這是字符串結(jié)束的標志,由系統(tǒng)自動加上。六、串輸出格式符%s:輸出一個字符串。%ms:輸出一個字符串,至少占m列,右對齊,超過按實際輸出。例4.5main(){printf(“%s,%7s\n”,”CHINA”,”CHINA”);}CHINA,CHINA例:printf(“%s”,“CHINA”);printf(“CHINA”);把“CHINA”當作一個字符串把“CHINA”當作要原樣輸出的字符序列3.6變量賦初值在說明變量的同時給變量一個初始值。變量定義分配存儲空間變量初始化分配存儲空間的同時存入數(shù)據(jù)inta,b;ab??inta=1,b=2;ab12不確定例:看一看,下列的定義哪些是正確的?inta=5,b=3;inta=b=c=3;inta,b,c=3;應寫為:inta=3,b=3,c=3;/*只有c賦了初值*/初始化不是在編譯階段完成的,而是在程序運行時執(zhí)行本函數(shù)時賦予初值的,相當于有一個賦值語句。例如:inta=3;相當于:inta;/*指定a為整型變量*/a=3;/*賦值語句,將3賦予a*/§3.7各類數(shù)值型數(shù)據(jù)間的混合運算數(shù)據(jù)類型的級別:低高intunsignedlongdoublefloatchar橫向的必須先轉(zhuǎn)成縱向類型才能進行運算運算規(guī)律:1)兩個同類型數(shù)據(jù)運算結(jié)果為原類型。28+2int301/2int02)兩個不同類型的數(shù)運算時,系統(tǒng)自動將低級類型轉(zhuǎn)換為高級類型,而后進行同類型運算,結(jié)果為高級類型。(表示范圍大的為高級類型,詳細見P44圖3.5)3.2/2結(jié)果為double型數(shù)據(jù)28+‘a(chǎn)’結(jié)果為int型數(shù)據(jù)32768*32結(jié)果為longint型數(shù)據(jù)3)多個數(shù)運算時,類型轉(zhuǎn)換要逐步進行。2/3*6.3結(jié)果為?4.200.03.8算術(shù)運算符與算術(shù)表達式三類算術(shù)運算符號:

1.基本算術(shù)運算符

2.強制類型轉(zhuǎn)換運算符

3.自增、自減運算符要求掌握每一種運算符號的

功能、優(yōu)先級、結(jié)合性

[P42

表3-3]結(jié)合性的含義:當某一運算對象兩側(cè)的運算符號優(yōu)先級相同時,按照結(jié)合性所規(guī)定的方向進行運算。如 a#b#c(#代表某一運算符)若先運算a#b,再將其結(jié)果與c運算,稱為左結(jié)合性:從左至右運算若先運算b#c,再將a與其結(jié)果運算,則稱右結(jié)合性:從右至左運算一、基本算術(shù)運算符+:加法-:減法*:乘法/:除法%:取余或模兩個整數(shù)相除取整數(shù)商

3/5=0-5/3=-1 3./5=0.6 3/5.=0.6 3%5=3%兩側(cè)都應為整型數(shù)據(jù)2.5%3出錯優(yōu)先級:(*,/,%)高于(+,-)結(jié)合性:自左向右

P42表3-3二、算術(shù)表達式用算術(shù)運算符和括符將操作數(shù)連接起來的式子。優(yōu)先級:()*/%+-結(jié)合性自左向右,與數(shù)學上一致。三、強制類型轉(zhuǎn)換運算符(類型名)常量(類型名)變量(類型名)表達式功能:將一個常量、變量或表達式轉(zhuǎn)換成所需類型。優(yōu)先級:屬單目運算符,僅低于括號,高于基本算術(shù)運算符。結(jié)合性:自右向左注意:類型名要用括號括起來,如果要轉(zhuǎn)換表達式的類型,則表達式也要用括號括起來。例:

float(2/3)錯誤

(int)(2.5)%3值為2(float)5/2值為2.500000四、自增與自減運算符(重點和難點)++i,--ii先自增(減)1,再使用ii++,i--先使用i,i再自增(減)1(1)單獨使用時++i;等價i++;等價i=i+1;(2)j=++i;(3)j=i++;若i的初始值為3i=4;j=4;i=4;j=3;結(jié)合性:自右向左例:i=2;j=-i++;分析:(1)++、--、+(正號)、-(取負)是同級運算符,結(jié)合方向:自右向左。(2)-i++等價于-(i++)(3)對于括號內(nèi)的自增運算,又要先使用i,再使i增加1。運算結(jié)果:i的值為3,j的值為-2。優(yōu)先級:屬單目運算符,僅低于括號類,高于基本算術(shù)運算符。a=3;printf(“%d”,a++);運算結(jié)果:輸出3,a的值為4。a=3;printf(“%d”,++a);運算結(jié)果:輸出4,a的值為4。a=3;printf(“%d”,(a++)%2*(a+2));運算結(jié)果:輸出6,a的值為4。注意:此時a的值已經(jīng)修改為4??!例:3--出錯

-i--即-(i--),非(-i)--a=3;b=-a++;執(zhí)行后,b的值為-3,a的值為4切記:只能用于變量,不能用于常量或表達式3.5

賦值運算符、賦值表達式、賦值語句賦值運算符:=賦值表達式:變量=表達式功能:將“=”右側(cè)表達式的值賦給左側(cè)變量的值,賦值表達式的值是被賦值變量的值。賦值語句:變量=表達式功能:將“=”右側(cè)表達式的值賦給左側(cè)變量的值。*所有表達式末尾加“;”后即變?yōu)檎Z句賦值表達式舉例:(1)x=(y=12)/4y值為12,x值為3,表達式的值為3(2)x=y=12/4y值為3,x值為3,表達式的值為3(3)(x=y)=12/4該賦值運算符左邊不是變量,而是一個表達式一、賦值運算符賦值運算符:=優(yōu)先級:僅優(yōu)先于最低級的逗號運算符。結(jié)合性:自右向左例:c=b=a=5c=(b=(a=5))注1)賦值運算符號不等于數(shù)學中的“等號”;注2)自增、自減運算實際上也是一個特殊的賦值運算符。賦值運算過程“變量=表達式”過程:①計算右側(cè)表達式的值②類型轉(zhuǎn)換:若“=”兩側(cè)變量和表達式的類型不一致,將右側(cè)表達式的值類型轉(zhuǎn)換為左側(cè)變量的類型。③將轉(zhuǎn)換好的右側(cè)表達式的值賦給左側(cè)變量。例:main(){floata=-32.89;inti;i=a;printf(“%d\n”,i);a=i;printf(“%f\n”,a);}-32-32.000000賦值運算小結(jié):①存儲長度長的數(shù)據(jù)賦給存儲長度短的變量,可能會丟失數(shù)據(jù);②存儲長度短的數(shù)據(jù)賦給存儲長度長的變量,保持數(shù)值大小不變;③數(shù)據(jù)賦給存儲長度相同的變量,按存儲形式原樣照賦。二、復合賦值運算符*=、/=、%=、+=、-=等等格式:變量復合賦值運算符表達式功能:復合運算符是一個運算符,但功能上,是兩個運算符功能的組合。例:

a+=b相當于a=a+ba*=b+c相當于a=a*(b+c)

優(yōu)先級:僅優(yōu)先于最低的逗號運算符,和“=”同級。結(jié)合性:自右向左賦值表達式和賦值語句舉例例1:a+=a-=a*aa初值為2先做:a=a-a*a4-2表達式值為-2(a=-2)

再做:a=a+a-4表達式值為-4(a=-4)例2:sum=(a=123)+(b=456)賦值語句:等效于a=123;b=456;sum=a+b;結(jié)果:a=123,b=456,sum=579*表達式中的變量可用給該變量賦值的表達式代替(應加括號)3.10

逗號運算符和逗號表達式形式:逗號表達式1,逗號表達式2,…,逗號表達式n功能:從左至右依次計算各表達式的值,逗號表達式的值是最后一個表達式的值。優(yōu)先級:最低結(jié)合性:自左至右例:d=(a=3,b=5,c=a+b,c+2,a++)

依次進行逗號表達式中各表達式的運算,整個表達式的值為計算結(jié)束后,a、b、c、d的值分別為d=(a=3,b=5,c=a+b,c+2,a++)3a=35b=58c=8103a=433d=334,5,8,3例:(a=3*5,a*4),a+5的值為

a的值為2015(a=3*5,a*4),a+515a=15602020◆必須用英文的雙引號括起來?!粲善胀ㄗ址透袷秸f明字符組成。◆由若干個地址組成的列表?!糇兞康牡刂贰⒆址氖椎刂?、指針變量等,以逗號“,”間隔?!糇兞康刂方M成:地址運算符“&”后跟變量名。3.4

格式輸入函數(shù)scanfscanf函數(shù)調(diào)用的一般形式:scanf(“格式控制字符串”,輸入項地址列表);如scanf(“%d,%d”,&a,&b);函數(shù)功能:按照格式控制字符串所規(guī)定的格式,從鍵盤上輸入數(shù)據(jù),依次賦給各個變量。格式控制串由下列2類組成:

1.“%”起頭的輸入項格式符(與輸入項一一對應)

2.普通字符(原樣輸入)注:不能用轉(zhuǎn)義字符。常用格式字符:類型格式字符說明(短)整型%d長整型%ld實型(單精度型)%f輸入小數(shù)形式或指數(shù)形式(不區(qū)別小數(shù)和指數(shù))實型(雙精度型)%lf輸入小數(shù)形式或指數(shù)形式(不區(qū)別小數(shù)和指數(shù))字符型%c輸入一個字符,不帶‘’%d輸入一個字符的ASCII碼字符串%sscanf和printf的區(qū)別:例:inta;printf(“%d”,a);scanf(“%d”,a);intb;printf(“%d\n”,b);scanf(“%d\n”,&b);doubled;printf(“%f\n”,d);scanf(“%f”,&d);輸出實數(shù)時,不論是單精度還是雙精度數(shù),都可用%f;輸入實數(shù)時,單精度數(shù)用%f,雙精度數(shù)用%lf。用scanf函數(shù)注意點例:用scanf函數(shù)給整型a、b輸入數(shù)據(jù),使a=123,b=4561)scanf(“%d,%d”,&a,&b);輸入:123,456↙

或???123,???456↙2)scanf(“%d?%d”,&a,&b);輸入:123?456↙或123???456↙或123(按Tab鍵)456↙或123↙456↙如果輸入:123,456↙錯誤3)scanf(“a=%d,b=%d”,&a,&b);輸入:a=123,b=456↙

或a=123,b=456↙

輸入數(shù)值數(shù)據(jù)前加一些前導空格、Tab、回車不影響輸入。注:①非格式字符要原樣輸入,一般用空格或逗號作為數(shù)據(jù)間隔符。②輸入數(shù)值數(shù)據(jù)時,前導空格不計。③輸入空格時,可以用多個空格、一個或多個Tab、回車代替。4)scanf(“%d%d”,&a,&b);輸入:123456↙

或123456↙或123(按Tab鍵)456↙或123↙456↙注意:輸入多個數(shù)值數(shù)據(jù)時,如果沒有設定分隔符,在輸入數(shù)據(jù)時可用空格、回車或Tab鍵來分隔。C編譯在遇到這些符號即認為前一數(shù)據(jù)結(jié)束。例:charx,y,z;scanf(“%c%c%c”,&x,&y,&z);1)輸入:def↙則:x=‘d’,y=‘’,z=‘e’2)輸入:def則:x=‘d’,y=‘e’,z=‘f’例:charx,y,z;scanf(“%c%c”,&x,&y);scanf(“%c,&z);1)輸入:de↙f↙則:x=‘d’,y=‘e’,z=‘\n’2)輸入:def則:x=‘d’,y=‘e’,z=‘f’注:在用“%c”輸入字符時,輸入任意字符均作為有效字符。例:輸入數(shù)據(jù)使得a=1,b=2,x=3,y=4inta,b;intx,y;scanf(“%d%d”,&a,&b);scanf(“%d%d”,&x,&y);輸入:12↙34↙例:inta;charb;floatc;scanf(“%d%c%f”,&a,&b,&c);輸入:1234a123o.26↙則:a=1234,b=‘a(chǎn)’,c=123.0注:在獲取輸入數(shù)據(jù)時,如果遇到非法數(shù)據(jù),則當前數(shù)據(jù)到此結(jié)束。3.4.3字符數(shù)據(jù)的輸入輸出

printf函數(shù)+“%c”格式符

scanf函數(shù)+“%c”格式符

putchar函數(shù):用于輸出一個字符

getchar函數(shù):用于輸入一個字符(1)函數(shù)格式int

putchar(ch);(2)函數(shù)功能向標準輸出設備(一般為顯示器)輸出一個字符,并返回輸出字符的ASCII碼值。一、putchar函數(shù)(字符輸出函數(shù))函數(shù)返回值類型函數(shù)的名稱函數(shù)的參數(shù)參數(shù)ch可以是字符常量、字符變量和整型數(shù)值表達式。例1:putchar(‘\n’);在屏幕上輸出一個換行符例2:c=‘*’;putchar(c);在屏幕上輸出一個“*”例3:putchar(65)相當于putchar(‘A’)在屏幕上輸出字母A,65是A的ASCII碼。putchar函數(shù)的說明:注:要調(diào)用該函數(shù),在程序前要包含“頭文件”(在頭文件中包含了putchar函數(shù)有關(guān)的信息):

#include“stdio.h”

或#include<stdio.h>否則,會出現(xiàn)錯誤提示:“undefine

sybom‘_putchar’in…”例:#include<stdio.h>main(){inta=65;charb='B';

putchar(a);putchar(65+1);

putchar(b);putchar('B'+1);}程序運行結(jié)果為:ABBC包含函數(shù)putchar的頭文件(1)函數(shù)格式int

getchar();(2)函數(shù)功能從標準輸入設備(一般為鍵盤)讀入一個字符,返回該字符的ASCII碼值。二、getchar函數(shù)(字符輸入函數(shù))函數(shù)返回值類型函數(shù)的名稱無參數(shù)注意:程序運行到getchar()時,將返回用戶屏幕,等待用戶輸入一個字符,輸入后,才繼續(xù)向下運行。若用戶輸入字符后未按回車鍵,則鍵入的內(nèi)容一直保留在鍵盤緩沖區(qū)中,只有用戶鍵入回車鍵后,字符輸入函數(shù)getchar才進行處理。

函數(shù)getchar將回車鍵作為一個字符讀入。如果程序中有兩個以上函數(shù)getchar時,應該一次性輸入所需字符,最后再按回車鍵。也要在程序前包含頭文件:

#include“stdio.h”

或#include<stdio.h>無論輸入的是英文字母或標點符號還是數(shù)字,都是作為字符輸入。例:#include<stdio.h>/*包含頭文件*/voidmain(){inta;a=getchar(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論