版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
主要內(nèi)容1.1程序設(shè)計(jì)課程目標(biāo)1.2程序設(shè)計(jì)概述1.3C語(yǔ)言概述西安電子科技大學(xué)計(jì)算機(jī)學(xué)院11.1程序設(shè)計(jì)課程目標(biāo)課程要求課程目標(biāo)西安電子科技大學(xué)計(jì)算機(jī)學(xué)院2課程要求學(xué)會(huì)從計(jì)算機(jī)角度思考問(wèn)題培養(yǎng)學(xué)生邏輯思維能力和面向過(guò)程的程序設(shè)計(jì)方法能夠針對(duì)非數(shù)值計(jì)算的具體問(wèn)題選擇合理的存儲(chǔ)結(jié)構(gòu)及構(gòu)造較有效率的算法運(yùn)用C語(yǔ)言編制結(jié)構(gòu)清晰、可讀性好的程序會(huì)設(shè)計(jì)測(cè)試用例,完成程序的測(cè)試,能撰寫該程序的技術(shù)報(bào)告具備面向過(guò)程程序的獨(dú)立設(shè)計(jì)及實(shí)現(xiàn)能力西安電子科技大學(xué)計(jì)算機(jī)學(xué)院3西安電子科技大學(xué)計(jì)算機(jī)學(xué)院4用計(jì)算機(jī)解決問(wèn)題示例某地刑偵大隊(duì)對(duì)涉及6個(gè)嫌疑人的一樁疑案進(jìn)行分析得到以下結(jié)論,試編一程序,將作案人找出來(lái)。A、B至少有1人作案;A、E、F3人中至少有2人參與作案;AD不可能是同案犯;B、C或同時(shí)作案,或都與本案無(wú)關(guān):C、D中有且僅有1人作案;如果D沒(méi)有參與作案,則E也不可能參與作案。課程目標(biāo)西安電子科技大學(xué)計(jì)算機(jī)學(xué)院51.培養(yǎng)邏輯思維和程序設(shè)計(jì)思想,重點(diǎn)培養(yǎng)分析問(wèn)題和使用C語(yǔ)言進(jìn)行程序設(shè)計(jì)以解決實(shí)際問(wèn)題的能力。2.熟練掌握C語(yǔ)言基礎(chǔ)知識(shí)、C語(yǔ)言程序結(jié)構(gòu)、語(yǔ)法及函數(shù)庫(kù)、簡(jiǎn)單算法和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。3.了解并初步掌握當(dāng)前軟件行業(yè)公認(rèn)的程序設(shè)計(jì)風(fēng)格和規(guī)范,增強(qiáng)程序可讀性和易擴(kuò)展性;能夠熟練使用一種常用的編程工具和集成開(kāi)發(fā)環(huán)境進(jìn)行程序設(shè)計(jì)、編譯、測(cè)試及調(diào)試。1.2程序設(shè)計(jì)概述程序設(shè)計(jì)語(yǔ)言發(fā)展語(yǔ)言實(shí)現(xiàn)及開(kāi)發(fā)環(huán)境西安電子科技大學(xué)計(jì)算機(jī)學(xué)院6西安電子科技大學(xué)計(jì)算機(jī)學(xué)院7程序無(wú)處不在計(jì)算機(jī)移動(dòng)設(shè)備外設(shè)智能設(shè)備…西安電子科技大學(xué)計(jì)算機(jī)學(xué)院8什么是程序一系列遵循一定規(guī)則并能正確完成特定功能的代碼或指令序列通常包括數(shù)據(jù)結(jié)構(gòu)與算法兩部分#include<stdio.h>intmain(){inta=3,b=2,c=5;intd=a*b+c; printf("a×b+c=%d\n",d);return0;}源程序a.c可執(zhí)行程序編譯鏈接011001…111001………西安電子科技大學(xué)計(jì)算機(jī)學(xué)院9程序設(shè)計(jì)語(yǔ)言及其發(fā)展程序設(shè)計(jì)語(yǔ)言一套規(guī)范的集合,主要包括該語(yǔ)言使用的字符集,直接和間接支持的數(shù)據(jù)類型集合、運(yùn)算符集合、關(guān)鍵字集合、指令集合、語(yǔ)法規(guī)則、以及對(duì)特定構(gòu)造的支持。西安電子科技大學(xué)計(jì)算機(jī)學(xué)院10程序設(shè)計(jì)語(yǔ)言及其發(fā)展1834-第一臺(tái)機(jī)械式計(jì)算機(jī)(最早的程序員Ada)1896-最早的程序載體-穿孔卡片1937-“圖靈機(jī)”數(shù)學(xué)模型1952-MIT創(chuàng)建了匯編語(yǔ)言1953-IBM研制Fortran語(yǔ)言1965-BASIC語(yǔ)言出現(xiàn)1972-貝爾實(shí)驗(yàn)室發(fā)明C語(yǔ)言20世紀(jì)80年代-貝爾實(shí)驗(yàn)室發(fā)明C++語(yǔ)言1983-Borland公司研制TurboPascal1991-Python1995-Java語(yǔ)言誕生2002-Microsoft發(fā)布.NET西安電子科技大學(xué)計(jì)算機(jī)學(xué)院11程序設(shè)計(jì)語(yǔ)言及其發(fā)展機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言(C,Java,C++,C#…)12高級(jí)語(yǔ)言編譯問(wèn)題:計(jì)算d=a×b+c00000001000000001000——將單元1000的數(shù)據(jù)(a)裝入寄存器000000001000100001010——將單元1010的數(shù)據(jù)(b)裝入寄存器100000101000000000001——將寄存器1的數(shù)據(jù)乘到寄存器0上(axb)00000001000100001100——將單元1100的數(shù)據(jù)(c)裝入寄存器100000100000000000001——將寄存器1的數(shù)據(jù)累加到寄存器0上(axb+c)00000010000000001110——將寄存器0的數(shù)據(jù)寫入內(nèi)存單元1110(d=axb+c)機(jī)器語(yǔ)言load0a——將單元1000的數(shù)據(jù)(a)
裝入寄存器0load1b——將單元1010的數(shù)據(jù)(b)裝入寄存器1mult01——將寄存器1的數(shù)據(jù)乘到寄存器0上(axb)load1c——將單元1100的數(shù)據(jù)(c)裝入寄存器1add01——將寄存器1的數(shù)據(jù)累加到寄存器0上(axb+c)save0d——將寄存器0的數(shù)據(jù)寫入內(nèi)存單元1110(d=axb+c)匯編語(yǔ)言d=a*b+c高級(jí)語(yǔ)言程序設(shè)計(jì)語(yǔ)言熱度(TIOBEIndex)程序設(shè)計(jì)語(yǔ)言熱度(TIOBEIndex)西安電子科技大學(xué)計(jì)算機(jī)學(xué)院15語(yǔ)言實(shí)現(xiàn)具體地實(shí)現(xiàn)一種語(yǔ)言的各種特征并支持特定的編程模式的技術(shù)和工具。表現(xiàn)形式:編譯器(Compiler)和連接器(Linker)。語(yǔ)言是標(biāo)準(zhǔn)的但語(yǔ)言實(shí)現(xiàn)是因廠家而異的常見(jiàn)C語(yǔ)言實(shí)現(xiàn):BorlandC、MicrosoftC、GCC西安電子科技大學(xué)計(jì)算機(jī)學(xué)院16開(kāi)發(fā)環(huán)境泛指支持軟件開(kāi)發(fā)的一切工具操作系統(tǒng)代碼編輯器編譯器鏈接器調(diào)試器西安電子科技大學(xué)計(jì)算機(jī)學(xué)院17開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境(IDE)將編輯器、編譯器、連接器和調(diào)試器集成在一起的開(kāi)發(fā)工具C/C++集成開(kāi)發(fā)環(huán)境:DevC++CodeBlocksVisualC++Eclipse18命令行下需要記住編譯命令不方便調(diào)試集成開(kāi)發(fā)環(huán)境下操作方便,但后臺(tái)仍然是以命令行方式運(yùn)作V.S.1.3C語(yǔ)言概述C語(yǔ)言簡(jiǎn)介(特點(diǎn),發(fā)展等)C程序框架(主函數(shù),語(yǔ)句,注釋等)西安電子科技大學(xué)計(jì)算機(jī)學(xué)院19西安電子科技大學(xué)計(jì)算機(jī)學(xué)院20C語(yǔ)言能做什么純粹的C語(yǔ)言只能做計(jì)算和文字處理擴(kuò)充了函數(shù)庫(kù)的C語(yǔ)言幾乎可以完成任何和程序控制有關(guān)的任務(wù)C語(yǔ)言和第三方函數(shù)庫(kù),可以完成應(yīng)用程序設(shè)計(jì),嵌入式程序設(shè)計(jì),驅(qū)動(dòng)程序設(shè)計(jì),游戲,...西安電子科技大學(xué)計(jì)算機(jī)學(xué)院21C語(yǔ)言簡(jiǎn)介C語(yǔ)言簡(jiǎn)史演變:ALGOL60→CPL→BCPL→B→C
1973—DennisRitchie&BrianKernighan(BellLabs.)為開(kāi)發(fā)UNIX而設(shè)計(jì)
C語(yǔ)言的標(biāo)準(zhǔn)化ANSIC標(biāo)準(zhǔn)化委員會(huì):1983C89和C90C99C11西安電子科技大學(xué)計(jì)算機(jī)學(xué)院22C語(yǔ)言特點(diǎn)中級(jí)語(yǔ)言:介于高級(jí)語(yǔ)言與低級(jí)語(yǔ)言之間高級(jí)語(yǔ)言的結(jié)構(gòu)化與模塊化(高級(jí)語(yǔ)言基本特性)低級(jí)語(yǔ)言的控制性與靈活性(指針,位操作)結(jié)構(gòu)化順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)模塊化函數(shù)、函數(shù)庫(kù)可移植性雖然可在多種系統(tǒng)下使用,但可移植性不是非常好西安電子科技大學(xué)計(jì)算機(jī)學(xué)院23第一個(gè)C程序/*hello.c:Thefirstprogramauthor:wanbodate:2017/10/9*/
#include<stdio.h>int
main(){
//singlelinecommentprintf("**Hello,world**\n"
);
return0;}24C源程序構(gòu)成頭文件包含條件編譯語(yǔ)句宏定義說(shuō)明部分全局變量函數(shù)聲明其它函數(shù)主函數(shù)(main)執(zhí)行部分常量/*hello.c:Thefirstprogramauthor:wanbodate:2010/10/9*/
#include<stdio.h>int
main(){
//singlelinecommentprintf("**hello,world**\n"
);
return0;}預(yù)處理部分西安電子科技大學(xué)計(jì)算機(jī)學(xué)院25一個(gè)最簡(jiǎn)單的C程序框架#include<stdio.h>int
main(){
return0;}在這里可以添加完成特定任務(wù)的代碼這個(gè)頭文件是絕大多數(shù)C程序必須包含的程序結(jié)束西安電子科技大學(xué)計(jì)算機(jī)學(xué)院26main函數(shù)main函數(shù)的兩種常見(jiàn)形式intmain(){…return0;}intmain(intargc,char*argv[]){…return0;}命令行參數(shù)西安電子科技大學(xué)計(jì)算機(jī)學(xué)院27main函數(shù)C程序中可以有多個(gè)函數(shù)但必須有且只能有一個(gè)main函數(shù)所有C程序都從main函數(shù)開(kāi)始執(zhí)行main函數(shù)的名字不能改變(包括大小寫)main函數(shù)由系統(tǒng)調(diào)用Main和main是不同的西安電子科技大學(xué)計(jì)算機(jī)學(xué)院28語(yǔ)句和注釋語(yǔ)句包含一個(gè)或多個(gè)表達(dá)式數(shù)值運(yùn)算、函數(shù)調(diào)用等語(yǔ)句以英文分號(hào)(;)結(jié)束一條語(yǔ)句可以分成多行書寫C語(yǔ)言使用自由格式的語(yǔ)法自由格式與代碼風(fēng)格注釋多行注釋用/**/來(lái)分界單行注釋用//開(kāi)頭/*
多行注釋hello.c:Thefirstprogramauthor:wanbodate:2017/10/9*/
#include<stdio.h>int
main(){
//單行注釋printf("**hello,world**\n"
);
return0;}西安電子科技大學(xué)計(jì)算機(jī)學(xué)院29自由格式與代碼風(fēng)格#include<stdio.h>intmain(){printf("helloworld");return0;}#include<stdio.h>intmain(){printf("helloworld\n");return0;}#include<stdio.h>intmain(){printf("helloworld");return0;}良好的代碼風(fēng)格適當(dāng)?shù)淖⑨屵m當(dāng)?shù)膿Q行適當(dāng)?shù)目s進(jìn)適當(dāng)?shù)目招小璙.S.√√×西安電子科技大學(xué)計(jì)算機(jī)學(xué)院30建立一個(gè)可執(zhí)行程序編輯(Edit)編譯(Compile)鏈接(Link)f1.hf2.hf3.hs1.cs2.cprog.exe鏈接s1.objs2.obj編譯編輯西安電子科技大學(xué)計(jì)算機(jī)學(xué)院31命令行程序和GUI程序Windows下的文件復(fù)制命令行程序和GUI程序命令行下的文件復(fù)制西安電子科技大學(xué)計(jì)算機(jī)學(xué)院32命令行程序和GUI程序一個(gè)C語(yǔ)言完成的文件復(fù)制程序(fcopy.c)西安電子科技大學(xué)計(jì)算機(jī)學(xué)院33命令行才是本質(zhì)邏輯,GUI只是建立在本質(zhì)邏輯上的用戶接口。#include<stdio.h>#include<stdlib.h>#defineBUF_SIZE1024intmain(intargc,char**argv){FILE*fp1,*fp2;unsignedcharbuf[BUF_SIZE];intn;fp1=fopen(argv[1],"rb");fp2=fopen(argv[2],"wb");do{n=fread(buf,1,BUF_SIZE,fp1);fwrite(buf,1,n,fp2);}wh
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 煉焦工崗后水平考核試卷含答案
- 漁網(wǎng)具裝配工操作強(qiáng)化考核試卷含答案
- 電極制造工班組協(xié)作考核試卷含答案
- 蔬菜栽培工安全專項(xiàng)評(píng)優(yōu)考核試卷含答案
- 催化劑處理工崗前前瞻考核試卷含答案
- 漆器制作工9S執(zhí)行考核試卷含答案
- 鐵水預(yù)處理工創(chuàng)新思維考核試卷含答案
- 野生動(dòng)物產(chǎn)品采集加工利用工發(fā)展趨勢(shì)競(jìng)賽考核試卷含答案
- 數(shù)控等離子切割機(jī)操作工崗后競(jìng)賽考核試卷含答案
- 船舶機(jī)械裝配工安全知識(shí)考核試卷含答案
- 2026年陜西省高考一模語(yǔ)文模擬試卷試題(含答案詳解)
- 2025年高職現(xiàn)代水產(chǎn)養(yǎng)殖技術(shù)(生態(tài)養(yǎng)殖模式)試題及答案
- 2025年陽(yáng)江輔警招聘考試真題附答案
- 心臟手術(shù)體外循環(huán)的無(wú)菌管理策略
- 2025年洗衣房年終工作總結(jié)樣本(四篇)
- 糖尿病合并腎病綜合治療方案
- 滲透勞動(dòng)教育課件
- 消除母嬰三病傳播知識(shí)培訓(xùn)
- 11第十一章 免疫系統(tǒng) 課件(共20張)-《解剖學(xué)基礎(chǔ)》
- GB/T 39368.1-2025皮革耐折牢度的測(cè)定第1部分:撓度儀法
- 教培機(jī)構(gòu)教師協(xié)議書
評(píng)論
0/150
提交評(píng)論