程序設(shè)計基礎(chǔ)(C語言)教程 課件 第3章程序設(shè)計基本結(jié)構(gòu)- 順序結(jié)構(gòu)_第1頁
程序設(shè)計基礎(chǔ)(C語言)教程 課件 第3章程序設(shè)計基本結(jié)構(gòu)- 順序結(jié)構(gòu)_第2頁
程序設(shè)計基礎(chǔ)(C語言)教程 課件 第3章程序設(shè)計基本結(jié)構(gòu)- 順序結(jié)構(gòu)_第3頁
程序設(shè)計基礎(chǔ)(C語言)教程 課件 第3章程序設(shè)計基本結(jié)構(gòu)- 順序結(jié)構(gòu)_第4頁
程序設(shè)計基礎(chǔ)(C語言)教程 課件 第3章程序設(shè)計基本結(jié)構(gòu)- 順序結(jié)構(gòu)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章順序結(jié)構(gòu)3.1c語句的描述3.2數(shù)據(jù)輸入/輸出3.3較復(fù)雜數(shù)據(jù)的輸入輸出3.4程序舉例3.1C語句的描述例x=3;

x+y;

1、表達式語句:

任何表達式后面加一個分號“;”就構(gòu)成一條表達式語句。

2、控制語句:

if()…else…條件語句switch多分支選擇語句for()...循環(huán)語句while()…循環(huán)語句do…while()循環(huán)語句continue結(jié)束本次循環(huán)語句break中止執(zhí)行switch或循環(huán)語句return

從函數(shù)中返回語句goto

轉(zhuǎn)向語句,現(xiàn)在基本不用

用來完成一定的控制功能。

3、函數(shù)調(diào)用語句:

由一個函數(shù)調(diào)用加一個分號構(gòu)成函數(shù)調(diào)用語句。例printf(“hello!”);

4、空語句:

只有一個分號的語句,它什么也不做,有時候用來作被轉(zhuǎn)向點,或循環(huán)語句中的循環(huán)體。例;

5、復(fù)合語句:

用{}把一些語句括起來。例{t=x;x=y;y=t;}3.2數(shù)據(jù)輸入/輸出3.2.1格式化輸出函數(shù)printf()3.2.2格式化輸入函數(shù)scanf()3.2.3字符輸出函數(shù)putchar()3.2.4字符輸入函數(shù)getchar()C語言無I/O語句,I/O操作由函數(shù)實現(xiàn)

#include<stdio.h>3.2.1格式化輸出函數(shù)printf()格式:printf(“格式控制”[,輸出值列表]);功能:按指定格式向顯示器輸出數(shù)據(jù)。①格式控制:用雙引號括起來的字符串,用于指定輸出格式和輸出一些提示信息,它包含三種信息:普通字符:按原樣輸出。轉(zhuǎn)義序列:按轉(zhuǎn)義字符的含義輸出,如‘\n'表換行格式說明:由%[修飾符]格式字符,用于指定數(shù)據(jù)的輸出格式。如:%d,%f等②輸出列表:要輸出的數(shù)據(jù)可以沒有,若有多個則以“,”分隔可以是常量、變量、函數(shù)或表達式d,ix,Xoucse,Efg,G%%格式字符:(見P62,紅色字符是常用的格式字符)十六進制無符號整數(shù)不帶符號十進制整數(shù)十進制整數(shù)指數(shù)形式浮點小數(shù)單一字符字符串八進制無符號整數(shù)小數(shù)形式浮點小數(shù)e和f中較短一種百分號本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.677890e+02567.789000567.789%說明 除了X,E,G外,格式字符要用小寫格式字符與輸出項個數(shù)應(yīng)相同,按先后順序一一對應(yīng)輸出轉(zhuǎn)換:格式字符與輸出項類型不一致,自動按指定格式輸出例

inta=3,b=4;printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);

例inta=3,b=4;printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);輸出結(jié)果:34a=3,b=43.3較復(fù)雜的輸入輸出格式控制3.3.1輸出數(shù)據(jù)格式控制1.printf函數(shù)較復(fù)雜的格式控制的一般形式%[標(biāo)志][寬度][.精度][長度]類型(1)類型:用以表示輸出數(shù)據(jù)的類型,printf函數(shù)的格式字符和意義如表3-1所示。格式字符

意義d以十進制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)o以八進制形式輸出無符號整數(shù)(不輸出前綴0)x,X以十六進制形式輸出無符號整數(shù)(不輸出前綴0x)u以十進制形式輸出無符號整數(shù)c輸出單個字符s輸出字符串表3-1printf函數(shù)格式字符格式字符

