




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章C語言的基本概念
本章要點C程序的基本結構在計算機上運行C程序的方法§2-1簡單的C語言程序例1:pun.c#include<stdio.h>int
main(){
printf("ToC,ornottoC:thatisthequestion.\n");return0;}以#開頭的是指令。#include,包含標準輸入輸出庫stdio.h每個C程序必須有一個主函數main,int是函數返回類型每個C語句以分號結束return0:表示程序結束時向操作系統返回值0C程序文件以.c為文件名后綴編譯和鏈接程序要執行,需要三個步驟:預處理,
預先處理程序前面以#開頭的命令編譯,編譯器把程序翻譯成機器指令(目標代碼)鏈接,把編譯后的目標代碼和所需的其他附加代碼(如庫函數printf)整合在一起,產生可執行程序。預處理器與編譯器通常集成在一起4程序編寫及運行過程逐句講故事復述講故事集成開發環境集編輯、編譯、鏈接、執行甚至調試為一體的軟件包如,visualC6.0、2010,freeC2.2簡單程序的一般形式指令
intmain(void)
{
語句
}
{}是函數開始和結束的標志,不可省C程序至少包含三部分:指令、函數和語句指令C程序編譯前先由預處理器對指令進行預處理。例如:#include<stdio.h>stdio.h包含或定義C標準輸入/輸出庫信息的頭文件#include<stdio.h>將標準輸入/輸出庫信息包含到我們的程序中通常占一行,沒有結尾符函數一系列組合在一起并賦予名字的語句用于構造代碼塊,類似過程,便于模塊化對數學函數概念的借用,可返回結果(return),也可不返回結果兩類:自編函數,庫函數C程序總是從main函數開始執行的,與main函數的位置無關。在程序終止時向操作系統返回狀態碼函數數學概念借用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,編譯器小功能強大豐富的數據類型和運算符靈活語法靈活,約束少。標準庫常用功能以庫函數方式提供(成語)溫故而知新——簡單程序的一般形式C程序至少包含三部分:指令、函數和語句
指令://預處理指令,#include;#define,準備工作,如指明庫函數出處
intmain(/*參數*/)//程序主體,int(integer)//構建程序的構件塊,C程序就是函數的集合
{
語句//程序實際要計算機執行的操作,以;結尾
}//{,}表示main函數的開始于結束語句語句是程序的基本組成單位以分號結尾eg:printf(“hello!\n”);//函數調用語句,輸出字符串“hello!”,“\n”換行y=3*x+5;//算術運用語句return0;//返回語句;可返回也可不返回練習(5分鐘)輸出自己姓名、年齡開發工具C-FreeC-Free(輕量C程序集成開發環境)工程方便管理和設置控制臺程序在32位windows環境中模擬16位DOS程序,沒有自己的界面,在DOS窗口中執行。GCC(GNUCompilerCollection)Linux環境下最流行的編譯器。MinGW(MinimalistGNUonWindows)在Windows平臺上模擬了Linux下GCC的開發環境收集了一系列免費的Windows使用的頭文件和庫文件;整合了GNU的工具集,如經典gcc,g++,make等。練習(5分鐘)攻略:1、打開C-Free(輕量C程序集成開發環境)2、新建project3、new*.cpp源程序文件4、編寫代碼5、編譯源代碼6、構建程序7、運行&調試2.3注釋對程序或代碼進行注解,便于程序閱讀和維護,對編譯和運行不起作用。“//”開頭或“/*”和“*/”包含可以用漢字或英文字符表示。放油少許醬油;繼續翻炒;/*翻炒時動作要輕柔,頻率不能太高,否則西紅柿太爛了反而不好吃*//*Name:pun.cPurpose:Printsabadpun.Author:K.N.King*/#include<stdio.h>intmain() {printf(“HelloTom!”);//greeting}語句注解程序注解語句注解2.4變量和賦值變量(容器)存放程序執行過程中會產生變化的數據,egf(x)每個變量都有一個類型,(碗、盤)n;//人數floatt;//溫度,浮點數,eg,t=36.8=3.68x10=0.368x102不同類型有不同的取值范圍,由類型的長度決定int兩字節——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()格式化輸出函數printf("Height:%d\n",height);printf("Profit:$%.2f\n",profit);printf("%d\n",height*length*width);占位符%d、%f指示變量height的顯示位置,d表示輸出的變量是整數,f表示輸出浮點數計算箱子空間重量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()格式化輸入函數,與printf對應,f表示format。用格式串指定輸入或輸出數據的格式。scanf("%d",&i); /*readsaninteger;storesintoi*/&表示變量i的地址,scanf函數讀入數據必須在變量前加&。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定義常量常量:程序執行過程中不變的量,比如圓周率,貨幣匯率常量定義通常通過宏定義來完成#definePI3.1415926//宏名(常量名)通常大寫宏定義是預處理功能的一種,預處理時宏將替換為其表示的值(常量)
area=r*r*PI;perimeter=2*r*PI;預處理area=r*r*3.1415926;perimeter=2*r*3.1415926;思考宏定義的意義?2.7標識符變量、函數、宏和其他實體的名字統稱標識符由字母、數字和下劃線構成,必須以字母或下劃線開頭,大小寫敏感eg:inth1,h2,H1,H2,_w;intmax(intnum1,num2);PI92h,tom-kate;//???關鍵字對C編譯器有特殊意義的字符串,如int,float,enum一般為小寫不能用作標識符C關鍵字Thefollowingkeywords
can’tbeusedasidentifiers: autoenumrestrict*unsigned breakexternreturnvoid casefloatshortvolatile charforsignedwhile constgotosizeof_Bool* continueifstatic_Complex* defaultinline*struct_Imaginary* dointswitch doublelongtypedef elseregisterunion
*C99only2.8C程序書寫規范C程序書寫格式自由,一行內可以寫幾個語句,一個語句可以分寫在多行上,C程序沒有行號。添加空格和空行使程序便于閱讀和理解縮進助于識別程序的嵌套層次C程序布局C程序由一連串記號構成:Identifiers:標識符Keywords:關鍵字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允許在記號間插入任意數量的空白空格、制表符、空行布局結果:語句可分開放在任意多行內;記號間空格使其容易區分;縮進助于識別嵌套;空行把程序劃分成邏輯單元。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程序的步驟上機輸入與編輯源程序預處理:預處理器執行以#開頭的指令對源程序進行編譯與庫函數鏈接運行目標程序目標代碼f.obj/*hello.c*/#include<stdio.h>void
main(){
printf("Hello,ThisisaCprogram.\n");}預處理器Hello.c源程序編譯器Hello.exe可執行目標程序Hello.o可重定位目標程序鏈接器printf.o程序練習1——兩數求和/*兩數求和程序,計算123與456的和*/#include<stdio.h>/*包含stdio庫信息*/intmain()/*程序主體*/{intnum1,num2,sum;/*變量聲明(整型),定義程序中將要使用的變量*/num1=123;num2=456;sum=num1+num2;printf(″sumis%d\n″,sum);
/*輸出結果*/}兩數求和VS汽車生產/*兩數求和程序*/#include<stdio.h>
/*包含stdio庫信息*/
intmain()/*程序主體*/
{
intnum1,num2,sum;
/*變量聲明(整型),定義程序中將要使用的變量*/
num1=123;num2=456;
sum=num1+num2;
printf(″sumis%d\n″,sum);
/*輸出結果*/
}/*汽車生產工藝*/#include<配件庫存清單>
intmain()/*生產工藝主體*/
{
配件聲明;
車架();
車身();//鈑金、烤漆
裝配();/*發動機、車載電子、剎車、輪子、安全*/
下線();}溫故而知新——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;}注釋//預處理指令主函數變量聲明格式化輸入;語句;表達式語句%x占位符,d表整數先聲明,后使用溫故而知新/*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;}注釋//預處理指令宏定義變量聲明格式化輸入;問題?函數調用語句;表達式語句%x占位符,d表整數先聲明,后使用,初始化主函數返回語句;程序練習2——試卷統分程序練習2——試卷統分/*提示用戶輸入四道大題分數,并求和*/#include<stdio.h>intmain(void){ intscore1,score2,score3,score4,sum;/*變量聲明*/ printf(“Enterfourscores.\n”); scanf(“%d”,&score1);//輸入第一個數 scanf(“%d”,&score2);//輸入第二個數 scanf(“%d”,&score3);//輸入第三個數 scanf(“%d”,&score4);//輸入第四個數 sum=score1+score2+score3+score4; printf(″sumis%d\n.″,sum);
/*輸出結果*/}程序問題?scanf(“%d%d%d%d",&score1,&score2,&score3,&score4);程序練習2——試卷統分(程序錯誤分析)/*提示用戶輸入兩數,并求和*/#include<stdio.h>intmain(){ intscore1,score2,score3,sum;/*變量聲明*/ printf(“Enterfourscores.\n”); scanf(“%d”,&score1);//輸入第一個數 scanf(“%d”,&score2);//輸入第二個數 scanf(“%d”,&score2);//輸入第三個數 scanf(“%d”,&score4);//輸入第四個數 sum=num1+num2+num3+num4; printf(″sumis%d\n.″,sum);
/*輸出結果*/}程序練習3——標準體重計算根據身高計算標準體重標準體重(男)=(身高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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遵義職業技術學院《土木工程材料B》2023-2024學年第二學期期末試卷
- 濮陽職業技術學院《服裝工業版型設計》2023-2024學年第二學期期末試卷
- 東莞職業技術學院《非織造學》2023-2024學年第二學期期末試卷
- 濟南大學《英語教材教法與課程標準》2023-2024學年第二學期期末試卷
- 2024年搪瓷制品相關日用品生產設備項目資金籌措計劃書代可行性研究報告
- 大學生寢室安全教育
- 室內設計師的設計理念
- 中醫特色規培課件
- 2025年安徽阜陽潁東區東興建設投資有限責任公司招聘筆試參考題庫含答案解析
- 財政學教學課件
- 季節性防雷防汛防臺風安全檢查表
- 歸檔文件目錄
- 2022年四川省綿陽市中考英語試題及參考答案
- 防疫小組人員名單
- 眼部健康檢測與分析課件
- 偏心塊振動式土壤夯實機的結構設計說明
- 蘇州市建設工程造價計價解釋
- 主題班會《堅定信念--放飛理想》
- 煤礦機電設備春季預防性檢修計劃
- S771(一) 水力循環澄清池
- 高密度電法探測及數據處理解釋--答辯
評論
0/150
提交評論