簡單C語言程序設(shè)計指導(dǎo)_第1頁
簡單C語言程序設(shè)計指導(dǎo)_第2頁
簡單C語言程序設(shè)計指導(dǎo)_第3頁
簡單C語言程序設(shè)計指導(dǎo)_第4頁
簡單C語言程序設(shè)計指導(dǎo)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

簡單C語言程序設(shè)計指導(dǎo)本章目標(biāo)掌握標(biāo)準(zhǔn)輸入輸出函數(shù)的格式及使用。會編寫簡單C程序會使用常用數(shù)學(xué)函數(shù)3.1語句

語句是程序最基本的執(zhí)行單位,程序的功能就是通過對一系列語句的執(zhí)行來實現(xiàn)的(1)控制語句,實現(xiàn)流程控制,如:

分支語句實現(xiàn)分支控制過程:if(a>b)x=a;elsex=b;(2)變量聲明語句:如

floatx,y,z;(3)表達式語句:表達式加分號“;”(4)復(fù)合語句:用一對“{}”,將若干語句順序組合在一起就形成了一個程序段。(5)空語句。只有一個分號構(gòu)成的語句,表示什么也不做。3.2標(biāo)準(zhǔn)文件輸入輸出函數(shù)一個C語言的源程序要有輸入輸出功能。C語言本身并沒有提供專門的數(shù)據(jù)輸入/輸出語句,而是用C標(biāo)準(zhǔn)函數(shù)庫中的函數(shù)來實現(xiàn)的,如scanf、printf等。在使用標(biāo)準(zhǔn)的輸入/輸出庫函數(shù)時,需要使用預(yù)編譯命令”#include<stdio.h>”

C語言中從標(biāo)準(zhǔn)輸入和輸出設(shè)備中進行讀寫的四個標(biāo)準(zhǔn)函數(shù)是:格式輸出函數(shù)printf、格式輸入函數(shù)scanf、字符輸入函數(shù)getchar和字符輸出函數(shù)putchar3.2.1字符輸入輸出函數(shù)例3.1猜字母:輸入某字母在字母表中的序號(從1開始),輸出該字母(大寫)#include<stdio.h>intmain(){charch;intindex;scanf(“%d”,&index);ch=‘A’+index-1;

//或ch=64+index;printf(“%c”,ch);}putchar(ch);putchar()函數(shù)的其功能是向終端輸出其括號內(nèi)參數(shù)的內(nèi)容,參數(shù)可以是字符變量、字符常量輸出字符’a’:

putchar(‘a(chǎn)’);輸出一個回車符

putchar(‘\n’);輸出字符變量a的值:

putchar(a);猜猜:

putchar(65);輸出什么?到VC中試試3.2.1字符輸入輸出函數(shù)例3.2小寫字母變大寫#include<stdio.h>intmain(){charch1,ch2;ch1=getchar();ch2=ch1-32;//小寫字母比大寫字母的ASCCI碼大32;

putchar(ch2);}getchar()函數(shù)沒有參數(shù),其功能是從終端讀入一個字符,作為函數(shù)值返回小練習(xí)計算字母序號,輸入一個字母(小寫),輸出該字母在字母表中的序號(1)讀入字符ch;(2)計算序號index=ch-’a’+1;(3)輸出整數(shù)indexcharch;intindex;ch=getchar();index=ch-’a’+1;printf(“%d\n”,index);3.2.2格式化輸出函數(shù)printfprintf("%d"

,count);printf將一些信息按照指定的格式送到標(biāo)準(zhǔn)輸出(顯示器)count輸出參數(shù)表:待輸出的數(shù)據(jù),可以是常量、變量或表達式格式:printf(“格式控制串”,輸出參數(shù)表)

"%d"

格式字符串:指定數(shù)據(jù)的輸出格式例3.3求華氏溫度100F對應(yīng)的攝氏溫度#include<stdio.h>intmain(){

intcelsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(“fahr=%d,celsius=%d\n",fahr,celsius);return0;}

執(zhí)行程序的輸出結(jié)果為:

fahr=100,celsius=37引號內(nèi)的fahr和引號外的fahr有區(qū)別嗎?輸出格式printf(“fahr=%d,celsius=%d\n",fahr,celsius);普通字符,原樣輸出%開頭的是轉(zhuǎn)換說明,對應(yīng)與后面一個輸出參數(shù),對應(yīng)參數(shù)將被轉(zhuǎn)換成指定格式后在該位置輸出輸出結(jié)果:fahr=100,celsius=37輸出參數(shù)列表‘\n’是轉(zhuǎn)意字符,用來輸出一個回車轉(zhuǎn)換字符串printf("%d"

,count);"%d"

轉(zhuǎn)換字符串說明%d將參數(shù)按整數(shù)形式轉(zhuǎn)換輸出,對應(yīng)參數(shù)應(yīng)是int類型%ld將參數(shù)按長整數(shù)形式轉(zhuǎn)換輸出,對應(yīng)參數(shù)是long型%c輸出一個字符,對應(yīng)參數(shù)應(yīng)該是一個字符%s輸出一個字符串,對應(yīng)參數(shù)應(yīng)該是一個字符串%f將參數(shù)按帶小數(shù)點數(shù)形式輸出,對應(yīng)參數(shù)應(yīng)是double類型,默認情況下精確到

6位小數(shù)轉(zhuǎn)換字符串%dintvisitor_count=150;printf("

%d"

,visitor_count);輸出結(jié)果:150轉(zhuǎn)換字符串%mdintsalary=5500;printf("

%10d"

,salary);輸出結(jié)果:

5500輸出結(jié)果的左邊顯示了6個空格"

%10d"轉(zhuǎn)換字符串%ffloatcircumference=78.53;printf("

%f"

,circumference);輸出結(jié)果:78.530000默認情況下精確到六位小數(shù)9.4786789;9.478679轉(zhuǎn)換字符串%m.nfdoublemercury_level=168.2251074;printf("%7.2f"

,mercury_level);輸出結(jié)果:

168.23寬度,表示所有的數(shù)字和小數(shù)點所占的位數(shù)。不夠7位右對齊。"%7.2f"

精度(精確到小數(shù)點后多少位)scanf("%d",&num);3.2.3scanf函數(shù)轉(zhuǎn)換字符串參數(shù)變量的類型要求的實際輸入%dint十進制數(shù)字序列%ffloat十進制數(shù)實數(shù)%lfdouble十進制數(shù)實數(shù)scanf函數(shù)從標(biāo)準(zhǔn)輸入(鍵盤)讀取信息,按照格式描述把讀入的信息轉(zhuǎn)換為指定數(shù)據(jù)類型的數(shù)據(jù),并把這些數(shù)據(jù)賦給指定的程序變量。

轉(zhuǎn)換字符串&符號(附在讀取的每個變量上)用于指明變量在內(nèi)存中的位置變量的名稱內(nèi)存scanffloattax_rate;scanf("%f"

,&tax_rate);tax_rate在內(nèi)存中分配一塊32位存儲空間存儲空間使用名稱“tax_rate”標(biāo)識提示用戶輸入一個值輸入的值存儲在變量中(因為scanf提供此變量的地址)12.234內(nèi)存scanfdoubletax_rate;scanf("%lf"

,&tax_rate);tax_rate在內(nèi)存中分配一塊64位存儲空間存儲空間使用名稱“tax_rate”標(biāo)識提示用戶輸入一個值輸入的值存儲在變量中(因為scanf提供此變量的地址)12.234約定:以后凡說要定義實型變量,都使用double#include<stdio.h>intmain(){

doubleradius,high,vol;printf("請輸入圓柱體底面積的半徑和圓柱體的高:");scanf("%lf%lf",&radius,&high);vol=3.14*radius*radius*high;printf("radius=%f,high=%f,vol=%f\n",radius,high,vol);}例3.4計算圓柱體積內(nèi)存radiushighvol510785請輸入圓柱體底面積的半徑和圓柱體的高:510小練習(xí)(1)編程,從鍵盤讀入一個數(shù)圓的半徑radius(實數(shù)),輸出圓的面積,保留兩位小數(shù)scanf函數(shù)使用注意scanf(格式字符串,地址列表)在格式字符串中若有普通字符,則輸入時在對應(yīng)位置也必須輸入該普通字符,否則會因讀入格式錯誤而終止程序。如果有scanf(“%d,%d”,&a,&b)輸入的兩個數(shù)直接必須有一個逗號3,5正確35錯誤如果有scanf(“a=%d,b=%d”,&a,&b)輸入應(yīng)該是:a=3,b=5,否則就會失敗scanf的格式字符串中最好不加任何普通字符,只寫%開頭的格式轉(zhuǎn)換符。如scanf(“%d%d”,&a,&b)不要給自己制造太多格式限制!數(shù)學(xué)函數(shù)的使用要包含頭文件<math.h>:#include<math.h>1、求絕對值求整數(shù)的絕對值,用abs:inti=-3,j;j=abs(i);求實數(shù)的絕對值,用fabs:doublea=-12.3,b;b=fabs(a);數(shù)學(xué)函數(shù)的使用2、求開方,用sqrtdoublea=2.3,b;b=sqrt(a);3、求冪xy,用powdoublex=2,y=3,z;z=pow(x,y)

