




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、北京理工大學珠海學院北京理工大學珠海學院第二講第二講C語言的基本語法語言的基本語法1本講主要內容本講主要內容2 C語言的基本元素語言的基本元素1 1 C語言的數據類型語言的數據類型2 2 C語言的常量和變量語言的常量和變量3 3 C語言的運算符和表達式語言的運算符和表達式4 4 C語言的基本輸入輸出語句語言的基本輸入輸出語句5 531、基本基本字符集字符集l 數數 字字:0 1 2 3 4 5 6 7 8 9l 字字 母:母:a b c z A B C Zl 運算符運算符:+ - * / % = = != = & | & | ( ) . ! ? : , ; l 特殊符號:特殊符
2、號:_(下劃線下劃線) 、回車、回車(r)、換行、換行(n) 制表符制表符(t)等等一、一、C語言的基本元素語言的基本元素-142. 標識符標識符標識符內容標識符內容:量名、變量名量名、變量名、數組、數組名、類名、類型名、存儲方式名型名、存儲方式名、函數、函數名、文件名等。名、文件名等。標識符標識符規則:規則:字母字母或或_(_(下劃線下劃線) )開頭開頭,后面是,后面是字母字母、 _( _(下劃線下劃線) )或或數字組成的字符串,要數字組成的字符串,要求見名知意。求見名知意。call_n test39 _string1 abccall.n 39test -string1 c2.0合法合法非法
3、非法一、一、C語言的基本元素語言的基本元素-25標識符說明標識符說明 (1) 在在C語言中,語言中, 標識符中大小寫字母是有區別的。標識符中大小寫字母是有區別的。程序中程序中基本上都采用小寫字母表示各種標識符基本上都采用小寫字母表示各種標識符,如變,如變量名、數組名、函數名等。書寫的各種語句也均用小量名、數組名、函數名等。書寫的各種語句也均用小寫字母,而大寫字母只用來定義宏名等,用的不多。寫字母,而大寫字母只用來定義宏名等,用的不多。 (2) 不同的系統對標識符的長度有不同的要求,不同的系統對標識符的長度有不同的要求, 有有的要求為的要求為6個字符,有的允許使用個字符,有的允許使用8個字符,個
4、字符,而而VS2012的標識符有效長度不受限制。的標識符有效長度不受限制。 (3) 除了除了少數情況下使用少數情況下使用單個字符作標識符單個字符作標識符外(如:外(如:循環變量名),循環變量名),一般的應做到一般的應做到見名知意見名知意,以提高程序,以提高程序的可讀性。如用的可讀性。如用sum表示和,表示和,score表示成績,表示成績, max表表示最大等等。示最大等等。63. 關鍵字關鍵字autobreakcase charconstcontinuedefaultdo double elseenumexternfloat for gotoifintlong register returns
5、hortsignedsizeof static structswitchtypedefunion unsigned voidvolatilewhile標識符或標識符或由由C語言系統語言系統定義定義一、一、C語言的基本元素語言的基本元素-374. 運算符運算符 (數組下標數組下標)、( )、 .、-(成員選擇成員選擇)-(負號負號)、(求反求反)、+(遞增遞增)、-(遞減遞減) 、*(指針取值指針取值) 、&(指針取指針取地址地址)!(邏輯非邏輯非)、sizeof(求數據類型或變量對應內存的字節數求數據類型或變量對應內存的字節數)、/(除法除法)、*(乘法乘法)、% (取模取模)、 +(
6、加法加法)、-(減法減法)、 (右移右移)(小于小于) 、 (大于大于) 、=(大于等于大于等于)、=(等等于于)、!=(不等于不等于)&(位與位與)、(異或異或)、|(位或位或)、&(邏輯與邏輯與)、|(邏輯或邏輯或) ?: (條件運算符條件運算符)= (賦值賦值)、+=、-=、*= 、/=、 %= 、=、&= 、=、 |=, (逗號運算符逗號運算符)x+y x%y 2*x-yab x=a+=3xy & ab a=2,a+3,a+ -i一、一、C語言的基本元素語言的基本元素-485. 分隔符分隔符 分隔符內容:空格字符、水平制表符、垂直制表符、分隔符內容:空格
7、字符、水平制表符、垂直制表符、換行符、換頁符及注釋和逗號等,也稱為空白字符。換行符、換頁符及注釋和逗號等,也稱為空白字符。分隔分隔規則:在相鄰的變量、關鍵字和常量、函數之規則:在相鄰的變量、關鍵字和常量、函數之間需要用一個或多個空白字符(其效果是一樣的)間需要用一個或多個空白字符(其效果是一樣的)將其分開將其分開 。逗號也是分隔符,用于相鄰同類項之間的分隔。逗號也是分隔符,用于相鄰同類項之間的分隔。例例如編程計算如編程計算1+2案例中案例中定義定義變量語句變量語句: int x=1, y=2, z;一、一、C語言的基本元素語言的基本元素-59C語言把處理的數據進行分類,從語言把處理的數據進行分
8、類,從數據的表示、取數據的表示、取值范圍和對應的操作值范圍和對應的操作等方面進行劃分,形成不同的等方面進行劃分,形成不同的數據類型數據類型通過通過程序中數據類型的描述確定存放數據的空間大程序中數據類型的描述確定存放數據的空間大小,確保小,確保C程序中的每個數據都屬于一個確定的、程序中的每個數據都屬于一個確定的、具體的數據類型具體的數據類型。不同類型數據采取不同的存儲形式;不同類型數據采取不同的存儲形式;不同類型數據在內存中占有不同的存儲空間;不同類型數據在內存中占有不同的存儲空間;不同類型數據對應不同的取值范圍;不同類型數據對應不同的取值范圍;不同類型數據確定了允許對其進行不同的操作類型。不同
9、類型數據確定了允許對其進行不同的操作類型。1、數據類型數據類型的含義的含義二、數據類型二、數據類型10構造類型構造類型指針類型指針類型空空類型類型(無無值值類型類型枚舉類型枚舉類型數組類型數組類型結構類型結構類型聯合類型聯合類型 二、數據類型二、數據類型11按照數據在程序中的取值分為兩類:按照數據在程序中的取值分為兩類:值保持不變值保持不變-常量常量 x = 2 + y值隨程序運行變化值隨程序運行變化-變量變量單精度單精度 float雙精度雙精度 double基本數據類型基本數據類型121、整型數據、整型數據-1整型整型數據包括整型常量和整型數據包括整型常量和整型變量變量 六種六種形式形式基本
10、整型基本整型短整型短整型長整型長整型無符號整型無符號整型無符號短整型無符號短整型無符號長整型無符號長整型int short intlong int unsigned intunsigned short unsigned long13整型整型變量的取值范圍變量的取值范圍(在(在VS2010中)中)1、整型數據整型數據-214有符號與無符號整型數的區別有符號與無符號整型數的區別 a=a=32a=-1 a=a=15a=-215=-32-1151. 求法:正數的補碼與原碼相同;負數的補碼對原碼求法:正數的補碼與原碼相同;負數的補碼對原碼即得即得補碼補碼。或者由反碼加。或者由反碼加1也可求得也可求得補碼
11、。補碼。0補補的兩種的兩種表示是什么?表示是什么?數數的補碼表示的補碼表示2. 補碼的表示范圍補碼的表示范圍 當當n=16時時,補碼的表示范圍是:,補碼的表示范圍是:+127補補= 0000 0000 0111 1111 -128補補= 1111 1111 1000 0000由此可得由此可得補碼表示范圍的公式補碼表示范圍的公式是是2n1(2n11)16數的補碼舉例數的補碼舉例問題:已知問題:已知a=4,b=16,計算,計算 4 -16 根據根據 a補補+b補補= a+b補補有:有: a+b補補 =+4補補+16補補 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 + 1 1 1
12、 1 0 0 0 0 1000110016 原原= 10010000 連同符號連同符號一起運算一起運算4 補補 = 00000100 16 反反= 11101111 16 補補= 11110000 171)定義)定義形式形式三種三種形式形式單精度單精度雙精度雙精度長雙精度長雙精度 floatdoublelong double2)占)占存儲空間存儲空間4816注意:實型常量不區分單精度和雙精度!注意:實型常量不區分單精度和雙精度!2、實、實型型數據數據-1 實實型數據就是數學中的實數,一律作為型數據就是數學中的實數,一律作為有符號的數據使用。有符號的數據使用。 184)輸入輸出)輸入輸出形式形式
13、 %f, %lf 3)變量)變量的取值范圍的取值范圍 類型類型 長度長度數的范圍數的范圍有效數字有效數字單精度單精度float4 10- 38 10386 7位位雙精度雙精度double8 10- 308 1030815 16位位長雙精度長雙精度long double16 10- 4931 10493218 19位位2、實型數據實型數據-219 實型數據在計算機中以實型數據在計算機中以指數形式指數形式存儲,單精度存儲,單精度float變量占四個字節。一個字節存放指數部分變量占四個字節。一個字節存放指數部分, 三個三個字節存數值部分。字節存數值部分。5)float型數的表示范圍型數的表示范圍2、
14、實型數據實型數據-3203、字符型、字符型字符型常量:字符型常量: a 、b 字符型變量字符型變量: char ch;C語言采用語言采用ASCII碼字符集,即用碼字符集,即用1個個字節存放字節存放1個字符的個字符的ASCII碼值。碼值。字符型字符型使用關鍵字使用關鍵字char表示,表示,ASCII碼值的范圍為碼值的范圍為0255。211)在)在程序運行中,其值保持不變程序運行中,其值保持不變2)表示)表示方法:方法: 3)符號)符號常量:常量: #define PI 3.14159又稱為宏定義又稱為宏定義,給給常量定義一個標識符,稱宏名,大寫。常量定義一個標識符,稱宏名,大寫。三、三、C語言的
15、常量和變量語言的常量和變量整型整型 100,125,-100實型實型 3.14 , 0.125字符型字符型 a, b字符字符串常量串常量 string1、常量、常量22宏定義應用宏定義應用舉例舉例/* 符號符號常量(宏定義)的常量(宏定義)的使用使用 */#include /定義符號常量定義符號常量PRICE,值為,值為30 #define PRICE 30void main() int num,total; num=10; total=num* PRICE; /使用符號常量使用符號常量 printf(total=%d,total);#include /定義符號常量定義符號常量PIPI,值,值
16、為為3.14159263.1415926#define PI 3.1415926void main() float r,s; r=2.3; s=PI*r*r; printf(%f,s);23 3. 變量通過變量通過變量名變量名來標識。來標識。 1. 在程序運行中,值發生變化;在程序運行中,值發生變化;2. 必須先定義,再使用;必須先定義,再使用;int a=3,b=10;類型類型 變量變量名表名表內存內存a3 變量名和內存中的存儲單元變量名和內存中的存儲單元相對應。編寫程序時通過變量名相對應。編寫程序時通過變量名來存、取存儲單元。來存、取存儲單元。2、變量、變量b1024 (1)以)以字母或下
17、劃線字母或下劃線開頭開頭,后面可以跟字母、下,后面可以跟字母、下劃線和數字劃線和數字(2)不能用不能用系統中的系統中的關鍵字關鍵字作為變量名作為變量名(3)變量名中的字母是)變量名中的字母是區分大小寫區分大小寫的:的: sum、stu_name、_age、Lts_1_2、a2 32c、x.y、start+9、c2.0 非法非法 NAME name 表示兩個不同的標識符。表示兩個不同的標識符。有關有關變量名的規定變量名的規定25變量定義格式變量定義格式存儲類型存儲類型 數據類型關鍵字數據類型關鍵字 變量名標識符變量名標識符; 【例例】定義變量示例定義變量示例int a; unsigned lon
18、g sum; float r; char ch;int a, b, c=4; 26定義多個同類型變量方法定義多個同類型變量方法在同一個語句中可以定義兩個及兩個以上在同一個語句中可以定義兩個及兩個以上相同類型的變量。相同類型的變量。規定:變量名之間用規定:變量名之間用逗號逗號作為間隔符,第作為間隔符,第一個變量名與數據類型關鍵字之間用空格一個變量名與數據類型關鍵字之間用空格(空格的個數不限)作為間隔符。(空格的個數不限)作為間隔符。例如:例如:double x, y;271) 定義定義形式:形式:2)占)占存儲空間:存儲空間:1個個字節字節char 變量變量表;表;3)輸入輸出)輸入輸出形式:形
19、式: %c a a ASCIIASCII值為值為 97 97 內存中存儲形式內存中存儲形式0 1 1 0 0 0 0 14)字符型數據在內存中以相應的)字符型數據在內存中以相應的ASCII值存儲值存儲3. 字符型變量字符型變量28 以以“”開頭后跟一個特殊字符或數字稱為開頭后跟一個特殊字符或數字稱為轉義字符。轉義字符。n 換行換行t 橫橫向跳向跳格格(制表符制表符)r 回回車車反反斜斜杠杠ddd ddd表示表示1到到3個個八進制八進制數字數字xhhh hhh表示表示1到到3個個十六進制十六進制數字數字printf(%d t %d t,a,b); printf(%d n%d n,a,b);若:若
20、:a為為1,b為為0, 則則4、轉義字符、轉義字符輸出輸出:101029轉義字符表示法轉義字符表示法30ddd 表示表示1到到3個個八進制八進制數字對應數字對應ASCII字符字符xhhh 表示表示1到到3個個十六進制十六進制數字對應數字對應ASCII字符字符10114160 x41x61x30printf(%c,%c,%cn,a,b,c); printf(%c,%c,%cn,x,y,z);若:若:a =101 ,b =141,c= 60;若:若:x =x41,y =x61,z=x30; 轉義字符舉例轉義字符舉例輸出輸出: A,a,0輸出輸出: A,a,0表示表示 A 八進制八進制101十進制的
21、十進制的65表示表示 a表示表示 0表示表示 A 十六進制十六進制41十進制的十進制的65表示表示 a表示表示 031分析程序看結果分析程序看結果【例例】轉義字符應用舉例。轉義字符應用舉例。/* 字符輸出與轉義字符應用字符輸出與轉義字符應用 */#include void main( ) printf(abct defrgthn); printf(it jkbbbl m); printf(Yb=n);1. 1. 運算符運算符運算符運算符 x = 5 + b * c 算術運算符算術運算符賦值運算符賦值運算符關系運算符關系運算符邏輯運算符邏輯運算符逗號運算符逗號運算符條件運算符條件運算符 C 中運
22、算符中運算符四、四、C語言的運算符語言的運算符和和表達式表達式322、運算符的優先級順序、運算符的優先級順序33優先級高優先級高優先級低優先級低34* 優先級:運算符優先級:運算符的執行順序的執行順序 * 結合性:優先級結合性:優先級相同時的結合方向相同時的結合方向u 一元運算符一元運算符的優先級的優先級高于二元運算符,二高于二元運算符,二元運算符的優先級高于三元運算符;元運算符的優先級高于三元運算符;u 算術運算符的優先級高于關系運算符,關算術運算符的優先級高于關系運算符,關系運算符的優先級高于邏輯運算符系運算符的優先級高于邏輯運算符u 一元運算符一元運算符從右向左結合(右結合)從右向左結合
23、(右結合)u 多數二元運算符多數二元運算符從左向右結合(左結合)從左向右結合(左結合)運算符的優先級與結合性運算符的優先級與結合性353、表達式、表達式書寫方法書寫方法必須在一行內書寫,沒有上(下)角標。必須在一行內書寫,沒有上(下)角標。為保證運算次序,必要時可以加小括號進行為保證運算次序,必要時可以加小括號進行限定,并且只能用小括號。限定,并且只能用小括號。不能出現不能出現C語言中不允許的字符,如語言中不允許的字符,如、等。等。361)算數算數表達式表達式 用算術運算符和小括號將運算量連接起來的、符用算術運算符和小括號將運算量連接起來的、符合合C語言語法規則的式子,稱為語言語法規則的式子,
24、稱為C語言的算術表語言的算術表達式。達式。 舉例:舉例: 4+8 A 1 8/5 5.5*4 5%2 ( b+sqrt(b*b 4*a*c)/(2*a) 5.6%2 (不正確)(不正確)371 1)將一個常量或一個表達式的值賦給一個變量稱為)將一個常量或一個表達式的值賦給一個變量稱為賦值,含有賦值運算符的表達式稱為賦值表達式賦值,含有賦值運算符的表達式稱為賦值表達式 。x = 5 y = x + 10 2)可以將一個實型賦給一個整型,或將一個整型)可以將一個實型賦給一個整型,或將一個整型賦給一個實型賦給一個實型int x; x=5.3; x的值為的值為 5float y; y=5; y的的值為
25、值為 5.0000003)賦值運算的優先級)賦值運算的優先級比算術運算低比算術運算低4)賦值運算的結合性)賦值運算的結合性從右向左從右向左x = y = 52)賦值運算符與賦值表達式賦值運算符與賦值表達式38關于賦值表達式的幾點說明:關于賦值表達式的幾點說明:賦值號賦值號“=”的左邊必須是一個變量名(一般稱為左值),的左邊必須是一個變量名(一般稱為左值),賦值號的右邊必須是賦值號的右邊必須是C語言中合法的表達式。語言中合法的表達式。賦值運算符的優先級只比逗號運算符高,比其他所有運賦值運算符的優先級只比逗號運算符高,比其他所有運算符優先級別都低(算符優先級別都低(14級)。賦值運算符具有右結合性
26、。級)。賦值運算符具有右結合性。賦值運算的功能是先求出右邊表達式的值,然后把此值賦值運算的功能是先求出右邊表達式的值,然后把此值賦給左邊的變量賦給左邊的變量。確切地講,就是把數據(表達式計算。確切地講,就是把數據(表達式計算結果)放入該變量的存儲單元中去。結果)放入該變量的存儲單元中去。賦值表達式的值就是被賦值的變量的值。賦值表達式的值就是被賦值的變量的值。在定義變量時不允許連續賦值。例如,在定義變量時不允許連續賦值。例如,int a=b=c=5; 是是不合法的。不合法的。如果賦值運算符兩邊的數據類型不相同,系統將自動進如果賦值運算符兩邊的數據類型不相同,系統將自動進行類型轉換,即把賦值號右邊
27、的類型轉換成左邊的類型。行類型轉換,即把賦值號右邊的類型轉換成左邊的類型。 39賦值表達式應用舉例賦值表達式應用舉例【例例】 分析下列程序。分析下列程序。/* 賦值時類型轉換示例賦值時類型轉換示例 */#include void main() int a,b=322; float x,y=8.88; char c1=a,c2; a=y; x=b; a=c1; c2=b; printf(%d,%f,%d,%c,a,x,a,c2);40a+=5 a=a+5賦值運算符兩側出現賦值運算符兩側出現相同的變量相同的變量 算術運算與賦值算術運算與賦值運算相結合運算相結合3)復合)復合賦值運算符和賦值表達式賦
28、值運算符和賦值表達式格式:變量格式:變量 雙目雙目操作符操作符= 表達式表達式;二元操作符二元操作符:+、-、*、/、%、0?打印打印a的值的值選擇結構選擇結構YNX=100?x=1 sum=0語句語句條件條件循環結構循環結構56一般一般每個程序都要用到數據的輸入輸出。每個程序都要用到數據的輸入輸出。數據輸入:通過外設將數據輸入內存。數據輸入:通過外設將數據輸入內存。數據輸出:將內存的數據通過外設輸出數據輸出:將內存的數據通過外設輸出。 C語言的輸入輸出語言的輸入輸出通過通過調用系統函數調用系統函數實現,這些實現,這些輸入輸出函數一般存于輸入輸出函數一般存于stdio.h庫庫文件。使用輸入輸文
29、件。使用輸入輸出函數要用預譯命令指出連接的庫文件,程序編譯出函數要用預譯命令指出連接的庫文件,程序編譯連接時將其與用戶程序相連。連接時將其與用戶程序相連。如:如: #include 或或#include stdio.h 1、輸入輸出的含義、輸入輸出的含義572、格式輸入輸出、格式輸入輸出函數函數【例例】輸入一個整數半徑,以單精度數形式輸出圓的輸入一個整數半徑,以單精度數形式輸出圓的面積。面積。 #include int main() int r; float s=0; printf(請輸入圓的半徑:請輸入圓的半徑:); scanf(%d,&r); s=3.1415926*r*r; pr
30、intf(圓的面積是:圓的面積是:%fn, s); return 0;58格式:格式:printf(格式控制串格式控制串,輸出表,輸出表)功能:按指定格式向顯示器輸出數據功能:按指定格式向顯示器輸出數據返值:正常,返回輸出字節數;出錯,返回返值:正常,返回輸出字節數;出錯,返回EOF(-1)輸出表:要輸出的數據(可以沒有,多個時以輸出表:要輸出的數據(可以沒有,多個時以“,”分分隔)隔)格式控制串:包含兩種信息格式控制串:包含兩種信息格式說明:格式說明:%修飾符修飾符格式字符格式字符 ,用于指定輸出格式,用于指定輸出格式普通字符或轉義序列:原樣輸出普通字符或轉義序列:原樣輸出3、格式輸出函數、
31、格式輸出函數-159d d,i,ix,Xx,Xo ou uc cs se,Ee,Ef fg,Gg,G%十六進制無符號整數十六進制無符號整數不帶符號十進制整數不帶符號十進制整數 帶符號帶符號十進制整數十進制整數指數形式浮點小數指數形式浮點小數單一字符單一字符字符串字符串八進制無符號整數八進制無符號整數小數形式浮點小數小數形式浮點小數e e和和f f中較短一種中較短一種百分號本身百分號本身int a=567;printf (“%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a
32、=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+002567.789000567.789%3、格式輸出函數、格式輸出函數-2說明說明: :p 除除X X、E E、G G外,格式字符要用小寫外,格式字符要用小寫p 格式字符與輸出項個數應相同,按先后順序一一對應格式字符與輸出項個數應相同,按先后順序一一對應, ,否
33、則否則, ,若格式字符少若格式字符少, ,按其個數自左向按其個數自左向右輸出值右輸出值, ,若格式字符多若格式字符多, ,多出的將輸出不確定值多出的將輸出不確定值. .p 輸出轉換輸出轉換: :格式字符與輸出項類型不一致格式字符與輸出項類型不一致, ,自動按指定格式輸出自動按指定格式輸出, ,但但intint與與floatfloat不能互用不能互用 。60附加格式說明符附加格式說明符(修飾符修飾符).n對實數對實數,指定小數點后位數指定小數點后位數(四舍五入四舍五入)對字符串對字符串,指定實際輸出位數指定實際輸出位數(從左截取從左截取)修飾符修飾符功功 能能m輸出數據域寬輸出數據域寬,數據長度
34、數據長度m,左補空格左補空格;否則按實際輸出否則按實際輸出輸出數據在域內輸出數據在域內左對齊(缺省左對齊(缺省右對齊右對齊) )-指定在有符號數指定在有符號數的正數前顯示正號的正數前顯示正號(+)(+)+輸出數值時指定左面不使用的空位置自動填輸出數值時指定左面不使用的空位置自動填0 00在八進制和十六進制數前顯示前導在八進制和十六進制數前顯示前導0 0,0 0 x x#在在d,i,o,x,ud,i,o,x,u前,指定輸出精度為前,指定輸出精度為longlong在在e,f,ge,f,g前,指定輸出精度為前,指定輸出精度為long doublelong doublel614、格式輸入函數格式輸入函
35、數-1格式格式: scanf(格式控制格式控制參數參數,地址表),地址表)功能:按指定格式從鍵盤讀入數據,存入地址表指定功能:按指定格式從鍵盤讀入數據,存入地址表指定的存儲單元中的存儲單元中,并按回車鍵結束并按回車鍵結束返返回回值:正常,返回輸入數據個數值:正常,返回輸入數據個數p地址表:變量的地址,常用取地址運算符地址表:變量的地址,常用取地址運算符&p格式字符格式字符:d,i,o,x,u,c,s,f,e例例 scanf(%d,&a);p 輸入:輸入:10 p 則則 a=10例例 scanf(%x,&a);p 輸入:輸入:11 p 則則 a=17624、格式格式輸入輸
36、入函數函數-2d, i輸入有符號的十進制數輸入有符號的十進制數u輸入無符號的十進制數輸入無符號的十進制數o輸入無符號的八進制數輸入無符號的八進制數x,X輸入無符號的十六進制數輸入無符號的十六進制數c輸入單個字符,空格、回車、制表符等也作為有效字輸入單個字符,空格、回車、制表符等也作為有效字符輸入符輸入s輸入字符串,以非空白字符開始,遇到第一個空白字輸入字符串,以非空白字符開始,遇到第一個空白字符(包括空格、回車、制表符)時結束符(包括空格、回車、制表符)時結束f輸入實數,小數、指數形式均可輸入實數,小數、指數形式均可E,e,g,G與與f作用相同作用相同63附加格式附加格式說明符說明符(修飾符修
37、飾符)l修飾符修飾符功功 能能hm*用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為shortshort型整數型整數用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為longlong型整數型整數用于用于e,fe,f前,指定輸入為前,指定輸入為long doublelong double型實數型實數指定輸入數據寬度,遇空格或不可轉換字符則結束指定輸入數據寬度,遇空格或不可轉換字符則結束抑制符,指定輸入項讀入后不賦給變量抑制符,指定輸入項讀入后不賦給變量例例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 輸入輸入 19991015 則則199
38、9yy, 10 mm, 15 dd例例 scanf(“%3d%*4d%f”,&k,&f); 輸入輸入 12345678765.43 則則123k, 8765.43f例例 scanf(“%2d %*3d %2d”,&a,&b); 輸入輸入 12 345 67 則則12a, 67b例例 scanf(“%3c%2c”,&c1,&c2); 輸入輸入 abcde 則則ac1, d c264一般一般以空格、以空格、TAB或回車鍵作為分隔符或回車鍵作為分隔符其它字符做分隔符:格式串中兩個格式符間字符其它字符做分隔符:格式串中兩個格式符間字符例例 scanf(%
39、d%o%x,&a,&b,&c); printf(a=%d,b=%d,c=%dn,a,b,c); 輸入輸入 123 123 123 輸出輸出 a=123,b=83,c=291例例 scanf(a=%d,b=%d,c=%d, &a, &b, &c); 輸入輸入 a=12,b=24,c=36 輸入分隔符的指定輸入分隔符的指定-1例例 scanf(%d:%d:%d, &h, &m, &s); 輸入輸入 12:30:45 則則12 h, 30 m, 45 s例例 scanf(%d,%d, &a, &b) 輸入輸入 3
40、,4 則則3a, 4 b65 說明:說明: 用用“%c”格式符時,空格和轉義字符作為有格式符時,空格和轉義字符作為有效字符輸入效字符輸入p輸入數據時,遇以下情況認為該數據結束:輸入數據時,遇以下情況認為該數據結束: 遇空格、遇空格、TAB、或回車或回車 遇寬度結束遇寬度結束 遇非法遇非法輸入輸入p輸入函數留下的輸入函數留下的“垃圾垃圾”:解決方法:解決方法:(1) 用用getchar()清除清除(2) 用用函數函數fflush(stdin)清除全部剩余內容清除全部剩余內容(3) 用格式串中空格或用格式串中空格或“%*c”來來“吃掉吃掉”(4) 用用%1s代替代替%c,因為它完全忽略空格和回車符
41、,因為它完全忽略空格和回車符輸入分隔符的指定輸入分隔符的指定-2例例 int x; char ch; scanf(%d, &x); scanf(%c, &ch);或或 scanf(%*c%c, &ch); scanf(%1s, &ch);例例 int x; char ch; scanf(%d, &x); ch=getchar(); printf(x=%d,ch=%dn, x, ch);執行:執行:123 輸出:輸出:x=123,ch=10例例 int x; char ch; scanf(%d,&x); scanf(%c,&ch); pri
42、ntf(x=%d,ch=%dn, x, ch);執行:執行:123 輸出:輸出:x=123,ch=1066例:例: scanf(%c%c%c, &c1, &c2, &c3); 若若輸入輸入a b c 則則ac1, c2, b c3例例: scanf(%d%c%f,&a,&b,&c); 若若輸入輸入1234a123o.26 則則 1234 a, a b, 123 c輸入分隔符的示例輸入分隔符的示例67格式:格式:getchar( )功能功能:從從鍵盤讀一字符鍵盤讀一字符返返值值:正常正常,返回返回讀取的代碼值讀取的代碼值;出錯出錯,返回返回EOF(
43、-1)getchar函數函數注意:注意:n getchar( )函數沒有參數,本身不能提供用于存放字符的變函數沒有參數,本身不能提供用于存放字符的變量,因此一般使用形式為:變量量,因此一般使用形式為:變量=getchar()n 利用利用getchar( )讀入字符時,不是讀入一個字符后立刻響應讀入字符時,不是讀入一個字符后立刻響應,而是先讀入緩沖區,待回車后再一并執行,而是先讀入緩沖區,待回車后再一并執行。通常。通常用前置用前置printf( )函數加入提示信息函數加入提示信息。n getchar()從鍵盤緩沖區中自左向右順序讀取數據的(這被從鍵盤緩沖區中自左向右順序讀取數據的(這被稱為數據流)。稱為數據流)。5、字符輸入字符輸入函數函數68#include int main() char ch1,ch2,ch3; ch1=getchar( ); /從鍵盤輸入一個字符并存到從鍵盤輸入一個字符并存到ch1中中 getchar( ); /消除回車符的影響,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 燃氣工程專業中級職稱理論考試題庫
- 賽馬數學拓展題目及答案
- 汝南數學中招題目及答案
- 2024-2025學年新疆巴音郭楞蒙古自治州高二上學期期末考試語文試題(解析版)
- 2024-2025學年山西省部分地市高一上學期期末考試語文試題(解析版)
- 公路目錄模板
- 護士工作簡歷模板范本
- 文明自律演講稿
- 委托代理進口協議
- 自貢統計年鑒-2009-人口主要統計指標解釋
- 國家開放大學本科《當代中國政治制度》期末紙質考試總題庫2025春期版
- 滴滴網約車出行品牌-品牌視覺識別手冊【出行打車】【VI設計】
- 課題申報參考:中華體育精神鑄牢新疆青年學生中華民族共同體意識的時代價值和實踐路徑研究
- 臨床生化檢驗講課
- 生物制造產業園項目實施規劃與進度安排
- 蒸飯培訓課件
- 高校物業管理服務實施方案
- 工程造價咨詢服務投標方案(專家團隊版-)
- 消化內鏡護理常規
- 招標代理入圍服務方案
- 【MOOC】電子技術實習-北京科技大學 中國大學慕課MOOC答案
評論
0/150
提交評論