意義f以小數(shù)形式輸出單、雙精度實數(shù)E、e以指數(shù)形式輸出單、雙精度實數(shù)G、g以%f或%e中較短的輸出寬度輸出單、雙精度實數(shù)%

輸出百分號(%)例如:/*lt4-01.c*/inta=-1;printf(“%x,%d”,a,a);輸出結(jié)果為:ffffffff,-1(2)標(biāo)志:標(biāo)志符號為“-”、“+”、“#”、“空格”四種,(3)用十進制整數(shù)來表示輸出的位數(shù)。若實際位數(shù)多余定義的寬度,則按實際位數(shù)輸出,若實際位數(shù)少于定義寬度,則在輸出數(shù)據(jù)的左邊或者右邊補以空格或0(根據(jù)標(biāo)識符決定)(4)精度:精度格式符以“.”開頭,后跟十進制整數(shù)。本項含義是:如果輸出數(shù)據(jù),則表示小數(shù)的位數(shù),如果輸出的是字符,則表示輸出字符的個數(shù);若實際位數(shù)大于所定義的精度數(shù),則截去超過的部分。

見附加格式說明符(修飾符)表附加格式說明符(修飾符).n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長度<m,左補空格;否則按實際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-指定在有符號數(shù)的正數(shù)前顯示正號(+)+輸出數(shù)值時指定左面不使用的空位置自動填00在八進制和十六進制數(shù)前顯示前導(dǎo)0,0x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l例lt3-002.c例inta=1234;floatf=123.456;charch=‘a(chǎn)’;printf(“%8d,%2d\n”,a,a);printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f);printf(“%3c\n”,ch);運行1234,1234結(jié)果:123.456000,123.456000,123.5,123.46,1.23e+02

a例staticchara[]=“Hello,world!”printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);運行結(jié)果:Hello,world!

Hello,world!

HelloHelloHel

例lt3-001.c

m.n例inta=1234;floatf=123.456;staticcharc[]=“Hello,world!”;printf(“%8d,%-8d\n”,a,a);printf(“%10.2f,%-10.1f\n”,f,f);printf(“%10.5s,%-10.3s\n”,c,c);運行結(jié)果:□□□□1234,1234□□□□

□□□□123.46,123.5□□□□□



□□□□□Hello,Hel□□□□□□□

例lt3-003.c例inta=1234;floatf=123.456;printf(“%08d\n”,a);printf(“%010.2f\n”,f);printf(“%0+8d\n”,a);printf(“%0+10.2f\n”,f);

例0、+lt3-004.c例inta=123;printf(“%o,%#o,%X,%#X\n”,a,a,a,a);

例#//00001234//0000123.46//+0001234//+000123.46//173,0173,7B,0X7B3.2.2格式化輸入函數(shù)scanf()scanf函數(shù)是格式化輸入函數(shù),它的作用是按指定的格式從鍵盤輸入數(shù)據(jù),并賦予指定的變量。1.scanf函數(shù)的一般調(diào)用格式:scanf(“格式控制”,地址列表)其中,括號內(nèi)包含兩部分內(nèi)容。(1)格式控制?用雙引號括起來的字符串,用于指定輸入格式,可包含以下兩種信息:①格式說明:與printf函數(shù)類似,格式說明必須以“%”開頭,由“%”和格式字符組成,用于指定輸入數(shù)據(jù)的格式。②普通字符:除了格式說明之外的其他字符要求用戶必須原樣輸入。(2)地址列表?由若干個地址項組成,相鄰地址之間用逗號“,”分隔。C語言中,變量地址的表示方法為:&變量名其中,“&”是取地址運算符。3.2.2格式化輸入函數(shù)scanf()

地址列表:變量的地址,常用取地址運算符&格式字符:d,i,o,x,u,c,s,f,e例scanf(“%d”,&a);

輸入:10

則a=10例scanf(“%x”,&a);

輸入:11

則a=17例scanf(“%d%d%d”,&a,&b,&c);

輸入:112233

或輸入:11

22<tab鍵>33

則a=11b=22c=33錯誤輸入方式:11,22,33

3.3.2格式化輸入函數(shù)scanf()2.scanf函數(shù)的較復(fù)雜的格式控制的一般形式:“%[*][輸入數(shù)據(jù)寬度][長度]類型”其中,方括號[]代表可選項。各部分的意義如下:(1)類型?指定輸入數(shù)據(jù)類型,scanf的格式字符和意義如下表:格式字符

意義d輸入有符號十進制整數(shù)o輸入無符號八進制整數(shù)X或x輸入無符號十六進制整數(shù),大小寫形式相同u輸入無符號十進制整數(shù)c輸入單個字符s輸入字符串fe,E,g,G輸入實數(shù)(可用小數(shù)形式或指數(shù)形式輸入)輸入實數(shù),與f作用相同,e、f、g可以相互替換(大小寫作用相同)(2)“*”符號-輸入賦值抑制符,表示該輸入項讀入后,不賦予變量,即跳過該輸入值,成為虛讀。(3)輸入數(shù)據(jù)寬度-域?qū)挘ㄖ付ㄒ斎霐?shù)據(jù)的列數(shù)),用十進制整數(shù)指定輸入項最多可輸入的字符個數(shù)(必須為正整數(shù))。如遇空格或不可轉(zhuǎn)換的字符,讀入的字符將減少。(4)長度-格式符為l和h①l表示長整型數(shù)據(jù)(如%ld、%lx等)和雙精度浮點數(shù)(如%lf、%le).②h表示輸入短整型數(shù)據(jù)(如%hd、%ho、%hx、%hu).

