




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章最簡單的C程序設計順序程序設計內容提要:C語句概述
基本的數據輸入/輸出函數簡單的C程序設計著名計算機科學家沃思提出:數據結構+算法=程序描述數據的類型、組織形式描述對數據的操作步驟3.1算法的概念
做事情都有---方法、步驟(順序)---決定事情成敗1、算法:計算機求解某一問題而采用的具體方法、步驟2、兩大類計算機算法:數值運算算法、非數值運算算法(求數值解、成熟)(事務管理、廣泛)3、算法的特性:有窮性、確定性、有效性等4、算法描述:描述算法的方法有多種歸納為二大類:①文字②圖形(符號)3.2算法的描述方法常用的算法描述方法:(1)帶序號的自然語言描述易懂卻不直觀,不嚴格(2)流程圖:靈活、自由、形象、直觀,可表示任何算法輸入/輸出處理判斷起止連接點流程線(3)N-S圖(盒圖):完全去掉了帶箭頭的流程線,算法的所有處理步驟都寫在一個大矩形框(表示簡單、符合結構化思想)(4)偽代碼:用介于自然語言與計算機語言之間的文字及符號來描述算法(方便、易懂、便于向計算機語言過渡)例1:計算S=,寫出其算法。自然語言描述:流程圖描述:N-S圖描述:偽代碼描述:3.3結構化程序設計方法一、結構化程序的三種基本結構
1966年提出三種基本結構,用這三種基本結構作為表示一種良好算法的基本單元:順序、選擇、循環(huán)任何復雜的算法都是由這三種基本結構按一定規(guī)律組成。(1)順序結構ABABa=3;b=4;c=a+b;操作步驟按書寫順序執(zhí)行(2)選擇結構PABTFABTFPif(x!=0)y=sin(x)/x;elsey=1;
(3)循環(huán)結構根據條件P決定是否重復執(zhí)行循環(huán)體中的操作。sum=0;i=1;while(i<=100){sum+=i;i++;}sum=0;i=1;do{sum+=i;i++;}while(i<=100);二、三種基本結構的共同特點
(1)單入口單出口(2)結構內的每一部分都有機會被執(zhí)行(3)不存在“死循環(huán)”三、結構化程序設計的優(yōu)點用三種基本結構組成的程序是結構化程序優(yōu)點:易編、易讀、易懂、易維護強調程序設計風格和程序結構的規(guī)范化核心思想:自頂向下、逐步細化,模塊化設計,結構化編碼舉例:張丘建《算經》中提出“百雞問題”:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、母、雛各幾何?(體會編程步驟)分析:cocks+hens+chicks=1005*cocks+3*hens+chicks/3=100
其中:0≤cocks≤190≤hens≤330≤chicks≤100
思路:依次取cocks的值域中的值,然后求其余兩數,看是否合乎題意算法描述:cocks=0當cocks≤19時
{找滿足題意hens,chicks數
cocks加1}cocks=0當cocks≤19時{hens=0
當hens≤33時
{chicks=100-cocks-hens
如果(5*cocks+3*hens+chicks/3=100)則輸出hens加1}cocks加1}cocks=0
當cocks≤19時
{hens=0
當hens≤33時
{找滿足題意的chicks數
hens加1}cocks加1}細化細化用計算機語言寫出程序
intmain(){intcocks=0,hens,chicks;while(cocks<=19){hens=0;while(hens<=33){chicks=100-cocks-hens;if(5.0*cocks+3.0*hens+chicks/3.0==100)printf(“%d%d%d\n”,cocks,hens,chicks);hens++;}cocks++;}}025752077187813801181683124843.4C語句的概述一、語句用來對數據進行加工(完成操作任務),是構成程序的基本單位,通常一個C程序由若干個函數(系統(tǒng)、用戶提供)組成。每一函數由若干條語句組成。每條語句總是以“;”結束。二、C語句的分類(簡單語句、復合語句、空語句)(一)簡單語句1)表達式語句:由一個表達式后跟“;”組成如:a=3(賦值表達式)a=3;(賦值語句)i++i++;2)函數調用語句:函數調用表達式加一個“;”如:printf(“Hello,world!\n”);3)結構控制語句:控制程序流程選擇語句:if…else…switch
循環(huán)語句:forwhiledo…while…
轉向語句:continuebreakreturngoto(二)復合語句:將一組語句括在一對{}中如:while(i<100){sum+=i;i++;}
說明:
1)復合語句的{}之后不能有“;”
2)復合語句中可以是簡單語句、復合語句、空語句(三)空語句:;/*僅有一個;*/
空語句什么也不做。有時用作被轉向點,或為循環(huán)語句提供空體。如:for(i=0;i<=10;i++);3.5字符數據的輸入輸出引言:C語言沒有輸入/輸出語句,I/O操作通過調用系統(tǒng)函數實現。在程序開頭要有:#include“stdio.h”
或#include<stdio.h>默認的輸入設備——鍵盤默認的輸出設備——顯示器一、字符輸出函數putchar()形式:putchar(c)作用:向顯示器上輸出一個字符(將c的值輸出到顯示器上,c可以是字符型和整型的常量、變量、表達式)#include<stdio.h>intmain(){charc1,c2;c1=‘b’;c2=98;putchar(c1);putchar(c2);putchar(‘b’);putchar(98);}#include<stdio.h>intmain(){putchar(‘\101’);putchar(‘\n’);putchar(‘\\’);}二、字符輸入函數getchar()形式:getchar()作用:從鍵盤緩沖區(qū)讀入一個字符注意:1)當輸入多個字符時,多余字符作廢
(按回車后才開始接收字符)例:#include<stdio.h>intmain(){intc;printf(“Enteracharacter:”);c=getchar();printf(“%c:%d\n”,c,c);}Enteracharacter:aa:972)用getchar()得到的字符可以賦給字符型變量、整型變量,或作為表達式的一部分。如:c=getchar()+32;putchar(c);
若輸入是:A
則輸出是:a例:#include<stdio.h>intmain(){putchar(getchar());}aa3.6格式輸入輸出一、格式輸出函數printf作用:向終端輸出若干個類型任意的數據。形式:printf(格式控制符,輸出項列表)雙引號括起來的字符串要輸出的內容(常量、變量、表達式等)格式控制字符串:
i=%3df=%5.1f%5.1f引導符寬度小數位數精度類型符#include<stdio.h>intmain(){inti=5;floatf=32.345;printf(“i=%3df=%5.1f\n”,i,f);printf(“End.\n”);}i=5f=32.3End.格式控制符完整的格式:
%-Om.nl/h格式字符說明:1、格式字符:指定輸出項的數據類型和輸出的格式
1)d——十進制整數
2)o——無符號八進制數
3)x——無符號十六進制數
4)u——不帶符號的十進制整數#include<stdio.h>intmain(){unsignedinta=65535;intb=-2;printf(“a=%d,%o,%x,%u\n”,a,a,a,a);printf(“b=%d,%o,%x,%u\n”,b,b,b,b);}a=-1,177777,ffff,65535b=-2,177776,fffe,65534有符號的整型數b可以用%u輸出無符號的整型數a可以用%d輸出5)c輸出一字符6)s輸出一字符串7)e以指數的形式輸出實型數8)f以小數的形式輸出實型數9)%輸出%#include<stdio.h>intmain(){floatt;charb=‘a’;inti=97;t=28.333;printf(“%f\n”,t);printf(“%c,%d\n”,b,b);printf(“%c,%d\n”,i,i);printf(“%s,%%\n”,“china”);}28.333000a,97a,97china,%
%-Om.nl/h格式字符2、長度修正符
l:對整型指長整型long
例:%ld,%lx,%lo,%lu
對實型指雙精度double
例:%lf3、域寬及精度的描述
m:域寬,即對應的輸出項在輸出設備上所占的字符數若實際數據寬度>m,按實際數據寬度輸出若實際數據寬度<m,左邊補空
n:精度,說明輸出的實型數的小數位數幾點說明:編譯程序只是檢查printf函數的調用形式,不分析格式控制字符串,如果格式字符與輸出項的類型不匹配,不進行類型轉換;格式字符要用小寫字母;格式控制字符串中可以包含轉義字符;格式控制字符串中的普通字符則原樣輸出;輸出項的參數除了常數、變量外還可以是表達式、函數調用如:printf(“max=%d\ti=%d\n”,imax(a,b),i++);#include<stdio.h>intmain(){inti=321;floatf=123.456;printf(“%5d:”,i);
printf(“%5.2f\n”,i);
printf(“%5d:”,f);printf(“%5.2f\n”,f);}321:403022178.210:123.463.6格式輸入輸出二、格式輸入函數scanf作用:按格式控制符的要求將數據從終端傳送到變量地址所指定的內存空間形式:scanf(格式控制符,變量地址列表)1、變量地址:通過對變量名“求地址”運算得到形式:&變量名#include<stdio.h>intmain(){inta;floatb;scanf(“%d%f”,&a,&b);printf(“%d,%f\n”,a,b);}
&a得到2字節(jié)空間的首地址&b得到4字節(jié)空間的首地址2、格式控制符(1)格式說明項例:#include<stdio.h>intmain(){inta,b,c,d;scanf(“%d%d”,&a,&b);printf(“%d,%d\n”,a,b);scanf(“%3d%3d”,&c,&d);printf(“%d,%d\n”,c,d);}123412,34111222111,222(2)輸入數據的分隔采用隱含的分隔符:空格、回車鍵、Tab鍵例:#include<stdio.h>intmain(){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:1234a=12,b=3.000000,c=4.000000根據格式中指定的域寬分隔數據項(不提倡)采用用戶指定的分隔符例:#include<stdio.h>intmain(){inta;floatb,c;scanf(“%2d%3f%2f”,&a,&b,&c);printf(“a=%d,b=%f,c=%f\n”,a,b,c);}scanf(“%d,%f,%f”,&a,&b,&c);12,3,4a=12,b=3.000000,c=4.000000scanf(“a=%d,b=%f,c=%f”,&a,&b,&c);a=12,b=3,c=4a=12,b=3.000000,c=4.000000注意:scanf中對unsigned型數據用u,o,x說明符輸入輸入數據時不能規(guī)定數據的精度如:scanf(“%4.2f”,&a);在“格式控制”字符串中,若有格式說明以外的其他字符,輸入時應照原樣輸入如:scanf(“a=%d,b=%f”,&a,&b);
輸入:a=123,b=45.678%c一次接收一個字符,無需單引號,空格字符是有效字符。思考:scanf(“Enteranumber?%d”,&n);的輸入格式?3.7程序舉例例:輸入一個小寫字母,打印該字母及其大寫字母,以及它們的后續(xù)字母分析:大寫字母的ASCII碼比對應的小寫字母小32
后續(xù)字母的ASCII碼比該字母大1。#include<stdio.h>intmain(){charc;printf(“請輸入任意一個小寫字符:”);
c=getchar();printf(“%c,%c\n”,c,c+1);printf(“%c,%c\n”,c-32,c-31);}請輸入任意一個小寫字符:xx,yX,Y能否通過其他方法輸入、輸出?#include<stdio.h>intmain(){charc;printf(“請輸入任意一個小寫字符:”);
c=getchar();printf(“%c,%c\n”,c,c+1);printf(“%c,%c\n”,c-32,c-31);}可用putchar函數代替:putchar(c);putchar(c+1);若輸入一個非字母字符,輸出怎樣?例:求ax2+bx+c=0方程的根。a,b,c由鍵盤輸入,設b2-4ac>0。I處理O#include<stdio.h>
#include<math.h>
intmain()
{floata,b,c,disc,x1,x2,p,q;
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;x2=p-q;
printf("x1=%5.2f\nx2=%5.2f\n",x1,x2);
}運行情況:
a=1,b=3,c=2↙
x1=-1.00
x2=-2.00習題3-6#definePI3.14#include<stdio.h>intmain(){inth; floatr,l,s,s1,v1,v2; printf("請輸入圓半徑和圓柱高:\n"); scanf("%f,%d",&r,&h); l=2*PI*r; s=PI*r*r; s1=4*PI*r*r; v1=4*PI*r*r*r/3; v2=s*h; printf("圓周長=%.2f\n圓面積=%.2f\n圓球表面積=%.2f\n圓球體積=%.2f\n圓柱體體積=%.2f\n",l,s,s1,v1,v2);}雞兔同籠已知雞兔總頭數為h,總腳數為f,求雞兔各多少只?(要求通過輸入語句給h和f賦值,并且在輸入輸出時加上必要的提示語句)例如:請輸入總頭數h,總腳數f:2,6雞:1,兔:1#include<stdio.h>intmain(){ inth,f,x,y;printf(“請輸入總頭數和腳數h,f:”);scanf(“%d,%d”,&h,&f);y=f/2-h;x=h-y;printf(“雞有%d只,兔有%d只\n”,x,y);}1、若floatx=1.234,則printf(“%6.2f”,x)輸出的結果為()A.1.234 B.1.23C.1.23D.1.2342、已知I、j、k為int型變量,若從鍵盤輸入:1,2,3《回車》,使I的值為1、j的值為2、k的值為3,以下選項中正確的輸入語句是()A.scanf(“%2d%2d%2d”,&I,&j,&k);B.scanf(“%d%d%d”,&I,&j,&k);C.scanf(“%d,%d,%d”
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中式面點考試題及答案
- 2025中國平煤神馬集團開封華瑞化工新材料股份有限公司招聘21人筆試參考題庫附帶答案詳解
- 人教版高中地理選擇性必修1第三章主題拓展課等壓面(線)的判讀課件
- 市政供水排水管網功能提升項目可行性研究報告
- 費用報銷會計述職報告
- 英語三級試題及答案
- 土方基坑開挖施工方案
- 汽車售后服務流程
- 跨境電商品控年終總結
- 2024四川雅安城投規(guī)劃設計有限公司招聘1名合同制員工考察事宜閱讀模式筆試參考題庫附帶答案詳解
- 項目四任務1:認識毫米波雷達(課件)
- 非正常接發(fā)列車作業(yè)標準
- 體育室內課-體育大富翁
- 180萬噸柴油加氫裝置可行性研究報告
- DLT 5285-2018 輸變電工程架空導線(800mm以下)及地線液壓壓接工藝規(guī)程
- 2024年國家保安員資格考試題庫及參考答案(完整版)
- DL-T692-2018電力行業(yè)緊急救護技術規(guī)范
- 消防員訓練傷的預防及恢復課件
- GB/T 43860.1220-2024觸摸和交互顯示第12-20部分:觸摸顯示測試方法多點觸摸性能
- 醫(yī)院感染防控基本知識2
- 泌尿外科專業(yè)英語詞匯 總結
評論
0/150
提交評論