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

下載本文檔

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

文檔簡介

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

北京科技大學計算機系C

語言程序設(shè)計2024/11/82程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)N-S結(jié)構(gòu)圖流程圖ABAB選擇結(jié)構(gòu)YNABP成立?PTFAB2024/11/83程序的三種基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)NYP成立?A當P成立時

A直到型循環(huán)

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

例如:inta,b;

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

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

if()…else…

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

for()…

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

break、continue、gotoreturn2024/11/893.1.4復(fù)合語句用一對花括號“{}”括起來的若干條語句

花括號中可以是說明語句、表達式語句、控制語句,也可以是復(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;

}

}

2024/11/8103.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);}要特別注意:花括號的配對花括號的位置C語言學習的難點之一2024/11/8113.2數(shù)據(jù)輸出主要內(nèi)容:字符輸出函數(shù)格式輸出函數(shù)2024/11/8123.2.1字符輸出函數(shù)函數(shù)調(diào)用的一般形式

putchar(ch)功能:在標準輸出設(shè)備(即顯示器屏幕)上輸出一個字符。例如:putchar('b');putchar('\n');putchar('\101');putchar(st);2024/11/813說明putchar是C語言的標準庫函數(shù),使用時必須加編譯預(yù)處理命令:#include"stdio.h"

#include<stdio.h>【例3.1】利用putchar函數(shù)輸出字符。#include"stdio.h"

main(){charc1,c2;c1='a';c2='b';putchar(c1);putchar(c2);putchar('\n');putchar(c1-32);putchar(c2-32);putchar('\n');}也可改為c1=97;c2=98;

輸出結(jié)果:abAB例jc3_12024/11/8143.3.2格式輸出函數(shù)函數(shù)調(diào)用的一般形式printf(格式控制,參數(shù)2,…,參數(shù)n)

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

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

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

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

%c輸出一個字符%s輸出字符串其他

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

例如:%ld——輸出十進制長整型數(shù)%m.nf——右對齊,m位域?qū)?,n位小數(shù)或n個字符%-m.nf——左對齊2024/11/818例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_a2024/11/819例3.3實型數(shù)據(jù)的輸出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=%g\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=1234570z=1234567.12345679x=1234.560x=1234.560x=1234.560例jc3_b2024/11/820例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_c2024/11/821注意:printf函數(shù)格式控制中的格式說明符與輸出參數(shù)的個數(shù)和類型必須一一對應(yīng)。格式說明符的%和后面的描述符之間不能有空格。除%X、%E、%G外類型描述符必須是小寫字母。長整型數(shù)應(yīng)該用%ld(或%lo、%lx、%lu)格式輸出,否則會出現(xiàn)輸出錯誤。printf函數(shù)的參數(shù)可以是常量、變量或表達式。在計算各參數(shù)值時,TurboC采用從右至左的順序求值。2024/11/8223.3數(shù)據(jù)輸入主要內(nèi)容:字符輸入函數(shù)格式輸入函數(shù)2024/11/8233.3.1字符輸入函數(shù)函數(shù)調(diào)用的一般形式

getchar()功能:從標準輸入設(shè)備(即鍵盤)上交互輸入一個字符。例如:getchar();c=getchar();printf("%c\n",getchar());2024/11/824例如:【例3.8】getchar函數(shù)的應(yīng)用。

#include"stdio.h"main(){charch;ch=getchar();printf("%c%d\n",ch,ch);printf("%c%d\n\n",ch-32,ch-32);}程序運行時輸入:m

并按回車鍵后輸出結(jié)果是:m109M77例jc3_82024/11/825說明:getchar是C語言的標準庫函數(shù),使用時必須加編譯預(yù)處理命令:#include"stdio.h"

#include<stdio.h>getchar函數(shù)需要交互輸入,接收到輸入字符之后才繼續(xù)執(zhí)行程序。連續(xù)使用getchar函數(shù)時,要注意字符的輸入形式,例如執(zhí)行如下程序段:charch1,ch2;ch1=getchar();ch2=getchar();必須連續(xù)輸入兩個字符,中間不能有其他字符2024/11/8263.3.2格式輸入函數(shù)函數(shù)調(diào)用的一般形式scanf(格式控制,地址參數(shù)2…,地址參數(shù)n);功能:按格式控制指定的格式,從標準輸入設(shè)備(即鍵盤)交互輸入數(shù)據(jù),并依次存放到對應(yīng)地址參數(shù)指定的變量中(即將輸入值賦給變量)。

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

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

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

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

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

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

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

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

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

輸入的形式是:a=32,b=28(普通字符要照原樣輸入)2024/11/831程序:main(){inta,b,c;longm;floatx;doubley;charch,string[20];printf("inputa,b,c,m:");scanf("%d%o%x%ld",&a,&b,&c,&m);printf("a=%d,b=%d,c=%d,m=%ld\n",a,b,c,m);printf("inputx,y:");scanf("%f%lf",&x,&y);getchar();printf("x=%f,y=%f\n",x,y);printf("inputch,string:");scanf("%c%s",&ch,string);printf("ch=%c,string=%s\n\n",ch,string);}運行jc3_d2024/11/832使用scanf函數(shù)應(yīng)注意:要求在程序運行中輸入數(shù)據(jù),輸入的數(shù)據(jù)個數(shù)和類型必須與格式說明符一一對應(yīng)。地址參數(shù)形式:&變量名(除數(shù)組或指針變量)格式控制中有普通字符時,必須照原樣輸入。格式控制中無普通字符時,輸入的數(shù)值型數(shù)據(jù)和字符串用空白符分隔,字符型數(shù)據(jù)不必分隔。double型數(shù)據(jù)輸入時,必須用%lf或%le格式實型數(shù)輸入時域?qū)挷荒苡胢.n形式的附加說明為了減少不必要的輸入量,除了逗號、分號、空格符以外,格式控制中盡量不要出現(xiàn)普通字符,也不要使用

'\n'

、'\t'

等轉(zhuǎn)義字符2024/11/833scanf("%c%c%c",&ch1,&ch2,&ch3);要輸入:abc

不能輸入:a

b

c

注意數(shù)值型數(shù)據(jù)與char型數(shù)據(jù)的混合輸入注意(續(xù)):格式符之間若無普通字符,則:輸入的數(shù)值型數(shù)據(jù)用空白符分隔輸入的char型數(shù)據(jù)不必分隔

例如:scanf("%d%d",&m,&n);scanf("%c",&ch);錯誤輸入:32

28

a

正確輸入:32

28a

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

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論