3.1 表達式語句、函數(shù)調(diào)用語句和空語句
1.C語言的語句共分五大類:表達式語句、控制語句、函數(shù)調(diào)用語句、空語句和復合語句。
2.表達式語句的一般形式為
表達式;
最典型的表達式語句是由一個賦值表達式加一個分號構(gòu)成的賦值語句。
3.控制語句是C語言程序設計中用來構(gòu)成分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的語句。此類語句有if語句,for語句,while語句,do-while語句,switch語句等。
4.函數(shù)調(diào)用語句的一般形式為
函數(shù)名(實參表);
5.空語句的一般形式為
;
這條語句的含義是什么也不做。凡是在C語句程序中出現(xiàn)語句的地方都可以用一個分號來代替一條語句。
6.復合語句的一般形式為
{語句1;語句2;…;}
復合語句在功能上相當于一條語句。
3.2 數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用
1.C語言本身沒有提供輸入、輸出操作語句。C程序的輸入和輸出完全依靠調(diào)用C語言的標準輸入、輸出函數(shù)來完成。四個常用的輸入、輸出函數(shù)是:
printf函數(shù)、scanf函數(shù)、putchar函數(shù)、getchar函數(shù)
2.printf函數(shù)是C語言提供的標準輸出函數(shù),它的作用是在終端設備(或系統(tǒng)隱含指定的輸出設備)上按指定格式進行輸出。Printf函數(shù)的一般調(diào)用形式如下:
printf(格式控制,輸出項表)
如果在printf函數(shù)調(diào)用之后加上″;″,就構(gòu)成了輸出語句。
格式控制參數(shù)以字符串的形式描述,由兩部分組成:
①普通字符:將被簡單地顯示;
②格式字符:將引起一個輸出參數(shù)項的轉(zhuǎn)換和顯示,由“%”引出并以一個類型描述符結(jié)束的字符串,中間可加一些可選的附加說明項,如下表所示。
附加說明項
附加說明項
說明
-或+ 用于指定是否對齊輸出,具有“-”符號表示左對齊,無“-”或有“+”表示右對齊
0 用于指定是否填寫0,有此項表示空位用0補充,無此項表示以空格補充
m.n 用于指定輸出域?qū)捈熬?,m是指域?qū)?,n為精度,當指定n時,隱含的精度為6位
L或h 用于輸出長度修正。其中,l對于整型是指long,對實型是double;h只用于整型的格式字符,并修正為short型
格式字符用于指定輸出項的數(shù)據(jù)類型及輸入格式,如下表所示。
注意:編譯程序只是在檢查了printf函數(shù)中的格式參數(shù)后,才能確定有幾個輸出項,是什么類型、以什么格式輸出。在編程序時,應使輸出格式與輸出項對應。
格式字符
格式字符
說明
CcD 輸出一個字符
d或I 輸出帶符號的十進制整型數(shù)
OoO 以八進制無符號形式輸出整型數(shù)(不帶前導0)
x或X 以十六進制無符號形式輸出整型數(shù)(不帶前導0x或0X),對于x,用abcdef輸出十六進制數(shù)碼;對于X,用ABCDEF輸出十六進制數(shù)碼
UuU 按無符號的八進制形式輸出整型數(shù)
FfF 以小數(shù)的形式輸出單精度或雙精度數(shù),小數(shù)位由精度指定,隱含的精度為6;如指定精度為0,則小數(shù)部分(包含小數(shù)點)都不輸出
e或E 以指數(shù)形式輸出單精度及雙精度數(shù),小數(shù)位數(shù)由精度指定,隱含的精度為6;如指定精度為0,則小數(shù)部分(包含小數(shù)點)都不輸出
g或G 由系統(tǒng)決定是采用%f不是采用%e格式,以便使輸出寬度最小
SsS 輸出字符串中的字符,直到遇到″\0″時為止,或輸出指定的字符數(shù)
PpP 輸出變量的內(nèi)存地址
% 打印一個%
3.scanf函數(shù)是C語言提供的標準輸入函數(shù),它的作用是在終端設備(或系統(tǒng)隱含指定的輸入設備)上輸入數(shù)據(jù)。Scanf函數(shù)的一般調(diào)用形式是:
scanf(格式控制,輸入項表)
如果在scanf函數(shù)調(diào)用之后加上″;″,就構(gòu)成了輸入語句。
格式控制是用雙引號括起來的字符串,稱為格式控制串。格式控制串的作用是指定輸入時的數(shù)據(jù)轉(zhuǎn)換格式,即格式轉(zhuǎn)換說明。格式轉(zhuǎn)換說明是由″%″符號開始,其后是格式描述符。
輸入項表中的各輸入項用逗號隔開,各輸入項只能是合法的地址表達式,即在變量之前加一個地址符號″&″。
在scanf函數(shù)中每個格式說明都必須用%開頭,以一個″格式字符″結(jié)束。
Scanf函數(shù)中的格式控制字符與printf函數(shù)中的相似,由格式說明項與輸入格式符組成。格式說明項如下表所示。
格式說明項
格式說明項 說明
% 起始符
* 賦值抑制符,用于按格式說明讀入數(shù)據(jù),但不送給任何變量
MmM 域?qū)捳f明
l或h 長度修正說明符
scanf中的格式字符如下表所示。
格式說明項 說明
CcC 輸入一個字符
DdD 輸入十進制整型數(shù)
IiI 輸入整型數(shù),整數(shù)可以是帶前導0的八進制數(shù),帶前導0x(或0X)的十六進制數(shù)
OoO 以八進制形式輸入整型數(shù)(可為帶前導0,也可不帶前導0)
XxX 以十六進制形式輸入整型數(shù)(可帶前導0x或0X,也可不帶)
UuU 無符號十進制整數(shù)
FfF 以帶小數(shù)點形式或指數(shù)形式輸入實型數(shù)
EeE 與f的作用相同
SsS 輸入字符串
4.putchar函數(shù)的作用是把一個字符輸出到標準輸出設備(常指顯示器或打印機)上。一般調(diào)用形式為
putchar(ch) ;
其中ch代表一個字符變量或一個整型變量,ch也可以代表一個字符常量(包括轉(zhuǎn)義字符常量)。
5.getchar函數(shù)的作用是標準輸入設備(通常指鍵盤)上讀入一個字符。一般調(diào)用形式為
getchar();
getchar函數(shù)本身沒有參數(shù),其函數(shù)值就是從輸入設備得到的字符。