版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
許其義
qsdxqy@163.comC語言程序設(shè)計1關(guān)于計算機語言C語言程序設(shè)計2計算機與人工智能計算機行業(yè)的夢想讓計算機(Computer)能像人一樣地思考,與人自然交流,人工智能(ArtificialIntelligence)圖靈測試
3計算機與人工智能1997年,IBM公司研制的深藍超級計算機在一場“人機大戰(zhàn)”中打敗了國際象棋大師卡斯帕羅夫被譽為“人工智能的一大勝利”深藍的主要研制者之一許峰雄博士:勝利靠的只是不知疲倦地高速運算,并不是什么智能4計算機與信息技術(shù)計算機技術(shù)與通信技術(shù)結(jié)合,構(gòu)成了信息技術(shù)(InformationTechnology),誕生了一個新詞:IT嵌入式系統(tǒng)是IT未來的主要發(fā)展方向之一典型的嵌入式系統(tǒng)有:機器人、手機和智能家電等5計算機計算機是用來延伸人的能力的工具,需要人來駕馭我們的職責是讓非計算機專業(yè)的人更容易駕馭它完成這一目標的主要手段之一就是
“編程(Programming)”6計算機基本工作過程整個過程的執(zhí)行者是硬件,但硬件是受軟件控制的編程,就是編寫軟件,使硬件按照人的意圖工作7計算機基本工作過程輸入/輸出設(shè)備存儲器運算器控制器源程序和輸入數(shù)據(jù)輸出結(jié)果取出數(shù)據(jù)存入數(shù)據(jù)操作命令存取命令取出程序指令輸入輸出命令計算結(jié)果CPU“馮·諾依曼機”結(jié)構(gòu)大腦記憶裝置眼睛和耳朵程序和數(shù)據(jù)硬盤CPU內(nèi)存執(zhí)行結(jié)果8軟件的形成軟件(Software)的形成程序員(Programmer)編寫程序源代碼(SourceCode)編譯器(Compiler)把源代碼轉(zhuǎn)換為可被計算機理解的機器代碼(MachineCode)并把機器代碼以可執(zhí)行文件(ExecutableFile)的形式保存在磁盤上9軟件運行過程的簡單描述軟件的運行計算機把機器代碼讀入到內(nèi)存(Memory)由CPU運行這些代碼讀取輸入(Input)產(chǎn)生輸出(Output)完成程序員預(yù)定的功能計算機專業(yè)后續(xù)課程計算機原理編譯原理操作系統(tǒng)10程序設(shè)計語言(ProgrammingLanguage)是人與計算機進行交流的語言計算機直接能讀懂的語言機器語言(MachineCode),也叫機器代碼一種純粹的二進制語言程序設(shè)計語言的故事11程序設(shè)計語言的故事計算機為什么用二進制呢?為什么不用我們?nèi)粘J煜さ氖M制呢?二進制在在電器元件中容易實現(xiàn)計算機進行二進制運算比進行十進制運算要簡單得多12程序設(shè)計語言的故事機器語言編寫的1+1程序匯編語言(AssembleLanguage)編寫的1+1程序101110000000000100000000000001010000000100000000MOVAX,1ADDAX,113程序設(shè)計語言的故事BASIC語言編寫的1+1程序C語言編寫的1+1程序PRINT1+1#include<stdio.h>main(){
printf("%d\n",1+1);}14程序設(shè)計語言一種程序設(shè)計語言對應(yīng)一種編譯器程序員按照該語言的語法編寫程序源代碼,把自己的意圖融入到代碼中編譯器讀入源代碼,把程序員的意圖轉(zhuǎn)換成可執(zhí)行程序,供他人使用15程序設(shè)計語言編輯(Edit)擴展名為.c的文件編譯(Compile)擴展名為.obj的文件鏈接(Link)形成最后的可執(zhí)行文件擴展名為.exe的文件運行(Run)16流行語言應(yīng)用編程語言機器語言匯編語言BasicPascalCC++JavaC#專項編程語言LotusNotesPowerBuilderWeb編程語言HTMLXMLPHPASPJSPJavaScriptVBScript其他perlpythonVBA17C程序設(shè)計語言簡稱C語言BCPL
BasicCombinedProgrammingLanguage語言進化成B語言,B語言又進化為C語言是一種高級語言高級語言并不是“高級”,只是相對低級語言,在一個高的級別上進行編程歷史悠久,戰(zhàn)勛卓著誕生于上世紀70年代初,成熟于80年代“ANSIC”標準的發(fā)布是C語言成熟的標志很多重量級軟件都是用C寫的上天入地,無所不能幾乎沒有不能用C寫出來的軟件,沒有不支持C的系統(tǒng)18C程序設(shè)計語言硬件(Hardware)操作系統(tǒng)(OS)應(yīng)用程序
(Application)應(yīng)用
平臺基于
平臺的
應(yīng)用
程序低級語言的地盤高級語言的地盤C語言的地盤19C程序設(shè)計語言C語言被分類位高級語言,但實際上它是一種介于高級語言和低級語言之間的語言。很多流行語言、新生語言都借鑒了它的思想、語法從C++,到Java,再到C#正確地學好C語言,是學習這些流行語言的基礎(chǔ)。20C語言的設(shè)計者
DennisM.Ritchie21和Unix的設(shè)計者KenThompson
接受美國國家技術(shù)勛章22Ritchie和Thompson在開發(fā)UNIX23在日益紛繁復(fù)雜的程序設(shè)計語言王國中,C語言因其簡潔、有效、通用的特性而始終占據(jù)一席之地。里奇在1978年出版的《C程序設(shè)計語言》被程序員們稱為“白皮書”,里奇成為許多編程愛好者膜拜的對象。2011年10月9日被譽為“C語言之父”,同時也是操作系統(tǒng)Unix之父的C語言發(fā)明人之一——丹尼斯·里奇以70歲之齡辭世。美國著名計算機專家丹尼斯·里奇(DennisRitchie)所引領(lǐng)的時代悄然遠去。
讓我們通過學習C語言,打開與計算機交流之門,走進丹尼斯里奇的“C客帝國”,實現(xiàn)我們的奇思妙想。要加油奧!24C語言程序設(shè)計(第2版)高等院校計算機應(yīng)用技術(shù)規(guī)劃教材譚浩強著上機實踐平臺:VisualC++6.025第1章C語言概述1.1計算機與程序、程序設(shè)計語言1.2C語言的出現(xiàn)和發(fā)展過程1.3簡單的C語言程序1.4運行C程序的步驟與方法26計算機硬件軟件運算器控制器存儲器I/O設(shè)備系統(tǒng)軟件應(yīng)用軟件操作系統(tǒng)數(shù)據(jù)庫系統(tǒng)網(wǎng)絡(luò)系統(tǒng)程序設(shè)計語言語言處理程序機器語言匯編語言高級語言面向?qū)ο蟮某绦蛟O(shè)計語言1.1計算機與程序、程序設(shè)計語言271.1計算機與程序、程序設(shè)計語言計算機不是天生自動工作的計算機由人們事先編好的程序控制人和計算機通過程序設(shè)計語言溝通28計算機產(chǎn)生初期使用機器語言一個型號機器語言的指令的集合——機器語言機器語言是由0和1組成的指令機器語言是緊密依賴于計算機的硬件的機器語言難學、難記、難寫、難修改、難維護在不同計算機之間互不通用1.1計算機與程序、程序設(shè)計語言2920世紀50年代出現(xiàn)了高級語言比較接近于人的自然語言(英文)和數(shù)學語言高級語言直觀易學,易理解,易修改,易維護,易推廣,通用性強用高級語言編寫的程序,必須先翻譯成機器語言程序,此翻譯工作由編譯系統(tǒng)實現(xiàn)1.1計算機與程序、程序設(shè)計語言301.2C語言的出現(xiàn)和發(fā)展過程C語言是國際上廣泛流行的計算機高級語言最初的C語言只是為編寫UNIX操作系統(tǒng)提供一種工作語言而設(shè)計的311.2C語言的出現(xiàn)和發(fā)展過程隨著UNIX的日益廣泛使用,C語言也迅速得到推廣C語言和UNIX在發(fā)展過程中相輔相成1978年以后,C語言先后移植到大、中、小、微型計算機上,成為世界上應(yīng)用最廣泛的程序設(shè)計高級語言321.2C語言的出現(xiàn)和發(fā)展過程1983年,美國國家標準化協(xié)會(ANSI)根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴充,制定了新的標準草案,即83ANSICANSIC比原來的標準C有了很大的發(fā)展331.2C語言的出現(xiàn)和發(fā)展過程1989年,ANSI又公布了一個新的C語言標準—ANSIX3.159-1989(簡稱C89)目前各軟件廠商提供的C語言編譯系統(tǒng)大多數(shù)是以C89為基礎(chǔ)進行開發(fā)的本書的敘述基本上以C89為基礎(chǔ)的341.2C語言的出現(xiàn)和發(fā)展過程C語言功能強大、使用靈活,既可用于編寫應(yīng)用軟件,又能用于編寫系統(tǒng)軟件學習和使用C語言的人越來越多,成了學習和使用人數(shù)最多的一種計算機語言熟練掌握C語言成為計算機開發(fā)人員的一項基本功35C語言的特點(1)語言簡潔、緊湊,使用方便、靈活。(2)運算符豐富。34種運算符。(3)數(shù)據(jù)類型豐富,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu)。(4)具有結(jié)構(gòu)化的控制語句,是完全模塊化和結(jié)構(gòu)化的語言。(5)語法限制不太嚴格,程序設(shè)計自由度大。(6)允許直接訪問物理地址,能進行位操作,能實現(xiàn)匯編語言的大部分功能,可直接對硬件進行操作。兼有高級和低級語言的特點。(7)目標代碼質(zhì)量高,程序執(zhí)行效率高。只比匯編程序生成的目標代碼效率低10%-20%。(8)程序可移植性好(與匯編語言比)?;旧喜蛔鲂薷木湍苡糜诟鞣N型號的計算機和各種操作系統(tǒng)。
36例1.1要求在屏幕上輸出以下一行信息。
ThisisaCprogram.1.3簡單的C語言程序37#include<stdio.h>voidmain(){
printf(”ThisisaCprogram.\n”);}函數(shù)的名字,表示主函數(shù)C程序必須有一個main函數(shù)1.3簡單的C語言程序38#include<stdio.h>voidmain(){
printf(”ThisisaCprogram.\n”);}
主函數(shù)類型1.3簡單的C語言程序39#include<stdio.h>voidmain(){
printf(”ThisisaCprogram.\n”);}
函數(shù)體1.3簡單的C語言程序40#include<stdio.h>voidmain(){
printf(”ThisisaCprogram.\n”);}
輸出函數(shù)輸出語句1.3簡單的C語言程序41#include<stdio.h>voidmain(){
printf(”ThisisaCprogram.\n”);}
1.3簡單的C語言程序ThisisaCprogram.42#include<stdio.h>voidmain(){
printf(”ThisisaCprogram.\n”);}
1.3簡單的C語言程序ThisisaCprogram.換行符43#include<stdio.h>voidmain(){
printf(”ThisisaCprogram.\n”);}
1.3簡單的C語言程序ThisisaCprogram.表示語句結(jié)束用到函數(shù)庫中的輸入輸出函數(shù)時44例1.2求兩個整數(shù)之和。#include<stdio.h>voidmain(){
int
a,b,sum;a=123;b=456;sum=a+b;
printf(”sumis%d\n”,sum);}定義整型變量a,b,sum對變量a,b賦值將a與b的和賦給sum45例1.2求兩個整數(shù)之和。#include<stdio.h>voidmain(){
int
a,b,sum;a=123;b=456;sum=a+b;
printf(”sumis%d\n”,sum);}用sum的值替代希望輸出的字符sumis57946/*……*/:注釋部分注釋可以用漢字或英文字符表示注釋只是給人看的,對編譯和運行不起作用注釋可以出現(xiàn)在一行中的最右側(cè),也可以單獨成為一行47例1.3求兩個整數(shù)中的較大者。48#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}主函數(shù)被調(diào)函數(shù)49#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}將x和y中較大者值返回給主函數(shù)50#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}51#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}因max函數(shù)的定義在main函數(shù)之后,需聲明52#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}輸入函數(shù)53#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}輸入語句8,5↙54#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}輸入的數(shù)據(jù)放到a,b中輸入格式a的地址8,5↙55#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}8,5↙調(diào)用max函數(shù)56#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}8,5↙858857#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}8,5↙8588max=858#include<stdio.h>voidmain(){
int
max(int
x,inty);
int
a,b,c;
scanf(”%d,%d”,&a,&b);c=max(a,b);
printf("max=%d\n",c);}int
max(int
x,inty){
intz;if(x>y)z=x;elsez=y;
return(z);}8,5↙max=8實際參數(shù)形式參數(shù)59結(jié)論:C程序是由函數(shù)構(gòu)成的C源程序必須包含一個main函數(shù)可以包含若干個其他函數(shù)函數(shù)是C程序的基本單位被調(diào)函數(shù)可以是庫函數(shù),也可以是用戶編制設(shè)計的函數(shù)程序全部工作都由各個函數(shù)分別完成C語言容易實現(xiàn)程序的模塊化60一個函數(shù)由兩個部分組成函數(shù)首部
intmax(intx,
inty)函數(shù)的第1行函數(shù)類型函數(shù)名參數(shù)類型參數(shù)名函數(shù)名后面必須跟一對圓括號函數(shù)可以沒有參數(shù),
如:voidmain()結(jié)論:C程序是由函數(shù)構(gòu)成的61函數(shù)體聲明部分定義在本函數(shù)中所用到的變量對本函數(shù)所調(diào)用函數(shù)進行聲明執(zhí)行部分由若干個語句組成可以沒有聲明部分一個函數(shù)由兩個部分組成結(jié)論:C程序是由函數(shù)構(gòu)成的62voiddump(){}可以是空函數(shù)函數(shù)體一個函數(shù)由兩個部分組成結(jié)論:C程序是由函數(shù)構(gòu)成的63一個函數(shù)由兩個部分組成結(jié)論:C程序是由函數(shù)構(gòu)成的程序總是從main函數(shù)開始執(zhí)行C程序書寫格式自由每個語句和數(shù)據(jù)聲明的最后必須有分號C語言本身沒有輸入輸出語句可以對程序中的任何一行或數(shù)行做注釋641.4運行C程序的步驟與方法1.4.1運行C程序的步驟1.4.2上機運行C程序的方法651.4.1運行C
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《船用格柵》規(guī)范
- 第五單元 分數(shù)四則混合運算(單元測試)(含答案)-2024-2025學年六年級上冊數(shù)學蘇教版
- 2024-2025學年七年級上學期期中測試卷
- 油氣設(shè)備專用件相關(guān)項目投資計劃書
- 高導(dǎo)熱石墨散熱材料行業(yè)相關(guān)投資計劃提議范本
- 石油鉆探、開采專用設(shè)備相關(guān)項目投資計劃書范本
- 銷售公司運營管理述職報告
- 兒童健康飲食課件
- 遺傳病和免疫
- 關(guān)于幼兒用電安全
- 2023中國智慧手術(shù)室發(fā)展與實踐白皮書
- 江西省2023年高等職業(yè)院校單獨招生考試-江西電力職業(yè)技術(shù)學院-樣卷
- 《熱力學基礎(chǔ) 》課件
- 完整版體檢中心應(yīng)急預(yù)案
- 無人機培訓教材
- 人教版必修四蘇武傳3課時課件
- 六年級《牽手兩代-第二講-乖孩子為什么會厭學》家長課程培訓
- 醫(yī)院項目設(shè)計階段的造價控制重點及難點(含指標清單、費用明細、選材清單)
- 體育概論 第五章體育科學課件
- #2蓄電池組充放電試驗報告
- 電動伸縮門施工方案
評論
0/150
提交評論