




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章最簡單地C程序設計順序程序設計內容提要:C語句概述 基本地數據輸入/輸出函數簡單地C程序設計著名計算機科學家沃思提出:數據結構+算法=程序描述數據地類型,組織形式描述對數據地操作步驟三.一算法地概念做事情都有---方法,步驟(順序)---決定事情成敗一,算法:計算機求解某一問題而采用地具體方法,步驟二,兩大類計算機算法:數值運算算法,非數值運算算法(求數值解,成熟)(事務管理,廣泛)三,算法地特:有窮,確定,有效等四,算法描述:描述算法地方法有多種歸納為二大類:①文字②圖形(符號)三.二算法地描述方法常用地算法描述方法:(一)帶序號地自然語言描述易懂卻不直觀,不嚴格(二)流程圖:靈活,自由,形象,直觀,可表示任何算法輸入/輸出處理判斷起止連接點流程線(三)N-S圖(盒圖):完全去掉了帶箭頭地流程線,算法地所有處理步驟都寫在一個大矩形框(表示簡單,符合結構化思想)(四)偽代碼:用介于自然語言與計算機語言之間地文字及符號來描述算法(方便,易懂,便于向計算機語言過渡)例一:計算S=,寫出其算法。自然語言描述:流程圖描述:N-S圖描述:偽代碼描述:三.三結構化程序設計方法一,結構化程序地三種基本結構一九六六年提出三種基本結構,用這三種基本結構作為表示一種良好算法地基本單元:順序,選擇,循環任何復雜地算法都是由這三種基本結構按一定規律組成。(一)順序結構ABABa=三;b=四;c=a+b;操作步驟按書寫順序執行(二)選擇結構PABTFABTFPif(x!=零)y=sin(x)/x;elsey=一;(三)循環結構根據條件P決定是否重復執行循環體地操作。sum=零;i=一;while(i<=一零零){sum+=i;i++;}sum=零;i=一;do{sum+=i;i++;}while(i<=一零零);二,三種基本結構地同特點(一)單入口單出口(二)結構內地每一部分都有機會被執行(三)不存在"死循環"三,結構化程序設計地優點用三種基本結構組成地程序是結構化程序優點:易編,易讀,易懂,易維護強調程序設計風格與程序結構地規范化核心思想:自頂向下,逐步細化,模塊化設計,結構化編碼舉例:張丘建《算經》提出"百雞問題":雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁,母,雛各幾何?(體會編程步驟)分析:cocks+hens+chicks=一零零五*cocks+三*hens+chicks/三=一零零其:零≤cocks≤一九零≤hens≤三三零≤chicks≤一零零思路:依次取cocks地值域地值,然后求其余兩數,看是否合乎題意算法描述:cocks=零當cocks≤一九時{找滿足題意hens,chicks數cocks加一}cocks=零當cocks≤一九時{hens=零當hens≤三三時{chicks=一零零-cocks-hens如果(五*cocks+三*hens+chicks/三=一零零)則輸出hens加一}cocks加一}cocks=零當cocks≤一九時{hens=零當hens≤三三時{找滿足題意地chicks數hens加一}cocks加一}細化細化用計算機語言寫出程序voidmain(){intcocks=零,hens,chicks;while(cocks<=一九){hens=零;while(hens<=三三){chicks=一零零-cocks-hens;if(五.零*cocks+三.零*hens+chicks/三.零==一零零)printf("%d%d%d\n",cocks,hens,chicks);hens++;}cocks++;}}零二五七五二零七七一八七八一三八零一一八一六八三一二四八四三.四C語句地概述一,語句用來對數據行加工(完成操作任務),是構成程序地基本單位,通常一個C程序由若干個函數(系統,用戶提供)組成。每一函數由若干條語句組成。每條語句總是以";"結束。二,C語句地分類(簡單語句,復合語句,空語句)(一)簡單語句一)表達式語句:由一個表達式后跟";"組成如:a=三(賦值表達式)a=三;(賦值語句)i++i++;二)函數調用語句:函數調用表達式加一個";"如:printf("Hello,world!\n");三)結構控制語句:控制程序流程選擇語句:if…else…switch循環語句:forwhiledo…while…轉向語句:continuebreakreturngoto(二)復合語句:將一組語句括在一對{}如:while(i<一零零){sum+=i;i++;}說明:一)復合語句地{}之后不能有";"二)復合語句可以是簡單語句,復合語句,空語句(三)空語句:;/*僅有一個;*/空語句什么也不做。有時用作被轉向點,或為循環語句提供空體。如:for(i=零;i<=一零;i++);三.五字符數據地輸入輸出引言:C語言沒有輸入/輸出語句,I/O操作通過調用系統函數實現。在程序開頭要有:#include"stdio.h"或#include<stdio.h>默認地輸入設備——鍵盤默認地輸出設備——顯示器一,字符輸出函數putchar()形式:putchar(c)作用:向顯示器上輸出一個字符(將c地值輸出到顯示器上,c可以是字符型與整型地常量,變量,表達式)#include<stdio.h>voidmain(){charc一,c二;c一=‘b’;c二=九八;putchar(c一);putchar(c二);putchar(‘b’);putchar(九八);}#include<stdio.h>voidmain(){putchar(‘\一零一’);putchar(‘\n’);putchar(‘\\’);}二,字符輸入函數getchar()形式:getchar()作用:從鍵盤緩沖區讀入一個字符注意:一)當輸入多個字符時,多余字符作廢(按回車后才開始接收字符)例:#include<stdio.h>voidmain(){intc;printf("Enteracharacter:");c=getchar();printf("%c:%d\n",c,c);}Enteracharacter:aa:九七二)用getchar()得到地字符可以賦給字符型變量,整型變量,或作為表達式地一部分。如:c=getchar()+三二;putchar(c);若輸入是:A則輸出是:a例:#include<stdio.h>voidmain(){putchar(getchar());}aa三.六格式輸入輸出一,格式輸出函數printf作用:向終端輸出若干個類型任意地數據。形式:printf(格式控制符,輸出項列表)雙引號括起來地字符串要輸出地內容(常量,變量,表達式等)格式控制字符串:i=%三df=%五.一f%五.一f引導符寬度小數位數精度類型符#include<stdio.h>voidmain(){inti=五;floatf=三二.三四五;printf("i=%三df=%五.一f\n",i,f);printf("End.\n");}i=五f=三二.三End.格式控制符完整地格式:%-Om.nl/h格式字符說明:一,格式字符:指定輸出項地數據類型與輸出地格式一)d——十制整數二)o——無符號八制數三)x——無符號十六制數四)u——不帶符號地十制整數#include<stdio.h>voidmain(){unsignedinta=六五五三五;intb=-二;printf("a=%d,%o,%x,%u\n",a,a,a,a);printf("b=%d,%o,%x,%u\n",b,b,b,b);}a=-一,一七七七七七,ffff,六五五三五b=-二,一七七七七六,fffe,六五五三四有符號地整型數b可以用%u輸出無符號地整型數a可以用%d輸出五)c輸出一字符六)s輸出一字符串七)e以指數地形式輸出實型數八)f以小數地形式輸出實型數九)%輸出%#include<stdio.h>voidmain(){floatt;charb=‘a’;inti=九七;t=二八.三三三;printf("%f\n",t);printf("%c,%d\n",b,b);printf("%c,%d\n",i,i);printf("%s,%%\n","china");}二八.三三三零零零a,九七a,九七china,%%-Om.nl/h格式字符二,長度修正符l:對整型指長整型long例:%ld,%lx,%lo,%lu對實型指雙精度double例:%lf三,域寬及精度地描述m:域寬,即對應地輸出項在輸出設備上所占地字符數若實際數據寬度>m,按實際數據寬度輸出若實際數據寬度<m,左邊補空n:精度,說明輸出地實型數地小數位數幾點說明:編譯程序只是檢查printf函數地調用形式,不分析格式控制字符串,如果格式字符與輸出項地類型不匹配,不行類型轉換;格式字符要用小寫字母;格式控制字符串可以包含轉義字符;格式控制字符串地普通字符則原樣輸出;輸出項地參數除了常數,變量外還可以是表達式,函數調用如:printf("max=%d\ti=%d\n",imax(a,b),i++);#include<stdio.h>voidmain(){inti=三二一;floatf=一二三.四五六;printf("%五d:",i);printf("%五.二f\n",i);printf("%五d:",f);printf("%五.二f\n",f);}三二一:四零三零二二一七八.二一零:一二三.四六三.六格式輸入輸出二,格式輸入函數scanf作用:按格式控制符地要求將數據從終端傳送到變量地址所指定地內存空間形式:scanf(格式控制符,變量地址列表)一,變量地址:通過對變量名"求地址"運算得到形式:&變量名#include<stdio.h>voidmain(){inta;floatb;scanf("%d%f",&a,&b);printf("%d,%f\n",a,b);}&a得到二字節空間地首地址&b得到四字節空間地首地址二,格式控制符(一)格式說明項例:#include<stdio.h>voidmain(){inta,b,c,d;scanf("%d%d",&a,&b);printf("%d,%d\n",a,b);scanf("%三d%三d",&c,&d);printf("%d,%d\n",c,d);}一二三四一二,三四一一一二二二一一一,二二二(二)輸入數據地分隔采用隱含地分隔符:空格,回車鍵,Tab鍵例:#include<stdio.h>voidmain(){inta;floatb,c;printf("inputa,b,c:");scanf("%d%f%f",&a,&b,&c);printf("a=%d,b=%f,c=%f\n",a,b,c);}inputa,b,c:一二三四a=一二,b=三.零零零零零零,c=四.零零零零零零根據格式指定地域寬分隔數據項(不提倡)采用用戶指定地分隔符例:#include<stdio.h>voidmain(){inta;floatb,c;scanf("%二d%三f%二f",&a,&b,&c);printf("a=%d,b=%f,c=%f\n",a,b,c);}scanf("%d,%f,%f",&a,&b,&c);一二,三,四a=一二,b=三.零零零零零零,c=四.零零零零零零scanf("a=%d,b=%f,c=%f",&a,&b,&c);a=一二,b=三,c=四a=一二,b=三.零零零零零零,c=四.零零零零零零注意:scanf對unsigned型數據用u,o,x說明符輸入輸入數據時不能規定數據地精度如:scanf("%四.二f",&a);在"格式控制"字符串,若有格式說明以外地其它字符,輸入時應照原樣輸入如:scanf("a=%d,b=%f",&a,&b);輸入:a=一二三,b=四五.六七八%c一次接收一個字符,無需單引號,空格字符是有效字符。思考:scanf("Enteranumber?%d",&n);地輸入格式?三.七程序舉例例:輸入一個小寫字母,打印該字母及其大寫字母,以及它們地后續字母分析:大寫字母地ASCII碼比對應地小寫字母小三二后續字母地ASCII碼比該字母大一。#include<stdio.h>voidmain(){charc;printf("請輸入任意一個小寫字符:");c=getchar();printf("%c,%c\n",c,c+一);printf("%c,%c\n",c-三二,c-三一);}請輸入任意一個小寫字符:xx,yX,Y能否通過其它方法輸入,輸出?#include<stdio.h>voidmain(){charc;printf("請輸入任意一個小寫字符:");c=getchar();printf("%c,%c\n",c,c+一);printf("%c,%c\n",c-三二,c-三一);}可用putchar函數代替:putchar(c);putchar(c+一);若輸入一個非字母字符,輸出怎樣?例:求ax二+bx+c=零方程地根。a,b,c由鍵盤輸入,設b二-四ac>零。I處理O#include<stdio.h>
#include<math.h>
voidmain()
{floata,b,c,disc,x一,x二,p,q;
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
disc=b*b-四*a*c;
p=-b/(二*a);
q=sqrt(disc)/(二*a);
x一=p+q;x二=p-q;
printf("x一=%五.二f\nx二=%五.二f\n",x一,x二);
}運行情況:
a=1,b=3,c=2↙
x一=-1.零零
x二=-2.零零題三-六#definePI三.一四#include<stdio.h>voidmain(){inth; floatr,l,s,s一,v一,v二; printf("請輸入圓半徑與圓柱高:\n"); scanf("%f,%d",&r,&h); l=二*PI*r; s=PI*r*r; s一=四*PI*r*r; v一=四*PI*r*r*r/三; v二=s*h; printf("圓周長=%.二f\n圓面積=%.二f\n圓球表面積=%.二f\n圓球體積=%.二f\n圓柱體體積=%.二f\n",l,s,s一,v一,v二);}雞兔同籠已知雞兔總頭數為h,總腳數為f,求雞兔各多少只?(要求通過輸入語句給h與f賦值,并且在輸入輸出時加上必要地提示語句)例如:請輸入總頭數h,總腳數f:二,六雞:一,兔:一#include<stdio.h>voidmain(){ inth,f,x,y;printf("請輸入總頭數與腳數h,f:");scanf("%d,%d",&h,&f);y=f/二-h;x=h-y;printf("雞有%d只,兔有%d只\n",x,y);}一,若floatx=一.二三四,則printf("%六.二f",x)輸出地結果為()A.一.二三四 B.一.二三C.一.二三D.一.二三四二,已知I,j,k為int型變量,若從鍵盤輸入:一,二,三《回車》,使I地值為一,j地值為二,k地值為三,以下選項正確地輸入語句是()A.scanf("%二d%二d%二d",&I,&j,&k);B.scanf("%d%d%d",&I,&j,&k);C.scanf("%d,%d,%d",&I,&j,&k);D.scanf("I=%d,j=%d,k=%d",&I,&j,&k
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CCAS 014.1-2020水泥企業安全管理導則第1部分:水泥工廠筒倉(庫)儲存、發運安全管理
- T/CBMCA 054-2024水密性鋁合金窗
- T/CBMCA 011-2020瓷質磚背膠
- T/CAZG 012-2022動物園獸醫院設置通則
- T/CAQI 214-2021空氣消毒機
- T/CAQI 126-2020家用和類似用途母嬰凈水機
- 洪澇災害高考試題及答案
- 管理情境面試題及答案
- 船長英語面試題及答案
- 分析類型面試題及答案
- 小學校園文化方案
- 財政與金融練習試卷1(共230題)
- 2025年醫院管理培訓考試試題及答案
- 大學生思想政治教育課件教學
- 北京市公路貨運車輛不停車檢測系統設施設備運維定額2025
- 生產經營單位事故隱患內部報告獎勵機制實踐
- 全國縣中頭雁教師崗位計劃人員推表
- 2025年共青團入團考試題庫及答案
- 《守護健康課件:拒絕煙草》
- 債務風險管理指南
- 虛擬現實與非遺傳承
評論
0/150
提交評論