二級(jí)c語(yǔ)言課件第01講_第1頁(yè)
二級(jí)c語(yǔ)言課件第01講_第2頁(yè)
二級(jí)c語(yǔ)言課件第01講_第3頁(yè)
二級(jí)c語(yǔ)言課件第01講_第4頁(yè)
二級(jí)c語(yǔ)言課件第01講_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

語(yǔ)言程序設(shè)計(jì)ProgramDesigninCLanguageC5/14/20241語(yǔ)言程序設(shè)計(jì)ProgramDesigninCLanguageC課程性質(zhì):大學(xué)生計(jì)算機(jī)公共基礎(chǔ)課程(選修課)學(xué)時(shí):

講課36;實(shí)驗(yàn)0(建議72學(xué)時(shí))學(xué)分:2學(xué)分考試形式:

理論計(jì)分方式:

平時(shí)成績(jī):%,期終成績(jī):%任課教師:王元強(qiáng)()5/14/20242

學(xué)習(xí)程序設(shè)計(jì)的重要性和意義:計(jì)算機(jī)采用存儲(chǔ)程序的工作方式;計(jì)算機(jī)資源:軟件系統(tǒng)資源;作為未來(lái)的科技工作者,不僅要學(xué)會(huì)使用計(jì)算機(jī)資源,還要提供資源。為大家通過計(jì)算機(jī)的等級(jí)考試做準(zhǔn)備C語(yǔ)言程序設(shè)計(jì)第一章C語(yǔ)言的發(fā)展、特點(diǎn)與程序結(jié)構(gòu)C語(yǔ)言的發(fā)展與特點(diǎn)程序設(shè)計(jì)的基本方法算法的概念及其表示C程序的基本結(jié)構(gòu)應(yīng)用程序的開發(fā)過程第一講Begin:1.1.1C語(yǔ)言的發(fā)展1.1C語(yǔ)言的發(fā)展及特點(diǎn)面向數(shù)值計(jì)算的結(jié)構(gòu)化編程語(yǔ)言ALGOL60可操作硬件,但規(guī)模大不易實(shí)現(xiàn)CPLCPL的改良版,仍存在局限性BCPL精煉了BCPL。過于簡(jiǎn)單,功能有限B既可操作硬件,又面向應(yīng)用C19601963196719701973ANSIC,MSC,TurboC,BorlandC,QuickC,AT&TC,…1.1C語(yǔ)言的發(fā)展及特點(diǎn)1.1.2C語(yǔ)言的主要特點(diǎn)

(1)C語(yǔ)言是結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言(2)具有豐富的數(shù)據(jù)類型(3)具有豐富的運(yùn)算符(4)結(jié)構(gòu)緊湊,使用方便、靈活(5)具有低級(jí)語(yǔ)言功能(6)可移植性好1.2.1計(jì)算機(jī)程序1.2程序設(shè)計(jì)的基本方法計(jì)算機(jī)解決問題所需要的一系列代碼化指令序列——計(jì)算機(jī)程序。

程序=數(shù)據(jù)結(jié)構(gòu)+算法即“程序就是在數(shù)據(jù)的某些特定的表示方式和結(jié)構(gòu)的基礎(chǔ)上,對(duì)抽象算法的具體描述?!鄙鲜龉娇蓴U(kuò)充為:

