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

下載本文檔

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

文檔簡(jiǎn)介

1、第第4 4章章 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)數(shù)據(jù)處理的一般過(guò)程是:輸入 處置 輸出。在C語(yǔ)言中,輸入輸出操作是由編譯系統(tǒng)提供的庫(kù)函數(shù)來(lái)實(shí)現(xiàn)。教學(xué)目的:掌握printf() 、scanf()函數(shù),以及順序結(jié)構(gòu)程序設(shè)計(jì)。教學(xué)內(nèi)容:教學(xué)內(nèi)容:4.1* 格式化輸出格式化輸出printf()函數(shù)函數(shù)4.2* 格式化輸入格式化輸入scanf()函數(shù)函數(shù)4.3 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)本章要點(diǎn)本章要點(diǎn)本章作業(yè)與上機(jī)實(shí)踐本章作業(yè)與上機(jī)實(shí)踐4.14.1* * 格式化輸出格式化輸出printf()printf()函數(shù)函數(shù)4.1.1 printf()函數(shù)的一般格式函數(shù)的一般格式 案例案例4.1 已知圓半

2、徑已知圓半徑radius=1.5,求圓周長(zhǎng),求圓周長(zhǎng)(2r)和圓面積和圓面積(r2) 。#include “stdio.h”#include “conio.h”void main( ) float radius = 1.5, length, area, pi=3.14; length = 2 * pi * radius; area = pi * radius * radius; printf(“radius = %fn”, radius); printf(“l(fā)ength = %7.2f, area=%7.2fn”, length, area); getch(); radius = 1.5000

