版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
程序的基本結(jié)構(gòu)
變量與數(shù)據(jù)類型
定義變量和賦初值
變量賦值運算符與表達(dá)式數(shù)據(jù)的輸入輸出
本章小結(jié)第二章基本數(shù)據(jù)類型及運算本章要點(1)程序的基本結(jié)構(gòu)(2)程序說明部分(3)預(yù)編譯命令(4)主函數(shù)(5)變量與數(shù)據(jù)類型(6)運算符與表達(dá)式(7)數(shù)據(jù)的輸入輸出2.1程序的基本結(jié)構(gòu)任務(wù)2.1王小二同學(xué)是一個聰明的孩子,他到超市去買東西看到電子計價算帳很方便快捷,就想編程模擬操作一下。
程序清單1.程序說明部分 程序注釋以“//”開頭,如果一行中有“//”,則此行在“//”以后的部分均為注釋。2.預(yù)編譯命令 以“#”開頭,本程序中的預(yù)編譯命令
#include<stdio.h>意思是將程序庫中的輸入輸出流文件,作為頭文件加入到本程序中。2.1程序的基本結(jié)構(gòu)3.主函數(shù) 主函數(shù)是以main()為標(biāo)識,每個程序都必須有此標(biāo)識。
main()前的void表示主函數(shù)沒有返回值。
void:空類型 主函數(shù)的函數(shù)體由一對大括號{}括起。
{和}必須配對,即有一個{,必須有對應(yīng)的}。 聲明部分:用于定義變量及變量賦初值。 執(zhí)行部分:程序的主要部分,應(yīng)該添加必須的注釋。 聲明部分必須在執(zhí)行部分之前,不聲明者,不能執(zhí)行。2.2變量與數(shù)據(jù)類型1.數(shù)據(jù)類型、運算符與表達(dá)式
數(shù)據(jù)類型:數(shù)據(jù)存在的組織和形式。程序中用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型。
運算符:一些具有事先規(guī)定的運算功能的特定的符號。 這里的運算功能可以是算術(shù)運算(加減乘除)、邏輯運算(與或非)或比較運算(大于小于等于),等等。 C語言共有34種運算符。
表達(dá)式:按照運算符的性質(zhì),用運算符把數(shù)據(jù)連接起來以
達(dá)到數(shù)據(jù)運算目的而構(gòu)成的式子。 寫表達(dá)式的最終目的是要進(jìn)行計算它求出它的值。求解表達(dá)式的過程是由計算機完成的,因此,要想得到正確的結(jié)果,就必須寫出正確的表達(dá)式。2.常量
直接常量:1,2,3;0.1,10.0;‘a(chǎn)’,‘1’;“hello”
常變量:C++中,可以使用const
關(guān)鍵字定義常變量程序運行期間,值不能被改變的量稱為常量使用常變量的好處是:從標(biāo)識符名可以清楚地看出該常量的含義,做到“見名知意”在需要修改常量的值時可以做到“一改全改”,容易調(diào)整3.變量C允許把值存放在變量中,每個變量都由一個變量名來標(biāo)識。程序運行期間,經(jīng)過操作其值可以被改變的量稱為變量每個變量都必須有一個變量類型。每個變量根據(jù)它的類型不同,在內(nèi)存中占據(jù)一定數(shù)目的字節(jié)單元,該變量的值就存放在這些內(nèi)存單元中。123prod變量名
prod實際上是一個符號地址變量prod
所占據(jù)的內(nèi)存單元123是變量
prod的變量值內(nèi)存單元的地址內(nèi)存單元的內(nèi)容在對程序編譯時由系統(tǒng)給每一個變量按其類型分配內(nèi)存單元,同時,系統(tǒng)內(nèi)部維護(hù)著變量名和它的內(nèi)存單元地址的對應(yīng)信息。變量就是命名的內(nèi)存單元變量的命名規(guī)定合法的C變量名:area,sum,answer,month,name,Name,Step1,step2,number_of_student,average_score,_class1C語言中,變量(標(biāo)識符)的命名規(guī)定:只能由大小寫字母、下劃線和數(shù)字組成;開頭的第一個字符只能是大小寫字母或下劃線;大小寫是敏感的;不能與C的關(guān)鍵字重復(fù);名字在整個程序中必須是唯一的;名字的長度不能超過系統(tǒng)的規(guī)定。非法的C變量名:3rd_entry(數(shù)字開頭)all$done (包含非法字符$)theend (包含空格)
int (系統(tǒng)關(guān)鍵字)避免使用無意義的名字,應(yīng)盡量做到“見名知意”;盡量使用代表變量實際含義的英文單詞或縮寫作標(biāo)識符名;當(dāng)名字包含多個單詞時,通常使每個單詞的首字母大寫;以下劃線開頭的名字通常是系統(tǒng)內(nèi)部保留的標(biāo)識符名;在整個程序中保持統(tǒng)一的命名方式。變量的命名習(xí)慣C語言中,變量(標(biāo)識符)的命名習(xí)慣:好的C變量名:CircleArea,TotalScore,UserSelection,choice,StudentNumber,AverageScore,SampleFrequency不是很好的C變量名:a,aa (不知何意)
numberofstudent
(全部小寫難以辨認(rèn))
total
totals(名字太相似)變量的定義和使用變量定義具有三個目的:⑴定義變量名;⑵定義變量類型;⑶向程序員描述該變量。C語言中,變量必須“先定義,后使用”intradius;/*theradiusofcircle*/關(guān)鍵字int
告訴編譯系統(tǒng)我要定義一個整型變量,用它來保存一個整型的數(shù)值。這是變量的名字。以后的程序中就用這個名字來訪問這個變量。注釋用來解釋這個變量,它是給程序員的信息。對程序主要的變量作注釋是很好的習(xí)慣。#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;
printf(“sum=%d\n”,sim);return(0);}變量的定義和使用變量“先定義,后使用”的好處是:C只允許使用定義過的變量。凡是未被事先定義的符號,不作為變量名。這樣可以檢查出程序中錯誤使用的變量名。此處定義的變量名是sum
。此處由于輸入錯誤或其它原因,出現(xiàn)了名字為sim
的符號。由于該符號在這之前從未定義過,所以在編譯時,便會出現(xiàn)錯誤信息。Error:Undefinedsymbol'sim'變量的定義和使用intage;/*theageofstudent*/floatscore;/*thescoreofstudent*/floataverage;/*theaverageofscore*/longnumber;/*thenumberofstudent*/doubledistance;/*betweenearth&moon*/charUserSelection;/*keyuserhit*/變量定義的一般格式是:typename;/*comment*/
類型名字;
/*注釋*/系統(tǒng)將根據(jù)變量的定義為其分配相應(yīng)大小的內(nèi)存單元。4.C的數(shù)據(jù)類型C的數(shù)據(jù)類型基本類型構(gòu)造類型整型單精度型雙精度型數(shù)組類型結(jié)構(gòu)體類型實型共用體類型指針類型字符型枚舉類型空類型(1)整型整數(shù)類型,它分為下面4種short整型:占用2字節(jié),數(shù)的表示范圍為-32768-32767unsignedshort無符號整型:占用2字節(jié),數(shù)的表示范圍為0-65535int
整型:占用4字節(jié),數(shù)的表示范圍為-231—231-1Unsignedint無符號長整型:占用4字節(jié),數(shù)的表示范圍為0—232-1整型常量十進(jìn)制整型常量:如123,-456,0
八進(jìn)制整型常量:以數(shù)字“0”開頭的整型常量如0123,即(0123)8
,等于(83)10
-011,即(-011)8
,等于(-9)10八進(jìn)制整型常量中不應(yīng)出現(xiàn)“7”以上的數(shù)碼。如0128,0209都是非法的八進(jìn)制整型常量。整型常量即整常數(shù)。C中有下面三種形式的整型常量:
十六進(jìn)制整型常量:以“0x”開頭的整型常量如0xFF,即(0xFF)16
,等于(255)10
-0x11,即(-0x11)16
,等于(-17)10
十六進(jìn)制整型常量中不應(yīng)出現(xiàn)“F”以上的數(shù)碼。C語言中沒有二進(jìn)制整型常量,用十六進(jìn)制整型常量表示二進(jìn)制整數(shù)(2)實型實數(shù)類型,它分為下面3種Float浮點型:占用4字節(jié),數(shù)的表示范圍:
-3.4×10-38—3.4×1038,有效位為7位。Double雙精度型:占用8字節(jié),數(shù)的表示范圍:
-1.7×10-308—1.7×10308,有效位為15位。Longdouble長雙精度型,占用10字節(jié),數(shù)的表示范圍:-2.4×10-4932—1.1×104932,有效位為19位。實型常量
十進(jìn)制小數(shù)形式:由數(shù)字和小數(shù)點組成。(小數(shù)點必須有)如10.23,-0.456,78.0,0.0,89.
指數(shù)形式:±sE±n
或±se±n
形式。注意:E或e前面必須有數(shù)字,后面的指數(shù)必須為整數(shù)。如218.3=218.3E0=2183E-1=0.02183E+4實數(shù)又叫“浮點數(shù)”。實數(shù)常量有兩種表示形式:指數(shù)形式的實型常量,有“規(guī)范化指數(shù)形式”,即在字母E或e之前的小數(shù)部分中,小數(shù)點左邊必須有且只有一位非零的數(shù)字。如218.3=2.183E+2;
0.00218.3=2.183E-3程序以指數(shù)形式輸出實數(shù),就是以“規(guī)范化指數(shù)形式”輸出(3)字符型char字符型:占用1字節(jié),
C語言中,字符型也可被當(dāng)成整型使用,只是數(shù)的表示范圍為-128—127字符型常量比如:‘a(chǎn)’,‘A’,‘d’,‘D’,‘?’,‘%’,‘$’,‘2’,‘4’注意:‘a(chǎn)’和‘A’,‘d’和‘D’都是不同的字符常量。C的字符常量是用單引號(‘)括起來的一個字符。另外:C語言還存在另一種形式的特殊的字符常量。它是用單引號括起來的以一個“\”字符開頭的規(guī)定的字符序列?!癨”字符叫反斜杠字符。這種特殊的字符常量稱為“轉(zhuǎn)義字符”。字符串常量比如:“a”,“”,“Hello,world”,“9811113”,“LCS”?C的字符串常量是用雙引號(“)括起來的若干個字符?!糇址A吭趦?nèi)存中占用連續(xù)的字節(jié)單元,每個字符按順序占一個字節(jié)。C語言規(guī)定:自動在每一個字符串常量的結(jié)尾加一個“字符串結(jié)束標(biāo)志字符”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。一個字符串常量中包含的字符個數(shù)是不確定的。那么,系統(tǒng)在處理字符串常量時如何知道何處結(jié)束呢?字符串結(jié)束標(biāo)志字符◆‘\0’是ASCII碼為0的字符,即位于字符表中的第一個NUL字符。它是一個“空操作字符”,就是說,它既不引起任何控制動作,也不產(chǎn)生任何顯示。C的字符串結(jié)束標(biāo)志字符是
‘\0’
?!粢虼?,C的字符串常量在內(nèi)存中占用的字節(jié)數(shù)等于可見字符數(shù)加上1,即結(jié)束標(biāo)志字符占用的一個字節(jié)?!癏ELLO”HELLO\0字符串結(jié)束標(biāo)志字符也是一個字符,也要占用一個字節(jié)。總共占用6個字節(jié)5個可見字符‘A’和“A”的區(qū)別◆由于C語言對每一個字符串常量均在其末尾自動添加一個字符串結(jié)束標(biāo)志字符‘\0’,因此:
‘A’
占一個字節(jié)單元
“A”
占兩個字節(jié)單元,包括‘A’和‘\0’兩個字符◆不能把一個字符串常量賦值給一個字符變量。如charc1=“A”;是錯誤的。?為什么是錯誤的。原因1:“A”
占兩個字節(jié)單元,而字符變量c1只有一個字節(jié),所以無法賦值;原因2:真正的原因。C語言實際上把字符串處理成字符指針,把一個指針賦值給一個字符變量當(dāng)然是錯誤的。2.3定義變量和賦值1.定義變量:一般在主函數(shù)main()的聲明部分中給出對變量的類型和精度提出合適的要求,指出它們的數(shù)據(jù)類型,目的:為變量分配內(nèi)存單元并賦初值。例:定義變量名為a的整型變量,程序可寫成:
inta=30;系統(tǒng)會根據(jù)這個精度要求,安排2個字節(jié)的內(nèi)存單元存放a變量的值,見下圖。這里a是這個內(nèi)存單元的符號地址?!舢?dāng)一次定義多個變量時,不能用連續(xù)=號的方式對多個變量進(jìn)行初始化變量賦初值一個變量在定義之后,第一次賦值之前,它的值是不確定的。
在賦初值前,不能讓其參與運算,否則會得到不可預(yù)知的結(jié)果。
對變量進(jìn)行定義的同時給變量賦初值,稱為初始化,
◆在定義變量的同時進(jìn)行初始化◆當(dāng)一次定義多個變量時,可以對其全部或部分進(jìn)行初始化如:intTotalStudent=40;等價于:intTotalStudent;TotalStudent=40;如:intTotalStudent=40,TotalScore=0,average;如:intTotalScore=AverScore=0;是錯誤的。正確的應(yīng)該是:intTotalScore=0,AverScore=0;2.變量賦值2.1.賦值運算符◆賦值運算符(雙目)運算符:=作用:將一個數(shù)據(jù)賦給變量用法:<變量>=<表達(dá)式>;例如:PI=3.14159; //將表達(dá)式的值3.14159賦給變量C=sin(PI/4); //將表達(dá)式π/4的正弦函數(shù)值賦給變量C2變量賦值2.2.變量賦值的5要素(1)變量必須先定義再使用(2)在變量定義時就賦初值,是好的編程習(xí)慣(3)對變量的賦值過程是“覆蓋”過程,所謂“覆蓋”是在變量地址單元中用新值去替換舊值。(4)讀出變量的值后,該變量保持不變,相當(dāng)于從中拷貝一份出來(5)參與表達(dá)式運算的所有變量都保持原來的值不變2變量賦值2.3.變量賦值示例inta=0,b=0,c=0;//聲明a,b,c為整型變量,
//均初始化為0a=7; //a賦值為7,覆蓋了原來的0b=a; //b賦值為a,a中的值覆蓋了b中的值c=a+b; //將a+b的值賦給c,a+b的值為14 //去覆蓋c中的0,a與b保持7不變a=a+1; //將a+1的值賦給a,a+1的值為9 //覆蓋了原來的72變量賦值a的地址單元b的地址單元c的地址單元初始化000執(zhí)行a=7700執(zhí)行b=a770執(zhí)行c=a+b7714執(zhí)行a=a+1871412.4運算符與表達(dá)式(1)算術(shù)運算(2)關(guān)系運算(3)邏輯運算(4)賦值運算2.4.1
算術(shù)運算1.雙目運算加 a+b10+5=15減 a-b10-5=5乘 a*b10*5=50除 a/b30/4=7; 30.0/4=7.5取余a%b 14%3=2; 25%8=12.單目運算自增 a++或++a 等效于 a=a+1;自減 a--或--a等效于a=a-1;取負(fù) -a注意:單目運算的“前置”和“后置”的區(qū)別“前置”變量先增值(或先減值),后被引用“后置”變量先被引用,后再增值(或后減值)2單目運算符◆自增、自減運算符(單目)運算符:++自增--自減作用:使變量的值加1或減1后賦給此變量用法:<變量>++<變量>--
注意:此運算符一般用于循環(huán)變量的控制 不要將此運算符用于復(fù)雜的表達(dá)式中,以免出現(xiàn)歧義例:推薦用法:
inta=0; //定義a為整型,并賦值為0 a++; //將a的值由0變?yōu)?不推薦用法:
printf(“%d\n”,1+a++); //讀此程序者無法直接理解此表達(dá)式的目的和執(zhí)行結(jié)果2.4.2關(guān)系運算關(guān)系運算符和關(guān)系表達(dá)式> 大于< 小于>= 大于等于<= 小于等于== 等于!= 不等于2.4.2關(guān)系運算#include<stdio.h>voidmain(){
int
b,c; //整型變量
b=3;c=2; //對變量賦值
printf(“3>2是%d\n”,b>c); printf(“3>=2是%d\n”,b>=c); printf(“3==2是%d\n”,b==c); printf(“3<2是%d\n”,b<c); printf(“3<=2是%d\n”,b<=c); printf(“3!=2是%d\n”,b!=c);}2.4.2關(guān)系運算輸出結(jié)果是:
3>2是1 說明 3>2 是真
3>=2是1 3>=2 是真
3==2是0 3==2 是假
3<2是0 3<2 是假
3<=2是0 3<=2 是假
3!=2是1 3!=2 是真2.4.3邏輯運算三種邏輯運算:邏輯與 a&&b邏輯或 a||b邏輯非 !a同樣,邏輯真為非零,邏輯假為零。2.4.3邏輯運算1、邏輯與,運算符為&&
如圖電路A——表示開關(guān)A合上;B——表示開關(guān)B合上;A&&B——表示燈亮;
A B A&&B
1 1 1
1 0 0
0 1 0
0 0 01表示真,0表示假,這是邏輯變量的取值,非真即假2.4.3邏輯運算2、邏輯或,運算符為||
如圖電路A——表示開關(guān)A合上;B——表示開關(guān)B合上;A||B——表示燈亮; A B A||B
1 1 1
1 0 1
0 1 1
0 0 01表示真,0表示假2.4.3邏輯運算3、邏輯非,運算符為!關(guān)系和邏輯運算用于比較兩個數(shù)間特定關(guān)系的一種運算。常用于C的控制結(jié)構(gòu)中。關(guān)系和邏輯構(gòu)成復(fù)合的邏輯關(guān)系。例如:判斷閏年的表達(dá)式為((year%4==0)&&(year%100!=0))||(year%400==0)2.4.4賦值運算◆賦值運算符(雙目)運算符:=優(yōu)先級:只比逗號運算符級別高,位于整個運算符優(yōu)先級表的倒數(shù)第二位;低于算術(shù)運算符。結(jié)合性:右結(jié)合性作用:將一個數(shù)據(jù)賦給變量如:num=40常量40賦值給變量num如:aver=total/num表達(dá)式total/num的值賦給aver如:temp=aver變量aver的值賦給temp復(fù)合賦值運算符◆復(fù)合賦值運算符(雙目)在原有的賦值運算符=之前再加上其它運算符,即構(gòu)成復(fù)合賦值運算符。其它運算符包括5種算術(shù)運算符和5種位運算符。運算符:
+=-=*=/=%=&=^=|=<<=>>=a+=3相當(dāng)于a=a+3x%=y+8相當(dāng)于x%=(y+8)x=x%(y+8)不相當(dāng)于x=x%y+8賦值表達(dá)式◆用賦值運算符把一個變量和一個表達(dá)式連接起來的式子。一般形式:變量=表達(dá)式如:num=40常量40賦值給變量num如:aver=total/num表達(dá)式total/num的值賦給aver如:temp=aver變量aver的值賦給temp注意:賦值表達(dá)式的左邊只能是變量,而右邊可以是常量、變量或任何合法的C表達(dá)式。10=xx+y=1#include<stdio.h>voidmain(){inta,b,c,d;/*inta=b=c=10;*/
a=b=c=10;printf(“a=%d,b=%d,c=%d\n”,a,b,c);
d=(a=3)*(b=b+1)=c;d=(a=3)*(b=b+1)-c;printf(“a=%d,b=%d,c=%d,d=%d\n”,a,b,c,d);}賦值表達(dá)式:例是錯誤的。因為當(dāng)一次定義多個變量時,不能用連續(xù)=號的方式給多個變量賦同一初值.是正確的。因為這是一個賦值表達(dá)式。因式分解的結(jié)果就相當(dāng)于:
a=(b=(c=10))
是錯誤的。因為=號左邊只能是變量。是正確的。2.6數(shù)據(jù)的輸入輸出(1)字符輸出(2)字符輸入(3)格式輸出(4)格式輸入(5)使用cin和cout進(jìn)行數(shù)據(jù)輸入和輸出輸入輸出的概念及在C語言中的實現(xiàn)輸入是指從外部設(shè)備(如鍵盤,掃描儀,文件等)向計算機主機送入數(shù)據(jù);輸出是從計算機主機向外部設(shè)備(如顯示器,打印機,文件等)送出數(shù)據(jù)。
C語言本身沒有輸入輸出語句。要實現(xiàn)這些操作,必須調(diào)用相應(yīng)的系統(tǒng)庫函數(shù)。比如printf函數(shù)用于輸出,scanf函數(shù)用于輸入,等等。不同版本的C語言(C編譯器)均帶有不同數(shù)量不同用途的系統(tǒng)庫函數(shù),以.obj文件或
.lib文件的形式提供,供用戶與自己的.obj文件鏈接以形成.exe的可執(zhí)行文件。注意:這些系統(tǒng)庫函數(shù)名并非C語言的關(guān)鍵字。C語言中的頭文件要想正確成功的調(diào)用C系統(tǒng)庫函數(shù),就必須在源程序文件開頭用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括進(jìn)來。如:要想調(diào)用系統(tǒng)輸出庫函數(shù)printf,在源程序文件開頭必須有如下預(yù)編譯命令#include<stdio.h>
C語言中的頭文件(headerfile)是指后綴名習(xí)慣為“.h”的一些文本文件。在頭文件中,包含有關(guān)系統(tǒng)庫函數(shù)的原型、有關(guān)系統(tǒng)全局變量的聲明、有關(guān)系統(tǒng)符號常量的宏定義、有關(guān)數(shù)據(jù)類型的定義等等信息。其中,系統(tǒng)庫函數(shù)的原型就告訴編譯系統(tǒng)該函數(shù)的名稱、返回值類型、形參數(shù)量及類型等信息,這樣編譯系統(tǒng)才能正確編譯,否則會給出出錯信息。C語言中的頭文件stdio.h頭文件中包含了與標(biāo)準(zhǔn)I/O操作有關(guān)的系統(tǒng)庫函數(shù)的聲明,所以調(diào)用如printf、scanf等標(biāo)準(zhǔn)輸入輸出函數(shù)時,必須在源程序文件中包含該頭文件。否則,編譯時會給出錯誤信息如下:Function‘printf’shouldhaveaprototype
函數(shù)‘printf’應(yīng)該有一個原型提示:要想知道某個版本的C語言提供哪些系統(tǒng)庫函數(shù)以及各種庫函數(shù)所對應(yīng)的頭文件的名稱,必須參考該版本C語言的系統(tǒng)庫函數(shù)手冊或聯(lián)機幫助。庫函數(shù)類別頭文件名庫函數(shù)類別頭文件名標(biāo)準(zhǔn)輸入輸出stdio.h字符串處理string.h數(shù)學(xué)math.h圖形處理graphics.h字符處理ctype.h2.6.1字符輸出函數(shù)putchar原型:intputchar(intch);參數(shù):一個字符型或整型的數(shù)據(jù)功能:在默認(rèn)的輸出設(shè)備(顯示器)上輸出一個字符用法:putchar(字符型或整型數(shù)據(jù));返回值:所輸出的字符。絕大多數(shù)情況下不使用該返回值。#include<stdio.h>voidmain(){ charc1; c1='a'; putchar(c1);
putchar('\n');/*輸出一個換行符,使輸出的當(dāng)前位置移到下一行的開頭*/ putchar(c1-32);}字符輸出函數(shù)putchar:例參數(shù)可以是int
或char型變量運行結(jié)果: a
A參數(shù)可以是int
或char型常量參數(shù)也可以是int或char型表達(dá)式2.6.2字符輸入函數(shù)getchar原型:intgetchar(void);參數(shù):無功能:從默認(rèn)的輸入設(shè)備(鍵盤)上接收用戶鍵入的一個字符,并把該字符作為函數(shù)值返回用法:ch=getchar();返回值:用戶從鍵盤鍵入的字符。絕大多數(shù)情況該字符都會被賦值給某個字符型或整型的變量,或者作為表達(dá)式的一部分參與其它的運算。注意:getchar函數(shù)只能接收并返回一個字符。執(zhí)行過程:當(dāng)程序運行到包含有g(shù)etchar函數(shù)調(diào)用的語句時,會暫時停下來,此時屏幕上有一個閃爍的光標(biāo),等待用戶從鍵盤上的輸入。用戶必須鍵入有關(guān)信息并按Enter鍵后程序才能繼續(xù)向下執(zhí)行。#include<stdio.h>voidmain(){ chari; i=getchar();
putchar(i);}字符輸入函數(shù)getchar:例由于getchar函數(shù)要接收用戶從鍵盤輸入的字符,所以程序執(zhí)行流程到這兒會暫時停下來等待用戶的輸入。B↙(用戶鍵入字符B后,在打“回車”鍵)B(putchar函數(shù)再在屏幕上輸出一個字符B)運行結(jié)果:當(dāng)用戶鍵入一個字符并按下Enter鍵后,該字符被getchar函數(shù)接收并作為函數(shù)值返回。此處,將這個返回值同時賦值給一個字符型的變量i,保存起來以作后用。2.6.3格式輸出函數(shù)printf原型:
intprintf(constchar*format[,argument,...]);
參數(shù):兩部分第一部分:為字符型常指針,大多數(shù)情況下都是字符串常量第二部分:若干個待輸出的數(shù)據(jù)的列表功能:一次函數(shù)調(diào)用可以在默認(rèn)的輸出設(shè)備上(顯示器)輸出經(jīng)格式化后的若干個不同類型的數(shù)據(jù)。
用法:printf(格式控制字符串,輸出數(shù)據(jù)列表);
返回值:輸出的所有數(shù)據(jù)的字節(jié)數(shù)。絕大多數(shù)情況下不使用該返回值。格式輸出函數(shù)printf的參數(shù)printf(格式控制字符串,輸出數(shù)據(jù)列表);⒈格式控制字符串:常字符指針,既可以是字符串常量,也可以是字符數(shù)組或字符指針。格式控制字符:由%和規(guī)定的格式字符組成,一個格式控制字符串中可以有一個或多個格式控制字符。其作用是把后面的輸出項目列表中對應(yīng)位置上的數(shù)據(jù)格式化成該格式字符所規(guī)定的數(shù)據(jù)類型。普通字符:除格式字符以外的所有其它字符。它們不起任何格式作用,只簡單被printf函數(shù)原樣輸出到顯示器上。通常用于說明輸出數(shù)據(jù)或給用戶有關(guān)的提示說明信息。⒉輸出數(shù)據(jù)列表:將要輸出的數(shù)據(jù),用逗號分隔。可以是常量,變量、函數(shù)調(diào)用或任何合法的C表達(dá)式。intnum=15;printf(“Twice%dis%d.\n”,num,2*num);格式輸出函數(shù)printf的執(zhí)行過程Twice普通字符格式字符普通字符格式字符普通字符15is30._待輸出的數(shù)據(jù)printf函數(shù)使用中的注意事項一定要分清哪些是格式字符,哪些是普通字符;同時也要注意區(qū)分普通字符中轉(zhuǎn)義字符常量。
%d%D%cf如果作為第一部分參數(shù)的字符串中,全部是普通字符,則具有輸出字符串的效果,這通常用于在程序運行時給使用者有關(guān)提示信息,或?qū)敵鲂畔⒆饔嘘P(guān)的注釋和說明。
printf(“Welcometousethisprogram.\n”);printf(“ProgramAuthor:LiChangsong”);待輸出數(shù)據(jù)的個數(shù)不能少于格式說明字符的個數(shù);如果多于格式說明字符的個數(shù),則多出的數(shù)據(jù)不被輸出。
printf(“%d,%d,%c\n”,a,b,ch,d,e);用%%輸出一個%printf(“percent=%d%%\n”,percent);printf函數(shù)的使用:例#include<stdio.h>voidmain(){ inta=11,b=22; intm=-1; longn=123456789; printf("%d%3d\n",a,b); printf("a=%d,b=%d\n",a,b); printf("m:%d,%o,%x,%u\n",m,m,m,m); printf("n=%d\n",n); printf("n=%ld\n",n);}程序見書p53——54,例2-7.cpp2.6.4格式輸入函數(shù)scanf原型:
intscanf(constchar*format[,address,...]);
參數(shù):兩部分第一部分:為字符型常指針,大多數(shù)情況下都是字符串常量第二部分:若干個內(nèi)存單元地址的列表功能:一次函數(shù)調(diào)用可以從默認(rèn)的輸入設(shè)備上(鍵盤)掃描用戶的輸入并經(jīng)格式化為若干個不同類型的數(shù)據(jù)后依次保存到指定的地址列表中。
用法:scanf(格式控制字符串,地址列表);
返回值:掃描、格式化后保存的數(shù)據(jù)的個數(shù)。絕大多數(shù)情況下不使用該返回值。格式輸入函數(shù)scanf的參數(shù)scanf(格式控制字符串,地址列表);⒈格式控制字符串:常字符指針,既可以是字符串常量,也可以是字符數(shù)組或字符指針。格式控制字符:由%和規(guī)定的格式字符組成,一個格式控制字符串中可以有一個或多個格式控制字符。其作用是把掃描用戶鍵盤輸入后得到的數(shù)據(jù)格式化成該格式字符所規(guī)定的數(shù)據(jù)類型。普通字符:除格式字符以外的所有其它字符。它們不但不起任何格式作用,也不被顯示,反而要求使用者在輸入信息時照原樣輸入,否則函數(shù)將不能掃描到正確的數(shù)據(jù)。因此,通常在scanf函數(shù)的第一部分參數(shù)中,不要包含除必要的分隔符號之外的任何字符。⒉地址列表:一些已經(jīng)分配給某些變量的內(nèi)存單元的地址的列表,scanf函數(shù)將把掃描用戶輸入并格式化后的數(shù)據(jù)按順序依次送到這些地址所指向的單元中去。取變量地址運算符&◆取地址運算符(單目)運算符:
&用法:&變量優(yōu)先級:處于整個運算符優(yōu)先級表中的第二級,高于所有的雙
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作總結(jié)之高中數(shù)學(xué)社團(tuán)活動總結(jié)
- 電工電子技術(shù)(第3版) 課件 1.8.2 戴維南定理
- 銀行員工行為規(guī)范與紀(jì)律制度
- 《俞慧紅樓夢》課件
- 《設(shè)計模板》課件
- 《銀行入職培訓(xùn)課件》課件
- 《放射性監(jiān)測》課件
- 《教育的構(gòu)成》課件
- 分式的性質(zhì)課件
- 2024屆高考語文一輪復(fù)習(xí)第2章小說閱讀4第三節(jié)分析環(huán)境描寫-聚焦人物讀懂風(fēng)景課件
- 銀行員工談心談話記錄內(nèi)容三篇
- 旅游產(chǎn)業(yè)經(jīng)濟一
- 高中生物-《神經(jīng)調(diào)節(jié)-興奮的產(chǎn)生傳導(dǎo)和傳遞》教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 2023年03月安徽淮南高新區(qū)管委會公開招聘工作人員12人筆試參考題庫答案解析
- 混凝土配合比檢測報告
- 加強現(xiàn)代學(xué)校制度建設(shè)提升學(xué)校治理能力的實施方案
- 德語四級真題2023
- 入世后黑色家電的產(chǎn)業(yè)分析與企業(yè)對策
- 大學(xué)生朋輩心理輔導(dǎo)智慧樹知到答案章節(jié)測試2023年浙江大學(xué)
- 2023年社?;鸢踩窘逃龑W(xué)習(xí)研討會發(fā)言稿報告(4篇)
- 水鄉(xiāng)歌兒多音樂課教學(xué)反思
評論
0/150
提交評論