第2章基本概念_第1頁
第2章基本概念_第2頁
第2章基本概念_第3頁
第2章基本概念_第4頁
第2章基本概念_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章C語言的基本概念

本章要點(diǎn)C程序的基本結(jié)構(gòu)在計(jì)算機(jī)上運(yùn)行C程序的方法§2-1簡單的C語言程序例1:pun.c#include<stdio.h>int

main(){

printf("ToC,ornottoC:thatisthequestion.\n");return0;}以#開頭的是指令。#include,包含標(biāo)準(zhǔn)輸入輸出庫stdio.h每個(gè)C程序必須有一個(gè)主函數(shù)main,int是函數(shù)返回類型每個(gè)C語句以分號結(jié)束return0:表示程序結(jié)束時(shí)向操作系統(tǒng)返回值0C程序文件以.c為文件名后綴編譯和鏈接程序要執(zhí)行,需要三個(gè)步驟:預(yù)處理,

預(yù)先處理程序前面以#開頭的命令編譯,編譯器把程序翻譯成機(jī)器指令(目標(biāo)代碼)鏈接,把編譯后的目標(biāo)代碼和所需的其他附加代碼(如庫函數(shù)printf)整合在一起,產(chǎn)生可執(zhí)行程序。預(yù)處理器與編譯器通常集成在一起4程序編寫及運(yùn)行過程逐句講故事復(fù)述講故事集成開發(fā)環(huán)境集編輯、編譯、鏈接、執(zhí)行甚至調(diào)試為一體的軟件包如,visualC6.0、2010,freeC2.2簡單程序的一般形式指令

intmain(void)

{

語句

}

{}是函數(shù)開始和結(jié)束的標(biāo)志,不可省C程序至少包含三部分:指令、函數(shù)和語句指令C程序編譯前先由預(yù)處理器對指令進(jìn)行預(yù)處理。例如:#include<stdio.h>stdio.h包含或定義C標(biāo)準(zhǔn)輸入/輸出庫信息的頭文件#include<stdio.h>將標(biāo)準(zhǔn)輸入/輸出庫信息包含到我們的程序中通常占一行,沒有結(jié)尾符函數(shù)一系列組合在一起并賦予名字的語句用于構(gòu)造代碼塊,類似過程,便于模塊化對數(shù)學(xué)函數(shù)概念的借用,可返回結(jié)果(return),也可不返回結(jié)果兩類:自編函數(shù),庫函數(shù)C程序總是從main函數(shù)開始執(zhí)行的,與main函數(shù)的位置無關(guān)。在程序終止時(shí)向操作系統(tǒng)返回狀態(tài)碼函數(shù)數(shù)學(xué)概念借用f(x)=ax+c代碼模塊化intmain(){tmt=2;egg=2;salt=5g;soy=5ml;con=10g;oil=50ml;//變量聲明cleantmt;//洗凈番茄flaytmt;//去皮cuttmt;//切塊;cutcon;//蔥花切片egg=egg+salt;//雞蛋加少許鹽mixegg;//打散hotoil;//燒熱油;fryegg;…………return();//盛出;}intmain(){tmt=2;egg=2;salt=5g;soy=5ml;con=10g;oil=50ml;//變量聲明deal_tmt(tmt);//處理番茄deal_egg(egg);//處理雞蛋fry_egg(egg);fry_tmt(tmt);mix_fry(egg,tmt);return();//盛出;}deal_tmt(tmt){

clean(tmt);flay(tmt);cut(tmt);returntmt;}……溫故而知新——低級、高級語言低級語言面向機(jī)器(小孩)高級語言面向用戶(大人)機(jī)器語言匯編語言C語言C++、JAVA溫故而知新——C語言特點(diǎn)高效貼近低級語言,地址訪存可移植性強(qiáng)標(biāo)準(zhǔn)C,編譯器小功能強(qiáng)大豐富的數(shù)據(jù)類型和運(yùn)算符靈活語法靈活,約束少。標(biāo)準(zhǔn)庫常用功能以庫函數(shù)方式提供(成語)溫故而知新——簡單程序的一般形式C程序至少包含三部分:指令、函數(shù)和語句

指令://預(yù)處理指令,#include;#define,準(zhǔn)備工作,如指明庫函數(shù)出處

intmain(/*參數(shù)*/)//程序主體,int(integer)//構(gòu)建程序的構(gòu)件塊,C程序就是函數(shù)的集合

