C語言程序設(shè)計(jì):第4章 順序結(jié)構(gòu)程序設(shè)計(jì)_第1頁
C語言程序設(shè)計(jì):第4章 順序結(jié)構(gòu)程序設(shè)計(jì)_第2頁
C語言程序設(shè)計(jì):第4章 順序結(jié)構(gòu)程序設(shè)計(jì)_第3頁
C語言程序設(shè)計(jì):第4章 順序結(jié)構(gòu)程序設(shè)計(jì)_第4頁
C語言程序設(shè)計(jì):第4章 順序結(jié)構(gòu)程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第四章順序結(jié)構(gòu)程序設(shè)計(jì)C語言程序設(shè)計(jì)14.1C語句概述C程序源程序文件1源程序文件2源程序文件n…………..預(yù)處理命令全局變量聲明函數(shù)1函數(shù)2函數(shù)n………函數(shù)首部函數(shù)體局部變量聲明執(zhí)行部分(語句)一、C程序的組成2C程序的執(zhí)行部分是由語句組成的。程序的功能也是由執(zhí)行語句實(shí)現(xiàn)的。C語句可分為以下五類:表達(dá)式語句函數(shù)調(diào)用語句控制語句復(fù)合語句空語句

變量定義不是語句,如:inta;C程序的語句1.表達(dá)式語句表達(dá)式語句由表達(dá)式加上分號“;”組成。其一般形式為:表達(dá)式;執(zhí)行表達(dá)式語句就是計(jì)算表達(dá)式的值。二、C程序的語句3例如:

x=y+z;賦值語句

y+z;加法運(yùn)算語句,但計(jì)算結(jié)果不能保留,無實(shí)際意義

i++;自增1語句,i值增12.函數(shù)調(diào)用語句由函數(shù)名、實(shí)際參數(shù)加上分號“;”組成。其一般形式為:函數(shù)名(實(shí)際參數(shù)表);

執(zhí)行函數(shù)語句就是調(diào)用函數(shù)體并把實(shí)際參數(shù)賦予函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)函數(shù)體中的語句,求取函數(shù)值,或完成函數(shù)的功能。例如:printf("CProgram");調(diào)用庫函數(shù),輸出字符串。43.控制語句控制語句用于控制程序的流程,以實(shí)現(xiàn)程序的各種結(jié)構(gòu)方式。它們由特定的語句定義符組成。C語言有九種控制語句??煞殖梢韵氯悾?1)條件判斷語句

if語句,switch語句(2)循環(huán)執(zhí)行語句

dowhile語句,while語句,for語句(3)轉(zhuǎn)向語句

break語句,goto語句,continue語句,return語句54.復(fù)合語句把多個(gè)語句用括號{}括起來組成的一個(gè)語句稱復(fù)合語句。在程序中應(yīng)把復(fù)合語句看成是單條語句,而不是多條語句,例如{

x=y+z;a=b+c;

printf(“%d%d”,x,a);}

是一條復(fù)合語句。復(fù)合語句內(nèi)的各條語句都必須以分號“;”結(jié)尾,在括號“}”外不能加分號。5.空語句

只有分號“;”組成的語句稱為空語句??照Z句是什么也不執(zhí)行的語句。在程序中空語句可用來作空循環(huán)體。例如

while(getchar()!='\n');64.2賦值語句賦值語句是由賦值表達(dá)式再加分號構(gòu)成的表達(dá)式語句。其一般形式為:變量=表達(dá)式;它是程序中使用最多的語句之一。在賦值語句的使用中需要注意以下幾點(diǎn):

1.賦值符“=”右邊的表達(dá)式也可以又是一個(gè)賦值表達(dá)式,因此,下述形式

變量=(變量=表達(dá)式);

是成立的,從而形成嵌套的情形。其展開之后的一般形式為:

變量=變量=…=表達(dá)式;

例如:a=b=c=d=e=5;按照賦值運(yùn)算符的右接合性,因此實(shí)際上等效于:e=5;d=e;c=d;b=c;a=b;72.

