4.1 c語言概述
c程式的結構:
c語句可分為以下五類:
1) 表示式語句
2) 函式呼叫語句
3) 控制語句
4) 復合語句
5) 空語句
1、表示式語句:表示式語句由表示式加上分號「;」組成。
例如:x = y + z;賦值語句;
y + z;加法運算語句,但計算結果不能保留,無實際意義;
i ++;自增1語句,i 值增1。
2、函式呼叫語句:由函式名、實際引數加上分號「;」組成。
例如: printf("c program");呼叫庫函式,輸出字串。
3、控制語句:控制語句用於控制程式的流程, 以實現程式的各種結構方式。
它們由特定的語句定義符組成。c語言有九種控制語句。
可分成以下三類:
1) 條件判斷語句:if語句、switch語句;
2) 迴圈執行語句:do while語句、while語句、for語句;
3) 轉向語句:break語句、goto語句、continue語句、return語句。
4、復合語句:把多個語句用括號{}括起來組成的乙個語句稱復合語句。
例如:
復合語句內的各條語句都必須以分號「;」結尾,在括號「}」外不能加分號。
5、空語句:只有分號「;」組成的語句稱為空語句。空語句是什麼也不執行的語句。
在程式中空語句可用來作空迴圈體。
例如:while(getchar()!='\n')
本語句的功能是,只要從鍵盤輸入的字元不是回車則重新輸入。
4.2 賦值語句
賦值語句是由賦值表示式再加上分號構成的表示式語句。
1、由於在賦值符「=」右邊的表示式也可以又是乙個賦值表示式,
因此,下述形式是成立的,從而形成巢狀的情形。
變數 = (變數 = 表示式);
例如: a=b=c=d=e=5;
2、注意在變數說明中給變數賦初值和賦值語句的區別。
3、在變數說明中,不允許連續給多個變數賦初值。如:int a=b=c=5是錯誤的,
而賦值語句允許連續賦值。如a = b = c =5;
4、注意賦值表示式和賦值語句的區別。
4.3 資料輸入輸出的概念及在c語言中的實現
在c語言中,所有的資料輸入/輸出都是由庫函式完成的。 因此都是函式語句。
在使用c語言庫函式時,要用預編譯命令#include< stdio.h >,將有關「標頭檔案」包括到原始檔中。
4.4 字元資料的輸入輸出
阿史蒂芬我們先介紹c標準i/o函式庫中最簡單的,也是最容易理解的字元
輸入輸出函式putchar()和getchar(),再介紹格式輸入輸出函式printf()和scanf()函式
4.4.1、putchar函式(字元輸出函式)
putchar 函式是字元輸出函式, 其功能是在顯示器上輸出單個字元。
其一般形式為: putchar(字元變數)
例如: putchar('a'); (輸出大寫字母a)
putchar(x); (輸出字元變數x的值)
putchar(『\101』); (也是輸出字元a)
putchar('\n'); (換行) 注意:對控制字元則執行控制功能,不在螢幕上顯示。
下面我們來舉乙個例子:
例4.1 輸出單個字元
#include/* 輸出單個字元 */
int main(void)
執行結果為:book book
4.4.2 getchar函式(鍵盤輸入函式)
getchar函式的功能是從鍵盤上輸入乙個字元。其一般形式為: getchar();
通常把輸入的字元賦予乙個字元變數,構成賦值語句,
如:char c; c=getchar();
例4.2 輸入單個字元。
#include/* 輸入單個字元 */
int main(void)
使用getchar函式還應注意幾個問題:
1)、 getchar函式只能接受單個字元,輸入數字也按字元處理。
輸入多於乙個字元時,只接收第乙個字元。
2) 、使用本函式前必須包含檔案「stdio.h」。
4.5 格式化輸入與輸出
4.5.1 printf函式(格式輸出函式)
作用是向終端輸出若干個任意型別的資料
1、printf函式呼叫的一般形式為:
printf(「格式控制字串」,輸出表列)
例4.3:
#include/* printf函式,格式輸出函式 */
int main(void)
2、格式字串
格式字串的一般形式為: [標誌][輸出最小寬度][.精度][長度]型別 (其中括號內為可選項)
1) 、型別:型別字元用以表示輸出資料的型別,其格式符和意義如下表所示:
2) 、標誌:標誌字元為-、+、#、空格四種,其意義下表所示:
3) 、輸出最小寬度:用十進位制整數來表示輸出的最少位數。若實際位數多於定義的寬度,則按實際位數輸
出,若實際位數少於定義的寬度則補以空格或0。
4) 、精度:精度格式符以「.」開頭,後跟十進位制整數。
本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元,則表示輸出字元的個數;
若實際位數大於所定義的精度數,則截去超過的部分。
5)、長度:長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。
例4.4:
#include/* 格式控制輸出 */
int main(void)
輸出結果:
第1個printf 以四種格式輸出整型變數a的值,
其中「%5d 」要求輸出寬度為5,而a值為15只有兩位故補三個空格。
%o表示按照8進製整型格式,%x表示按照16進製制整型格式,都是輸出a
結果為: 15, 15,17,f
第2個printf 以四種格式輸出實型量b的值。其中「%f」和「%lf 」格式的輸出相同,說明「l」符對「f」型別無影響。
「%5.4lf 」指定輸出寬度為5,精度為4,由於實際長度超過5故應該按實際位數輸出,小數字數超過4位部分被截去。
4.5.2 scanf函式(格式輸入函式)
1、scanf函式的一般形式:
scanf(「格式控制字串」,位址表列);
格式控制字串:與printf的一樣
例4.9
#include/* 用scanf函式輸入資料 */
int main(void)
&是位址運算子,&a是指a在記憶體中的位址
2、格式說明
大多與printf函式中相同,一般我是不會用他複雜的格式輸出輸入的,所以這裡先不介紹了,
如果後期遇到複雜的輸入輸出應用的時候再來補充。
3、使用scanf函式時應該注意的問題
1)、scanf函式中的「格式控制」後面應該是變數的位址,而不是變數名。
2)、如果在「格式控制」字串中除了格式說明以外還有其他字元,則在輸入資料時在
對應的位置也應該輸入與這些字元相同的字元。
4.6 順序結構程式設計舉例
例4.10 輸入三角形的三邊長,求三角形面積
設面積為s,邊長分別為a,b,c,根據海**式有
#include#include/* 輸入三角形的三邊長,求三角形面積 */
int main(void)
結果為:輸入3 回車4回車5,得到面積為6
因為本題目中運用到了開平方函式sqrt,所以我們需要包含標頭檔案math.h
例4.11 從鍵盤輸入乙個大寫字母,要求改用小寫字母輸出
#include/* 從鍵盤輸入乙個大寫字母,要求改用小寫字母輸出 */
int main(void)
結果為:輸入a回車, a,65 a,97
C語言程式設計譚浩強版 一
本章的一些概況這裡就不說了,直接進入細節的學習!3.1 c的資料型別 資料型別分為 基本型別 構造型別 指標型別 空型別 基本型別又分為 整型 字元型 實型 浮點型 又分為單精度型 雙精度型 列舉型別 構造型別又分為 陣列型別 結構體型別 共用體型別 3.2 常量和符號常量 在程式執行過程中,其值不...
C語言程式設計譚浩強版 三
3.5 字元型資料 3.5.1 字元常量 字元常量是用單引號括起來的乙個字元。例如 a b 都是合法字元常量。在 語言中,字元常量有以下特點 1 字元常量只能用單引號括起來,不能用雙引號或其它括號。2 字元常量只能是單個字元,不能是字串。3 字元可以是字符集中任意字元。但數字被定義為字元型之後就不能...
C語言程式設計譚浩強版 四
3.6 變數賦初值 語言程式中可有多種方法為變數提供初值。本小節先介紹在作變數定義的同時給變數賦以 初值的方法。這種方法稱為初始化。變數初始化不是在編譯階段完成的,而是在程式執行 時執行本函式時賦予初值的。在變數定義中賦初值的一般形式為 型別說明符變數1 值1,變數2 值2,例如 int a 3 i...