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

下載本文檔

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

文檔簡(jiǎn)介

第3章順序結(jié)構(gòu)程序設(shè)計(jì)

北京科技大學(xué)計(jì)算機(jī)系C

語言程序設(shè)計(jì)1程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)N-S結(jié)構(gòu)圖流程圖ABAB選擇結(jié)構(gòu)YNABP成立?PTFAB第4章介紹2程序的三種基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)NYP成立?A當(dāng)P成立時(shí)

A直到型循環(huán)

A當(dāng)P成立時(shí)YNAP成立?當(dāng)型循環(huán)N-S結(jié)構(gòu)圖流程圖第5章介紹本章介紹C語言的語句類型數(shù)據(jù)輸出數(shù)據(jù)輸入順序結(jié)構(gòu)程序設(shè)計(jì)33.1C語言的語句類型主要內(nèi)容:說明性語句表達(dá)式語句控制語句復(fù)合語句43.1.1說明性語句對(duì)程序中使用的變量、數(shù)組、函數(shù)等操作對(duì)象進(jìn)行定義、聲明的描述語句只起說明作用,不產(chǎn)生可執(zhí)行的機(jī)器指令代碼。

例如:inta,b;

floatfunction(int,int);C程序由函數(shù)組成。函數(shù)的格式:函數(shù)名(參數(shù)表){

說明部分;執(zhí)行部分;}數(shù)據(jù)類型說明語句可執(zhí)行語句5表達(dá)式后面加一個(gè)分號(hào),構(gòu)成表達(dá)式語句x=3;y=y+5;x=a-b&&c||d;printf("x=%d,y=%d\n",x,y);sort(a,10);3.1.2表達(dá)式語句賦值語句函數(shù)調(diào)用語句注意:①分號(hào)是語句必不可少的一部分②單獨(dú)的一個(gè)分號(hào)“;”構(gòu)成一個(gè)空語句例如:;(空語句,是最簡(jiǎn)單的C語句)63.1.3控制語句1.選擇分支控制語句

if()…else…

switch(){…} 2.循環(huán)控制語句

for()…

while()…do…while()3.其他控制語句

break、continue、gotoreturn73.1.4復(fù)合語句用一對(duì)花括號(hào)“{}”括起來的若干條語句

花括號(hào)中可以是說明語句、表達(dá)式語句、控制語句,也可以是復(fù)合語句例如:⑴if(a>b){max=a;min=b;}

⑵for(n=1;n<10;n++)

{p=n+p;if(p>=100)

{

printf(“%d\n”,p);break;

}

}

83.1.4復(fù)合語句(續(xù))復(fù)合語句中如果有說明性語句,應(yīng)該寫在可執(zhí)行語句的前面例如:

main()

{inta,b;a=b=100;

{

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

}printf("%d%d\n",a,b);

}要特別注意:花括號(hào)的配對(duì)花括號(hào)的位置C語言學(xué)習(xí)的難點(diǎn)之一93.2數(shù)據(jù)輸出主要內(nèi)容:字符輸出函數(shù)格式輸出函數(shù)103.2.1字符輸出函數(shù)(自學(xué))函數(shù)調(diào)用的一般形式

putchar(ch)功能:在標(biāo)準(zhǔn)輸出設(shè)備(即顯示器屏幕)上輸出一個(gè)字符。例如:putchar(‘b’);輸出:bputchar(‘\n’);輸出:回車換行putchar('\101');輸出:Aputchar(st);113.3.2格式輸出函數(shù)函數(shù)調(diào)用的一般形式printf(格式控制,參數(shù)2,…,參數(shù)n)

功能:按格式控制所指定的格式,在標(biāo)準(zhǔn)輸出設(shè)備上輸出參數(shù)2、…、參數(shù)n的值。輸出:123100223輸出:c=123+100=223例如有程序段:inta=123,b=100;printf("%d%d%d\n",a,b,a+b);printf("c=%d+%d=%d\n",a,b,a+b);12格式控制用雙引號(hào)括起的字符串,用于指定輸出數(shù)據(jù)的類型、格式、個(gè)數(shù)包括:普通字符和格式說明符照原樣輸出

printf("c=%d+%d=%d\n",a,b,a+b);格式說明符:指定輸出3個(gè)十進(jìn)制整型數(shù),分別為變量a、b、a+b的值13輸出格式說明符整型數(shù)據(jù)