注意在變量說明中給變量賦初值和賦值語句的區(qū)別。給變量賦初值是變量說明的一部分,賦初值后的變量與其后的其它同類變量之間仍必須用逗號間隔,而賦值語句則必須用分號結(jié)尾。

3.在變量說明中,不允許連續(xù)給多個(gè)變量賦初值。如下述說明是錯誤的:inta=b=c=5必須寫為:

inta=5,b=5,c=5;而賦值語句允許連續(xù)賦值。

4.

注意賦值表達(dá)式和賦值語句的區(qū)別。賦值表達(dá)式是一種表達(dá)式,它可以出現(xiàn)在任何允許表達(dá)式出現(xiàn)的地方,而賦值語句則不能。下述語句是合法的:

if((x=y+5)>0)z=x;語句的功能是,若表達(dá)式x=y+5大于0則z=x。

下述語句是非法的:if((x=y+5;)>0)z=x;因?yàn)閤=y+5;是語句,不能出現(xiàn)在表達(dá)式中。84.3數(shù)據(jù)輸入/輸出的概念一、數(shù)據(jù)輸入/輸出的概念內(nèi)存RAM從鍵盤將數(shù)據(jù)輸入從數(shù)據(jù)文件讀入將數(shù)據(jù)輸出到屏幕將數(shù)據(jù)輸出到文件數(shù)據(jù)輸入/輸出是相對計(jì)算機(jī)內(nèi)存9二、數(shù)據(jù)輸入/輸出語句

在C語言中所有的數(shù)據(jù)輸入/輸出都是由庫函數(shù)完成的。因此都是函數(shù)語句。在C語言中使用庫函數(shù)時(shí),要使用預(yù)編譯命令#include將相關(guān)的頭文件(*.h)包含到用戶源文件中。使用形式:

#include"頭文件"

或#include<頭文件>說明:1.標(biāo)準(zhǔn)輸入/輸出頭文件是:stdio.h2.<>表示是標(biāo)準(zhǔn)的工程、標(biāo)準(zhǔn)的頭文件;查找過程檢查預(yù)定義的目錄。3.“”則表明是用戶提供的頭文件;查找該文件從當(dāng)前文件所在的目錄開始。104.4字符數(shù)據(jù)的輸入/輸出一、字符輸出函數(shù)putchar()

putchar函數(shù)是字符輸出函數(shù),其功能是在顯示器上輸出單個(gè)字符。其一般形式為:putchar(字符變量)

例如:putchar('A');輸出大寫字母A

putchar(x);輸出字符變量x的值

putchar(‘\n’);換行,對控制字符則執(zhí)行控制功能,不在屏幕上顯示。使用本函數(shù)前必須要用文件包含命令:

#include<stdio.h>11二、字符輸入函數(shù)getchar()

函數(shù)getchar函數(shù)的功能是從鍵盤上輸入一個(gè)字符。其一般形式為:字符變量=getchar();如:

#include<stdio.h>voidmain(){charc;

printf("inputacharacter\n");c=getchar();

putchar(c);}

使用getchar函數(shù)還應(yīng)注意幾個(gè)問題:

1.使用本函數(shù)前必須包含文件<stdio.h>。

122.getchar函數(shù)只能接受單個(gè)字符,輸入數(shù)字也按字符處理。輸入多于一個(gè)字符時(shí),只接收第一個(gè)字符,多余的字符存入到鍵盤的緩沖區(qū),若有下一個(gè)getchar函數(shù)語句,則直接從鍵盤的緩沖區(qū)讀一個(gè)字符。

#include<stdio.h>main(){charc1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);}

當(dāng)程序運(yùn)行后:輸入ABCDEF,輸出為:AB3.在TC屏幕下運(yùn)行含本函數(shù)程序時(shí),將退出TC屏幕進(jìn)入用戶屏幕等待用戶輸入。輸入完畢再返回TC屏幕134.5格式輸入/輸出一、格式輸出函數(shù)printf()

一般形式為:

printf(“格式控制字符串”,輸出表列)