程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+語(yǔ)言工具學(xué)編程語(yǔ)言掌握“三規(guī)則”:(1)語(yǔ)法規(guī)則。包括常量、變量、運(yùn)算符、表達(dá)式、函數(shù)和語(yǔ)句的使用規(guī)則;(2)語(yǔ)義規(guī)則。包括單詞和符號(hào)的含義及其使用規(guī)則;(3)語(yǔ)用規(guī)則。即善于利用語(yǔ)法規(guī)則和語(yǔ)義規(guī)則正確組織程序的技能,使程序結(jié)構(gòu)精練、執(zhí)行效率高。所謂面向過程的程序設(shè)計(jì),是指利用面向過程的語(yǔ)言工具(如Basic、Pascal、Fortran和C語(yǔ)言等)進(jìn)行程序開發(fā)的各項(xiàng)活動(dòng)。1.2程序設(shè)計(jì)的基本方法1.2.2面向過程的程序設(shè)計(jì)優(yōu)點(diǎn):編程簡(jiǎn)單、結(jié)構(gòu)性強(qiáng)、可讀性好,程序執(zhí)行時(shí)序特征明顯;遵循這種結(jié)構(gòu)的程序只有一個(gè)入口和一個(gè)出口。缺點(diǎn):存在數(shù)據(jù)與程序模塊的分離和程序的可重用性差等問題?;舅枷耄喊岩粋€(gè)需要求解的復(fù)雜問題分為若干個(gè)模塊來(lái)處理,每個(gè)模塊處理一個(gè)子問題;設(shè)計(jì)時(shí)遵循自頂向下、逐步細(xì)化、模塊化設(shè)計(jì)和結(jié)構(gòu)化編碼的原則。1.2程序設(shè)計(jì)的基本方法1.2.3面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)是一種新的程序設(shè)計(jì)范型。它將一些新的理念和結(jié)構(gòu)化程序設(shè)計(jì)中好的思想相融合,提供了一種全新的程序設(shè)計(jì)方法?;舅枷雽⒁粋€(gè)需要求解的問題分解為一系列實(shí)體(對(duì)象),然后圍繞這些對(duì)象建立數(shù)據(jù)和函數(shù);函數(shù)的功能決定了該對(duì)象的行為。規(guī)定一個(gè)對(duì)象的函數(shù)可以訪問另一對(duì)象的函數(shù),但一個(gè)對(duì)象的數(shù)據(jù)不能應(yīng)用于另一對(duì)象的函數(shù)中。(即只有屬于該對(duì)象的成員函數(shù)才能訪問自己的數(shù)據(jù)成員,從而達(dá)到了保護(hù)數(shù)據(jù)的目的。)幾個(gè)基本概念:三類機(jī)制:類、對(duì)象、屬性、事件、方法封裝、繼承、多態(tài)算法——解決某一問題所采取的方法和步驟。1.3算法及其表示1.3.1算法的概念

⑴有窮性一個(gè)算法其操作步驟應(yīng)當(dāng)是有限的;⑵確定性算法中的每一個(gè)步驟應(yīng)當(dāng)有確定的意義,不能有二義性;⑶有效性算法中的每一個(gè)步驟應(yīng)當(dāng)正確、可行,并且能有效地執(zhí)行;⑷有零個(gè)或多個(gè)輸入執(zhí)行算法時(shí)需要從外界獲取的信息;⑸有一個(gè)或多個(gè)輸出執(zhí)行算法后應(yīng)當(dāng)?shù)玫秸_的結(jié)果。計(jì)算機(jī)算法的特性1.3算法及其表示1.3.2算法的表示1.用自然語(yǔ)言表示算法——用人們?nèi)粘J褂玫恼Z(yǔ)言和語(yǔ)序來(lái)表示算法。【例1-1】:輸入n個(gè)整數(shù),輸出其中最大的數(shù)。

自然語(yǔ)言

偽代碼

流程圖設(shè)置變量:n代表整數(shù)的個(gè)數(shù),num代表參與取值比較的整數(shù),i代表已參與取值比較的整數(shù)個(gè)數(shù),max代表n個(gè)整數(shù)中的最大數(shù)。步驟1:從鍵盤輸入一個(gè)整數(shù)給n(設(shè)n=5),將1=>i;步驟2:從鍵盤輸入一個(gè)整數(shù)給num,再將num=>max;步驟3:如果i<n,再?gòu)逆I盤輸入一個(gè)整數(shù)給num;步驟4:如果num>max,將num=>max,否則max的值為原值;步驟5:i+1=>i,如果i<n,重復(fù)步驟3和步驟4;否則輸出max的值,即輸出n個(gè)整數(shù)中的最大數(shù)。用自然語(yǔ)言描述算法如下:1.3算法及其表示2.用偽代碼表示算法——一種接近于程序設(shè)計(jì)語(yǔ)言,但又不受語(yǔ)言語(yǔ)法約束的算法表示法。上例用偽代碼表示:

輸入n個(gè)整數(shù),輸出其中最大的數(shù)。inputninputnummax=numi=1whilei<ndoinputnumifnum>maxthenmax=numendifi=i+1enddoprintmax1.3算法及其表示3.用流程圖表示算法——用一些圖框和方向線表示算法的圖形表示法。常用流程圖符號(hào)及含義如下:開始max=num,計(jì)數(shù)器i=1i<n輸入n和num的值num>maxmax=numi=i+1輸出max結(jié)束輸入數(shù)給num假假真真上例用流程圖表示:

1.3算法及其表示⒋用N-S流程圖表示算法——用一些基本結(jié)構(gòu)圖框來(lái)表示算法的圖形表示法。語(yǔ)句A語(yǔ)句B條件P成立不成立語(yǔ)句A語(yǔ)句B當(dāng)條件P成立時(shí)語(yǔ)句語(yǔ)句直到條件P不成立順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)基本結(jié)構(gòu)圖框及含義如下:輸入n的值,i=1輸入num的值,max=num輸入numnum>max真