{

語句//程序?qū)嶋H要計(jì)算機(jī)執(zhí)行的操作,以;結(jié)尾

}//{,}表示main函數(shù)的開始于結(jié)束語句語句是程序的基本組成單位以分號結(jié)尾eg:printf(“hello!\n”);//函數(shù)調(diào)用語句,輸出字符串“hello!”,“\n”換行y=3*x+5;//算術(shù)運(yùn)用語句return0;//返回語句;可返回也可不返回練習(xí)(5分鐘)輸出自己姓名、年齡開發(fā)工具C-FreeC-Free(輕量C程序集成開發(fā)環(huán)境)工程方便管理和設(shè)置控制臺程序在32位windows環(huán)境中模擬16位DOS程序,沒有自己的界面,在DOS窗口中執(zhí)行。GCC(GNUCompilerCollection)Linux環(huán)境下最流行的編譯器。MinGW(MinimalistGNUonWindows)在Windows平臺上模擬了Linux下GCC的開發(fā)環(huán)境收集了一系列免費(fèi)的Windows使用的頭文件和庫文件;整合了GNU的工具集,如經(jīng)典gcc,g++,make等。練習(xí)(5分鐘)攻略:1、打開C-Free(輕量C程序集成開發(fā)環(huán)境)2、新建project3、new*.cpp源程序文件4、編寫代碼5、編譯源代碼6、構(gòu)建程序7、運(yùn)行&調(diào)試2.3注釋對程序或代碼進(jìn)行注解,便于程序閱讀和維護(hù),對編譯和運(yùn)行不起作用?!?/”開頭或“/*”和“*/”包含可以用漢字或英文字符表示。放油少許醬油;繼續(xù)翻炒;/*翻炒時(shí)動作要輕柔,頻率不能太高,否則西紅柿太爛了反而不好吃*//*Name:pun.cPurpose:Printsabadpun.Author:K.N.King*/#include<stdio.h>intmain() {printf(“HelloTom!”);//greeting}語句注解程序注解語句注解2.4變量和賦值變量(容器)存放程序執(zhí)行過程中會產(chǎn)生變化的數(shù)據(jù),egf(x)每個(gè)變量都有一個(gè)類型,(碗、盤)n;//人數(shù)floatt;//溫度,浮點(diǎn)數(shù),eg,t=36.8=3.68x10=0.368x102不同類型有不同的取值范圍,由類型的長度決定int兩字節(jié)——16bit,最大32767聲明聲明(介紹)變量說明變量的類型和名字先聲明,后使用單獨(dú)聲明:intheight;floatprofit;合并聲明:intheight,length,width,volume;floatprofit,loss;賦值變量通過賦值獲得值height=8;length=12;width=10;volume=height*length*width;profit=2150.48(f);顯示變量值printf()格式化輸出函數(shù)printf("Height:%d\n",height);printf("Profit:$%.2f\n",profit);printf("%d\n",height*length*width);占位符%d、%f指示變量height的顯示位置,d表示輸出的變量是整數(shù),f表示輸出浮點(diǎn)數(shù)計(jì)算箱子空間重量dweight.c/*Computesthedimensionalweightofa12"x10"x8"box*/#include<stdio.h>

intmain(void){intheight,length,width,volume,weight;

height=8;length=12;width=10;volume=height*length*width;weight=(volume+165)/166;

printf("Dimensions:%dx%dx%d\n",length,width,height);printf("Volume(cubicinches):%d\n",volume);printf("Dimensionalweight(pounds):%d\n",weight);

return0;}printf(“volume:%d\n",length*width*height);顯示表達(dá)式的值初始化聲明變量的同時(shí)賦值初始值,eg,初生體重,身長intyears=8;height=140;weight=30;未初始化化變量,值不可預(yù)期intweight;printf(“myweightis%d\n”,weight);2.5讀入輸入scanf()格式化輸入函數(shù),與printf對應(yīng),f表示format。用格式串指定輸入或輸出數(shù)據(jù)的格式。scanf("%d",&i); /*readsaninteger;storesintoi*/&表示變量i的地址,scanf函數(shù)讀入數(shù)據(jù)必須在變量前加&。scanf("%f",&x);計(jì)算箱子空間重量(改進(jìn)版)dweight2.c/*Computesthedimensionalweightofaboxfrominputprovidedbytheuser*/#include<stdio.h>intmain(void){intheight,length,width,volume,weight;

printf("Enterheightofbox:");scanf("%d",&height);printf("Enterlengthofbox:");scanf("%d",&length);printf("Enterwidthofbox:");scanf("%d",&width);volume=height*length*width;weight=(volume+165)/166;

printf("Volume(cubicinches):%d\n",volume);printf("Dimensionalweight(pounds):%d\n",weight);return0;}2.6定義常量常量:程序執(zhí)行過程中不變的量,比如圓周率,貨幣匯率常量定義通常通過宏定義來完成#definePI3.1415926//宏名(常量名)通常大寫宏定義是預(yù)處理功能的一種,預(yù)處理時(shí)宏將替換為其表示的值(常量)