見附加格式說明符(修飾符)表附加格式說明符(修飾符)例scanf(“%4d%2d%2d”,&yy,&mm,&dd);

輸入19991015

則1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);

輸入12345678765.43則123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);

輸入1234567

則12a,67b例scanf(“%3c%2c”,&c1,&c2);

輸入abcde

則‘a(chǎn)’c1,‘d’c2l修飾符功能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定輸入項讀入后不賦給變量輸入分隔符的指定一般以空格、TAB或回車鍵作為分隔符例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);

輸入123123123

輸出a=123,b=83,c=291說明:用“%c”格式符時,空格和轉(zhuǎn)義字符作為有效字符輸入輸入數(shù)據(jù)時,遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束:遇空格、TAB、或回車遇寬度結(jié)束遇非法輸入輸入函數(shù)留下的“垃圾”:解決方法:(1)用getchar()清除(2)用格式串中空格或“%*c”來“吃掉”如scanf(“%c%c%c”,&c1,&c2,&c3);

若輸入abc

則ac1,

c2,bc33.2.3字符輸出函數(shù)putchar()

格式:putchar(c)參數(shù):c為字符常量、變量或表達式功能:把字符c輸出到顯示器上#include<stdio.h>main(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);putchar('\n');}運行結(jié)果:AB例lt3-008.c3.2.4字符輸入函數(shù)getchar()

格式:getchar()功能:從鍵盤讀一字符例#include<stdio.h>main(){intc;printf("Enteracharacter:");c=getchar();printf("%c--->hex%x\n",c,c);}運行結(jié)果:Enteracharacter:A

A--->hex41lt3-009.c3.3順序結(jié)構(gòu)程序設(shè)計舉例

ABAB流程圖N-S圖所謂順序結(jié)構(gòu),見下圖,先執(zhí)行A操作,再執(zhí)行B操作,兩者是順序執(zhí)行的關(guān)系。順序結(jié)構(gòu)的特點:從第一條語句開始順序執(zhí)行到最后一條;每一條語句執(zhí)行且執(zhí)行一遍,不重復(fù)執(zhí)行,也沒有語句不執(zhí)行#include<math.h>#include<stdio.h>main(){floata,b,c,s,area;scanf("%f%f%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);printf("area=%7.2f\n",area);}例輸入三角形邊長,求面積輸入:346

輸出:a=3.00,b=4.00,c=6.00s=6.50area=5.33文件包含預(yù)處理命令變量定義輸入數(shù)據(jù)輸出數(shù)據(jù)lt3-010.c【例lt3-011.c】輸入任意3個整數(shù),求它們的和及平均值。C源程序:#include<stdio.h>voidmain(){ intnum1,num2,num3,sum; floataver;

printf(“Pleaseinputthreenumbers:”);

scanf(“%d%d%d”,&num1,&num2,&num3); sum=num1+num2+num3; aver=sum/3.0;printf(“num1=%d,num2=%d,num3=%d\n”,num1,num2,num3);

printf(“sum=%d,aver=%7.2f\n”,sum,aver); }運行結(jié)果:Pleaseinputthreenumbers:468↙num1=4,num2=6,num3=8sum=18,aver=6.00【例lt3-012.c】輸入一個華氏溫度,要求輸出攝氏溫度。公式為c=(F-32)

輸出要有文字說明,取2位小數(shù)。C源程序:#include<stdio.h>voidmain(){

floatc,f;

printf(“請輸入一個華氏溫度:”);

scanf(“%f”,&f);c=(5.0/9.0)*(f-32);/*注意5和9要用實型表示,否則5/9值為0*/

printf(“攝氏溫度

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論