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

下載本文檔

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

文檔簡介

第二章C語言的基本概念

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

main(){

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

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

intmain(void)

{

語句

}

{}是函數(shù)開始和結(jié)束的標志,不可省C程序至少包含三部分:指令、函數(shù)和語句指令C程序編譯前先由預處理器對指令進行預處理。例如:#include<stdio.h>stdio.h包含或定義C標準輸入/輸出庫信息的頭文件#include<stdio.h>將標準輸入/輸出庫信息包含到我們的程序中通常占一行,沒有結(jié)尾符函數(shù)一系列組合在一起并賦予名字的語句用于構(gòu)造代碼塊,類似過程,便于模塊化對數(shù)學函數(shù)概念的借用,可返回結(jié)果(return),也可不返回結(jié)果兩類:自編函數(shù),庫函數(shù)C程序總是從main函數(shù)開始執(zhí)行的,與main函數(shù)的位置無關(guān)。在程序終止時向操作系統(tǒng)返回狀態(tài)碼函數(shù)數(shù)學概念借用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;}……溫故而知新——低級、高級語言低級語言面向機器(小孩)高級語言面向用戶(大人)機器語言匯編語言C語言C++、JAVA溫故而知新——C語言特點高效貼近低級語言,地址訪存可移植性強標準C,編譯器小功能強大豐富的數(shù)據(jù)類型和運算符靈活語法靈活,約束少。標準庫常用功能以庫函數(shù)方式提供(成語)溫故而知新——簡單程序的一般形式C程序至少包含三部分:指令、函數(shù)和語句

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

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

{

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

}//{,}表示main函數(shù)的開始于結(jié)束語句語句是程序的基本組成單位以分號結(jié)尾eg:printf(“hello!\n”);//函數(shù)調(diào)用語句,輸出字符串“hello!”,“\n”換行y=3*x+5;//算術(shù)運用語句return0;//返回語句;可返回也可不返回練習(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)境收集了一系列免費的Windows使用的頭文件和庫文件;整合了GNU的工具集,如經(jīng)典gcc,g++,make等。練習(5分鐘)攻略:1、打開C-Free(輕量C程序集成開發(fā)環(huán)境)2、新建project3、new*.cpp源程序文件4、編寫代碼5、編譯源代碼6、構(gòu)建程序7、運行&調(diào)試2.3注釋對程序或代碼進行注解,便于程序閱讀和維護,對編譯和運行不起作用?!?/”開頭或“/*”和“*/”包含可以用漢字或英文字符表示。放油少許醬油;繼續(xù)翻炒;/*翻炒時動作要輕柔,頻率不能太高,否則西紅柿太爛了反而不好吃*//*Name:pun.cPurpose:Printsabadpun.Author:K.N.King*/#include<stdio.h>intmain() {printf(“HelloTom!”);//greeting}語句注解程序注解語句注解2.4變量和賦值變量(容器)存放程序執(zhí)行過程中會產(chǎn)生變化的數(shù)據(jù),egf(x)每個變量都有一個類型,(碗、盤)n;//人數(shù)floatt;//溫度,浮點數(shù),eg,t=36.8=3.68x10=0.368x102不同類型有不同的取值范圍,由類型的長度決定int兩字節(jié)——16bit,最大32767聲明聲明(介紹)變量說明變量的類型和名字先聲明,后使用單獨聲明: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表示輸出浮點數(shù)計算箱子空間重量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);顯示表達式的值初始化聲明變量的同時賦值初始值,eg,初生體重,身長intyears=8;height=140;weight=30;未初始化化變量,值不可預期intweight;printf(“myweightis%d\n”,weight);2.5讀入輸入scanf()格式化輸入函數(shù),與printf對應,f表示format。用格式串指定輸入或輸出數(shù)據(jù)的格式。scanf("%d",&i); /*readsaninteger;storesintoi*/&表示變量i的地址,scanf函數(shù)讀入數(shù)據(jù)必須在變量前加&。scanf("%f",&x);計算箱子空間重量(改進版)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//宏名(常量名)通常大寫宏定義是預處理功能的一種,預處理時宏將替換為其表示的值(常量)

area=r*r*PI;perimeter=2*r*PI;預處理area=r*r*3.1415926;perimeter=2*r*3.1415926;思考宏定義的意義?2.7標識符變量、函數(shù)、宏和其他實體的名字統(tǒng)稱標識符由字母、數(shù)字和下劃線構(gòu)成,必須以字母或下劃線開頭,大小寫敏感eg:inth1,h2,H1,H2,_w;intmax(intnum1,num2);PI92h,tom-kate;//???關(guān)鍵字對C編譯器有特殊意義的字符串,如int,float,enum一般為小寫不能用作標識符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)可以寫幾個語句,一個語句可以分寫在多行上,C程序沒有行號。添加空格和空行使程序便于閱讀和理解縮進助于識別程序的嵌套層次C程序布局C程序由一連串記號構(gòu)成:Identifiers:標識符Keywords:關(guān)鍵字Operators:運算符Punctuation:標點Constants:常量Stringliterals:字符串字面量32C程序布局語句

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

包含七個記號: 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ū)分;縮進助于識別嵌套;空行把程序劃分成邏輯單元。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運行C程序的

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

main(){

printf("Hello,ThisisaCprogram.\n");}預處理器Hello.c源程序編譯器Hello.exe可執(zhí)行目標程序Hello.o可重定位目標程序鏈接器printf.o程序練習1——兩數(shù)求和/*兩數(shù)求和程序,計算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ā)動機、車載電子、剎車、輪子、安全*/

下線();}溫故而知新——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;}注釋//預處理指令主函數(shù)變量聲明格式化輸入;語句;表達式語句%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;}注釋//預處理指令宏定義變量聲明格式化輸入;問題?函數(shù)調(diào)用語句;表達式語句%x占位符,d表整數(shù)先聲明,后使用,初始化主函數(shù)返回語句;程序練習2——試卷統(tǒng)分程序練習2——試卷統(tǒng)分/*提示用戶輸入四道大題分數(shù),并求和*/#include<stdio.h>intmain(void){ intscore1,score2,score3,score4,sum;/*變量聲明*/ printf(“Enterfourscores.\n”); scanf(“%d”,&score1);//輸入第一個數(shù) scanf(“%d”,&score2);//輸入第二個數(shù) scanf(“%d”,&score3);//輸入第三個數(shù) scanf(“%d”,&score4);//輸入第四個數(shù) sum=score1+score2+score3+score4; printf(″sumis%d\n.″,sum);

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

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

程序練習3——標準體重計算/*計算標準體重*/#包含stdio.hintmain(){

聲明變量;

提示輸入性別;

讀入性別;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論