3、00length = 9.42, area = 7.07printf()printf()函數(shù)的一般格式:函數(shù)的一般格式: printf(printf(格式字符串格式字符串 ,輸出項(xiàng)表,輸出項(xiàng)表);1 1格式字符串格式字符串(1)(1)格式指示符:格式指示符: %標(biāo)志標(biāo)志寬度寬度.精度精度F|N|h|LF|N|h|L類(lèi)型類(lèi)型例如,例如,%7.2f%7.2f。各類(lèi)常用指示符,參見(jiàn)表各類(lèi)常用指示符,參見(jiàn)表3-13-1至表至表3-53-5。在表3-1中,最常用的標(biāo)志字符是“-” :左對(duì)齊,右端補(bǔ)空格。缺省時(shí)為右對(duì)齊,左端補(bǔ)空格。在表3-2中,最常用寬度字符“n”:指定輸出域的寬度。若超長(zhǎng),則按實(shí)際寬度

4、輸出;若不足,則補(bǔ)空格。在表3-3中,最常用精度字符“ .n”:指定保留的小數(shù)位數(shù)(實(shí)數(shù),超長(zhǎng)則4舍5入),或截取左起的前n個(gè)字符(字符串)。在表3-4中,最常用的長(zhǎng)度字符“l(fā)”:長(zhǎng)整型。在表3-5 中,最常用的數(shù)據(jù)類(lèi)型轉(zhuǎn)換字符如下表所示: 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型類(lèi)型轉(zhuǎn)換字符類(lèi)型轉(zhuǎn)換字符功功 能能整 數(shù)d 帶符號(hào)十進(jìn)制整數(shù)十進(jìn)制整數(shù)實(shí) 數(shù)f十進(jìn)制小數(shù)十進(jìn)制小數(shù)形式(默認(rèn)6位小數(shù))字 符c輸出1個(gè)字符字符s輸出1個(gè)字符串字符串(2)轉(zhuǎn)義字符。特點(diǎn):通常是產(chǎn)生一個(gè)控制操作。例如,轉(zhuǎn)義字符n,輸出時(shí)產(chǎn)生一個(gè)“換行操作。 (3)普通字符除格式指示符和轉(zhuǎn)義字符之外的其它字符。特點(diǎn):原樣輸出。例如,“radiu

5、s=”、“l(fā)ength=”、“area=”、“,”。2輸出項(xiàng)表如果不止1個(gè),則相鄰2個(gè)之間用逗號(hào)分開(kāi)。下面的用法都是合法的:(1)printf(I am a student.n);(2)printf(%d,3+2);(3)printf(a=%f b=%5dn, a, a+3);3.1.2 常用的類(lèi)型轉(zhuǎn)換字符常用的類(lèi)型轉(zhuǎn)換字符輸出不同類(lèi)型數(shù)據(jù),要使用不同類(lèi)型轉(zhuǎn)換字符。輸出不同類(lèi)型數(shù)據(jù),要使用不同類(lèi)型轉(zhuǎn)換字符。1類(lèi)型轉(zhuǎn)換字符類(lèi)型轉(zhuǎn)換字符d以帶符號(hào)的十進(jìn)制整數(shù)形式輸以帶符號(hào)的十進(jìn)制整數(shù)形式輸出。出。案例案例3.2 類(lèi)型轉(zhuǎn)換字符類(lèi)型轉(zhuǎn)換字符d的使用。的使用。#include “stdio.h”#inc

6、lude “conio.h”void main() int num1=123; long num2=123456; printf(num1=%d,num1=%5d,num1=%-5d,num1=%2dn, num1,num1,num1,num1); printf(num2=%ld,num2=%8ld,num2=%5ldn, num2,num2,num2); printf(num1=%ldn,num1); getch(); 程序運(yùn)行結(jié)果如下:num1=123,num1=123,num1=123,num1=123num2=123456,num2=123456,num2=123456num1=169

7、08411(1)格式指示符,必須與輸出項(xiàng)的數(shù)據(jù)類(lèi)型一致,否則會(huì)引起輸出錯(cuò)誤。(2)對(duì)于整數(shù),還可用%o(八進(jìn)制無(wú)符號(hào)形式)、 %x(十六進(jìn)制無(wú)符號(hào)形式)、 %u(十進(jìn)制無(wú)符號(hào)形式)輸出。類(lèi)型匹配錯(cuò)誤,輸出結(jié)果是隨機(jī)的。2類(lèi)型轉(zhuǎn)換字符類(lèi)型轉(zhuǎn)換字符f以小數(shù)形式輸出實(shí)數(shù)。以小數(shù)形式輸出實(shí)數(shù)。案例案例3.3 類(lèi)型轉(zhuǎn)換字符類(lèi)型轉(zhuǎn)換字符f的使用。的使用。#include “stdio.h”#include “conio.h”void main( ) float f = 123.456; double d1,d2; d1 = 1111111111111.111111111; d2 = 22222222222

8、22.222222222; printf(%f, %12f, %12.2f, %-12.2f, %.2fn, f, f, f, f, f ) ; printf(d1 + d2 = %fn, d1 + d2); getch(); 程序運(yùn)行結(jié)果如下:123.456001,123.456001,123.46,123.46,123.46d1+d2=3333333333333.333010提示:對(duì)于實(shí)數(shù)也可使用%e,以標(biāo)準(zhǔn)指數(shù)形式輸出;或使用%g,讓系統(tǒng)根據(jù)數(shù)值的大小,自動(dòng)選擇%f或%e格式、且不輸出無(wú)意義的零。3 3類(lèi)型轉(zhuǎn)換字符類(lèi)型轉(zhuǎn)換字符cc輸出輸出1 1個(gè)字符個(gè)字符( (占占1 1列寬度列寬度)

9、) 案例案例3.4 3.4 類(lèi)型轉(zhuǎn)換字符類(lèi)型轉(zhuǎn)換字符c c的使用。的使用。#include “stdio.h”#include “stdio.h”#include “conio.h”#include “conio.h”void main()void main() char c=A; char c=A; int i=65; int i=65; printf(c= %c, %5c, %dn, c, c, c ); printf(c= %c, %5c, %dn, c, c, c ); printf(i = %d, %c, i, i); printf(i = %d, %c, i, i); getch(

10、); getch(); 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下: c = A, c = A, A, 65A, 65 I = 65, A I = 65, A4類(lèi)型轉(zhuǎn)換字符類(lèi)型轉(zhuǎn)換字符s輸出一個(gè)字符串。輸出一個(gè)字符串。案例案例3.5 類(lèi)型轉(zhuǎn)換字符類(lèi)型轉(zhuǎn)換字符s的使用。的使用。#include “stdio.h”#include “conio.h”void main() p r i n t f ( % s , % 5 s , % -10s,Internet,Internet,Internet); p r i n t f ( % 1 0 . 5 s , % - 1 0 . 5 s , %4.5sn,Int

