版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
本章學(xué)習(xí)目標(biāo)掌握標(biāo)識符、常量、變量、注釋的使用規(guī)則了解C語言中常用的數(shù)據(jù)類型掌握各種運算符與表達(dá)式的運算方法熟練掌握常用輸入輸出函數(shù)的語法規(guī)則能進行簡單的順序結(jié)構(gòu)程序設(shè)計3.1標(biāo)識符、關(guān)鍵字、注釋標(biāo)識符:C語言中為變量、數(shù)組、函數(shù)、數(shù)據(jù)類型以及文件等命名的名稱。3.1.1標(biāo)識符C語言中標(biāo)識符定義規(guī)則:1.只能由字母、數(shù)字和下劃線組成,并且第一個字符不可以是數(shù)字。如sun和_sun是合法的標(biāo)識符,6sun是不合法的標(biāo)識符;2.標(biāo)識符區(qū)分大小寫。score、Score、SCORE代表三個不同的標(biāo)識符;3.標(biāo)識符不能和C語言的關(guān)鍵字相同;4.可由一或多個字符組成,最長不超過32個字符;5.最好“見名知意”,如age,name。以下標(biāo)識符是否正確?9classok%a1stu_namename1intCnoname1231234567題目3.1.2關(guān)鍵字關(guān)鍵字:又稱保留字,是C語言預(yù)定義的單詞,在程序中有特定的含義,在定義標(biāo)識符的時候,不能使用這些關(guān)鍵字。C語言中所有關(guān)鍵字必須用小寫英文字母。共有四大類32個關(guān)鍵字,其中數(shù)據(jù)類型關(guān)鍵字12個,控制語句關(guān)鍵字12個,存儲類型關(guān)鍵字4個,其他類型關(guān)鍵字4個3.1.2關(guān)鍵字(部分)序號類型關(guān)鍵字作用1數(shù)據(jù)類型(9個)char字符型數(shù)據(jù)類型,占1個字節(jié)int整型數(shù)據(jù)類型,占2或4個字節(jié)short短整型數(shù)據(jù)類型,占2個字節(jié)long長整型數(shù)據(jù)類型,占4個字節(jié)float單精度浮點型數(shù)據(jù)類型,占4個字節(jié)double雙精度浮點型數(shù)據(jù)類型,占8個字節(jié)signed表示有符號整數(shù),是默認(rèn)值unsigned表示無符號整數(shù)void空值,定義函數(shù),表示無返回值自定義數(shù)據(jù)類型(3個)
struct結(jié)構(gòu)體數(shù)據(jù)類型union聯(lián)合體(共用體)數(shù)據(jù)類型enum枚舉數(shù)據(jù)類型3.1.3注釋注釋:以特定的格式出現(xiàn)在程序代碼中,不是程序執(zhí)行語句的一部分,而是程序員解釋語句的文字說明,不參與程序運行。兩個作用:1.解釋說明;2.暫時屏蔽。兩種注釋:
1.
多行注釋:用/**/括起來,可以放在程序的任意位置;
2.
單行注釋:用兩個反斜杠//表示,只能放在程序代碼行尾部。3.1.3注釋注釋示例:/*注釋1.這是程序入口程序的功能是.....*/#include<stdio.h>main(){ printf("helloworld");//注釋2.這是輸出語句}3.2數(shù)據(jù)類型、常量和變量描述數(shù)據(jù)時必須先指定數(shù)據(jù)類型;不同數(shù)據(jù)類型的數(shù)據(jù)在計算機中的存儲方式和處理方式都不相同。數(shù)據(jù)類型是計算機程序設(shè)計中一個非常重要的概念。計算機程序設(shè)計兩個問題:
1.數(shù)據(jù)的描述,2.動作的描述。圖3-1C語言的數(shù)據(jù)類型不可再分解的數(shù)據(jù)類型家具名稱廠家?guī)齑媪夸N售數(shù)量進價售價數(shù)據(jù)類型字符串字符串整數(shù)整數(shù)浮點數(shù)浮點數(shù)家具商場銷售管理基本數(shù)據(jù)類型所占字節(jié)數(shù)和取值范圍數(shù)據(jù)類型類型標(biāo)識符字節(jié)數(shù)取值范圍短整型short2-32768~327267(-215~215-1)整型int2或4同short或long,取決于C編譯系統(tǒng)長整型long4-2147483648~2147483647(-231~231-1)無符號短整型unsignedshort20~65535(0~216-1)無符號整型unsignedint2或4同unsignedshort或unsignedlong無符號長整型unsignedlong40~4294967295(0~232-1)單精度浮點型float4-3.4×10-38~3.4×1038雙精度浮點型double8-1.7×10-308~1.7×10308字符型char1ASCII碼0~127有符號字符型signedchar1-128~127(-27~27-1)無符號字符型unsignedchar10~2553.2.2常量常量直接常量整型常量實型常量字符常量字符串常量符號常量數(shù)值型常量常量:在程序運行過程中,其值不能被改變的量。1.整型常量十進制:直接寫八進制:用數(shù)字0開頭;十六進制:用數(shù)字0和字母X開頭(0x或0X)常量說明-200正確,十進制整型常量200L正確,十進制長整型常量,后綴L(大小寫均可)表示長整型200lu正確,十進制無符號長整型常量,后綴u表示無符號整數(shù)010正確,八進制整型常量,等于十進制80x10正確,十六進制整型常量,等于十進制16019錯誤,0開頭表示八進制常量,最大數(shù)應(yīng)為7,數(shù)字9錯誤DD錯誤,前面沒有加0x,應(yīng)該是十進制常量,D不是十進制數(shù)0X3h錯誤,前面加0X,表明是十六進制數(shù)常量,最大應(yīng)為FOX11錯誤,十六進制數(shù)常量開頭應(yīng)該是數(shù)字0,而不是字母O,C語言程序中不能直接表示二進制1.以下整數(shù)常量是否正確?010、016、0180x10、0xde、ox89、0xg9題目錯:018
ox89、0xg9
不可能:469
2.以下哪些數(shù)字有可能八進制?2222、469、01012.實型常量實型:就是帶小數(shù)的浮點數(shù)。兩種表示法:浮點計數(shù)法、科學(xué)計數(shù)法。一般情況下,對太大或太小的數(shù)采用科學(xué)計數(shù)法常量說明231.46正確,雙精度浮點型常量7.36E-7正確,雙精度浮點型常量,以科學(xué)計數(shù)法表示-0.0945正確,雙精度浮點型常量231.46f正確,單精度浮點型常量,后綴f(大小寫均可)表示單精度,默認(rèn)雙精度1.2e7.5錯誤,指數(shù)不可以是小數(shù),1.2e7或者1.2e5都是正確的2.5e錯誤,指數(shù)不可省略,e后面必須有一個整數(shù)e7錯誤,e前面需有一個數(shù),不可省略.e2錯誤,e前面需有一個數(shù),不可只寫小數(shù)點3.字符常量字符常量:由一對單引號括起來的單個字符。分類:一般字符常量、特殊字符常量(轉(zhuǎn)義字符)。如:'A'、'S'、'9'、'$'等均為一般字符常量,'\t','\0','\n'、'\''和'\\'是特殊字符常量'\''和'\\'分別代表單個字符單引號(')和反斜杠(\)。單引號只起定界作用,并不代表字符。兩個“單”提示:在C語言中,字符是按其所對應(yīng)的ASCII的值來存儲的,一個字符占一個字節(jié)。ASCII碼表(局部)表3-7常用轉(zhuǎn)義字符表轉(zhuǎn)義字符意義ASCII值(十進制)\a鳴鈴(BEL)7\b退一格(BS)8\f換頁(FF)12\n回車換行(LF),使用頻率最高10\r回到本行的開始(CR)13\t水平制表符,橫向調(diào)到下一個制表位(HT)9\v垂直制表符(VT)11\\表示反斜杠92\’單引號39\”雙引號34\0空字符(NULL)0\ddd八進制ASCII為三位數(shù)ddd的字符ddd(八進制)\xhh十六進制ASCII為兩位數(shù)hh的字符hh(十六進制)%%表示一個百分號37
字符09AZazASCII值(十進制)4857659097122部分常用字符ASCII值下列不屬于字符常量的是:
A."A"B.'\xCC'C.'d'D.'\65'題目4.字符串常量字符串常量:用一對雙引號括起來的一串字符。字符常量與字符串常量的區(qū)別:①單引號與雙引號;②字符數(shù):字符常量只能表示一個字符,字符串常量則可以是零個、一個或多個字符;③內(nèi)存空間:字符型常量固定占一個字節(jié),字符串常量所占的字節(jié)數(shù)等于字符串中字符的個數(shù)加1?!白址Y(jié)束標(biāo)志”:\0占一個字節(jié)。"A"和'A'在計算機中存儲分別占多少空間?題目"A"占2個字節(jié)'A'占1個字節(jié)5.符號常量符號常量:在C語言中,用標(biāo)識符表示的一個常量。習(xí)慣上用大寫英文字母表示符號常量,區(qū)別于變量。符號常量在使用前必須先定義,定義的形式是:#define<符號常量名><常量>如:#definePI3.14159#defineSEX‘M’#defineNAME“張三”錯!符號常量值不可以改變值題目#include<stdio.h>#definePI3.1415926main(){ intr=3; printf("圓的面積為:%lf\n",PI*r*r); printf("圓的周長為:%lf\n",PI*2*r);}例題-了解符號常量的使用3.2.3變量變量需要有名字,用標(biāo)識符來命名;變量在內(nèi)存中占一定的存儲空間,空間大小取決于變量的數(shù)據(jù)類型;變量必須先定義后使用;變量的值可以通過賦值的方法獲得和改變;一個變量只能存放一個數(shù)據(jù)。變量:在程序運行過程中,其值可以改變的量。變量的定義和初始化說明:①數(shù)據(jù)類型必須是有效的,如:int、float等,數(shù)據(jù)類型決定變量所占空間大小和取值范圍;②數(shù)據(jù)類型與變量名之間至少空一個空格;③一個語句可以同時定義多個同一數(shù)據(jù)類型的變量,逗號分隔,分號結(jié)束;④變量名必須符合標(biāo)識符命名規(guī)則,而且盡量“見名知意”;⑤同一個函數(shù)中,變量名不可以重復(fù);變量定義的一般形式:數(shù)據(jù)類型變量名1[=初值],變量名2[=初值]...;變量的賦值定義變量的同時也可以給變量賦初值,在程序運行過程中可以隨時改變變量的值。例:main(){inti=9,j;//兩個變量,i賦初值9,j未賦初值j=11;//為j賦值i=80;//為i賦值,80替換了初值9printf("%d\n",i);//輸出i值,%d表示整數(shù),\n換行}程序運行結(jié)果是:80
變量a=10,b=20,如何交換a,b中的數(shù)據(jù)?生活中類似場景:如何交換a、b兩個杯中的液體?a水b酒
c空杯變量數(shù)據(jù)交換a水→酒
b酒→水c空杯a水→c
b酒→a
c水→b變量數(shù)據(jù)交換main(){inta=10,b=20,c;c=a;a=b;b=c;printf("a=%d,b=%d\n",a,b);}變量數(shù)據(jù)交換變量a=10,b=20,如何交換a,b中的數(shù)據(jù)?3.3運算符與表達(dá)式C的運算類型極其豐富。還有位運算符、條件運算符、逗號運算符、自反賦值運算符、指針運算、括號、強制類型轉(zhuǎn)換等。表達(dá)式類型多種多樣。計算功能、邏輯判斷功能強大,可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。3.3.1算數(shù)運算符及其表達(dá)式運算
符優(yōu)
先
級作
用++高(14)自增1(變量的值加1)――自減1(變量的值減1)+低(12)加法?減法*中(13)乘法/除法%模運算(整數(shù)相除,結(jié)果取余數(shù))
題目:若inta=10,b=4,c,d,e;c=a/b;d=a++;e=++a;則a,b,c,d,e的值分別是多少?a=12,b=4,c=2,d=10,e=12單目運算前置++/??與后置++/??*前置++或前置??表達(dá)式:
++<變量>;
先將變量的值加1,再使用變量。
??<變量>;
先將變量的值減1,再使用變量。*后置++或后置??表達(dá)式:
<變量>++;
先使用變量,再將變量的值加1。
<變量>??;
先使用變量,再將變量的值減1。題目以下表達(dá)式的結(jié)果是多少?1.3/22.2/33.3/2.04.2/3.05.3%26.3%47.5%3.58.a=5;b=a++*2;b=?a=?1.12.03.1.54.0.6666675.16.37.錯8.a=6,b=103.3.2關(guān)系運算符及其表達(dá)式關(guān)系運算符含
義優(yōu)
先
級<小于高(10)>大于==等于低(9)!=不等于<=小于等于高(10)>=大于等于
說明:關(guān)系表達(dá)式的結(jié)果只有兩個:真(值為1)和假(值為0),用1代表真,0代表假。例題有inta,b,c;a=(5>0);b=((29-7)==(16-6));c=((29-7)==(16+6));則:變量a的值為1變量b的值為0變量c的值為1為什么?題目inta,b,c;a=(7==7==7);b=(5=='5');c=('a'>'A');則:變量a、b、c的值是什么?
inta,b,c,d;a=(7==7==7);b=(5=='5');c=('a'>'A');d=(a=5);則:變量a、b、c、d的值是什么?a=0,b=0,c=1a=5,b=0,c=1,d=53.3.3邏輯運算符及其表達(dá)式說明:邏輯表達(dá)式和關(guān)系表達(dá)式一樣,結(jié)果只有兩個:真(1)和假(0)。邏輯運算符含
義優(yōu)
先
級!邏輯非高(14)&&邏輯與中(5)||邏輯或低(4)邏輯運算規(guī)則說明:①表中的A和B均可以是其他關(guān)系表達(dá)式。②在C語言中,任何非0值均代表真,0代表假。③邏輯運算存在邏輯短路現(xiàn)象,如果表達(dá)式結(jié)果已經(jīng)確定,無論后面還有多少表達(dá)式,編譯器都不會再計算,但會檢查語法錯誤。ABA&&BA||B!A真真真真假真假假真假假假假假真假真假真真例題有定義inta=2,b=3,c,d;c=(a<b)||(a++);d=(a>b)&&(++a);結(jié)果:c=1,d=0,a=2
為什么?3.3.4位運算符及其表達(dá)式說明:①位運算是對變量的二進制按位進行操作;②位運算只適合于整型和字符型;③位運算的操作數(shù)只有兩個:0和1。位運算符含
義優(yōu)
先
級~按位取反高(14)&位與低(8)^位異或低(7)|位或低(6)<<位左移中(11)>>位右移位運算規(guī)則說明:詳細(xì)介紹見第十二章位運算ABA|B位或A^B位異或A&B位與~A按位取反~B按位取反1110100101100100000110111010main(){inta=2,b=6;intc,d,e,f;c=a&b;d=b|a;e=a^b;f=~a;}c,d,e,f賦值結(jié)果:題目c=2d=6e=4f=-3分析:2的二進制:000000106的二進制:00000110c=a&b:00000010d=b|a:00000110e=a^b:00000100f=~a:11111101分析程序運行結(jié)果:main(){inta=8;printf("%d\n",a<<2);printf("%d\n",a>>2);}運行結(jié)果:分析:8的二進制:00001000左移兩位:00100000右移兩位:00000010題目3223.3.5條件運算符及其表達(dá)式條件表達(dá)式的語法規(guī)則:當(dāng)表達(dá)式1值為1(真)時,結(jié)果為表達(dá)式2的值;當(dāng)表達(dá)式1值為0(假)時,結(jié)果為表達(dá)式3的值。條件表達(dá)式的一般形式:表達(dá)式1?表達(dá)式2:表達(dá)式3;說明:
①條件運算符由“?”和“:”組成;
②是唯一的三目運算符。
③表達(dá)式1通常是關(guān)系表達(dá)式或邏輯表達(dá)式。例題分析程序運行結(jié)果:#include<stdio.h>main(){inta=3,b=5,c;c=(a>b)?a:b;printf("c=%d\n",c);printf("%s\n",(a>10)?"a大于10":"a不大于10");}練習(xí)修改計算除法的表達(dá)式,進行判斷如果除數(shù)不為0,計算相除的結(jié)果如果除數(shù)為0,結(jié)果為03.3.6逗號運算符及其表達(dá)式逗號表達(dá)式的語法規(guī)則:從前向后,先計算表達(dá)式1,再計算表達(dá)式2,一直計算到表達(dá)式n;最后結(jié)果為表達(dá)式n的結(jié)果。逗號表達(dá)式的一般形式:表達(dá)式1,表達(dá)式2[…,表達(dá)式n];例題分析程序運行結(jié)果:#include<stdio.h>main(){inti=2;intx,y,z;x=i*2,i+3;y=(i*2,i+3);z=(i=i+5,i*2,i+8);printf("x=%d,y=%d,z=%d\n",x,y,z);}運行結(jié)果:
x=4,y=5,z=15為什么?3.3.7求字節(jié)運算符說明:sizeof運算符是一個單目運算符;作用是返回某數(shù)據(jù)類型、變量或常量在內(nèi)存中所占字節(jié)的長度求字節(jié)運算一般形式:
sizeof(數(shù)據(jù)類型名|變量名|常量);例題分析程序運行結(jié)果:#include<stdio.h>main(){floatx;chary;printf("%d\n",sizeof(short));printf("%d\n",sizeof(x));printf("%d\n",sizeof(y));printf("%d\n",sizeof(2+3.14));}程序運行結(jié)果:24183.3.8數(shù)據(jù)類型轉(zhuǎn)換按數(shù)據(jù)長度增加的方向轉(zhuǎn)換,將較短的數(shù)據(jù)類型值裝換成較長的數(shù)據(jù)類型值。自動轉(zhuǎn)換強制轉(zhuǎn)換強制轉(zhuǎn)換表達(dá)式:(數(shù)據(jù)類型符)表達(dá)式;或:(數(shù)據(jù)類型符)變量;強制轉(zhuǎn)換語法規(guī)則:將表達(dá)式或變量的值臨時轉(zhuǎn)換成圓括號內(nèi)指定的數(shù)據(jù)類型。但不改變變量原來的數(shù)據(jù)類型。例題分析程序賦值結(jié)果#include<stdio.h>main(){inti=3;floata=2.5,b=3.6;intj=i*a;intk=i/2;intm=(int)(a+b);intn=(int)a+b;into=a+b;floatx=i*a;floaty=i/2;floatz=(float)i/2;floatw=a+b;printf("j=%d\nk=%d\n",j,k);printf("m=%d\nn=%d\no=%d\n",m,n,o);printf("x=%f\ny=%f\n",x,y);printf("z=%f\nx=%f\n",z,w);}結(jié)果:j=7k=1m=6n=5o=6x=7.500000y=1.000000z=1.500000w=6.1000003.3.9運算符優(yōu)先級及結(jié)合性C語言共有各類運算符44個,按優(yōu)先級可分為11個類別共15個優(yōu)先級。運算符的優(yōu)先級與結(jié)合性:表3-26運算符優(yōu)先級及結(jié)合性說明自反賦值運算a%=b;a=a%b;x*=y+7x=x*(y+7)結(jié)合性左結(jié)合性:x+y-z(x+y)-z右結(jié)合性:x=y=zx=(y=z)運算符優(yōu)先級及結(jié)合性說明賦值號“=”“=”左邊只能是變量,不能是常量或表達(dá)式,如不能寫成:2=x;或x+y=a+b;。不要混淆“=”與“==”賦值運算是除逗號運算符之外優(yōu)先級最低的3.3.10表達(dá)式的書寫規(guī)則①所有括號都用圓括號(小括號);②乘號*不可省略,例如2x+3y必須寫成2*x+3*y;③比較多個數(shù)值大小應(yīng)兩兩判斷。例如:數(shù)學(xué)表達(dá)式x<=y<=z,在C中應(yīng)該寫為x<=y&&y<=z;④數(shù)學(xué)函數(shù)在math.h頭文件中。例如:對b2-4ac求平方根,在C語言中寫為:sqrt(b*b-4*a*c)。例題-分析程序運行結(jié)果#include<stdio.h>main(){inti=3,j=3,k=3;intx=1,y=2,z=7,a,b,c,d,e;a=i==j&&j==k;b=i==j==k;c=--x&&++y;d=x=y=z;e=++i+j++;i+=i-=i*i;printf("a=%db=%dc=%d",a,b,c);printf("d=%de=%d\n",d,e);printf("i=%dj=%dk=%d\n",i,j,k);printf("x=%dy=%dz=%d\n",x,y,z);}運行結(jié)果:a=1b=0c=0d=7e=7i=-24j=4k=3x=7y=7z=7程序運行后每個變量值是多少?3.4標(biāo)準(zhǔn)輸入輸出函數(shù)常用的標(biāo)準(zhǔn)輸入/輸出函數(shù):①格式化輸入/輸出函數(shù):scanf()/printf()②字符輸入/輸出函數(shù):getc(FILE*stream)/putc(FILE*stream)getch()/putch()getchar()/putchar()③字符串輸入/輸出函數(shù):gets(字符數(shù)組)/puts(字符數(shù)組)C語言的輸入、輸出操作通過調(diào)用系統(tǒng)函數(shù)來實現(xiàn)。3.4.1格式化輸出函數(shù)printf(“控制字符串”,輸出項列表)可省略例題--前面的例題分析程序運行結(jié)果:#include<stdio.h>main(){inti=2;intx,y,z;x=i*2,i+3;y=(i*2,i+3);z=(i=i+5,i*2,i+8);printf("x=%d,y=%d,z=%d\n",x,y,z);}運行結(jié)果:
x=4,y=5,z=15識別“控制字符串”與“輸出項列表”“格式說明”與“普通字符”“可打印字符”與“轉(zhuǎn)義字符”題目
1、printf("Hello,World!\n")
2、printf("pleaseinputvalueofa:\n");3、printf("max=%d\n",c)4、printf("cos(%lf)=%lf\n",x,s)識別每個語句中的“控制字符串”與“輸出項列表”“格式說明”與“普通字符”“可打印字符”與“轉(zhuǎn)義字符”問題:有“輸出項列表”與沒有“輸出項列表”效果有什么區(qū)別?沒有“輸出項列表”只能輸出固定的內(nèi)容1.格式說明格式說明的一般形式為:%[修飾符]格式字符<輸出項列表>類型和個數(shù)必須與<控制字符串>之<格式說明>中的格式字符串的類型和個數(shù)相一致,有多個輸出項時,各項之間用逗號分隔。格式字符含義格式字符含義d十進制帶符號整數(shù)Ld或ld十進制帶符號長整數(shù)u十進制無符號整數(shù)Hd或hd十進制帶符號短整數(shù)o八進制無符號整數(shù)Lu或lu十進制無符號長整數(shù)x或X十六進制無符號整數(shù)Hu或hu十進制無符號短整數(shù)f小數(shù)形式單精度浮點數(shù)c單個字符Lf或lf小數(shù)形式雙精度浮點數(shù)s字符串E或e以科學(xué)計數(shù)法輸出浮點數(shù)p指針類型,十六進制地址G或g按照e和f格式中較短的輸出%百分號%格式說明[修飾符]可選,用于確定數(shù)據(jù)輸出的寬度、精度、小數(shù)位數(shù)、對齊方式等,缺省則按系統(tǒng)默認(rèn)設(shè)定。修飾符格式說明含義m%md寬度m,不足m位時在前面補空格,默認(rèn)0m%0md寬度m,不足m位時在前面補數(shù)字0m.n%m
.nf總寬度m,其中小數(shù)n位(默認(rèn)小數(shù)6位);當(dāng)m小于數(shù)字實際寬度時,整數(shù)按實際寬度輸出,小數(shù)四舍五入進位;如省略m,只寫.n,則不限制輸出的數(shù)字長度,只限制保留n位小數(shù)-%-md%-m.nf左對齊(默認(rèn)右對齊)。對齊為美觀的作用,不影響數(shù)據(jù)的值#%#o用于o和x前,輸出八進制前面加0,十六進制前面加0x*%*d靈活控制寬度,用常量或變量定義寬度例題-了解修飾符的效果1#include<stdio.h>main(){inti=33,k=3;printf("[1]%d\n",i);printf("[2]%4d\n",i);printf("[3]%04d\n",i);printf("[4]%1d\n",i);printf("[5]%*d\n",5,i);printf("[6]%0*d\n",5,i);printf("[7]%*d\n",k,i);}程序運行結(jié)果:例題-了解修飾符的效果2#include<stdio.h>main(){inti=33;printf("[1]%o\n",i);printf("[2]%#o\n",i);printf("[3]%x\n",i);printf("[4]%#x\n",i);}程序運行結(jié)果:例題-了解修飾符的效果3#include<stdio.h>main(){floatx=12.865;printf("[1]%f\n",x);printf("[2]%7.2f\n",x);printf("[3]%.1f\n",x);printf("[4]%%\n");}程序運行結(jié)果:2.普通字符串普通字符包括可打印字符和轉(zhuǎn)義字符??纱蛴∽址谄聊簧显瓨语@示,轉(zhuǎn)義字符產(chǎn)生特殊的輸出效果。轉(zhuǎn)義字符意義ASCII(十進制)\a鳴鈴(BEL)7\b退一格(BS)8\f換頁(FF)12\n回車換行(LF),使用頻率最高10\r回到本行的開始(CR)13\t水平制表符,橫向調(diào)到下一個制表位(HT)9\v垂直制表符(VT)11\\表示反斜杠92\’單引號39\”雙引號34\0空字符(NULL)0\ddd八進制ASCII為三位數(shù)ddd的字符ddd(八進制)\xhh十六進制ASCII為兩位數(shù)hh的字符hh(十六進制)%%表示一個百分號37例題-了解轉(zhuǎn)義字符效果#include<stdio.h>main(){printf("[1]A\tB\n");printf("[2]ABC\tB\n");printf("[3]A\nB\n");printf("[4]hello!\n");printf("[5]\"hello!\"\n");printf("[6]\'hello!\'\n");printf("[7]\101\n");printf("[8]\x42\n");printf("[9]%%hi!%%\n");}程序運行結(jié)果:3.4.2格式化輸入函數(shù)scanf(“控制字符串”,輸入項列表)不可省略輸入數(shù)據(jù)可以用空格符、制表符和換行符作為每個輸入值結(jié)束的標(biāo)志,以換行符作為此函數(shù)所有數(shù)據(jù)輸入結(jié)束的標(biāo)志。3.4.2格式化輸入函數(shù)scanf()與printf()函數(shù)參數(shù)類似,但有區(qū)別。printf(“控制字符串”,輸出項列表)scanf(“控制字符串”,輸入項列表)常量、變量、表達(dá)式一個或多個變量地址一般不提倡加普通字符串修飾符-字段寬度【例題3-8】分析程序#include<stdio.h>main(){inta,b;scanf("%d%3d",&a,&b);printf("a=%db=%d\n",a,b);}程序運行結(jié)果:提示:scanf()函數(shù)中輸入項列表不要漏掉地址符&,&a,&b不要寫成a,b修飾符-字符*跳過
【例題3-9】分析程序#include<stdio.h>main(){intx=0,y=0,z=0;scanf("%d%*d%d",&x,&y,&z);printf("x=%dy=%dz=%d\n",x,y,z);}程序運行結(jié)果:修飾符-字符*跳過
【修改】加入%*c#include<stdio.h>main(){inta;charch;scanf("%d%*c%c",&a,&ch);printf("a=%dch=%c\n",a,ch);}#include<stdio.h>main(){inta;charch;scanf("%d%c",&a,&ch);printf("a=%dch=%c\n",a,ch);}程序運行結(jié)果:如果輸入80x,運行結(jié)果如何?例題-分析運行效果#include<stdio.h>main(){inta,b,x,y;scanf("%d%d",&a,&b);scanf("%d,%d",&x,&y);printf("a=%d,b=%d\n",a,b);printf("x=%d,y=%d\n",x,y);}程序運行結(jié)果:為什么b和y的值不同?√提示:在scanf()控制字符串中,不建議使用普通字符,如果使用了,需要“原樣輸入”,否則會有不可預(yù)料的后果。例題【例題3-11】分析程序運行結(jié)果#include<stdio.h>voidmain(){inta,b;printf("請輸入:");scanf("a=%d,b=%d",&a,&b);printf("a=%d,b=%d\n",a,b);}程序運行結(jié)果:字符輸入/輸出函數(shù)(三組對比)函數(shù)原型函數(shù)功能intgetc(FILE*stream);從指定的輸入流stream中讀取字符,stdin表示從鍵盤讀入,也可以從其他輸入流讀入intgetch();將鍵盤輸入的字符放入緩沖區(qū),輸入的字符不顯示在屏幕上intgetchar();將鍵盤輸入的字符放入緩沖區(qū),輸入的字符會顯示在屏幕上,需回車intputc(intch,FILE*stream)將ch所對應(yīng)字符輸出到stream指定的文件流中,stdout表示屏幕,也可以輸出到其他文件流中intputch(intch)將ch所對應(yīng)字符輸出到屏幕intputchar(intch)將ch所對應(yīng)字符輸出到屏幕例題-比較GETCHAR()與GETCH()#include<stdio.h>main(){charc1,c2;printf("請輸入字符c1:");c1=getchar();//輸入字符存入c1putchar(c1);//輸出c1的值printf("\n請輸入字符c2:");c2=getch();//輸入字符存入c2putch(c2);//輸出c2的值*/}字符串輸入/輸出函數(shù)puts():將字符串或字符數(shù)組中存放的字符串輸出到終端(顯示器)上,一次只能輸出一個字符串。輸出時,遇到“\0”結(jié)束,并換行。gets():從標(biāo)準(zhǔn)設(shè)備(一般是鍵盤)讀入字符串(包括空格),直到遇
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手機竄貨協(xié)議書
- 甲方協(xié)議取消合同
- 苗木技術(shù)協(xié)議書
- 蘋果手機協(xié)議書
- 薇婭戰(zhàn)略協(xié)議書
- 視同繳費協(xié)議書
- 認(rèn)領(lǐng)養(yǎng)豬協(xié)議書
- 設(shè)備定作合同范本
- 設(shè)備質(zhì)量協(xié)議書
- 設(shè)計提成協(xié)議書
- 墻壁維護施工方案(3篇)
- 人工智能安全風(fēng)險測評白皮書(2025年)
- 2025下半年貴州遵義市第一人民醫(yī)院招聘事業(yè)單位65人筆試備考重點試題及答案解析
- 圍麻醉期應(yīng)激反應(yīng)的調(diào)控策略
- 2025年外貿(mào)實習(xí)合同協(xié)議
- 集成電路封裝測試廠建設(shè)項目可行性研究報告
- 醫(yī)院服務(wù)禮儀培訓(xùn)
- 亞朵酒店管理分析
- 弘歷指標(biāo)源碼6個(僅提供源碼)
- 新產(chǎn)品開發(fā)項目進度計劃表
- 設(shè)計公司生產(chǎn)管理辦法
評論
0/150
提交評論