版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Chap2用C語(yǔ)言編寫(xiě)程序簡(jiǎn)單程序的一般形式
指令
intmain(void)//函數(shù)
{
語(yǔ)句
}2指令在編譯C程序之前,預(yù)處理器先行對(duì)其編輯預(yù)處理器執(zhí)行的命令稱(chēng)為指令Example: #include<stdio.h><stdio.h>//C’sstandardI/Olibrary.指令以#為開(kāi)頭,默認(rèn)只有一行,結(jié)尾無(wú);3函數(shù)數(shù)學(xué):函數(shù)是根據(jù)一個(gè)或多個(gè)給定參數(shù)進(jìn)行數(shù)值計(jì)算的規(guī)則C:函數(shù)是一系列組合在一起并且整體命名的語(yǔ)句集合程序員自行編寫(xiě)的函數(shù)編譯器提供的庫(kù)函數(shù)通常需要返回值 returnx+1;4main
函數(shù)main
函數(shù)是必須的.main函數(shù)是特別的,在程序執(zhí)行時(shí)自動(dòng)被調(diào)用main函數(shù)要求返回一個(gè)狀態(tài)碼,用0表示正常退出5語(yǔ)句語(yǔ)句是程序運(yùn)行時(shí)執(zhí)行的命令.C語(yǔ)言規(guī)定每條語(yǔ)句都要以分號(hào)結(jié)尾,復(fù)合語(yǔ)句除外6注釋單行用//C99//Thisisacomment多行用/*
*/
/*Thisisacomment*/ /*Name:pun.c Purpose:Printsabadpun. Author:K.N.King*/ 7變量與賦值變量:在程序執(zhí)行過(guò)程中臨時(shí)存儲(chǔ)數(shù)據(jù)的單元類(lèi)型:用來(lái)說(shuō)明變量存儲(chǔ)的數(shù)據(jù)種類(lèi)聲明:變量使用之前為編譯器所做的描述
intheight;intheight,length,width,volume;賦值:變量通過(guò)賦值方式獲得值初始化:在聲明時(shí)賦值,未初始化的變量不可控8變量的聲明與使用變量必須先聲明,后使用。#include<stdio.h>intmain(void){intcelsius,fahr;
fahr=100;
celsius=5*(fahr-32)/9;printf("fahr=%d,celsius=%d\n",fahr,celsius);
return0;}一個(gè)變量名只能聲明一次變量一般都定義在程序的頭上不能定義在程序的中間或后面應(yīng)該先賦值,后引用常量常量:在程序運(yùn)行過(guò)程中,其值不能被改變
字面值:89‘A’const類(lèi)型常量名=值;
宏定義:#defineINCHES_PER_POUND166//名稱(chēng)默認(rèn)全大寫(xiě)(規(guī)范不強(qiáng)制)10標(biāo)識(shí)符標(biāo)識(shí)符:變量、常量、函數(shù)、宏定義、結(jié)構(gòu)名等實(shí)體的命名.標(biāo)識(shí)符可以含有字母、數(shù)字、下劃線,但必須以字母或下劃線開(kāi)頭C語(yǔ)言區(qū)分大小寫(xiě)一般要求變量用小寫(xiě),多個(gè)單詞時(shí):current_pagecurrentPage理論上標(biāo)識(shí)符長(zhǎng)度沒(méi)有限制
11關(guān)鍵字如下不能用于標(biāo)識(shí)符: autoenumrestrict*unsigned breakexternreturnvoid casefloatshortvolatile charforsignedwhile constgotosizeof_Bool* continueifstatic_Complex* defaultinline*struct_Imaginary* dointswitch doublelongtypedef elseregisterunion
*C99only標(biāo)準(zhǔn)庫(kù)函數(shù)名稱(chēng)也要回避12代碼書(shū)寫(xiě)規(guī)范單個(gè)語(yǔ)句可以分開(kāi)放在多行里.關(guān)鍵字、標(biāo)識(shí)符、運(yùn)算符、逗號(hào)等后面最好加一下空格通過(guò)縮進(jìn)來(lái)幫助識(shí)別程序嵌套結(jié)構(gòu)通過(guò)空行來(lái)劃分程序邏輯單元亂加空格和分行會(huì)導(dǎo)致錯(cuò)誤字符串太長(zhǎng)怎么辦?printf(“ToC,ornottoC: thatisthequestion.\n");13\printf
函數(shù)printf
函數(shù)用來(lái)顯示格式串 printf(格式串,表達(dá)式1,表達(dá)式2,…);格式串包含普通字符和轉(zhuǎn)換說(shuō)明(以
%
字符開(kāi)頭).普通字符直接顯示,轉(zhuǎn)換說(shuō)明被變量替代14Example:
inti,j; floatx,y;
i=10; j=20; x=43.2892f; y=5527.0f;
printf("i=%d,j=%d,x=%f,y=%f\n",i,j,x,y);Output: i=10,j=20,x=43.289200,y=5527.000000printf
函數(shù)編譯器不檢查轉(zhuǎn)換說(shuō)明和字符串是否匹配.太多轉(zhuǎn)換說(shuō)明: printf("%d%d\n",i);/***WRONG***/太少轉(zhuǎn)換說(shuō)明: printf("%d\n",i,j);/***WRONG***/順序不一致:printf("%f%d\n",i,x);/***WRONG***/15轉(zhuǎn)換說(shuō)明格式轉(zhuǎn)換說(shuō)明標(biāo)準(zhǔn)格式 %m.pX
m(數(shù)字,可選,最小字段寬度,當(dāng)數(shù)值所需字符少于m時(shí),m為正右對(duì)齊,m為負(fù)左對(duì)齊)
p
(數(shù)字,可選,精度,取決于具體說(shuō)明符)
X
(說(shuō)明符,必須).%10.2f,mis10,pis2,andXisf.數(shù)值常用說(shuō)明符d十進(jìn)制e科學(xué)計(jì)數(shù)法,p指明小數(shù)點(diǎn)后的數(shù)字個(gè)數(shù)f浮點(diǎn)數(shù),p指明小數(shù)點(diǎn)后的數(shù)字個(gè)數(shù)g可以自動(dòng)轉(zhuǎn)換,可以顯示為十進(jìn)制、浮點(diǎn)數(shù)或科學(xué)計(jì)數(shù)法,不能用于整數(shù)
tprintf.c
/*Printsintandfloatvaluesinvariousformats*/
#include<stdio.h>
intmain(void) { inti; floatx;
i=40; x=839.21f;
printf("|%d|%5d|%-5d|%5.3d|\n",i,i,i,i); printf("|%10.3f|%10.3e|%-10g|\n",x,x,x);
return0; }Output:
|40|40|40|040| |839.210|8.392e+02|839.21|17轉(zhuǎn)義序列非打印的(控制)字符響鈴符
\a回退符
\b換行符
\n水平制表符
\t顯示\ \\Exampleprintf("Item\tUnit\tPurchase\n\tPrice\tDate\n"); ItemUnitPurchase PriceDate18scanf
函數(shù)scanf
根據(jù)特定格式讀取輸入.scanf(格式串,&變量名1,&變量名2,…);格式串包含普通字符(通常沒(méi)有)和轉(zhuǎn)換說(shuō)明(以
%
字符開(kāi)頭).轉(zhuǎn)換說(shuō)明被變量替代轉(zhuǎn)換說(shuō)明、轉(zhuǎn)義序列與printf用法相同編譯器不檢查轉(zhuǎn)換說(shuō)明和字符串是否匹配19scanf
的匹配過(guò)程scanf
函數(shù)調(diào)用:
scanf("%d%d%f%f",&i,&j,&x,&y);用戶錄入:
1 -20.3 -4.0e3scanf
把用戶輸入當(dāng)作一個(gè)連續(xù)字符流(¤
表示換行符?表示空格): ??1¤-20???.3¤???-4.0e3¤ ssrsrrrsssrrssssrrrrrr(s=skipped;r=read)最后一個(gè)換行符被忽略.20格式串中的普通字符空白字符(空格、制表符、換行符等)可以與輸入中任意數(shù)量的空白字符匹配,包括0個(gè)其他字符匹配時(shí),scanf
放棄輸入字符繼續(xù)處理不匹配時(shí),異常退出21addfrac.c/*Addstwofractions*/
#include<stdio.h>
intmain(void){intnum1,denom1,num2,denom2,result_num,result_denom;printf("Enterfirstfraction:");scanf("%d/%d",&num1,&denom1);
printf("Entersecondfraction:");scanf("%d/%d",&num2,&denom2);
result_num=num1*denom2+num2*denom1;result_denom=denom1*denom2;printf("Thesumis%d/%d\n",result_num,result_denom)return0;}22程序解析分段計(jì)算水費(fèi)要解決的問(wèn)題:輸入計(jì)算分段函數(shù)輸出,并保留2位小數(shù)
求ex程序解析-求分段函數(shù)#include<stdio.h>intmain(void){doublex,y;printf("Enterx(x>=0):\n");/*輸入提示*/
scanf("%lf",&x);/*調(diào)用scanf函數(shù)輸入數(shù)據(jù)*/
if(x<=15) /*if–else語(yǔ)句*/
y=4*x/3;
else
y=2.5*x-10.5;printf("f(%f)=%.2f\n",x,y);
return0;}Enterx(x>=0):9.5f(9.500000)=12.67Enterx(x>=0):15f(15.000000)=20.00Enterx(x>=0):21.3f(21.300000)=42.75軟件測(cè)試的基本思想軟件測(cè)試精心設(shè)計(jì)一批測(cè)試用例[輸入數(shù)據(jù),預(yù)期輸出結(jié)果],然后分別用這些測(cè)試用例運(yùn)行程序,看程序的實(shí)際運(yùn)行結(jié)果與預(yù)期輸出結(jié)果是否一致。inputx:2.5f(2.50)=0.4inputx:0f(0.00)=0.0if(x!=0)
y=1/x;elsey=0;if(x<=15)y=4*x/3;elsey=2.5*x-10.5;Enterx(x>=0):9.5f(9.500000)=12.67Enterx(x>=0):15f(15.000000)=20.00Enterx(x>=0):21.3f(21.300000)=42.75常用數(shù)學(xué)庫(kù)函數(shù)庫(kù)函數(shù)C語(yǔ)言處理系統(tǒng)提供事先編好的函數(shù),供用戶在編程時(shí)調(diào)用。scanf(),printf(),exp()在相應(yīng)的系統(tǒng)文件(頭文件)中定義一些必需的信息。#include命令用戶調(diào)用庫(kù)函數(shù)時(shí),將相應(yīng)的頭文件包含到源程序中。例如調(diào)用scanf,printf,需要#include<stdio.h>調(diào)用sqrt,需要#include<math.h>常用數(shù)學(xué)庫(kù)函數(shù)平方根函數(shù)sqrt(x)
絕對(duì)值函數(shù)fabs(x)fabs(-3.56)的值為3.56冪函數(shù)pow(x,n):xnpow(1.1,2)的值為1.21(即1.12)指數(shù)函數(shù)exp(x):exexp(2.3)的值為e2.3以e為底的對(duì)數(shù)函數(shù)log(x):lnxlog(123.45)的值為4.815836以10為底的對(duì)數(shù)函數(shù)log10(x):log10xlog10(123.45)的值為2.091491。計(jì)算存款的本息輸入存款金額money、存期year和年利率rate,根據(jù)公式計(jì)算存款到期時(shí)的本息合計(jì)sum(稅前),輸出時(shí)保留2位小數(shù)。sum=money(1+rate)yearsum=money*pow((1+rate),year)#include<stdio.h>#include<math.h>
intmain(void){intmoney,year;doublerate,sum;
printf(“Entermoney:");
scanf("%d",&money);
printf(“Enteryear:");scanf("%d",&year);
printf(“Enterrate:");scanf("%lf",&rate);sum=money*pow((1+
rate),year);printf("sum=%.2f",sum);return0;}Entermoney:1000Enteryear:
3Enterrate:
0.025sum=1076.89scanf("%d%d%lf",&money,&year,&rate);結(jié)構(gòu)化程序設(shè)計(jì)思想結(jié)構(gòu)化程序設(shè)計(jì)(StructuredProgramming)程序設(shè)計(jì)技術(shù)C語(yǔ)言是結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言強(qiáng)調(diào)程序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 道路合流管渠擋水墻改造施工方案
- 拒絕煙草我堅(jiān)定
- 爆破工程合同書(shū)樣本
- 瀝青路面翻新合同
- 購(gòu)銷(xiāo)合同與采購(gòu)合同的合同執(zhí)行
- 智能化酒店監(jiān)控設(shè)備
- 鋼筋工勞務(wù)分包合同范例
- 學(xué)習(xí)紀(jì)律保證書(shū)范例
- 門(mén)衛(wèi)室承包協(xié)議
- 地基銷(xiāo)售協(xié)議范本
- 全國(guó)各省關(guān)氏輩分收集
- 壓圈沖壓模具設(shè)計(jì)說(shuō)明書(shū)(終極版) 2
- 蘇教版五下數(shù)學(xué)思維訓(xùn)練7 枚舉法(原卷+解析版)
- 病理生理學(xué)試題及復(fù)習(xí)資料
- 預(yù)防接種門(mén)診流程
- WXZ196系列微機(jī)消諧裝置說(shuō)明書(shū)
- 震雄注塑機(jī)Ai_01操作說(shuō)明書(shū)(中文)
- 壓力管道元件產(chǎn)品合格證
- 10KV變電站供電系統(tǒng)設(shè)計(jì)
- 15立方米的液氯儲(chǔ)罐課程設(shè)計(jì)說(shuō)明書(shū)
- 發(fā)現(xiàn)所授薪律師及律師助理管理辦法
評(píng)論
0/150
提交評(píng)論