版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章順序結(jié)構(gòu)程序設(shè)計本
章
導(dǎo)
讀
C語言是結(jié)構(gòu)化程序設(shè)計語言,它提供了比其它高級語言更豐富的控制語句。從本章開始,將陸續(xù)介紹C語言的控制語句:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。本章將介紹三種基本結(jié)構(gòu)的概念,重點介紹順序結(jié)構(gòu)、C語言的標準輸入輸出函數(shù),并舉例說明順序程序設(shè)計的基本方法。
本章的教學(xué)目標:了解結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu);了解C語言的基本語句;掌握格式化輸入/輸出函數(shù);能進行簡單的程序設(shè)計。第3章順序結(jié)構(gòu)程序設(shè)計3.1C語句概述
3.2程序的三種基本結(jié)構(gòu)
3.3順序結(jié)構(gòu)程序設(shè)計的思想
3.4實現(xiàn)順序結(jié)構(gòu)程序設(shè)計的基本語句
3.5順序程序設(shè)計舉例
3.1C語句概述C語言的語句用來向計算機系統(tǒng)發(fā)出操作指令。一個語句經(jīng)編譯后產(chǎn)生若干條機器指令。C語句是C語言源程序的重要組成部分,是用來完成一定操作任務(wù)的。
C語言的語句可以分為五大類:1.函數(shù)調(diào)用語句。由一次函數(shù)調(diào)用加一個分號構(gòu)成的語句。例如:printf(“thisisabook”);2.表達式語句。表達式的后面加一個分號就構(gòu)成了一個表達式語句。例如:sum=a+b;/*賦值語句*/3.空語句,光有一個分號“;”,作為語句結(jié)束符,它表示什么也不做。4.復(fù)合語句。由“{”和“}”把一些變量說明和語句組合在一起。又稱語句塊(Block)
。例如,{inta=0,b=1,sum;sum=a+b;
printf(“%d”,sum);}5.控制語句,共九種。即⑴
if語句
(條件語句)⑵
switch語句
(多分支選擇語句)⑶
while語句
(循環(huán)語句)⑷
do-while語句(循環(huán)語句)⑸
for語句
(循環(huán)語句)⑹
break語句(終止執(zhí)行循環(huán)語句或switch語句)⑺
continue語句(結(jié)束本次循環(huán)語句)⑻
goto語句
(轉(zhuǎn)向語句)⑼
return語句
(從函數(shù)返回語句)
3.2程序的三種基本結(jié)構(gòu)
C語言是結(jié)構(gòu)化程序設(shè)計語言,結(jié)構(gòu)化程序設(shè)計的基本思想是,用順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等三種基本結(jié)構(gòu)來構(gòu)造程序;限制使用無條件轉(zhuǎn)移語句(goto語句)。程序的三種基本結(jié)構(gòu)是:1.順序結(jié)構(gòu)順序執(zhí)行每個操作,即先執(zhí)行A操作,再執(zhí)行B操作,兩者之間是順序執(zhí)行的關(guān)系。圖3-1是順序結(jié)構(gòu)的流程圖。2.選擇結(jié)構(gòu)設(shè)P代表一個判斷條件,當(dāng)P成立(或稱“為真”)時,執(zhí)行A操作,否則執(zhí)行B操作。即A和B中只能選擇其中之一。圖3-2是選擇結(jié)構(gòu)的流程圖。3.循環(huán)結(jié)構(gòu)(1)當(dāng)型循環(huán)結(jié)構(gòu):如圖3-3所示,當(dāng)條件P成立時,反復(fù)執(zhí)行A操作,直到條件P不再成立時才跳出循環(huán)。(2)直到型循環(huán)結(jié)構(gòu):如圖3-4所示,先執(zhí)行A操作,再判斷條件P是否成立,若P成立,則再執(zhí)行A操作,如此反復(fù),直到條件P不成立時跳出循環(huán)。圖3-1圖3-2圖3-3圖3-43.3順序結(jié)構(gòu)程序設(shè)計的思想
在順序結(jié)構(gòu)程序中,程序的執(zhí)行是按照各語句出現(xiàn)的先后次序,順序執(zhí)行的,并且每個語句都會被執(zhí)行到。例如:由鍵盤輸入兩個整數(shù),然后計算其和,再將結(jié)果打印輸出。 算法設(shè)計: (1)輸入兩個整數(shù); (2)計算其和; (3)將和打印輸出。
解決該問題的算法可用傳統(tǒng)流程圖3-5描述。具有如下特性: (1)順序結(jié)構(gòu)由3部分組成:
A:輸入兩個整數(shù);
B:計算兩數(shù)的和;
C:輸出和數(shù)。 (2)按順序執(zhí)行,且都執(zhí)行一次;
ABC3.4實現(xiàn)順序結(jié)構(gòu)程序設(shè)計的基本語句
在C語言描述順序結(jié)構(gòu)程序中,通常使用的語句有:賦值語句、輸入數(shù)據(jù)函數(shù)調(diào)用語句(scanf、getchar)、輸出數(shù)據(jù)函數(shù)調(diào)用語句(printf、putchar)等。
3.4.1賦值語句
3.4.2格式輸出函數(shù)(printf)
3.4.3格式化輸入函數(shù)(scanf)
3.4.4單字符輸出函數(shù)(putchar)
3.4.5單字符輸入函數(shù)(getchar)
3.4.1賦值語句
C語言的賦值語句是由賦值表達式加一個分號“;”構(gòu)成,最簡單的一種形式為:
變量=表達式;例如:y=4; /*將整數(shù)4賦給變量y*/x=y*5+2;/*將表達式y(tǒng)*5+2的值賦給變量x*/說
明:(1)在上述賦值語句中,“=”是賦值符號,賦值符號的右邊是由常量、變量、運算符和函數(shù)組成的表達式。(2)因賦值語句是由賦值表達式加一個分號“;”構(gòu)成的,所以下面也是合法的賦值語句:
i++; x+=3;(3)賦值語句是將右邊的表達式的值賦給左邊的變量,因此,賦值語句要先對表達式計算求值,然后再將求得的值賦給左邊的變量,所以賦值語句兼有計算功能。在上例中,先計算表達式y(tǒng)*5+2,求得值為22,最后將22賦給變量x。3.4.2格式輸出函數(shù)(printf)1.一般形式:
printf(格式控制,[輸出表列]);
“格式控制”:用雙引號括起來的字符串,也稱“轉(zhuǎn)換控制字符串”。它是由字符“%”、格式字符(如d、f、c等)和普通字符(原樣輸出的)組成。
“輸出表列”:是一些與“格式控制”中的格式字符一一對應(yīng)的需要輸出的數(shù)據(jù),可以是變量或表達式?!纠?.1】main(){inta=2,y;charch=’e’;floatx=2.4;printf("%d%c",a,ch);/*以十進制整數(shù)格式輸出變量a,以字符格式輸出變量ch*/printf("x=%f,y=%d",x,a+10);/*以浮點數(shù)形式輸出變量x,以十進制整數(shù)格式輸出表達式a+10的值*/printf("\nhelloworld");/*先換行,再輸出字符串helloword*/}運行結(jié)果:2ex=2.400000,y=12helloworld說
明:①
對于語句printf("%d%c",a,ch);,"%d%c"是格式控制,a,ch是輸出表列。執(zhí)行時,輸出變量a和ch中的值2和e。其中%d表示以十進制整數(shù)格式輸出變量a的值
,而%c表示以字符格式輸出變量ch的值。格式控制的對應(yīng)關(guān)系如下:
printf("%d%c",a,ch);
由于printf是函數(shù),所以,“格式控制”和“輸出表列”實際上是函數(shù)的參數(shù)。printf函數(shù)的一般形式可表示為:printf(“格式1格式2…格式n”,參數(shù)1,參數(shù)2,參數(shù)3,……參數(shù)n);其功能是將參數(shù)1,參數(shù)2,…,參數(shù)n分別按格式1,格式2,…,格式n輸出。②
對于語句printf("x=%f,y=%d",x,a+10);,“x=%f,y=%d”是格式控制,x,a+10是輸出表列。執(zhí)行時,x=和y=是原樣輸出,而語句中的%f和%d分別以后面輸出表列中變量x和表達式a+10的值代之,而%f表示以浮點數(shù)形式輸出變量x的值,%d表示以十進制整數(shù)格式輸出表達式a+10的值。
2.格式說明符
表3-1printf格式說明符表3-1printf格式說明符數(shù)據(jù)類型格式說明符功能描述整數(shù)(int)%d或%i以帶符號的十進制形式輸出整數(shù)(正數(shù)不輸出符號)%md(或%-md)以十進制數(shù)形式按給定的寬度m輸出int型數(shù)據(jù)。如數(shù)據(jù)的位數(shù)小于m,則左(或右)端補以空格,若大于m,則按實際位輸出%ld以十進制整數(shù)形式按數(shù)據(jù)的實際長度輸出long型數(shù)據(jù)%mld(或%-mld)以十進制數(shù)形式按給定的寬度m輸出long型數(shù)據(jù)。如數(shù)據(jù)的位數(shù)小于m,則左(或右)端補以空格,若大于m,則按實際位輸出%o以八進制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0)%x,%X以十六進制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0x)用x則輸出十六進制數(shù)的a-f時以小寫字母輸出;用X時,則以大寫字母輸出%u以無符號十進制形式輸出整數(shù)字符(char)%c以單個字符形式輸出字符數(shù)據(jù)%mc(或%-mc)按指定的寬度m和右(或左)對齊方式輸出char型數(shù)據(jù)%s輸出字符串形式%ms(或%-ms)按指定的長度和右(或左)對齊方式輸出字符串實數(shù)(float,double)%f以小數(shù)形式輸出實數(shù)(單、雙精度),小數(shù)位數(shù)為6%m.nf(或%-m.nf)指定輸出的數(shù)據(jù)共占m列,其中小數(shù)占n列,靠右(或左)對齊一般格式控制符“格式控制符”的完整格式為:
%[標志][域?qū)抅[.精度][F|N|h|l|L]格式符
方括弧括起來的部分是可選的,被稱為修飾符。精度輸出字符最大數(shù),對于整型值,為輸出最少數(shù)值個數(shù)。F|N|h|l|L
N :
近指針(nearpointer)F : 遠指針(farpointer)h : 短整型(shortint)l : 長型(long)L : 長雙精度型(longdouble)例:若定義inta=-316;則:printf(“a=%d”,a);輸出為a=-316printf(“a=%6d”,a);輸出為a=-316printf(“a=%-6d”,a);輸出為a=-316再看看下面實數(shù)的格式修飾符情況:若定義floatx=3.1415926535;則:printf(“x=%f”,x);輸出為x=3.141593printf(“x=%7.4f”,x);輸出為x=3.1416printf(“x=%9.2e”,x);輸出為x=3.14e+00(1)輸出整型、長整型、無符號整型數(shù)據(jù)。%d,%md(%-md),
%ld(%-ld),%mld,%o,%x【例3.2】輸出整型、長整型、無符號整型數(shù)據(jù)。
main(){inty=20;longa=1024;unsignedb=54321;
clrscr();/*清屏*/printf("%d,%ld,%u\n",y,a,b);/*以十進制按數(shù)據(jù)實際長度輸出變量y,a,b*/
printf("%8d,%8ld,%8u\n",y,a,b);/*以十進制按8位列寬輸出變量y,a,b,右對齊*/
printf("%-8d,%-8ld,%-8u\n",y,a,b);/*以十進制按8位列寬輸出變量y,a,b,左對齊*/
printf("%o,%lo,%o\n",y,a,b);/*以八進制按數(shù)據(jù)實際長度輸出變量y,a,b*/
printf("%x,%lx,%x\n",y,a,b);/*以十六進制按數(shù)據(jù)實際長度輸出變量y,a,b*/
printf("%8o,%8lo,%8o\n",y,a,b);/*以八進制按8位列寬輸出變量y,a,b,右對齊*/
printf("%-8x,%-8lx,%-8x\n",y,a,b);/*以十六進制按8位列寬輸出變量y,a,b,左對齊*/}運行結(jié)果如下,其中的□表示空格。20,1024,54321□□□□□□20,□□□□1024,□□□5432120□□□□□□,1024□□□□,54321□□□24,2000,15206114,400,d431□□□□□□24,□□□□2000,□□15206124□□□□□□,2000□□□□,152061□□(2)輸出字符和字符串---%mc,%ms(或%-ms),%m.ns(或%-m.ns)【例3.3】輸出字符和字符串?dāng)?shù)據(jù)main(){charch=‘a(chǎn)';printf("%c\n",ch);/*輸出變量ch(單個字符)*/printf("%-3c\n",ch);/*輸出變量ch,占3列,靠左對齊*/printf("%3c\n",ch);/*輸出變量ch,占3列,靠右對齊*/printf("%s\n","programing");/*按實際長度輸出字符串programing*/printf("%15s\n","programing");/*輸出字符串programing,占15列,靠右對齊*/printf("%-15s\n","programing");/*輸出字符串programing,占15列,靠左對齊*//*輸出字符串programing中的前5個字符,占10列,靠右對齊*/printf("%10.5s\n","programing");/*輸出字符串programing中的前5個字符,占10列,靠左對齊*/printf("%-10.5s\n","programing");}運行結(jié)果如下,其中的□表示空格。
a,a□□□□aprograming□□□□□programingprograming□□□□□□□□□□progrprogr□□□□□(3)輸出實型數(shù)據(jù)。%f,%m.nf【例3.4】輸出實型數(shù)據(jù)。main(){floatx,y;doublea;x=111111.111;y=123.468;a=2222222222222.222222222;printf("%f\n",x);printf("%f\n",a);printf("%10f,%10.2f,%.2f,%-10.2f\n",x,x,x,x);printf("%e\n",x);printf("%e\n",a);printf("%10e,%10.2e,%.2e,%-10.2e\n",a,a,a,a);printf(“%f,%e,%g”,y,y,y);}程序運行結(jié)果如下,其中的□表示空格。111111.1093752222222222222.222170111111.109375,□111111.11,111111.11,111111.11□1.11111e+052.22222e+122.22222e+12,□□□2.2e+12,2.2e+12,2.2e+12□□□123.468002,1.23468e+02,123.4683.轉(zhuǎn)義字符
以“\”開頭的字符序列。C語言常用的轉(zhuǎn)義字符見第2章表2-3。
【例3.5】轉(zhuǎn)義字符輸出形式舉例main(){chara,b,c;a=‘n’;b=‘e’;c=‘\167’;/*8進制數(shù)167代表的字符w*/printf(“%c%c%c\n”,a,b,c);/*以字符格式輸出*/printf(“%c\t%c\t%c\n”,a,b,c);/*每輸出一個字符跳到下一輸出區(qū)*/printf(“%c\n%c\n%c\n”,a,b,c);/*每輸出一個字符后換行*/}運行情況如下:newn e wnew3.4.3格式化輸入函數(shù)(scanf)
1.scanf函數(shù)的一般形式格式化輸入函數(shù)scanf的功能是用來從外部設(shè)備(通常是鍵盤),向程序中的變量輸入一個或若干個任意類型的數(shù)據(jù)。scanf函數(shù)的一般形式為:scanf(格式控制,地址表列);其中“格式控制”的含義同printf函數(shù);“地址表列”是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址。例如,
inta; floatb;
scanf(“%d%f”,&a,&b);2.格式說明符
scanf函數(shù)中的格式說明符的使用與printf函數(shù)類似,必須用%開頭后面跟一個字母(也可以在其中間增加附加字符),它規(guī)定了輸入項對應(yīng)的輸入數(shù)據(jù)格式。同樣格式說明符要在個數(shù)和類型上與輸入項相匹配。scanf函數(shù)常用的格式說明符及附加字符見表3-2.
數(shù)據(jù)類型格式說明符功能描述整數(shù)%d%D用來輸入帶符號的十進制整數(shù)用來輸入帶符號的十進制長整數(shù)%i%I用來輸入帶符號的十、八、十六進制整數(shù)用來輸入帶符號的十、八、十六進制長整數(shù)%o%O用來輸入無符號的八進制整數(shù)用來輸入無符號的八進制長整數(shù)%x%X用來輸入無符號的十六進制整數(shù)用來輸入無符號的十六進制長整數(shù)%u%U用來輸入無符號的十進制整數(shù)用來輸入無符號的十進制長整數(shù)實數(shù)%f用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入。%e,%g%E,%G用來輸入單精度實數(shù)用來輸入雙精度實數(shù)字符%c用來輸入單個字符%s用來輸入字符串,將字符串送到一個字符數(shù)組中,以第一個空白字符結(jié)束。以“\0”作為串結(jié)束標志.【例3.6】用scanf函數(shù)輸入數(shù)據(jù)。main(){inta,b;clrscr();printf("pleaseinputtwonumbers:");scanf("%d%d",&a,&b);printf("a=%d,b=%d",a,b);}運行結(jié)果如下:pleaseinputtwonumbers:3□4↙(回車)a=3,b=43.4.4單字符輸出函數(shù)(putchar)
putchar()函數(shù)的一般調(diào)用形式為:
putchar(c);其中,c為一個字符型數(shù)據(jù)(普通字符或轉(zhuǎn)義字符)或整型數(shù)據(jù)(0~255)。
函數(shù)的功能是用于將一個字符輸出到顯示器上顯示.【例3.7】輸出單個字符。#include<stdio.h>main(){inta;charc1,c2;a=71;c1=‘o’;c2=‘y’;putchar(‘\102’);putchar(c1);putchar(c2);putchar(‘\n’);putchar(a);putchar(‘i’);putchar(‘r’);putchar(108);}運行結(jié)果:
BoyGirl3.4.5單字符輸入函數(shù)(getchar)getchar()函數(shù)的一般調(diào)用形式為:ch=getchar();getchar()函數(shù)的功能是從鍵盤上輸入一個字符?!纠?.8】從鍵盤輸入單個字符。#include“stdio.h”main(){inta;charch;ch=getchar();a=getchar();putchar(ch);putchar(a);}運行結(jié)果:DA↙(回車)DA(顯示變量ch的值)
3.5順序程序設(shè)計舉例
【例3.9】從鍵盤輸入一個兩個整數(shù),進行加、減、乘、除和模運算,并輸出其結(jié)果。main(){inta,b;clrscr();/*清除屏幕*/printf("pleaseinput
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44957-2024人工影響天氣作業(yè)點防雷技術(shù)規(guī)范
- 2025年上海市徐匯區(qū)高三語文一模作文解析與范文:突破與接受自身局限
- 持久性隆起性紅斑的臨床護理
- 部編人教版八年級歷史上冊教案
- 《證劵技術(shù)分析》課件
- 《數(shù)學(xué)規(guī)劃》課件
- 《第一章》課件-1.2人生智能的發(fā)展
- 2021年動力鋰電行業(yè)億緯鋰能分析報告
- 《機床電氣線路的安裝與調(diào)試》課件-第2章
- 《自動控制原理》課件第11章
- 《報批報建工作》課件
- 2024年商業(yè)流通倉儲服務(wù)項目立項申請報告模板
- 統(tǒng)編版(2024版)七年級上冊歷史期末復(fù)習(xí)課件
- 國家開放大學(xué)專科《機械制圖》一平臺機考真題及答案(第一套)
- 2024青海海東市水務(wù)集團限責(zé)任公司招聘27人易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年世界職業(yè)院校技能大賽高職組“智慧金融組”賽項參考試題庫(含答案)
- 2024房地產(chǎn)中介經(jīng)紀人勞動合同
- 光伏發(fā)電系統(tǒng)設(shè)計
- 2024-2030年中國電梯維修保養(yǎng)行業(yè)運營現(xiàn)狀及投資戰(zhàn)略研究報告
- 小學(xué)二年級數(shù)學(xué)上冊-加減乘除法口算題800道
- 國開2024年秋《機械制圖》形考作業(yè)1-4答案
評論
0/150
提交評論