




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Chap2用C語言編寫程序簡單程序的一般形式
指令
intmain(void)//函數(shù)
{
語句
}2指令在編譯C程序之前,預(yù)處理器先行對(duì)其編輯預(yù)處理器執(zhí)行的命令稱為指令Example: #include<stdio.h><stdio.h>//C’sstandardI/Olibrary.指令以#為開頭,默認(rèn)只有一行,結(jié)尾無;3函數(shù)數(shù)學(xué):函數(shù)是根據(jù)一個(gè)或多個(gè)給定參數(shù)進(jìn)行數(shù)值計(jì)算的規(guī)則C:函數(shù)是一系列組合在一起并且整體命名的語句集合程序員自行編寫的函數(shù)編譯器提供的庫函數(shù)通常需要返回值 returnx+1;4main
函數(shù)main
函數(shù)是必須的.main函數(shù)是特別的,在程序執(zhí)行時(shí)自動(dòng)被調(diào)用main函數(shù)要求返回一個(gè)狀態(tài)碼,用0表示正常退出5語句語句是程序運(yùn)行時(shí)執(zhí)行的命令.C語言規(guī)定每條語句都要以分號(hào)結(jié)尾,復(fù)合語句除外6注釋單行用//C99//Thisisacomment多行用/*
*/
/*Thisisacomment*/ /*Name:pun.c Purpose:Printsabadpun. Author:K.N.King*/ 7變量與賦值變量:在程序執(zhí)行過程中臨時(shí)存儲(chǔ)數(shù)據(jù)的單元類型:用來說明變量存儲(chǔ)的數(shù)據(jù)種類聲明:變量使用之前為編譯器所做的描述
intheight;intheight,length,width,volume;賦值:變量通過賦值方式獲得值初始化:在聲明時(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)行過程中,其值不能被改變
字面值:89‘A’const類型常量名=值;
宏定義:#defineINCHES_PER_POUND166//名稱默認(rèn)全大寫(規(guī)范不強(qiáng)制)10標(biāo)識(shí)符標(biāo)識(shí)符:變量、常量、函數(shù)、宏定義、結(jié)構(gòu)名等實(shí)體的命名.標(biāo)識(shí)符可以含有字母、數(shù)字、下劃線,但必須以字母或下劃線開頭C語言區(qū)分大小寫一般要求變量用小寫,多個(gè)單詞時(shí):current_pagecurrentPage理論上標(biāo)識(shí)符長度沒有限制
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)庫函數(shù)名稱也要回避12代碼書寫規(guī)范單個(gè)語句可以分開放在多行里.關(guān)鍵字、標(biāo)識(shí)符、運(yùn)算符、逗號(hào)等后面最好加一下空格通過縮進(jìn)來幫助識(shí)別程序嵌套結(jié)構(gòu)通過空行來劃分程序邏輯單元亂加空格和分行會(huì)導(dǎo)致錯(cuò)誤字符串太長怎么辦?printf(“ToC,ornottoC: thatisthequestion.\n");13\printf
函數(shù)printf
函數(shù)用來顯示格式串 printf(格式串,表達(dá)式1,表達(dá)式2,…);格式串包含普通字符和轉(zhuǎn)換說明(以
%
字符開頭).普通字符直接顯示,轉(zhuǎn)換說明被變量替代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)換說明和字符串是否匹配.太多轉(zhuǎn)換說明: printf("%d%d\n",i);/***WRONG***/太少轉(zhuǎn)換說明: printf("%d\n",i,j);/***WRONG***/順序不一致:printf("%f%d\n",i,x);/***WRONG***/15轉(zhuǎn)換說明格式轉(zhuǎn)換說明標(biāo)準(zhǔn)格式 %m.pX
m(數(shù)字,可選,最小字段寬度,當(dāng)數(shù)值所需字符少于m時(shí),m為正右對(duì)齊,m為負(fù)左對(duì)齊)
p
(數(shù)字,可選,精度,取決于具體說明符)
X
(說明符,必須).%10.2f,mis10,pis2,andXisf.數(shù)值常用說明符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,…);格式串包含普通字符(通常沒有)和轉(zhuǎn)換說明(以
%
字符開頭).轉(zhuǎn)換說明被變量替代轉(zhuǎn)換說明、轉(zhuǎn)義序列與printf用法相同編譯器不檢查轉(zhuǎn)換說明和字符串是否匹配19scanf
的匹配過程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)要解決的問題:輸入計(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=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軟件測試的基本思想軟件測試精心設(shè)計(jì)一批測試用例[輸入數(shù)據(jù),預(yù)期輸出結(jié)果],然后分別用這些測試用例運(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é)庫函數(shù)庫函數(shù)C語言處理系統(tǒng)提供事先編好的函數(shù),供用戶在編程時(shí)調(diào)用。scanf(),printf(),exp()在相應(yīng)的系統(tǒng)文件(頭文件)中定義一些必需的信息。#include命令用戶調(diào)用庫函數(shù)時(shí),將相應(yīng)的頭文件包含到源程序中。例如調(diào)用scanf,printf,需要#include<stdio.h>調(diào)用sqrt,需要#include<math.h>常用數(shù)學(xué)庫函數(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語言是結(jié)構(gòu)化程序設(shè)計(jì)語言強(qiáng)調(diào)程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025江蘇淮安生物工程高等職業(yè)學(xué)校公開招聘13人模擬試卷及參考答案詳解一套
- 2025湖北恩施州巴東縣綠蔥坡鎮(zhèn)人民政府公益性崗位招聘4人考前自測高頻考點(diǎn)模擬試題有完整答案詳解
- 2025湖南長沙市開福區(qū)望麓園街道社區(qū)衛(wèi)生服務(wù)中心公開招聘衛(wèi)生專業(yè)技術(shù)臨聘人員2人考前自測高頻考點(diǎn)模擬試題及參考答案詳解一套
- 2025年湖州吳興區(qū)醫(yī)療衛(wèi)生單位公開招聘編外工作人員30人模擬試卷及1套參考答案詳解
- 2025貴州遵義醫(yī)科大學(xué)附屬口腔醫(yī)院第十三屆貴州人才博覽會(huì)引進(jìn)急需緊缺專業(yè)人才6人考前自測高頻考點(diǎn)模擬試題完整答案詳解
- 2025安徽淮南市淮河能源控股集團(tuán)校園招聘300人考前自測高頻考點(diǎn)模擬試題完整參考答案詳解
- 2025年信陽浉河區(qū)招聘城市社區(qū)工作人員128人模擬試卷及答案詳解1套
- 2025江蘇連云港市贛榆區(qū)事業(yè)單位招聘31人模擬試卷及完整答案詳解一套
- 2025吉林銀行總行派駐四平審計(jì)分部現(xiàn)場審計(jì)中心副經(jīng)理社會(huì)招聘1人考前自測高頻考點(diǎn)模擬試題及答案詳解(典優(yōu))
- 2025年吉林省特崗教師招聘考試職位表考前自測高頻考點(diǎn)模擬試題及一套參考答案詳解
- 2025年輔警考試真題及答案
- 2025-2026學(xué)年統(tǒng)編版五年級(jí)上冊(cè)語文第二單元過關(guān)試卷附答案(三套)
- 2025年農(nóng)村土地租賃協(xié)議(合同樣本)
- 2025年固態(tài)變壓器(SST)行業(yè)研究報(bào)告及未來發(fā)展趨勢(shì)預(yù)測
- 海上安全培訓(xùn)課課件
- 神經(jīng)外科重癥管理臨床指南
- 少年讀史記課件
- 鐵路客運(yùn)防寒過冬課件
- 基礎(chǔ)知識(shí)產(chǎn)權(quán)培訓(xùn)課件
- 2025四川天府新區(qū)籍田中心衛(wèi)生院招聘醫(yī)師、藥師、護(hù)士崗位6人筆試參考題庫附答案解析
- 任職資格認(rèn)證匯報(bào)
評(píng)論
0/150
提交評(píng)論