




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
許其義
qsdxqy@163.comC語言程序設(shè)計1關(guān)于計算機(jī)語言C語言程序設(shè)計2計算機(jī)與人工智能計算機(jī)行業(yè)的夢想讓計算機(jī)(Computer)能像人一樣地思考,與人自然交流,人工智能(ArtificialIntelligence)圖靈測試
3計算機(jī)與人工智能1997年,IBM公司研制的深藍(lán)超級計算機(jī)在一場“人機(jī)大戰(zhàn)”中打敗了國際象棋大師卡斯帕羅夫被譽為“人工智能的一大勝利”深藍(lán)的主要研制者之一許峰雄博士:勝利靠的只是不知疲倦地高速運算,并不是什么智能4計算機(jī)與信息技術(shù)計算機(jī)技術(shù)與通信技術(shù)結(jié)合,構(gòu)成了信息技術(shù)(InformationTechnology),誕生了一個新詞:IT嵌入式系統(tǒng)是IT未來的主要發(fā)展方向之一典型的嵌入式系統(tǒng)有:機(jī)器人、手機(jī)和智能家電等5計算機(jī)計算機(jī)是用來延伸人的能力的工具,需要人來駕馭我們的職責(zé)是讓非計算機(jī)專業(yè)的人更容易駕馭它完成這一目標(biāo)的主要手段之一就是
“編程(Programming)”6計算機(jī)基本工作過程整個過程的執(zhí)行者是硬件,但硬件是受軟件控制的編程,就是編寫軟件,使硬件按照人的意圖工作7計算機(jī)基本工作過程輸入/輸出設(shè)備存儲器運算器控制器源程序和輸入數(shù)據(jù)輸出結(jié)果取出數(shù)據(jù)存入數(shù)據(jù)操作命令存取命令取出程序指令輸入輸出命令計算結(jié)果CPU“馮·諾依曼機(jī)”結(jié)構(gòu)大腦記憶裝置眼睛和耳朵程序和數(shù)據(jù)硬盤CPU內(nèi)存執(zhí)行結(jié)果8軟件的形成軟件(Software)的形成程序員(Programmer)編寫程序源代碼(SourceCode)編譯器(Compiler)把源代碼轉(zhuǎn)換為可被計算機(jī)理解的機(jī)器代碼(MachineCode)并把機(jī)器代碼以可執(zhí)行文件(ExecutableFile)的形式保存在磁盤上9軟件運行過程的簡單描述軟件的運行計算機(jī)把機(jī)器代碼讀入到內(nèi)存(Memory)由CPU運行這些代碼讀取輸入(Input)產(chǎn)生輸出(Output)完成程序員預(yù)定的功能計算機(jī)專業(yè)后續(xù)課程計算機(jī)原理編譯原理操作系統(tǒng)10程序設(shè)計語言(ProgrammingLanguage)是人與計算機(jī)進(jìn)行交流的語言計算機(jī)直接能讀懂的語言機(jī)器語言(MachineCode),也叫機(jī)器代碼一種純粹的二進(jìn)制語言程序設(shè)計語言的故事11程序設(shè)計語言的故事計算機(jī)為什么用二進(jìn)制呢?為什么不用我們?nèi)粘J煜さ氖M(jìn)制呢?二進(jìn)制在在電器元件中容易實現(xiàn)計算機(jī)進(jìn)行二進(jìn)制運算比進(jìn)行十進(jìn)制運算要簡單得多12程序設(shè)計語言的故事機(jī)器語言編寫的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)擴(kuò)展名為.c的文件編譯(Compile)擴(kuò)展名為.obj的文件鏈接(Link)形成最后的可執(zhí)行文件擴(kuò)展名為.exe的文件運行(Run)16流行語言應(yīng)用編程語言機(jī)器語言匯編語言BasicPascalCC++JavaC#專項編程語言LotusNotesPowerBuilderWeb編程語言HTMLXMLPHPASPJSPJavaScriptVBScript其他perlpythonVBA17C程序設(shè)計語言簡稱C語言BCPL
BasicCombinedProgrammingLanguage語言進(jìn)化成B語言,B語言又進(jìn)化為C語言是一種高級語言高級語言并不是“高級”,只是相對低級語言,在一個高的級別上進(jìn)行編程歷史悠久,戰(zhàn)勛卓著誕生于上世紀(jì)70年代初,成熟于80年代“ANSIC”標(biāo)準(zhǔn)的發(fā)布是C語言成熟的標(biāo)志很多重量級軟件都是用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#正確地學(xué)好C語言,是學(xué)習(xí)這些流行語言的基礎(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歲之齡辭世。美國著名計算機(jī)專家丹尼斯·里奇(DennisRitchie)所引領(lǐng)的時代悄然遠(yuǎn)去。
讓我們通過學(xué)習(xí)C語言,打開與計算機(jī)交流之門,走進(jìn)丹尼斯里奇的“C客帝國”,實現(xiàn)我們的奇思妙想。要加油奧!24C語言程序設(shè)計(第2版)高等院校計算機(jī)應(yīng)用技術(shù)規(guī)劃教材譚浩強(qiáng)著上機(jī)實踐平臺:VisualC++6.025第1章C語言概述1.1計算機(jī)與程序、程序設(shè)計語言1.2C語言的出現(xiàn)和發(fā)展過程1.3簡單的C語言程序1.4運行C程序的步驟與方法26計算機(jī)硬件軟件運算器控制器存儲器I/O設(shè)備系統(tǒng)軟件應(yīng)用軟件操作系統(tǒng)數(shù)據(jù)庫系統(tǒng)網(wǎng)絡(luò)系統(tǒng)程序設(shè)計語言語言處理程序機(jī)器語言匯編語言高級語言面向?qū)ο蟮某绦蛟O(shè)計語言1.1計算機(jī)與程序、程序設(shè)計語言271.1計算機(jī)與程序、程序設(shè)計語言計算機(jī)不是天生自動工作的計算機(jī)由人們事先編好的程序控制人和計算機(jī)通過程序設(shè)計語言溝通28計算機(jī)產(chǎn)生初期使用機(jī)器語言一個型號機(jī)器語言的指令的集合——機(jī)器語言機(jī)器語言是由0和1組成的指令機(jī)器語言是緊密依賴于計算機(jī)的硬件的機(jī)器語言難學(xué)、難記、難寫、難修改、難維護(hù)在不同計算機(jī)之間互不通用1.1計算機(jī)與程序、程序設(shè)計語言2920世紀(jì)50年代出現(xiàn)了高級語言比較接近于人的自然語言(英文)和數(shù)學(xué)語言高級語言直觀易學(xué),易理解,易修改,易維護(hù),易推廣,通用性強(qiáng)用高級語言編寫的程序,必須先翻譯成機(jī)器語言程序,此翻譯工作由編譯系統(tǒng)實現(xiàn)1.1計算機(jī)與程序、程序設(shè)計語言301.2C語言的出現(xiàn)和發(fā)展過程C語言是國際上廣泛流行的計算機(jī)高級語言最初的C語言只是為編寫UNIX操作系統(tǒng)提供一種工作語言而設(shè)計的311.2C語言的出現(xiàn)和發(fā)展過程隨著UNIX的日益廣泛使用,C語言也迅速得到推廣C語言和UNIX在發(fā)展過程中相輔相成1978年以后,C語言先后移植到大、中、小、微型計算機(jī)上,成為世界上應(yīng)用最廣泛的程序設(shè)計高級語言321.2C語言的出現(xiàn)和發(fā)展過程1983年,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI)根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn)草案,即83ANSICANSIC比原來的標(biāo)準(zhǔn)C有了很大的發(fā)展331.2C語言的出現(xiàn)和發(fā)展過程1989年,ANSI又公布了一個新的C語言標(biāo)準(zhǔn)—ANSIX3.159-1989(簡稱C89)目前各軟件廠商提供的C語言編譯系統(tǒng)大多數(shù)是以C89為基礎(chǔ)進(jìn)行開發(fā)的本書的敘述基本上以C89為基礎(chǔ)的341.2C語言的出現(xiàn)和發(fā)展過程C語言功能強(qiáng)大、使用靈活,既可用于編寫應(yīng)用軟件,又能用于編寫系統(tǒng)軟件學(xué)習(xí)和使用C語言的人越來越多,成了學(xué)習(xí)和使用人數(shù)最多的一種計算機(jī)語言熟練掌握C語言成為計算機(jī)開發(fā)人員的一項基本功35C語言的特點(1)語言簡潔、緊湊,使用方便、靈活。(2)運算符豐富。34種運算符。(3)數(shù)據(jù)類型豐富,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu)。(4)具有結(jié)構(gòu)化的控制語句,是完全模塊化和結(jié)構(gòu)化的語言。(5)語法限制不太嚴(yán)格,程序設(shè)計自由度大。(6)允許直接訪問物理地址,能進(jìn)行位操作,能實現(xiàn)匯編語言的大部分功能,可直接對硬件進(jìn)行操作。兼有高級和低級語言的特點。(7)目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。只比匯編程序生成的目標(biāo)代碼效率低10%-20%。(8)程序可移植性好(與匯編語言比)。基本上不做修改就能用于各種型號的計算機(jī)和各種操作系統(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ù)進(jìn)行聲明執(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上機(jī)運行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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 與業(yè)內(nèi)人士交流的計劃制定方式
- 2025年酒店、廚房設(shè)備用品項目發(fā)展計劃
- 七年級數(shù)學(xué)下冊教學(xué)計劃、單元分析、全冊教案(生本)、總結(jié)
- 七年級下冊《直方圖》課件與練習(xí)
- 河南省三門峽市2024-2025學(xué)年高一上學(xué)期1月期末考試 數(shù)學(xué) 含解析
- 2025年繞線絞線設(shè)備項目合作計劃書
- 構(gòu)建需求實現(xiàn)的進(jìn)度監(jiān)控系統(tǒng)
- 2025年微污染防控設(shè)備項目發(fā)展計劃
- 2025年通信設(shè)備、計算機(jī)及其他電子設(shè)備項目發(fā)展計劃
- 2025年CO2氣體保護(hù)藥芯焊絲項目建議書
- 2024-2030年全球及中國低密度聚乙烯(LDPE)行業(yè)需求動態(tài)及未來發(fā)展趨勢預(yù)測報告
- DB14T+3154-2024泡沫瀝青就地冷再生路面施工技術(shù)規(guī)范
- 光纖布拉格光柵(FBG)
- 機(jī)電設(shè)備及工藝作業(yè)指導(dǎo)書
- 新版《鐵道概論》考試復(fù)習(xí)試題庫(含答案)
- 實驗室安全自檢自查表
- 消防救援大隊專職消防員政審表
- 2024年新華東師大版七年級上冊數(shù)學(xué)全冊教案(新版教材)
- 醫(yī)院物業(yè)管理制度
- 初中數(shù)學(xué)思維訓(xùn)練雙十字相乘法因式分解練習(xí)100道及答案
- (正式版)QC∕T 625-2024 汽車用涂鍍層和化學(xué)處理層
評論
0/150
提交評論