假max=numi=i+1當(dāng)i<n輸出max的值上例用N-S流程圖表示:1.4C語(yǔ)言程序的基本結(jié)構(gòu)1.4.1簡(jiǎn)單的C語(yǔ)言程序介紹【例1-2】在屏幕上顯示一行文字:“HelloWorld!”。/*在屏幕上顯示HelloWorld!,(ex1-2.c)*/#include<stdio.h>voidmain()/*定義主函數(shù)*/{printf("HelloWorld!\n");}1.4C語(yǔ)言程序的基本結(jié)構(gòu)1.4.1簡(jiǎn)單的C語(yǔ)言程序介紹【例1-2】在屏幕上顯示一行文字:“HelloWorld!”。/*在屏幕上顯示HelloWorld!,(ex1-2.c)*/#include<stdio.h>voidmain()

/*定義主函數(shù)*/{printf("HelloWorld!\n");}

注釋部分以增加程序的可讀性。1.4C語(yǔ)言程序的基本結(jié)構(gòu)1.4.1簡(jiǎn)單的C語(yǔ)言程序介紹【例1-2】在屏幕上顯示一行文字:“HelloWorld!”。/*在屏幕上顯示HelloWorld!,(ex1-2.c)*/#include<stdio.h>voidmain()

/*定義主函數(shù)*/{printf("HelloWorld!\n");}

預(yù)處理命令程序中包含某一文件內(nèi)容?!皊tdio.h”為標(biāo)準(zhǔn)輸入輸出函數(shù)頭文件名。1.4C語(yǔ)言程序的基本結(jié)構(gòu)1.4.1簡(jiǎn)單的C語(yǔ)言程序介紹【例1-2】在屏幕上顯示一行文字:“HelloWorld!”。/*在屏幕上顯示HelloWorld!,(ex1-2.c)*/#include<stdio.h>voidmain()/*定義主函數(shù)*/{printf("HelloWorld!\n");}

函數(shù)

C程序由函數(shù)組成;一個(gè)C程序至少有一個(gè)主函數(shù)(main函數(shù))。1.4C語(yǔ)言程序的基本結(jié)構(gòu)1.4.1簡(jiǎn)單的C語(yǔ)言程序介紹【例1-2】在屏幕上顯示一行文字:“HelloWorld!”。/*在屏幕上顯示HelloWorld!,(ex1-2.c)*/#include<stdio.h>voidmain()/*定義主函數(shù)*/{printf("HelloWorld!\n");}

函數(shù)說(shuō)明

說(shuō)明函數(shù)類型、函數(shù)名和函數(shù)參數(shù)。1.4C語(yǔ)言程序的基本結(jié)構(gòu)1.4.1簡(jiǎn)單的C語(yǔ)言程序介紹【例1-2】在屏幕上顯示一行文字:“HelloWorld!”。/*在屏幕上顯示HelloWorld!,(ex1-2.c)*/#include<stdio.h>voidmain()

/*定義主函數(shù)*/{printf("HelloWorld!\n");}

函數(shù)體

包括變量說(shuō)明和語(yǔ)句執(zhí)行部分。1.4C語(yǔ)言程序的基本結(jié)構(gòu)1.4.1簡(jiǎn)單的C語(yǔ)言程序介紹【例1-2】在屏幕上顯示一行文字:“HelloWorld!”。/*在屏幕上顯示HelloWorld!,(ex1-2.c)*/#include<stdio.h>voidmain()/*定義主函數(shù)*/{printf("HelloWorld!\n");}

函數(shù)調(diào)用語(yǔ)句格式輸出函數(shù)printf()。

輸出“Helloworld!”。程序運(yùn)行結(jié)果:HelloWorld!1.4C語(yǔ)言程序的基本結(jié)構(gòu)#include<stdio.h>#include<math.h>voidmain(){floata,b,c,p,disc,q,x1,x2;scanf("%f%f%f",&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf("x1=%f,x2=%f",x1,x2);}【例1-3】求方程的根(設(shè))。1.4C語(yǔ)言程序的基本結(jié)構(gòu)#include<stdio.h>#include<math.h>voidmain(){floata,b,c,p,disc,q,x1,x2;scanf("%f%f%f",&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf("x1=%f,x2=%f",x1,x2);}【例1-3】求方程的根(設(shè))。預(yù)處理命令1.4C語(yǔ)言程序的基本結(jié)構(gòu)#include<stdio.h>#include<math.h>voidmain(){floata,b,c,p,disc,q,x1,x2;scanf("%f%f%f",&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf("x1=%f,x2=%f",x1,x2);}【例1-3】求方程的根(設(shè))。