%d以有符號(hào)十進(jìn)制形式輸出整型數(shù)%o以無符號(hào)八進(jìn)制形式輸出整型數(shù)%x以無符號(hào)十六進(jìn)制形式輸出整型數(shù)%u以無符號(hào)十進(jìn)制形式輸出整型數(shù)實(shí)型數(shù)據(jù)

%f以小數(shù)形式輸出實(shí)型數(shù)%e以指數(shù)形式輸出實(shí)型數(shù)%g按數(shù)值寬度最小的形式輸出實(shí)型數(shù)字符型數(shù)據(jù)

%c輸出一個(gè)字符%s輸出字符串其他

%%輸出字符%本身在%和格式符之間可以使用附加說明符14附加格式說明符l輸出長(zhǎng)整型數(shù)(只可與d、o、x、u結(jié)合用)m指定數(shù)據(jù)輸出的寬度(即域?qū)挘?n對(duì)實(shí)型數(shù)據(jù),指定輸出n位小數(shù);對(duì)字符串,指定左端截取n個(gè)字符輸出+使輸出的數(shù)值數(shù)據(jù)無論正負(fù)都帶符號(hào)輸出-使數(shù)據(jù)在輸出域內(nèi)按左對(duì)齊方式輸出整數(shù)位數(shù)+小數(shù)位數(shù)+小數(shù)點(diǎn)自動(dòng)對(duì)n位后小數(shù)四舍五入

例如:%ld——輸出十進(jìn)制長(zhǎng)整型數(shù)

%m.nf——右對(duì)齊,m位域?qū)挘琻位小數(shù)或n個(gè)字符%-m.nf——左對(duì)齊15例3.2整型數(shù)據(jù)的輸出main(){inta=11,b=22;

intm=-1;longn=123456789;printf("%d%d\n",a,b);printf("a=%d,b=%d\n",a,b);printf("m:%d,%o,%x,%u\n",m,m,m,m);printf("n=%d\n",n);printf("n=%ld\n",n);}程序輸出:1122a=11,b=22m:-1,177777,ffff,65535n=-13035n=123456789例jc3_a16例3.3實(shí)型數(shù)據(jù)的輸出(第5周)main(){floatx=1234.56,y=1.23456789;

doublez=1234567.123456789;printf("x=%f,y=%f\n",x,y);printf("z=%f\n",z);printf("z=%e\n",z);printf("z=%18.8f\n",z);printf("x=%10.3f\n",x);printf("x=%-10.3f\n",x);printf("x=%4.3f\n\n",x);}程序輸出:x=1234.560059,y=1.234568z=1234567.123457z=1.23457e+06z=1234567.12345679x=1234.560x=1234.560x=1234.560例jc3_b17例3.4字符型數(shù)據(jù)的輸出main(){intm=97;

charch='B';printf("m:%d%c\n",m,m);printf("ch:%d%c\n",ch,ch);printf("%s\n","student");printf("%10s\n","student");printf("%-10s\n","student");printf("%10.3s\n","student");printf("%.3s\n\n","student");}程序輸出:m:97ach:66Bstudentstudentstudentstustu例jc3_c18注意:printf函數(shù)格式控制中的格式說明符與輸出參數(shù)的個(gè)數(shù)和類型必須一一對(duì)應(yīng)。格式說明符的%和后面的描述符之間不能有空格。除%X、%E、%G外類型描述符必須是小寫字母。長(zhǎng)整型數(shù)應(yīng)該用%ld(或%lo、%lx、%lu)格式輸出,否則會(huì)出現(xiàn)輸出錯(cuò)誤。printf函數(shù)的參數(shù)可以是常量、變量或表達(dá)式。在計(jì)算各參數(shù)值時(shí),TurboC采用從右至左的順序求值。193.3數(shù)據(jù)輸入主要內(nèi)容:字符輸入函數(shù)格式輸入函數(shù)203.3.1字符輸入函數(shù)(自學(xué))函數(shù)調(diào)用的一般形式

getchar()功能:從標(biāo)準(zhǔn)輸入設(shè)備(即鍵盤)上輸入一個(gè)字符。例如:getchar();c=getchar();printf("%c\n",getchar());213.3.2格式輸入函數(shù)函數(shù)調(diào)用的一般形式scanf(格式控制,地址參數(shù)2…,地址參數(shù)n);功能:按格式控制指定的格式,從標(biāo)準(zhǔn)輸入設(shè)備(即鍵盤)交互輸入數(shù)據(jù),并依次存放到對(duì)應(yīng)地址參數(shù)指定的變量中(即將輸入值賦給變量)。