area=r*r*PI;perimeter=2*r*PI;預(yù)處理area=r*r*3.1415926;perimeter=2*r*3.1415926;思考宏定義的意義?2.7標(biāo)識符變量、函數(shù)、宏和其他實(shí)體的名字統(tǒng)稱標(biāo)識符由字母、數(shù)字和下劃線構(gòu)成,必須以字母或下劃線開頭,大小寫敏感eg:inth1,h2,H1,H2,_w;intmax(intnum1,num2);PI92h,tom-kate;//???關(guān)鍵字對C編譯器有特殊意義的字符串,如int,float,enum一般為小寫不能用作標(biāo)識符C關(guān)鍵字Thefollowingkeywords

can’tbeusedasidentifiers: autoenumrestrict*unsigned breakexternreturnvoid casefloatshortvolatile charforsignedwhile constgotosizeof_Bool* continueifstatic_Complex* defaultinline*struct_Imaginary* dointswitch doublelongtypedef elseregisterunion

*C99only2.8C程序書寫規(guī)范C程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語句,一個(gè)語句可以分寫在多行上,C程序沒有行號。添加空格和空行使程序便于閱讀和理解縮進(jìn)助于識別程序的嵌套層次C程序布局C程序由一連串記號構(gòu)成:Identifiers:標(biāo)識符Keywords:關(guān)鍵字Operators:運(yùn)算符Punctuation:標(biāo)點(diǎn)Constants:常量Stringliterals:字符串字面量32C程序布局語句

printf("Height:%d\n",height);

包含七個(gè)記號: printf Identifier ( Punctuation "Height:%d\n" Stringliteral , Punctuation height Identifier ) Punctuation ; Punctuation33不講布局的程序/*ConvertsaFahrenheittemperaturetoCelsius*/#include<stdio.h>#defineFREEZING_PT32.0f#defineSCALE_FACTOR(5.0f/9.0f)intmain(void){floatfahrenheit,celsius;printf("EnterFahrenheittemperature:");scanf("%f",&fahrenheit);celsius=(fahrenheit-FREEZING_PT)*SCALE_FACTOR;printf("Celsiusequivalent:%.1f\n",celsius);return0;}34如何布局C允許在記號間插入任意數(shù)量的空白空格、制表符、空行布局結(jié)果:語句可分開放在任意多行內(nèi);記號間空格使其容易區(qū)分;縮進(jìn)助于識別嵌套;空行把程序劃分成邏輯單元。35布局好的程序/*ConvertsaFahrenheittemperaturetoCelsius*/#include<stdio.h>#defineFREEZING_PT32.0f#defineSCALE_FACTOR(5.0f/9.0f)intmain(void){floatfahrenheit,celsius;printf("EnterFahrenheittemperature:");scanf("%f",&fahrenheit);celsius=(fahrenheit-FREEZING_PT)*SCALE_FACTOR;printf("Celsiusequivalent:%.1f\n",celsius);return0;}362.9運(yùn)行C程序的

步驟和方法一、運(yùn)行C程序的步驟上機(jī)輸入與編輯源程序預(yù)處理:預(yù)處理器執(zhí)行以#開頭的指令對源程序進(jìn)行編譯與庫函數(shù)鏈接運(yùn)行目標(biāo)程序目標(biāo)代碼f.obj/*hello.c*/#include<stdio.h>void

main(){

printf("Hello,ThisisaCprogram.\n");}預(yù)處理器Hello.c源程序編譯器Hello.exe可執(zhí)行目標(biāo)程序Hello.o可重定位目標(biāo)程序鏈接器printf.o程序練習(xí)1——兩數(shù)求和/*兩數(shù)求和程序,計(jì)算123與456的和*/#include<stdio.h>/*包含stdio庫信息*/intmain()/*程序主體*/{intnum1,num2,sum;/*變量聲明(整型),定義程序中將要使用的變量*/num1=123;num2=456;sum=num1+num2;printf(″sumis%d\n″,sum);