11、ernet,Internet,Internet); getch(); 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下:Internet,Internet,Internet,Inter,Inter,Inter 注意:系統(tǒng)輸出字符注意:系統(tǒng)輸出字符(串串),不輸出單引號(hào)和雙引號(hào)。,不輸出單引號(hào)和雙引號(hào)。3.1.3 使用說(shuō)明使用說(shuō)明1格式指示符,必須按從左到右的順序,與輸出格式指示符,必須按從左到右的順序,與輸出項(xiàng)表中的每個(gè)數(shù)據(jù)一一對(duì)應(yīng),否則出錯(cuò)。項(xiàng)表中的每個(gè)數(shù)據(jù)一一對(duì)應(yīng),否則出錯(cuò)。例如,例如,printf(str = %s, f = %d, i = %fn, Internet, 1.0 / 2, 3 + 5,

12、 CHINA);是錯(cuò)誤的。是錯(cuò)誤的。2類(lèi)型轉(zhuǎn)換字符的緊前字符不是類(lèi)型轉(zhuǎn)換字符的緊前字符不是“%”時(shí),將作普時(shí),將作普通字符處理通字符處理(原樣輸出原樣輸出)。例如,例如,“printf(”c = %c, f = %fn“, c, f);”中的第中的第一個(gè)一個(gè)c和和f,都是普通字符。,都是普通字符。3類(lèi)型轉(zhuǎn)換字符x、e、g,大小寫(xiě)均可。大寫(xiě)時(shí),輸出數(shù)據(jù)中包含的字母也大寫(xiě)。其它類(lèi)型轉(zhuǎn)換字符,必須小寫(xiě)。例如,%f不能寫(xiě)成%F。返回3.23.2* * 格式化輸入格式化輸入scanf()scanf()函數(shù)函數(shù)3.2.1 一般格式一般格式 案例案例3.6 已知圓柱體的底半徑已知圓柱體的底半徑radius=

13、1.5,高,高h(yuǎn)igh = 2.0 ,求其體積,求其體積(r2 h) 。#include “stdio.h”#include “conio.h”void main() float radius, high, pi=3.14159, vol; radius=1.5; high=2.0; vol = pi * radius * radius * high; printf(“vol = %7.2fn”, vol); getch(); 考慮:使用賦值語(yǔ)句給出初值的方式的局限性? 案例3.7 已知圓柱體的底半徑為radius、高為high,求其體積。#include “stdio.h”#include

14、“conio.h”void main() float radius, high, vol, pi=3.1415926; printf(Please input radius & high: ); scanf(%f%f, &radius, &high); vol = pi * radius * radius * high; p r i n t f ( r a d i u s = % 7 . 2 f , high=%7.2f, vol=%7.2fn, radius, high, vol); getch(); Please input radius & high: 1

15、.52.0radius=1.50,high=2.00,vol=14.14給計(jì)算機(jī)提供數(shù)據(jù),可以使用:(1)賦值語(yǔ)句。只能解決1個(gè)特定的問(wèn)題。例如,案例3.6。(2)輸入函數(shù)scanf() 。能解決1類(lèi)特定的問(wèn)題。例如,案例3.7。顯然,采用scanf( )函數(shù),使得程序具有更好的適應(yīng)性。scanf( )函數(shù)的一般格式: scanf(格式字符串, 輸入項(xiàng)首地址表);(1)格式字符串 格式指示符:與printf()函數(shù)的相似; 普通字符:必須原樣輸入。(2)輸入項(xiàng)首地址表可以是變量首地址、數(shù)組名,或者指針變量。變量首地址的表示: &變量名相鄰2個(gè)輸入項(xiàng)首地址,用逗號(hào)分開(kāi)。地址運(yùn)算符3.2.