例如:scanf("%d%f",&a,&f);scanf("%o,%f",&b,&x);scanf("a=%d,b=%d",&a,&b);22格式控制用雙引號(hào)括起的字符串,用于指定輸入數(shù)據(jù)的類型、格式、個(gè)數(shù)以及輸入的形式

包括:普通字符和格式說明符照原樣輸入

scanf("a=%d,b=%d",&a,&b);格式說明符:指定輸入2個(gè)十進(jìn)制整型數(shù)賦給變量a和b23輸入格式說明符整型數(shù)據(jù)

%d輸入十進(jìn)制整型數(shù)%u輸入無符號(hào)的十進(jìn)制整型數(shù)%o輸入八進(jìn)制整型數(shù)%x輸入十六進(jìn)制整型數(shù)實(shí)型數(shù)據(jù)

%f輸入小數(shù)形式的單精度實(shí)型數(shù)%e輸入指數(shù)形式的單精度實(shí)型數(shù)字符型數(shù)據(jù)

%c輸入單個(gè)字符%s輸入一個(gè)字符串在%和格式符之間可以使用附加說明符24附加格式說明符l與d、o、x、u結(jié)合輸入長(zhǎng)整型數(shù)與f結(jié)合輸入double型數(shù)m指定輸入數(shù)據(jù)的寬度*忽略讀入的數(shù)據(jù)(即不將讀入數(shù)據(jù)賦給相應(yīng)變量)例如:%ld、%lo——輸入十進(jìn)制、八進(jìn)制長(zhǎng)整型數(shù)%lf、%le——輸入雙精度實(shí)型數(shù)%mf——輸入m位數(shù)(域?qū)挘?*d——忽略輸入的一個(gè)整型數(shù)對(duì)float和double型指整數(shù)位數(shù)+小數(shù)點(diǎn)+小數(shù)位數(shù)此變量接收下一個(gè)數(shù)據(jù)25例如:scanf("%d%d%d",&a,&b,&c);

輸入3個(gè)十進(jìn)制整型數(shù),以空白符(空格、tab鍵或回車鍵)分隔

scanf("%d,%o,%f",&a,&b,&x);

輸入3個(gè)數(shù),以“,”分隔scanf("a=%d,b=%d",&a,&b);

輸入的形式是:a=32,b=28(普通字符要照原樣輸入)例jc3_226#include<stdio.h>main(){

inta,b; printf("Pleaseinputaandb:"); scanf("%2d%*2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);}Pleaseinputaandb:a=12,b=56,a+b=68123456↙程序舉例27#include<stdio.h>main(){

inta,b; printf("Pleaseinputaandb:"); scanf("%2d%*2d%2d",&a,&b); printf("a=%d,b=%d,a+b=%d\n",a,b,a+b);}Pleaseinputaandb:a=12,b=5,a+b=1712345a↙28#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題1:當(dāng)要求程序輸出結(jié)果為

a=12,b=34時(shí),用戶應(yīng)該如何輸入數(shù)據(jù)?

12└┚34↙輸入數(shù)據(jù)的格式控制29#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題2:當(dāng)限定用戶輸入數(shù)據(jù)以逗號(hào)為分隔符,即輸入數(shù)據(jù)格式為:12,34↙時(shí),應(yīng)修改程序中的哪條語句?怎樣修改?scanf("%d,%d",&a,&b);

輸入數(shù)據(jù)的格式控制30#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題3:語句scanf("%d%d",&a,&b);修改為scanf("a=%d,b=%d",&a,&b);時(shí),用戶應(yīng)該如何輸入數(shù)據(jù)?a=12,b=34↙輸入數(shù)據(jù)的格式控制31#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}

問題4:限定用戶輸入數(shù)據(jù)為以下格式為

1234↙

同時(shí)要求程序輸出結(jié)果為a=12,b=34scanf("%2d%2d",&a,&b);輸入數(shù)據(jù)的格式控制32#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}

問題5:限定用戶輸入數(shù)據(jù)為以下格式為12↙34↙

同時(shí)要求程序輸出結(jié)果為a="12",b="34"scanf("%d%d",&a,&b);printf("a=\"%d\",b=\"%d\"\n",a,b);輸入數(shù)據(jù)的格式控制33#include<stdio.h>main(){

inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問題6:設(shè)計(jì)程序使得用戶可以以任意字符(回車、空格、制表符、逗號(hào)、其它)作為分隔符進(jìn)行數(shù)據(jù)的輸入scanf("%d%*c%d",&a,&b);

輸入數(shù)據(jù)的格式控制34#include<stdio.h>main(){

intdata1,data2,sum;

charop;

printf("Pleaseentertheexpression data1+data2\n"); scanf("%d%c%d",&data1,&op,&data2); printf("%d%c%d=%d\n",data1,op,data2,data1+data2);}Pleaseentertheexpressiondata1+data2

第1次測(cè)試12+3↙123129=3141C格式符存在的問題及其解決例jc3_335#include<stdio.h>main(){

intdata1,data2,sum;

charop;

printf("Pleaseentertheexpression data1+data2\n"); scanf("%d%c%d",&data1,&op,&data2); printf("%d%c%d=%d\n",data1,op,data2,data1+data2);}Pleaseentertheexpressiondata1+data2

第2次測(cè)試123↙123=15C格式符存在的問題及其解決36#include<stdio.h>main(){

intdata1,data2,sum;

charop;

printf("Pleaseentertheexpression data1+data2\n"); scanf("%d%c%d",&data1,&op,&data2); printf("%d%c%d=%d\n",data1,op,data2,data1+data2);}Pleaseentertheexpressiondata1+data2

第3次測(cè)試12+3↙12+3=15C格式符存在的問題及其解決37#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:希望得到的運(yùn)行結(jié)果12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12character

:afloatnumber:3.500000C格式符存在的問題及其解決38#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%c",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:結(jié)果好像很奇怪嘛!12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12floatnumber:3.500000C格式符存在的問題及其解決39#include<stdio.h>main(){

inta;

charb;

floatc;printf("Pleaseinputaninteger:");scanf("%d",&a);printf("integer:%d\n",a);printf("Pleaseinputacharacter:");scanf("%1s",&b);printf("character:%c\n",b);printf("Pleaseinputafloatnumber:");scanf("%f",&c);printf("float:%f\n",c); }Pleaseinputaninteger:程序修改后得到的運(yùn)行結(jié)果12↙Pleaseinputancharacter

:a↙Pleaseinputafloatnumber:3.5↙integer:12character

:afloatnumber:3.500000C格式符存在的問題及其解決40#include<stdio.h>main(){

intdata1,data2,sum;

charop;

printf("Pleaseentertheexpression data1+data2\n"); scanf("%d%1s%d",&data1,&op,&data2); printf("%d%c%d=%d\n",data1,op,data2,data1+data2);}12+3↙12+3↙12↙+↙3↙以任意分割符輸入加法算式,可能嗎?41使用scanf函數(shù)應(yīng)注意:要求在程序運(yùn)行中輸入數(shù)據(jù),輸入的數(shù)據(jù)個(gè)數(shù)和類型必須與格式說明符一一對(duì)應(yīng)。地址參數(shù)形式:&變量名(除數(shù)組或指針變量)。

格式控制中有普通字符時(shí),必須照原樣輸入。格式控制中無普通字符時(shí),輸入的數(shù)值型數(shù)據(jù)和字符串用空白符分隔,字符型數(shù)據(jù)不必分隔。double型數(shù)據(jù)輸入時(shí),必須用%lf或%le格式。實(shí)型數(shù)輸入時(shí)域?qū)挷荒苡胢.n形式的附加說明。為了減少不必要的輸入量,格式控制中盡量不要出現(xiàn)普通字符,也不要使用

‘\n’

、‘\t’

等轉(zhuǎn)義字符。423.4順序結(jié)構(gòu)程序設(shè)計(jì)3.4.1順序結(jié)構(gòu)程序的一般算法描述變量定義變量賦值運(yùn)算處理輸出結(jié)果可用:變量初始化賦值語句輸入函數(shù)調(diào)用語句注意各個(gè)語句的順序433.4.2順序結(jié)構(gòu)程序設(shè)計(jì)舉例【例3.15】數(shù)據(jù)交換。從鍵盤輸入a、b的值,輸出交換以后的值。

思路:在計(jì)算機(jī)中交換變量a和b的值,不能只寫下面兩個(gè)賦值語句a=b;b=a;?正確的交換方法:a123b78c?12378123c=a;a=b;b=c;44程序:main(){inta,b,c;printf("\ninput

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論