例如:printf("%3d\n",x)%格式說明起始符3輸出數(shù)據(jù)的寬度d輸出數(shù)據(jù)的類型x輸出項(xiàng)14說明:格式字符串的一般形式為:

%[標(biāo)志][輸出最小寬度][.精度][長度]類型

其中方括號[]中的項(xiàng)為可選項(xiàng)。各項(xiàng)的意義介紹如下:1.類型類型字符用以表示輸出數(shù)據(jù)的類型,表示輸出類型的格式字符及意義(P81表4-1)

d,i

以十進(jìn)制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)

o

以八進(jìn)制形式輸出無符號整數(shù)(不輸出前綴O)x,X

以十六進(jìn)制形式輸出無符號整數(shù)(不輸出前綴OX)u

以十進(jìn)制形式輸出無符號整數(shù)

f

以小數(shù)形式輸出單、雙精度實(shí)數(shù)

e,E

以指數(shù)形式輸出單、雙精度實(shí)數(shù)

g,G

以%f%e中較短的輸出寬度輸出單、雙精度實(shí)數(shù)

c

輸出單個(gè)字符

s

輸出字符串15%[標(biāo)志][輸出最小寬度][.精度][長度]類型2.標(biāo)志標(biāo)志字符為-、+、#、空格四種,其意義如下所示:

-

結(jié)果左對齊,右邊填空格

+

輸出符號(正號或負(fù)號)

空格輸出值為正時(shí)冠以空格,為負(fù)時(shí)冠以負(fù)號

#對c,s,d,u類無影響;對o類,在輸出時(shí)加前綴0;對x類,在輸出時(shí)加前綴0x;對e,g,f類當(dāng)結(jié)果有小數(shù)時(shí)才給出小數(shù)點(diǎn)3.輸出最小寬度用十進(jìn)制整數(shù)來表示輸出的最少位數(shù)。若實(shí)際位數(shù)多于定義的寬度,則按實(shí)際位數(shù)輸出,若實(shí)際位數(shù)少于定義的寬度則左補(bǔ)以空格或0。16%[標(biāo)志][輸出最小寬度][.精度][長度]類型4.精度

精度格式符以“.”開頭,后跟十進(jìn)制整數(shù)。本項(xiàng)的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的個(gè)數(shù);若實(shí)際位數(shù)大于所定義的精度數(shù),則截去超過的部分。5.長度

長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。17%[標(biāo)志][輸出最小寬度][.精度][長度]類型main(){

inta=15;floatb=138.3576278;doublec=35648256.3645687;chard='p';

printf("a=%d,%5d,%-5d,%o,%x\n",a,a,a,a,a);

printf("b=%f,%5.4f,%e\n",b,b,b);

printf("c=%f,%8.4f\n",c,c,c);

printf("d=%c,%8c\n",d,d);}18注意:

1.

格式字符串是以%開頭的字符串,格式控制字符串用于指定輸出格式。

2.在%后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。

3.非格式字符串在輸出時(shí)原樣照印,在顯示中起提示作用。

4.輸出表列中給出了各個(gè)輸出項(xiàng),要求格式字符串和各輸出項(xiàng)在數(shù)量和類型上應(yīng)該一一對應(yīng)。19二、格式輸入函數(shù)scanf

1.scanf()函數(shù)的一般形式

scanf(“格式控制字符串”,地址表列);

其中,格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串,也就是不能顯示提示字符串。地址表列中給出各變量的地址。地址是由地址運(yùn)算符“&”后跟變量名組成的。例如:&a,&b分別表示變量a和變量b的地址

main(){inta,b,c;

printf("inputa,b,c\n");

scanf("%d%d%d",&a,&b,&c);

printf("a=%d,b=%d,c=%d",a,b,c);}202.格式字符串格式字符串的一般形式為:

%[*][輸入數(shù)據(jù)寬度][長度]類型

其中有方括號[]的項(xiàng)為任選項(xiàng)。各項(xiàng)的意義如下:(P83表)1)

類型表示輸入數(shù)據(jù)的類型,其格式符和意義如下所示:

d輸入十進(jìn)制整數(shù)