16、2 數(shù)據(jù)輸入操作數(shù)據(jù)輸入操作(假設(shè)假設(shè)num1=12、num2=36)1默認(rèn)分隔符默認(rèn)分隔符空格、空格、 Tab鍵、回車(chē)鍵、回車(chē)如果不指定分隔符如果不指定分隔符(例如逗號(hào)、冒號(hào)例如逗號(hào)、冒號(hào)),則使用,則使用默認(rèn)分隔符。默認(rèn)分隔符。例如,例如,scanf(%d%d,&num1,&num2);正確的輸入操作為:正確的輸入操作為: 1236 或者:或者:12 36 2普通字符務(wù)必原樣輸入。(1) scanf(%d ,%d,&num1,&num2); 正確的輸入操作為:12 , 36(2) scanf(num1=%d , num2=%dn,&num1,&

17、;num2); 正確的輸入操作為: num1=12 ,num2=36n提示:scanf()格式字符串中,沒(méi)有轉(zhuǎn)義字符概念。比較(1)、(2)兩種設(shè)計(jì)方式的優(yōu)缺點(diǎn)?比較(1)、(2)兩種設(shè)計(jì)方式的優(yōu)缺點(diǎn)?(1) 僅輸入數(shù)據(jù),輸入量小,但人機(jī)交互性差(用戶(hù)不知道該輸入什么,以及輸入給誰(shuí))。(2) 同時(shí)輸入說(shuō)明和數(shù)據(jù),人機(jī)交互友好性好,但輸入量大??紤]:如何改進(jìn)設(shè)計(jì),既保持良好的人機(jī)交互性,又不增加輸入量?提高人機(jī)交互性的設(shè)計(jì)思路:提高人機(jī)交互性的設(shè)計(jì)思路:先用先用printf()函數(shù)輸出提示信息,再用函數(shù)輸出提示信息,再用scanf()函數(shù)函數(shù)進(jìn)行數(shù)據(jù)輸入。進(jìn)行數(shù)據(jù)輸入。scanf(num1=%d

18、,num2=%dn,&num1,&num2);printf(num1=); scanf(%d,&num1);printf(num2=); scanf(%d,&num2);3使用 “%c輸入時(shí),空格和轉(zhuǎn)義字符均作為有效字符被輸入。例如:scanf(%c%c%c,&ch1,&ch2,&ch3);printf(ch1=%c,ch2=%c,ch3=%cn,ch1,ch2,ch3);考慮:假設(shè)輸入“ABC”,printf()輸出的內(nèi)容是什么?輸出結(jié)果:ch1= A,ch2=,ch3= B返回3.3 3.3 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程

19、序一般包括兩部分:1程序開(kāi)頭的編譯預(yù)處理命令。如果要在程序中使用標(biāo)準(zhǔn)庫(kù)函數(shù),則必須使用編譯預(yù)處理命令#include,將相應(yīng)的頭文件包含進(jìn)來(lái)。2函數(shù)體主要包括:(1)變量定義語(yǔ)句;(2)輸入語(yǔ)句;(3)運(yùn)算語(yǔ)句;(4)輸出語(yǔ)句。 3 執(zhí)行流程:各語(yǔ)句是按照物理位置次序,被順序執(zhí)行,且每個(gè)語(yǔ)句都會(huì)被執(zhí)行到。案例 輸入3個(gè)整數(shù),求它們的和及平均值。#include “stdio.h”#include “conio.h”void main() int num1,num2,num3,sum; float aver; printf(Please input three numbers:); scanf(

20、%d, %d, %d, &num1, &num2, &num3); sum = num1 + num2 + num3;/*求累計(jì)和*/ aver = sum / 3.0; /*求平均值*/ printf(num1=%d,num2=%d,num3=%dn, num1, num2, num3); printf(sum=%d, aver=%7.2fn,sum, aver); getch(); 案例3.11 設(shè)計(jì)一個(gè)進(jìn)行加、減、乘、除和求余數(shù)運(yùn)算練習(xí)的程序。對(duì)程序功能的基本要求如下:(1) 使用菜單驅(qū)動(dòng);(2) 隨機(jī)產(chǎn)生運(yùn)算所需的2個(gè)操作數(shù)0-99);(3) 程序自動(dòng)判斷用戶(hù)的

21、計(jì)算結(jié)果是否正確。由于所學(xué)內(nèi)容的限制,本案例的設(shè)計(jì)要求將在本章,以及隨后的第4 第7章中分階段逐步實(shí)現(xiàn)并完善。本案例首先實(shí)現(xiàn)設(shè)計(jì)要求(1) 。 /*功能:菜單程序段*/#include stdio.h#include conio.hvoid main() char options; clrscr( );/*清屏。函數(shù)原型在conio.h中*/ printf( 加、減、乘、除和求余數(shù)運(yùn)算練習(xí)程序 n); printf(n); printf( + (Addition) + / a n); printf( - (Subtraction) - / s n); printf( * (Multiplication) * / m n); printf( / (Division) / / d n); printf( % (Remainder) % / r n); printf( E x i t e n); printf(n);

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論