版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)第3章順序結(jié)構(gòu)程序設(shè)計(jì)3.1將英里轉(zhuǎn)換為公里3.2C語句3.3數(shù)據(jù)的輸出3.4數(shù)據(jù)的輸入3.1將英里轉(zhuǎn)換為公里任務(wù)描述暑假游玩地圖必不可少,我們發(fā)現(xiàn)一些以公里標(biāo)注距離的地圖和一些以英里標(biāo)注距離的地圖。你和你的伙伴們想使用公制計(jì)量單位來處理,因此需要編寫一個程序來執(zhí)行必要的轉(zhuǎn)換工作。問題分析:公里與英里之間的關(guān)系
3.1將英里轉(zhuǎn)換為公里數(shù)據(jù)需求1、問題輸入:miles/*存放用英里表示的距離*/2、問題輸出:kms/*存放用公里表示的距離*/3、相關(guān)公式:1英里=1.609公里
3.1將英里轉(zhuǎn)換為公里算法1、讀取英里數(shù)。2、將距離轉(zhuǎn)換成公里。(英里距離是公里距離的1.609倍)3、用公里顯示距離。
3.1將英里轉(zhuǎn)換為公里流程圖
開始英里距離是公里距離的1.609倍鍵盤輸入英里距離輸出公里表示的距離結(jié)束3.1將英里轉(zhuǎn)換為公里功能實(shí)現(xiàn)#include<stdio.h> #defineKMS_PER_MILE1.609main(){doublemiles,kms;printf("請輸入用英里表示的距離:");scanf("%lf",&miles); kms=KMS_PER_MILE*miles;printf("等同%f公里。\n",kms); }
廣義上講,算法是解決某一問題的方法和步驟。算法的概念算法的特性(1)有窮性(2)確定性(3)可行性(4)有零個或多個輸入(5)有一個或多個輸出3.1將英里轉(zhuǎn)換為公里順序結(jié)構(gòu):
BAAB兩個框是順序執(zhí)行的:
按圖中所畫的框的順序,先執(zhí)行A操作,再執(zhí)行B操作。三種基本結(jié)構(gòu)按照書寫順序,自上而下的逐條執(zhí)行語句。3.1將英里轉(zhuǎn)換為公里選擇結(jié)構(gòu)也稱為分支結(jié)構(gòu)。此結(jié)構(gòu)包括一個選擇框,框中寫有一個條件,根據(jù)給定的條件是否成立,從而選擇執(zhí)行A框還是B框。例如:條件可以是A≤B條件PAB成立不成立條件PA成立不成立B操作為空時(shí),畫成直線三種基本結(jié)構(gòu)3.1將英里轉(zhuǎn)換為公里循環(huán)結(jié)構(gòu)(當(dāng)型---while型)1)當(dāng)給定的條件成立時(shí),執(zhí)行A框中的操作;2)執(zhí)行完A操作后,判條件P是否成立;3)如果仍成立,繼續(xù)執(zhí)行A操作;4)如此反復(fù)執(zhí)行A框中的操作,直到條件P不成立為止。條件PA成立不成立三種基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)是指多次重復(fù)執(zhí)行同一組命令的結(jié)構(gòu)3.1將英里轉(zhuǎn)換為公里循環(huán)結(jié)構(gòu)(直到型---until型)條件PA成立不成立1)先執(zhí)行A框中的操作;2)執(zhí)行完A操作后,判條件P是否成立;3)如果成立,繼續(xù)執(zhí)行A操作;4)如此反復(fù)執(zhí)行A框中的操作,直到條件P不成立為止。三種基本結(jié)構(gòu)3.1將英里轉(zhuǎn)換為公里
算法的描述方法有很多種,最常用的有自然語言、偽代碼、流程圖、N-S圖、PAD圖和計(jì)算機(jī)語言等。3.1將英里轉(zhuǎn)換為公里【例】有兩個數(shù)a,b,按大小順序打印它們。①
定義兩個變量a和b,輸入兩個值分別賦值a和b;
②如果a≥b,則先打印a,再打印b;
否則,先打印b,再打印a;算法結(jié)束。用自然語言描述對輸入的兩個數(shù)按大小順序輸出的算法。自然語言3.1將英里轉(zhuǎn)換為公里流程圖流程圖是一種傳統(tǒng)的算法表示方法,用一些圖框表示各種操作,用流程線表示操作的執(zhí)行順序。3.1將英里轉(zhuǎn)換為公里真假開始a≥b結(jié)束輸出b,a的值輸入a,b的值輸出a,b的值實(shí)例分析有兩個數(shù)a,b,按大小順序打印它們。3.1將英里轉(zhuǎn)換為公里N-S圖
N-S圖是由I.Nassi和B.Shneiderman于1973年共同提出的一種結(jié)構(gòu)化描述方法。在這種流圖圖中,去掉了所有的流程線,算法寫在一個矩形框內(nèi),在該矩形框內(nèi)還可以包括其他的矩形框。3.1將英里轉(zhuǎn)換為公里學(xué)習(xí)目標(biāo)熟練掌握C語言中的基本語句3.2C語句語句構(gòu)成3.2.1表達(dá)式語句表達(dá)式語句是由表達(dá)式加上分號組成。其形式如下:
表達(dá)式;如:x=y+z;//賦值表達(dá)式語句y+z;
//加法運(yùn)算語句,但計(jì)算結(jié)果不能保留無意義i++;
//自增1語句,即i的值增1注意事項(xiàng)
使用賦值語句時(shí)需要注意以下幾點(diǎn)。
(1)在賦值符“=”右邊的表達(dá)式也可以是一個賦值表達(dá)式。例如:a=b=c=5;
(2)注意賦值表達(dá)式和賦值語句的區(qū)別。
賦值表達(dá)式是一種表達(dá)式,它可以出現(xiàn)在任何允許表達(dá)式出現(xiàn)的地方,而賦值語句則不能。3.2.1表達(dá)式語句語句構(gòu)成3.2.2函數(shù)調(diào)用語句函數(shù)是C程序的基本組成單位,一個函數(shù)的執(zhí)行是通過在程序中調(diào)用這個函數(shù)來實(shí)現(xiàn)的。一般形式如下:
函數(shù)名(參數(shù)表);例“printf("hello!");”就是一個函數(shù)調(diào)用語句。3.2.3控制語句語句種類語句形式功能說明選擇分支控制語句if()…else…分支語句switch(){…}多分支語句循環(huán)控制語句for()循環(huán)語句while()循環(huán)語句do…while()循環(huán)語句結(jié)束控制語句break終止循環(huán)語句的執(zhí)行continue結(jié)束本次循環(huán)語句轉(zhuǎn)向控制語句goto轉(zhuǎn)向語句return返回語句語句構(gòu)成3.2.4空語句
僅由分號“;”組成的語句稱為空語句。空語句是不執(zhí)行任何操作的語句。例如,
while(getchar()!='\n')
{
;//循環(huán)體為空語句
}空語句通常起到占位的作用,在程序沒有完全開發(fā)完成前,可用空語句占位,以便后續(xù)開發(fā)填充代碼。語句構(gòu)成3.2.5復(fù)合語句把多個語句用大括號括起來組成的語句稱為復(fù)合語句。在語法上,復(fù)合語句相當(dāng)于單條語句,而不是多條語句。其一般形式為:
{
語句1;
……
語句n;
}
復(fù)合語句可以放在能夠使用語句的任何地方,它建立一個新的作用域或塊。復(fù)合語句是C語言中唯一不用分號“;”結(jié)尾的語句。{a=2;b=3;b*=a;printf("b=%d\n",b);}學(xué)習(xí)目標(biāo)3.3數(shù)據(jù)的輸出掌握格式化輸出函數(shù)的基本用法注意事項(xiàng)
C語言的輸入輸出操作都是通過調(diào)用C標(biāo)準(zhǔn)庫函數(shù)來實(shí)現(xiàn)的。C語言提供的輸入輸出標(biāo)準(zhǔn)庫函數(shù)有g(shù)etchar()、putchar()、scanf()和printf()等。引用C語言標(biāo)準(zhǔn)庫函數(shù)時(shí),必須程序的開始寫一行命令
#include<stdio.h>或者#include”stdio.h”
3.3數(shù)據(jù)的輸出作用向終端(或系統(tǒng)默認(rèn)的輸出設(shè)備)輸出一個字符。舉例#include<stdio.h>void
main(){charc1,c2,c3;c1='Y';c2='O';c3='U';putchar(c1);putchar(c2);putchar(c3);}顯示器格式?AYOU輸出intputchar(charch);注:
ch可以是一個字符型(整型)變量、常量等;3.3數(shù)據(jù)的輸出printf()
函數(shù)調(diào)用的一般形式為:
printf("格式控制",輸出列表);
功能:按照"格式控制"要求,向終端輸出“輸出列表”中各個輸
出項(xiàng)的值。3.3數(shù)據(jù)的輸出格式printf("格式控制"
,輸出列表);說明1、"格式控制字符串"是用雙撇號引起來的字符串,包括三種信息:(1)格式說明符:由%和格式字符組成。
(如%d%f%c)(2)普通字符:需要按原樣輸出的字符。(3)轉(zhuǎn)義字符:
(如\t、\n、\b、\r等)2、"輸出列表"是需要輸出的一些數(shù)據(jù),可以是表達(dá)式。
printf(“ok”);printf(“%d”,a);printf(“sum=%d\n”,a);
printf(“sum=%d\n”,a+b);指定數(shù)據(jù)的輸出格式。作用向終端(或系統(tǒng)默認(rèn)的輸出設(shè)備)輸出若干個任意類型的數(shù)據(jù)。3.3數(shù)據(jù)的輸出常用格式說明符:%格式字符#include<stdio.h>voidmain(){inta,b;a=3;b=4;printf("輸出結(jié)果為:");
printf("%d%d\n",a,b);printf("a=%d,b=%d\n",a,b);printf("a+b=%d",a+b);}輸出結(jié)果為:34a=3,b=4a+b=7printf("sum=%d\n
%c",x,ch);普通字符格式說明轉(zhuǎn)義字符如果x=100,ch='A',那么下面的輸出語句將輸出什么結(jié)果?輸出列表輸出sum=100A輸出【例】【例】格式輸出——printf函數(shù)格式說明必須以%開始,以格式字符結(jié)束。一般形式如下:
%[標(biāo)志][寬度][.精度][l][格式字符]--nmd/f/c/s等長整型整數(shù)輸出數(shù)據(jù)向左靠攏輸出數(shù)據(jù)最小寬度對實(shí)數(shù):輸出小數(shù)點(diǎn)位數(shù);對字符串:截取字符的個數(shù)常用的附加格式說明:%[標(biāo)識][寬度][.精度][l]格式字符(如%d)標(biāo)識:-:左對齊輸出,
+或缺省:為右對齊輸出。printf()3.3數(shù)據(jù)的輸出%[標(biāo)識][寬度][.精度]格式字符(如%d)寬度:指定輸出寬度
1)指定寬度>實(shí)際寬度,補(bǔ)空格。
2)指定寬度≤實(shí)際寬度或不指定寬度,按實(shí)際輸出printf()intmain(){intnum1=123;/*用4種不同格式,輸出int型數(shù)據(jù)num1的值*/printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n",num1,num1,num1,num1);return0;} num1=123,num1=123,num1=123,num1=1233.3數(shù)據(jù)的輸出%[標(biāo)識][寬度][.精度]格式字符(如%d)精度:輸出精度指示符。1)對實(shí)數(shù),表示小數(shù)點(diǎn)后至多輸出的數(shù)字個數(shù),不足補(bǔ)0,多則舍入處理。2)對字符串,表示最多輸出的字符個數(shù),不足補(bǔ)空格,多則丟棄。printf()方括號表示該項(xiàng)可有可無3.3數(shù)據(jù)的輸出floatx=123.456;printf(“%f\n",x);printf("%15f\n",x);printf("%10.2f\n",x);printf("%.2f\n",x);printf("%-15.2f\n",x);123.456001
123.456001
123.46123.46123.46
實(shí)數(shù)最常用的兩種輸出格式【例】綜合舉例3.3數(shù)據(jù)的輸出#include<stdio.h>voidmain(){charc='A';inti=65;
printf("c=%c,%5c,%d\n",c,c,c);printf("i=%d,%c",i,i);}輸出c=A,
A,65i=65,A注意
在C語言中,整數(shù)可以用字符形式輸出,字符數(shù)據(jù)也可以用整數(shù)形式輸出。【例】綜合舉例3.3數(shù)據(jù)的輸出掌握格式化輸入函數(shù)的基本用法學(xué)習(xí)目標(biāo)3.4數(shù)據(jù)的輸入作用接收從終端(或系統(tǒng)默認(rèn)的輸入設(shè)備)輸入的一個字符,并返回其ASCII碼值。#include
<stdio.h>int
main(){
charc1;c1=getchar();putchar(c1);return0;}輸入:a
鍵盤輸出格式a_intgetchar();【例】3.4數(shù)據(jù)的輸入格式scanf("格式"
,地址列表);說明1、"格式控制字符串"與printf函數(shù)類似??梢园韵氯N類型
的信息:格式說明:與printf類似,以%開始,以一個格式字符結(jié)束;普通字符(照原樣輸入(建議使用逗號和空格))。2、
"地址表列"是由若干個地址組成的列表,各地址之間用逗號分隔。如變量的地址表示為:&變量名。作用按照格式控制的要求,將從終端輸入的數(shù)據(jù)賦值給地址列表中的各個變量。3.4數(shù)據(jù)的輸入格式控制字符串:格式轉(zhuǎn)換說明符功能描述%d輸入一個十進(jìn)制整數(shù)%f輸入一個單精度實(shí)數(shù)%lf輸入一個雙精度實(shí)數(shù)%c輸入一個字符%s輸入一個字符串%o輸入一個八進(jìn)制整數(shù)%x輸入一個十六進(jìn)制整數(shù)%*表示本輸入項(xiàng)只是讀入,但不賦給相應(yīng)變量3.4數(shù)據(jù)的輸入charch1,ch2,ch3;scanf("%c%c%c",&ch1,&ch2,&ch3);printf("ch1=%c,ch2=%c,ch3=%c\n",ch1,ch2,ch3);注意使用格式說明符"%c"輸入單個字符時(shí),空格和轉(zhuǎn)
義字符均作為有效字符被輸入。輸入:
a
b
c
ch1=a,ch2=,ch3=b輸出:其中:ch2的值為空格?!纠?.4數(shù)據(jù)的輸入#include<stdio.h>intmain(){
inta,b,temp;
printf("Pleaseinputab:\n");
scanf("%d%d",&a,&b);
temp=b;
b=a;
a=temp;
printf("a=%d,b=%d\n",a,b);
return0;}實(shí)例分析運(yùn)行結(jié)果如下:Pleaseinputab:2↙3
↙a=3,b=23.4數(shù)據(jù)的輸入輸入攝氏溫度c的值,計(jì)算華氏溫度f的值。(計(jì)算公式為:f=9*c/5+32)#include<stdio.h>intmain(){
floatc,f;
printf("Pleaseinputc:");
scanf("%f",&c);
f=9*c/5+32;
printf("f=%6.2f\n",f);
return0;}實(shí)例分析運(yùn)行結(jié)果如下:Pleaseinputc:28↙f=
82.403.4數(shù)據(jù)的輸入例輸入三角形的三邊,求三角形的面積。#include<stdio.h>#include<math.h>voidmain(){floata,b,c,s,area;printf("請輸入三角形的三邊:");
scanf("%f,%f,%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));printf("s=%7.2f\n",s);}請輸入三角形的三邊:3,4,5
s=
6.00分析a,b,c:表示三角形的三邊。s:中間變量。
s=(a+b+c)/2area:三角形面積。以上變量均為實(shí)型。輸入a,b,c輸出areas=
(a+b+c)/2area=sqrt(p*(p-a)*(p-b)*(p-c))?若輸入348-2-39運(yùn)行情況:3.4數(shù)據(jù)的輸入小型案例任務(wù)描述
本地銀行儲蓄所有很多顧客周期性地將零錢存進(jìn)自己的賬戶。請編寫一個程序,與銀行的顧客交互,從而確定硬幣總共是多少錢。
數(shù)據(jù)需求1、問題輸入charfirst,middle,last/*存放顧客姓名的首字母的變量*/intyuan /*存放1元硬幣的個數(shù)的變量*/intwujiao /*存放5角硬幣的個數(shù)的變量*/intjiao /*存放1角硬幣的個數(shù)的變量*/2、問題輸出intrmbyuan /*存放元值的變量*/intrmbjiao /*
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 不定期服務(wù)合同(2篇)
- 塑膠物流倉儲施工合同
- 實(shí)驗(yàn)室外墻粉刷協(xié)議
- 營銷法律實(shí)務(wù)課程設(shè)計(jì)案例
- 蘇州二手房過戶流程合同范本
- 鋼鐵廠塔吊司機(jī)招聘合同
- 羅湖足浴會所防水施工方案
- 環(huán)保設(shè)備企業(yè)應(yīng)屆生招聘合同
- 保障隱私二手房合同模板
- 商務(wù)樓裝潢合同
- 2024海南省圖書館公開招聘財(cái)政定額補(bǔ)貼人員15人(一)(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 2023-2024學(xué)年全國小學(xué)五年級上數(shù)學(xué)人教版模擬考試試卷(含答案解析)
- 2024年越南板式降膜蒸發(fā)器行業(yè)現(xiàn)狀及前景分析2024-2030
- 專題05:文言文比較閱讀-2022-2023學(xué)年八年級語文下學(xué)期期中專題復(fù)習(xí)(浙江專用)
- 4-6戴維南定理(部編)課件
- 納稅人(扣繳義務(wù)人)基礎(chǔ)信息報(bào)告表
- 2024年麻醉藥品精神藥品臨床使用培訓(xùn)考試題
- 2021-2022年云南省昆明市五華區(qū)人教版五年級上冊期末測試數(shù)學(xué)試卷
- 貨幣金融學(xué)(四川大學(xué))智慧樹知到期末考試答案章節(jié)答案2024年
- 臨時(shí)用電常見隱患及防治措施
- 2024天翼云從業(yè)者認(rèn)證考試題庫及答案
評論
0/150
提交評論