o輸入八進(jìn)制整數(shù)

x輸入十六進(jìn)制整數(shù)

u輸入無符號十進(jìn)制整數(shù)

f或e輸入實(shí)型數(shù)(用小數(shù)形式或指數(shù)形式)

c輸入單個(gè)字符

s輸入字符串21%[*][輸入數(shù)據(jù)寬度][長度]類型2)“*”符

用以表示該輸入項(xiàng)讀入后不賦予相應(yīng)的變量,即跳過該輸入值。如scanf("%d%*d%d",&a,&b);

當(dāng)輸入為:123時(shí),把1賦予a,2被跳過,3賦予b。3)寬度

用十進(jìn)制整數(shù)指定輸入的寬度(即字符數(shù))。例如:scanf("%5d",&a);

輸入:12345678

只把12345賦予變量a,其余部分被截去。又如:scanf("%4d%4d",&a,&b);輸入:12345678將把1234賦予a,而把5678賦予b。4)長度

長度格式符為l和h,l表示輸入長整型數(shù)據(jù)(如%ld)和雙精度浮點(diǎn)數(shù)(如%lf)。h表示輸入短整型數(shù)據(jù)。22

3.使用scanf函數(shù)還必須注意以下幾點(diǎn):(1)

scanf函數(shù)中沒有精度控制。如:scanf("%5.2f",&a);是非法的。不能企圖用此語句輸入小數(shù)為2位的實(shí)數(shù)。

(2)

scanf中要求給出變量地址,如給出變量名則會出錯。如scanf("%d",a);是非法的,應(yīng)改為scnaf("%d",&a);才是合法的。

(3)

在輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔則可用空格,TAB或回車作間隔。

C編譯在碰到空格,TAB,回車或非法數(shù)據(jù)(如對“%d”輸入“12A”時(shí),A即為非法數(shù)據(jù))時(shí)即認(rèn)為該數(shù)據(jù)結(jié)束。

(4)在輸入字符數(shù)據(jù)時(shí),若格式控制串中無非格式字符,則認(rèn)為所有輸入的字符均為有效字符。23例如:

scanf("%c%c%c",&a,&b,&c);輸入為:def

則把'd'賦予a,''賦予b,'e'賦予c。

只有當(dāng)輸入為:def時(shí),才能把'd'賦于a,'e'賦予b,'f'賦予c。

如果在格式控制中加入空格作為間隔,如

scanf(“%c

%c%c”,&a,&b,&c);則輸入時(shí)各數(shù)據(jù)之間可加空格。

24

(5)如果格式控制串中有非格式字符則輸入時(shí)也要輸入該非格式字符。例如:scanf("%d,%d,%d",&a,&b,&c);

其中用非格式符“

,”作間隔符,故輸入時(shí)應(yīng)為:5,6,7

又如:scanf("a=%d,b=%d,c=%d",&a,&b,&c);則輸入應(yīng)為a=5,b=6,c=7

(6)如輸入的數(shù)據(jù)與輸出的類型不一致時(shí),雖然編譯能夠通過,但結(jié)果將不正確。voidmain(){inta;

printf("inputanumber\n");

scanf("%d",&a);

printf("%ld",a);}25由于輸入數(shù)據(jù)類型為整型,而輸出語句的格式串中說明為長整型,因此輸出結(jié)果和輸入數(shù)據(jù)不符。如改動程序如下:

voidmain(){longa;

printf("inputalonginteger\n");

scanf("%ld",&a);

printf("%ld",a);}運(yùn)行結(jié)果為:

inputalonginteger12345678901234567890當(dāng)輸入數(shù)據(jù)改為長整型后,輸入輸出數(shù)據(jù)相等。26順序結(jié)構(gòu)

A塊、B塊順序執(zhí)行(每塊代表一個(gè)或一組操作)4.6順序結(jié)構(gòu)程序設(shè)計(jì)舉例274.6順序結(jié)構(gòu)程序設(shè)計(jì)舉例例4.10輸入三角形的三邊長,求三角形面積#include<math.h>#include

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論