函數(shù)一個(gè)主函數(shù)(main函數(shù))。1.4C語(yǔ)言程序的基本結(jié)構(gòu)#include<stdio.h>#include<math.h>voidmain(){floata,b,c,p,disc,q,x1,x2;scanf("%f%f%f",&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf("x1=%f,x2=%f",x1,x2);}【例1-3】求方程的根(設(shè))。

函數(shù)說(shuō)明部分1.4C語(yǔ)言程序的基本結(jié)構(gòu)#include<stdio.h>#include<math.h>voidmain(){

floata,b,c,p,disc,q,x1,x2;

scanf("%f%f%f",&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf("x1=%f,x2=%f",x1,x2);}【例1-3】求方程的根(設(shè))。

函數(shù)體

變量說(shuō)明部分執(zhí)行部分1.4C語(yǔ)言程序的基本結(jié)構(gòu)#include<stdio.h>#include<math.h>voidmain(){floata,b,c,p,disc,q,x1,x2;

scanf("%f%f%f",&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;

printf("x1=%f,x2=%f",x1,x2);}【例1-3】求方程的根(設(shè))。程序運(yùn)行結(jié)果:10-4↙x1=2.000000,x2=-2.000000

運(yùn)行程序鍵盤輸入a、b、c的值;屏幕顯示x1和x2的值。1.4C語(yǔ)言程序的基本結(jié)構(gòu)【例1-4】求|a|+|b|的值。#include<stdio.h>#include<math.h>floatabsv(floatx){floaty;y=x>=0?x:-x;returny;}voidmain(){floata,b,c;printf("inputa,b:\n");scanf("%f%f",&a,&b);c=absv(a)+absv(b);printf("|a|+|b|=%f\n",c);}1.4C語(yǔ)言程序的基本結(jié)構(gòu)【例1-4】求|a|+|b|的值。#include<stdio.h>#include<math.h>floatabsv(floatx){floaty;y=x>=0?x:-x;returny;}voidmain(){floata,b,c;printf("inputa,b:\n");scanf("%f%f",&a,&b);c=absv(a)+absv(b);printf("|a|+|b|=%f\n",c);}

程序由兩個(gè)函數(shù)組成:

absv函數(shù)和main函數(shù)。1.4C語(yǔ)言程序的基本結(jié)構(gòu)【例1-4】求|a|+|b|的值。#include<stdio.h>#include<math.h>floatabsv(floatx){floaty;y=x>=0?x:-x;returny;}voidmain(){floata,b,c;printf("inputa,b:\n");scanf("%f%f",&a,&b);c=absv(a)+absv(b);printf("|a|+|b|=%f\n",c);}調(diào)用absv函數(shù)求絕對(duì)值。1.4C語(yǔ)言程序的基本結(jié)構(gòu)【例1-4】求|a|+|b|的值。#include<stdio.h>#include<math.h>floatabsv(floatx){floaty;y=x>=0?x:-x;returny;}voidmain(){floata,b,c;printf("inputa,b:\n");scanf("%f%f",&a,&b);c=absv(a)+absv(b);printf("|a|+|b|=%f\n",c);}inputa,b:-513↙|a|+|b|=18.000000

運(yùn)行程序屏幕顯示提示信息;鍵盤輸入a、b的值;屏幕顯示a、b絕對(duì)值之和。1.4C語(yǔ)言程序的基本結(jié)構(gòu)⑴一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組成,但至少有一個(gè)主函數(shù)(main函數(shù));main函數(shù)是程序執(zhí)行的入口,可置于程序的任何位置。⑵程序中可以有預(yù)處理命令(如:include命令)。預(yù)處理命令通常放在程序的最前面。⑶每個(gè)語(yǔ)句以分號(hào)結(jié)尾;預(yù)處理命令、函數(shù)頭和花括號(hào)“}”之后不能加分號(hào)。⑷函數(shù)包括函數(shù)的說(shuō)明部分和函數(shù)體;函數(shù)體包括變量說(shuō)明部分和執(zhí)行部分;函數(shù)體由一對(duì)花括號(hào)“{}”括起來(lái)。⑸括在/*…*/內(nèi)的文本為注釋內(nèi)容。⑹一行可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句也可以寫在多行上。⑺程序區(qū)分大小寫字母。一般變量、語(yǔ)句等用小寫字母書寫;符號(hào)常量、宏名等用大寫字母書寫。⑻標(biāo)識(shí)符和保留字之間須加空格以示分隔?!纠?-2】#include<stdio.h>voidmain()/*定義主函數(shù)*/{printf("HelloWorld!

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論