/*輸出結(jié)果*/}兩數(shù)求和VS汽車生產(chǎn)/*兩數(shù)求和程序*/#include<stdio.h>

/*包含stdio庫信息*/

intmain()/*程序主體*/

{

intnum1,num2,sum;

/*變量聲明(整型),定義程序中將要使用的變量*/

num1=123;num2=456;

sum=num1+num2;

printf(″sumis%d\n″,sum);

/*輸出結(jié)果*/

}/*汽車生產(chǎn)工藝*/#include<配件庫存清單>

intmain()/*生產(chǎn)工藝主體*/

{

配件聲明;

車架();

車身();//鈑金、烤漆

裝配();/*發(fā)動機(jī)、車載電子、剎車、輪子、安全*/

下線();}溫故而知新——dweight2.c/*Computesthedimensionalweightofaboxfrominputprovidedbytheuser*/

#include<stdio.h>

intmain(void){intheight,length,width,volume,weight;

printf("Enterheightofbox:");scanf("%d",&height);printf("Enterlengthofbox:");scanf("%d",&length);printf("Enterwidthofbox:");scanf("%d",&width);volume=height*length*width;weight=(volume+165)/166;

printf("Volume(cubicinches):%d\n",volume);printf("Dimensionalweight(pounds):%d\n",weight);

return0;}注釋//預(yù)處理指令主函數(shù)變量聲明格式化輸入;語句;表達(dá)式語句%x占位符,d表整數(shù)先聲明,后使用溫故而知新/*calculatetheareaandperimeterofacircle*/#include<stdio.h>#definePI3.14;intmain(void){ intradius; floatarea; printf("inputtheradius:"); scanf("%d",radius); area=PI*radius*radius; perimeter=2*PI*radius; printf("theareais%f\ntheperimeteris%f",area,perimeter); return0;}注釋//預(yù)處理指令宏定義變量聲明格式化輸入;問題?函數(shù)調(diào)用語句;表達(dá)式語句%x占位符,d表整數(shù)先聲明,后使用,初始化主函數(shù)返回語句;程序練習(xí)2——試卷統(tǒng)分程序練習(xí)2——試卷統(tǒng)分/*提示用戶輸入四道大題分?jǐn)?shù),并求和*/#include<stdio.h>intmain(void){ intscore1,score2,score3,score4,sum;/*變量聲明*/ printf(“Enterfourscores.\n”); scanf(“%d”,&score1);//輸入第一個(gè)數(shù) scanf(“%d”,&score2);//輸入第二個(gè)數(shù) scanf(“%d”,&score3);//輸入第三個(gè)數(shù) scanf(“%d”,&score4);//輸入第四個(gè)數(shù) sum=score1+score2+score3+score4; printf(″sumis%d\n.″,sum);

/*輸出結(jié)果*/}程序問題?scanf(“%d%d%d%d",&score1,&score2,&score3,&score4);程序練習(xí)2——試卷統(tǒng)分(程序錯誤分析)/*提示用戶輸入兩數(shù),并求和*/#include<stdio.h>intmain(){ intscore1,score2,score3,sum;/*變量聲明*/ printf(“Enterfourscores.\n”); scanf(“%d”,&score1);//輸入第一個(gè)數(shù) scanf(“%d”,&score2);//輸入第二個(gè)數(shù) scanf(“%d”,&score2);//輸入第三個(gè)數(shù) scanf(“%d”,&score4);//輸入第四個(gè)數(shù) sum=num1+num2+num3+num4; printf(″sumis%d\n.″,sum);

/*輸出結(jié)果*/}程序練習(xí)3——標(biāo)準(zhǔn)體重計(jì)算根據(jù)身高計(jì)算標(biāo)準(zhǔn)體重標(biāo)準(zhǔn)體重(男)=(身高cm-100)x0.9(kg)標(biāo)準(zhǔn)體重(女)=(身高cm-100)x0.9(kg)-2.5(kg)

程序練習(xí)3——標(biāo)準(zhǔn)體重計(jì)算/*計(jì)算標(biāo)準(zhǔn)體重*/#包含stdio.hintmain(){

聲明變量;

提示輸入性別;

讀入性別;

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論