4、求ex,用expdoublex=2.3,b;y=exp(x);數(shù)學(xué)函數(shù)的使用5、求自然對數(shù),用logdoublex=13,y;y=log(x);6、求以10為底的對數(shù),用log10doublex=13,y;y=log10(x);數(shù)學(xué)函數(shù)的使用7、三角函數(shù)doublex=1.5,y;y=sin(x);y=cos(x);y=tan(x);更多數(shù)學(xué)函數(shù)見書本319頁表D2例3.5:計算兩點間距離編程:輸入4個實數(shù)x1,y1,x2,y2,數(shù)據(jù)之間用空格隔開。表示兩點坐標(biāo)(x1,y1),(x2,y2),計算并輸出兩點間的距離。結(jié)果保留兩位小數(shù)。(提示:sqrt(a)可以求a的開方)解題思路(1)用double定義x1,y1,x2,y2,dist(2)讀入四個整數(shù)x1,y1,x2,y2(3)計算dist:dist=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)

)也可以寫成兩個語句:dist=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);dist=sqrt(dist);(4)輸出dist,保留2為小數(shù),用%.2f程序#include<stdio.h>#include<math.h>intmain(){ doublex1,y1,x2,y2,dist; scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2); dist=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); dist=sqrt(dist); printf("%.2f",dist); return0;}例3.6求整數(shù)的位數(shù)輸入一個整數(shù),輸出該整數(shù)的位數(shù)。提示:(1)求n的對數(shù)函數(shù)為:log10(n);(2)考慮一個整數(shù)的對數(shù)和位數(shù)的關(guān)系:對數(shù)取整加1即該數(shù)的位數(shù)(3)可用強制類型轉(zhuǎn)換扔掉小數(shù)部分有以上3點可知,整數(shù)n的位數(shù)是:(int)log10(n)+1;類型轉(zhuǎn)換(P32)1、不同級別的操作數(shù)運算時,精度低的自動想精度高的轉(zhuǎn)換如:doublea=1/2;a的值是0.0doublea=1.0/2;a的值是0.5

2、賦值時類型轉(zhuǎn)換如:

doublea=1;//會把1.0賦給ainti=1.5;//會把1.5轉(zhuǎn)換為整型得1,賦給i類型轉(zhuǎn)換3、強制類型轉(zhuǎn)換

(類型名)操作數(shù)如:doublea=2.5;intn;n=(int)a;

//將a的值轉(zhuǎn)換為整型2,賦給n又如:求兩整數(shù)的商,商為實數(shù)

inta=2,b=3;doublec;c=(double)a/b;

//強制類型轉(zhuǎn)換或c=1.0*a/b;

//不同類型運算時向精度高的轉(zhuǎn)換

先將a轉(zhuǎn)換為實數(shù),再除以b!強制轉(zhuǎn)換優(yōu)先級最高例3.6的程序#include<stdio.h>#include<math.h>intmain(){ intn,len; scanf("%d",&n); len=(int)log10(n)+1;//因為len是整型,寫成len=log10(n)+1;也行

printf("%d是%d位數(shù)\n",n,len); return0;}課下作業(yè)熟練默寫本章6個例子,并上機調(diào)試。上機作業(yè):1、實數(shù)的絕對值:輸入一個實數(shù),輸出它的絕對值,結(jié)果保留兩位小數(shù)。2、兩點間距離:輸入4個實數(shù)x1,y1,x2,y2,數(shù)據(jù)之間用空格隔開。表示兩點坐標(biāo)(x1,y1),(x2,y2),計算并輸出兩點間的距離。結(jié)果保留兩位小數(shù)。3、編程

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論