C語言程式設計譚浩強版 六

2021-07-15 19:08:37 字數 4399 閱讀 8405

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...