《C語言程序設計(第5版)》全套教學課件_第1頁
《C語言程序設計(第5版)》全套教學課件_第2頁
《C語言程序設計(第5版)》全套教學課件_第3頁
《C語言程序設計(第5版)》全套教學課件_第4頁
《C語言程序設計(第5版)》全套教學課件_第5頁
已閱讀5頁,還剩1024頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章

C

語言概述C語言程序設計(第五版)全套可編輯PPT課件01-C語言概述02-C語言基礎及順序結構程序設計03-選擇結構程序設計04-循環(huán)結構程序設計05-數(shù)組06-函數(shù)與編譯預處理命令07-指針08-結構體和共用體09-文件10-位運算1.1

C語言簡介1.2

C

語言程序的基本結構和書寫風格1.3

算法及算法的描述1.4

C

語言程序的調試和運行步驟1.5

在VisualC++中運行C語言程序過程第1章

C

語言概述

內容提綱第1章

C

語言概述一、教學目的

?了解

C

語言的由來、特點,C

語言程序的基本結構;

?了解編程風格的重要性,養(yǎng)成良好的編程風格習慣;

?了解

C

語言是按編譯方式執(zhí)行的;

?熟悉和掌握

VC++2010的運行環(huán)境。二、教學要求

?掌握

C

語言的特點和基本結構;

?了解算法的概念,掌握用流程圖和

N-S

圖來描述一個算法;

?掌握

VC++2010集成開發(fā)環(huán)境基本操作。三、教學重點、難點

?掌握

C

語言程序的基本結構;

?掌握用流程圖和

N-S

圖正確地描述要解決的實際問題。第1章

C

語言概述

內容提綱1.1

C語言簡介1.2C語言程序的基本結構和書寫風格1.3算法及算法的描述1.4C語言程序的調試和運行步驟1.5在VisualC++中運行C語言程序過程Youare

here!你在這兒!1.1

C程語言簡介?

程序設計語言

程序設計語言是計算機能夠理解和識別的一種語言體系,它按照特定的語法規(guī)則組織計算機指令,使計算機能夠自動進行各種操作處理。?

計算機程序

按照程序設計語言的語法規(guī)則組織起來的一組計算機指令被稱為計算機程序。1.程序設計語言的發(fā)展歷程機器語言1.2.匯編語言3.高級語言程序設計語言的分類4.面向對象的語言1.1

C程語言簡介1.1

C程語言簡介

例如:

1011000

00001111

表示把15送入寄存器AL中的某種型號計算機的指令。

(1)機器語言

機器語言是用0和1組成的機器指令,能被計算機直接識別和執(zhí)行的語言。

用機器語言編寫的程序執(zhí)行效率雖然比較高,但是,機器語言不易記憶,通用性差。1.1

C程語言簡介(2)匯編語言

匯編語言用助記符取代了機器指令,而且助記符與機器指令一一對應,與機器語言相比,匯編語言比較直觀、易記憶,但移植性不好。

匯編語言指令表示:MOVAL,15

機器語言指令表示:1011000

00001111

例如:把15送入寄存器AL中的匯編語言和機器語言都是面向機器的程序設計語言一般稱為低級語言1.1

C程語言簡介(3)高級語言

高級語言使用接近人類自然語言的語句代碼來編寫計算機程序。由于高級語言與具體的計算機指令系統(tǒng)無關,所以用高級語言編寫的程序能在不同型號的計算機上運行,通用性好。1.1

C程語言簡介例如:

表示把15送入寄存器AL中的高級語言指令如下:

AL=15;(4)面向對象的語言

隨著計算機技術的發(fā)展產生了面向對象的語言,其特點是編寫程序時只要考慮如何認識問題中的對象和描述對象,而不必具體說明對象中的數(shù)據(jù)操作。1.1

C程語言簡介例如:

VisualC++、Java

語言等就是典型代表。

1963年英國的劍橋大學在ALGOL60的基礎上推出了CPL語言,但是CPL語言難以實現(xiàn)。1967年英國劍橋大學的學者對CPL語言作了簡化和改進,推出了BCPL語言。1970年美國貝爾實驗室的學者以BCPL語言為基礎,設計出了簡單且接近硬件的B語言。1972年由美國的學者D.M.Ritchie在B語言的基礎上設計出了C語言。

1977年D.M.Ritchie發(fā)表了不依賴于具體機器的C語言編譯文本《可移植C語言編譯程序》,大大簡化了將C語言移植到其他機器上所需要的工作。1978年以后,C語言先后移植到大、中、小、微型計算機上。C語言很快風靡全世界,成為世界上應用最廣泛的程序設計語言。2.C

語言的發(fā)展歷程1.1

C程語言簡介3.

C

語言的主要特點(1)C語言基本組成部分緊湊簡潔,功能豐富,使用方便、靈活

C語言只有32個關鍵字和9種控制語句,運算類型極其豐富,表達式類型簡潔,語法限制不太嚴格,程序設計自由度大,且使用一些簡單的方法就可以構造出相當復雜的數(shù)據(jù)類型和程序結構。1.1

C程語言簡介(2)C語言是結構化語言

C語言程序主要是由函數(shù)構成的,這些函數(shù)可方便地調用,并具有多種條件、循環(huán)語句控制程序的流向,使程序完全結構化。結構化語言程序清晰、更易于程序設計、調試和維護。(3)C語言允許直接訪問硬件

C

語言允許直接訪問物理地址,可以直接對硬件進行操作,因此它既具有高級語言的功能,又具有低級語言的許多功能。1.1

C程語言簡介(4)C語言程序目標代碼的質量和效率高

C語言程序編譯后生成的目標代碼質量高,程序執(zhí)行效率高。C語言編寫的程序一般僅比匯編語言所生成的目標代碼效率低10%~20%。(5)C語言適用范圍廣,可移植性好

C語言程序基本上不做修改就能用于各種型號的計算機和各種操作系統(tǒng)。1.1

C程語言簡介C語言的上述特點使其在操作系統(tǒng)開發(fā)、操作系統(tǒng)相關軟件開發(fā)、服務器運維、嵌入式開發(fā)中具有廣泛的應用。我國目前在許多基礎軟件,如操作系統(tǒng)、數(shù)據(jù)庫軟件、工業(yè)軟件方面的完全國有化、自主產權化和先進性提升等等方面仍有很多工作要做。這些都要依靠具備扎實的計算機編程基礎的專業(yè)型青年人才來完成。

因此無論是對普通理工科學生還是信息專業(yè)的高等院校學生來說,都應當重視和良好的掌握這門語言。1.1

C程語言簡介第1章

C

語言概述

內容提綱1.1

C語言簡介1.2C語言程序的基本結構和書寫風格1.3算法及算法的描述1.4C語言程序的調試和運行步驟1.5在VisualC++中運行C語言程序過程Youare

here!你在這兒!

預處理命令

#include<stdio.h>

函數(shù)的首部

intmain()

函數(shù)體開始

{

printf("Let'sstudytheClanguage!\n");

return0;

函數(shù)體結束

}一個C語言函數(shù)

程序運行結果:Let'sstudytheClanguage!1.2C

語言程序的基本結構和書寫風格1.2.1C

語言程序的基本結構【例1.1】用

C

語言編寫一個程序,在屏幕上顯示:

Let'sstudytheClanguage!函數(shù)體1.2C

語言程序的基本結構和書寫風格1.2.1C

語言程序的基本結構【例1.2】使用

C

語言編寫一個程序,求兩個數(shù)a與b之和。#include<stdio.h>

/*程序需要使用C語言提供的庫函數(shù)*/intadd(intx,inty)

/*定義函數(shù)add(),功能是求兩個數(shù)x、y之和*/{

intsum; /*定義整型變量sum*/

sum=x+y; /*將x、y之和賦給變量sum*/

return(sum); /*返回sum的值*/}intmain() /*主函數(shù)*/{

inta,b,c; /*定義a、b、c三個整型變量*/

a=123; /*把常數(shù)123賦給變量a*/

b=456; /*把常數(shù)456賦給變量b*/

c=add(a,b); /*調用函數(shù)add,并將返回的值賦值給變量c*/

printf("sum=%d\n",c);

/*輸出返回的c的值*/

return0;}1.2C

語言程序的基本結構和書寫風格1.2.1C

語言程序的基本結構程序運行結果:sumis:5791.2C

語言程序的基本結構和書寫風格1.2.1C

語言程序的基本結構(1)函數(shù)的首部(2)函數(shù)體一個函數(shù)由兩部分組成

?

函數(shù)的首部:即函數(shù)的第一行,包括函數(shù)類型、函數(shù)名、參數(shù)類型和參數(shù)名。函數(shù)名后面必須跟一對圓括號,函數(shù)參數(shù)可以沒有。

例如:函數(shù)類型函數(shù)名參數(shù)類型參數(shù)名int

add(

int

x,

int

y

){

intsum;

sum=x+y;

return(sum);}參數(shù)類型參數(shù)名1.2C

語言程序的基本結構和書寫風格1.2.1C

語言程序的基本結構沒有參數(shù)函數(shù)類型函數(shù)名int

main(

){

inta,b,c;

a=123;

b=456;

c=add(a,b);

printf("sum=%d\n",c);return0;}1.2C

語言程序的基本結構和書寫風格1.2.1C

語言程序的基本結構(1)說明部分(2)執(zhí)行部分函數(shù)體

?函數(shù)體

即函數(shù)首部下面的大括號{……}內的部分。函數(shù)體一般包括說明部分(也稱數(shù)據(jù)定義部分或聲明部分)和執(zhí)行部分,它們都是C語句?!ふf明部分:

是對函數(shù)體要用到的變量進行定義及對其所調用函數(shù)的聲明?!?zhí)行部分:

用于完成函數(shù)內部所規(guī)定的各項操作。intmain(){

inta,b,c;

intadd(int

x,int

y);

a=123;

b=456;

c=add(a,b);

printf("sum=%d\n",c);

return0;}int

add(int

x,

int

y){

intsum;

sum=x+y;

return(sum);}1.2C

語言程序的基本結構和書寫風格1.2.1C

語言程序的基本結構C語言程序的結構特點:

程序由函數(shù)構成,函數(shù)有主函數(shù)

main()、庫函數(shù)以及自定義函數(shù)三種類型。

一個函數(shù)的說明部分在前,執(zhí)行部分在后,這兩部分的順序不能顛倒,也不能交叉。

一個程序總是從主函數(shù)

main()開始執(zhí)行,無論主函數(shù)寫在程序的什么位置。

程序的語句都是以分號結尾。

程序中可以有編譯預處理命令,其通常應放在程序的最前面。#include<stdio.h>intadd(intx,

inty){

intsum;

sum=x+y;

return(sum);}intmain()

{

inta,b,c;

a=123;

b=456;

c=add(a,b);

printf("sum=%d\n",c);return0;}1.2C

語言程序的基本結構和書寫風格1.2.1C

語言程序的基本結構

為提高程序的可讀性,在書寫

C

語言程序時應遵循以下規(guī)則:

(1)一個說明或一個語句占一行。

(2)用{

}括起來的部分,通常表示了程序的某一層次結構。在使用時盡可能采用左右大括號各占一行,且上、下對齊,以便于檢查括號的匹配性。

(3)整個程序采用遞縮格式書寫。即內層次語句向右邊縮進若干空格后書寫,同一層語句上、下左對齊,以便看起來更加清晰。1.2C

語言程序的基本結構和書寫風格1.2.2

C

語言程序的書寫風格1.2C

語言程序的基本結構和書寫風格(4)對于數(shù)據(jù)的輸入/輸出,運行時最好要出現(xiàn)輸入/輸出提示信息。

(5)對語句、函數(shù)和程序,應加上適當?shù)淖⑨尅W⑨尣挥绊懗绦虻膱?zhí)行,主要用來說明語句、函數(shù)和程序的功能、用途或程序實現(xiàn)的方法等,以便提高程序的可讀性。注釋方法有兩種

/*注釋內容*/:適用于單行或多行注釋//注釋內容:適用于單行注釋1.2.2

C

語言程序的書寫風格#include<stdio.h>

//程序需要使用C語言提供的庫函數(shù)intadd(intx,inty)

/*定義函數(shù)add(),功能是求兩個數(shù)x、y之和*/{

intsum;

//定義變量sum為整型

sum=x+y;

//將x、y之和賦給變量sum

return(sum);

//返回sum的值}intmain()

/*主函數(shù)*/{

inta,b,c;

//定義a、b、c三個整型變量

a=123;

//把常數(shù)123賦給變量a

b=456;

//把常數(shù)456賦給變量b

c=add(a,b);

//調用函數(shù)add,并將返回的值賦值給變量c

printf("sum=%d\n",c);

//輸出返回的c的值

return0;}1.2C

語言程序的基本結構和書寫風格1.2.1C

語言程序的基本結構1.2C

語言程序的基本結構和書寫風格#include<stdio.h>intadd(intx,inty){

intsum;sum=x+y;return(sum);}intmain()

{inta,b,c;a=123;b=456;c=add(a,b);

printf("sum=%d\n",c);return0;}#include<stdio.h>intadd(intx,inty){intsum;sum=x+y;return(sum);}intmain(){inta,b,c;a=123;b=456;c=add(a,b);printf("sum=%d\n",c);

return0;}【例1.3】將例1.2求兩個數(shù)

a

b

之和的程序,用規(guī)范和不規(guī)范格式書寫。按不規(guī)范形式書寫程序按規(guī)范形式書寫程序1.2.2

C

語言程序的書寫風格第1章

C

語言概述

內容提綱1.1

C語言簡介1.2C語言程序的基本結構和書寫風格1.3算法及算法的描述1.4C語言程序的調試和運行步驟1.5在VisualC++中運行C語言程序過程Youare

here!你在這兒!1.3算法及算法的描述·一個程序一般包括以下兩方面的內容

(1)對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即“數(shù)據(jù)結構”。

(2)對數(shù)據(jù)操作的描述,即操作步驟,也就是“算法”。著名的公式:程序=數(shù)據(jù)結構+算法無論是什么程序設計方法,或使用什么程序設計語言,程序的本質都是通過“算法”來對“數(shù)據(jù)”進行加工處理。1.3算法及算法的描述·算法的描述

算法的描述方法多種多樣,可以使用自然語言描述,也可以使用專門的算法表達工具進行描述。(1)流程圖方式(2)N-S圖方式常用的算法的描述方法1.流程圖方式流程圖是用一些圖框表示各種類型的操作,用線表示這些操作的執(zhí)行順序。常用的流程圖符號的功能:

起止框(a):表示算法由此開始或結束。

處理框(b):表示基本操作處理。

判斷框(c):表示根據(jù)條件進行判斷操作處理。

輸入/輸出框(d):表示輸入數(shù)據(jù)或輸出數(shù)據(jù)。

流程線(e):表示程序的執(zhí)行流向。1.3算法及算法的描述1.3算法及算法的描述例如:計算半徑為r的圓面積s算法的流程圖描述如下:1.3算法及算法的描述例如:判斷輸入的兩個正整數(shù)x、y的大小,并輸出其中的大數(shù)算法的流程圖描述如下:2.N-S圖方式

去掉帶箭頭的流程線,算法全部寫在一個矩形框內,在該框內還可以包含其他的從屬于它的框,或者說,由一些基本的框組成一個大的框。(a)順序結構(b)選擇結構(c)當型循環(huán)結構(d)直到型循環(huán)結構N-S圖中使用的基本符號1.3算法及算法的描述1.3算法及算法的描述例如:計算半徑為r的圓面積s算法的N-S圖描述如下:1.3算法及算法的描述例如:判斷輸入的兩個正整數(shù)x、y的大小,并輸出其中的大數(shù)算法的N-S圖描述如下:【例

1.4】繪制“求3個整型數(shù)中的最大數(shù)問題”的流程圖和N-S圖。流程圖描述

N-S圖描述第1章

C

語言概述

內容提綱1.1

C語言簡介1.2C語言程序的基本結構和書寫風格1.3算法及算法的描述1.4C語言程序的調試和運行步驟1.5在VisualC++中運行C語言程序過程Youare

here!你在這兒!

C

語言編寫的源程序必須經編譯、連接生成可執(zhí)行文件(*.exe),才可以運行。1.4C

語言程序的調試和運行步驟

C

語言源程序的運行步驟1.編輯(edit)

使用一個系統(tǒng)提供的文本編輯器編輯

C

語言源程序,并將其保存為

“.c”

的文件。2.編譯(compile)

編譯程序會自動分析、檢查源程序的語法錯誤,并報告警告或出錯原因。用戶可根據(jù)報告信息修改源程序,再編譯,直到程序正確后,生成目標程序

“.obj”。3.連接(link)生成目標程序后,將目標程序與系統(tǒng)提供的庫函數(shù)或其他目標程序進行連接,得到最終的可執(zhí)行文件。連接成功后生成可執(zhí)行文件“.exe”。4.運行(run)運行程序并檢查運行結果的正確性。如果運行結果不正確,應檢查程序或算法,重新編輯代碼。1.4C

語言程序的調試和運行步驟

本章介紹了

C

語言的由來、特點和

C

語言程序的基本結構,還介紹了在

VisualC++2010

中執(zhí)行

C

語言程序的編輯、編譯、連接及運行步驟。

函數(shù)是

C

語言程序的基本單位。一個

C

語言源程序可以由多個函數(shù)組成,其中必須有一個,而且只能有一個名為

main()

的主函數(shù)。C

語言程序總是從

main()

函數(shù)開始執(zhí)行。

編寫規(guī)范的程序和養(yǎng)成良好的書寫風格,可以提高程序的可讀性。

算法是程序設計的關鍵,可以幫助我們正確地描述要解決的實際問題。本

結參

獻1.恰汗·合孜爾.實用計算機數(shù)值計算方法及程序設計(C語言版)[M].北京:清華大學出版社,2008.2.韋娜

王俊

袁玲

吳文紅等編著.C程序程序設計[M].2版.北京:清華大學出版社,2019.3.占躍華

符傳誼

畢傳林

主編.C語言程序設計[M].3版.北京:北京郵電大學出版社,2019.4.占躍華

符傳誼

主編.C語言程序設計實訓教程[M].3版.北京:北京郵電大學出版社.2019.5.趙春曉王麗君編著.C語言程序設計基礎[M].北京:清華大學出版社,2017.6.郭偉青趙建鋒何朝陽編著.C程序設計[M].北京:清華大學出版社,2007.7.張磊編著.C語言程序設計[M].4版.北京:清華大學出版社,2018.8.金龍海李聰主編.C語言程序設計[M].北京:科學出版社,2012.9.譚浩強編著.C程序設計[M].5版.北京:清華大學出版社,2017.第2章

C語言基礎及順序結構程序設計C語言程序設計(第五版)2.1

C

語言的字符集2.2

C

語言的關鍵字、標識符和保留標識符2.3

C

語言的數(shù)據(jù)類型2.4

常量2.5

變量2.6

C

語言的運算符和表達式2.7C語言中最基本的運算符和表達式2.8C語言的基本語句2.9數(shù)據(jù)的輸入與輸出2.10順序結構程序設計2.11程序舉例第2章

C語言基礎及順序結構程序設計

內容提綱第2章C語言基礎及順序結構程序設計一、教學目的

?了解

C

語言的幾種基本數(shù)據(jù)類型;

?了解不同類型數(shù)據(jù)間的混合運算規(guī)則;

?掌握格式輸入

/

輸出函數(shù)的使用方法;

?會編寫一些簡單的順序結構程序。第2章C語言基礎及順序結構程序設計二、教學要求

?掌握

C

語言的幾種基本數(shù)據(jù)類型;

?掌握標識符的概念,熟悉變量和常量先定義后使用的特點;

?熟練掌握各種類型數(shù)據(jù)的定義與存儲特點;

?熟悉整型數(shù)據(jù)與字符型數(shù)據(jù)間的關系;

?掌握定義變量的同時,賦初值的方法;

?掌握各種運算符和表達式的含義與使用要點;

?掌握不同類型數(shù)據(jù)間的混合運算規(guī)則;

?掌握

C

語言的基本語句;

?了解

C語言程序的基本結構:順序結構;

?熟練掌握格式輸入/輸出函數(shù)的使用方法;

?能編寫簡單的順序結構程序。第2章

C

語言基礎及順序結構程序設計三、教學重點、難點

?重點:

?C

語言的幾種基本數(shù)據(jù)類型

?

不同類型數(shù)據(jù)間的混合運算規(guī)則

?熟悉整型數(shù)據(jù)與字符型數(shù)據(jù)間的關系

?難點:

?格式輸入

/

輸出函數(shù)的使用方法第2章

C

語言基礎及順序結構程序設

內容提綱2.1

C語言的字符集Youare

here!你在這兒!2.2

C

語言的關鍵字、標識符和保留標識符2.3

C

語言的數(shù)據(jù)類型2.4

常量2.5

變量2.6

C

語言的運算符和表達式2.7C語言中最基本的運算符和表達式2.8C語言的基本語句2.9數(shù)據(jù)的輸入與輸出2.10順序結構程序設計2.11程序舉例2.1

C

語言的字符集?

字符集

字符是組成

C

語言的最基本的元素。C

語言字符集由字母、數(shù)字、空白符、下劃線、標點符號和特殊字符組成。?

C

語言的字符集的構成

字母:小寫字母a~z共26個,大寫字母A~Z共26個

數(shù)字:0~9共10個

空白符:空格符、制表符和換行符等統(tǒng)稱為空白符

④下畫線:_

標點符號、特殊字符:+、-、*、/、%、=、>、<、(、)、

[、]、

{、}、!、&、#、^、?、,、.、;、:、'、"、\,以及注釋符,轉義字符(后面會專門介紹)等。

在編寫C語言程序時,只能使用C語言字符集中的字符,且區(qū)分大小寫英文字母。第2章

C

語言基礎及順序結構程序設

內容提綱2.1

C語言的字符集Youare

here!你在這兒!2.2

C語言的關鍵字、標識符和保留標識符2.3

C

語言的數(shù)據(jù)類型2.4

常量2.5

變量2.6

C

語言的運算符和表達式2.7C語言中最基本的運算符和表達式2.8C語言的基本語句2.9數(shù)據(jù)的輸入與輸出2.10順序結構程序設計2.11程序舉例·關鍵字

是具有特定含義的、專門用來說明

C

語言的特定成分的一類單詞。

關鍵字都是用小寫字母書寫,不能用大寫字母書寫。

關鍵字不能用于變量名或函數(shù)名等其他場合。2.2C

語言的關鍵字、標識符和保留標識符chardoubleenumfloatintlongshortsignedstructunionunsignedvoidbreakcasecontinuedefaultdoelseforgotoifreturnswitchwhileautoexternregisterstaticconstsizeoftypedefvolatileC語言定義的32個關鍵字2.2.1關鍵字·標識符

用于標識名字的有效字符序列稱為標識符?!俗R符的用途

標識符可用來標識變量名、符號常量名﹑函數(shù)名、數(shù)組名和數(shù)據(jù)類型名等。2.2C

語言的關鍵字、標識符和保留標識符2.2.2標識符2.2C

語言的關鍵字、標識符和保留標識符2.2.2標識符·標識符的命名應遵循以下規(guī)則:

①標識符只能由英文字母、數(shù)字和下畫線

3

種字符組

成,且第一個字符必須為字母或下畫線。

②大小寫英文字母被認為是不同的字符。

例如:D

d、BOOK

book

是不同的標識符。

③標識符不能與關鍵字和保留標識符重名。

④在一個標識符中,各個字符之間不允許出現(xiàn)空格。

⑤標識符的長度可以為任意,它隨編譯系統(tǒng)的不同而

不同。?

正確的標識符命名:

_3a

x3

PI

musicabD34xzBook_1BOOTBALL?不正確的標識符命名:

a+bG.W.Bush

3s

-3x

int#xyprintfuv定義標識符時應盡量做到“見名知意”,以提高程序的可讀性。例如,可用

sum

表示求和、name

表示姓名、max

表示最大值、min

表示最小值等。2.2C

語言的關鍵字、標識符和保留標識符2.2.2標識符提示:例如:

正弦函數(shù)sin(

)、打印函數(shù)

printf(

)、預編譯處理命令

#define

等。2.2C

語言的關鍵字、標識符和保留標識符2.2.3保留標識符·保留標識符

保留標識符是系統(tǒng)保留的一部分標識符,通常用于系統(tǒng)定義庫函數(shù)的名字。第2章

C

語言基礎及順序結構程序設

內容提綱2.1

C語言的字符集2.2

C

語言的關鍵字、標識符和保留標識符2.3

C語言的數(shù)據(jù)類型2.4

常量2.5

變量2.6

C

語言的運算符和表達式2.7C語言中最基本的運算符和表達式2.8C語言的基本語句2.9數(shù)據(jù)的輸入與輸出2.10順序結構程序設計2.11程序舉例Youare

here!你在這兒!·C語言的數(shù)據(jù)類型C語言對具有相同屬性的數(shù)據(jù),采用相同的取值范圍和相同的操作,這種相同的屬性集合稱為數(shù)據(jù)類型。

數(shù)據(jù)類型決定數(shù)據(jù)的表示形式、占據(jù)存儲空間的大小、數(shù)據(jù)的取值范圍和運算方式。2.3C

語言的數(shù)據(jù)類型基本數(shù)據(jù)類型是非數(shù)據(jù)類型的基礎非基本數(shù)據(jù)類型基本數(shù)據(jù)類型·C

語言數(shù)據(jù)類型的分類2.3C

語言的數(shù)據(jù)類型

C

語言的數(shù)據(jù)類型由+2.3C

語言的數(shù)據(jù)類型·C語言數(shù)據(jù)類型及其分類關系第2章

C

語言基礎及順序結構程序設

內容提綱2.1

C語言的字符集2.2

C

語言的關鍵字、標識符和保留標識符2.3C語言的數(shù)據(jù)類型2.4

常量2.5

變量2.6

C

語言的運算符和表達式2.7C語言中最基本的運算符和表達式2.8C語言的基本語句2.9數(shù)據(jù)的輸入與輸出2.10順序結構程序設計2.11程序舉例Youare

here!你在這兒!·常量

所謂常量是指在程序運行的整個過程中,其值始終不變的量?!こA款愋偷姆诸?.4常

量2.4常

量2.4.1整型常量十進制整型常量12八進制整型常量3十六進制整型常量整型常量有3

種表示形式1.十進制整型常量

十進制整型常量的數(shù)碼為

0~9

,數(shù)值前面可以有+、-符號。例如:

合法的十進制整型常量:

237,

-568,

65535

不合法的十進制整型常量:

3.(含有小數(shù)點,是實數(shù)),035(不能有前綴0)

23D(含有非十進制數(shù)碼

D)2.4常

量十進制整型常量的數(shù)值前面不允許加

0注意:2.4.1整型常量2.八進制整型常量

八進制整型常量的表示形式是以數(shù)字0開頭,由0~7的數(shù)字組成。合法的八進制常量:

015(十進制為13),0177777(十進制為65535)

不合法的八進制常量:

256(無前綴0),0128(出現(xiàn)了非八進制數(shù)碼8)2.4常

量2.4.1整型常量3.十六進制整型常量

十六進制整型常量的表示形式是以

0x

0X

開頭,由0~9

的數(shù)字、A~F

a~f

字母組成。

合法的十六進制整型常量:

0X2A(十進制為42),0XFFFF(十進制為65535)

不合法的十六進制整型常量:

5A(無前綴0X),0X3H(含有非十六進制數(shù)碼H)

※一個整型常量后面加了后綴l或L,則被認為是longint類型常量,如55與55L

數(shù)值上相等,但類型不同,后者為long型。2.4.1整型常量2.4常

量·實型常量

實型常量即為實數(shù),它只有十進制這一種數(shù)值。2.4.2

實型常量2.4常

量(1)小數(shù)形式(2)指數(shù)形式實型常量的兩種形式·實型常量1.小數(shù)形式

由正號或負號、0~9

的數(shù)字和小數(shù)點組成,且小數(shù)點的前面或后面至少一邊要有數(shù)字。

例如:-1.85、

0.3456、

120.0、

.426

2.指數(shù)形式

由十進制數(shù)(尾數(shù))加階碼標志

“e”

“E”

以及階碼(只能是整數(shù),可以帶符號)組成。

其一般形式為:

aEn

aen

其中

a

為十進制數(shù),階碼n

為十進制整數(shù)(n

為正數(shù)時“+”可以省略),其值為

a×10n。2.4.2

實型常量2.4常

量·合法的指數(shù)形式:

1.234e12(等于1.234×1012)

3.7E-2(等于3.7×10-2)

2.34e+8(等于2.34×108)·非法的指數(shù)形式:

568(無小數(shù)點)

e-5(階碼標志“e”之前無數(shù)字)

-5(無階碼標志)

58+e5(符號位置不對)

2.7E(無階碼)

6.4e+5.8(階碼不是整數(shù))2.4.2

實型常量2.4常

量·對于實型常量的兩種表示形式,系統(tǒng)均默認為是雙精度實型常量。

例如:

5.35、5.5e5

的類型均為

double

型·如果一個實型常量的后面加上了

F

f,則被認為是

float

單精度實型常量。

例如:

0.5e2f、3.14159F2.4.2

實型常量2.4常

量·字符常量

字符常量是用單引號括起來的一個字符。

例如:

'a'、'0'、'A'、'-'、'*'

都是合法字符常量

'a'和'A'是不同的字符常量

除了以上形式的字符常量以外,C

語言還定義了一些特殊的字符常量,是以反斜杠

"\"開頭的字符序列,稱為轉義字符。轉義字符的意思是將反斜杠

"\"后面的字符轉變成另外的意義。2.4常

量2.4.3字符常量字符形式含義ASCII碼\n換行,將當前位置移到下一行開頭10\t水平位移,跳到下一個tab位置9\b退格,將當前位置移到前一列8\r回車,將當前位置移到本行開頭13\f換頁,將當前位置移到下一頁開頭12\\反斜杠字符“\”92\'單引號字符“'”39\"雙引號字符“"”34\0空字符0\ddd

1到3位八進制數(shù)所代表的ASCII碼字符\xhh1到2位十六進制數(shù)所代表的ASCII碼字符轉義字符及其含義2.4.3字符常量2.4常

注意:

①字符常量只能用單引號括起來,不能用雙引號或其他括號。

例如:

'a'

'5'

②字符常量只能是單個字符,不能是字符串。

例如:

'xx'、'55'

③數(shù)字被定義為字符常量之后就以

其ASCII

碼值參與數(shù)值運算。2.4常

量2.4.3字符常量【例2.1】分析下面程序的運行結果。

#include<stdio.h>

/*

程序需要使用C語言提供的庫函數(shù)*/

int

main()

{

printf("China\n\101\t\\\n");

/*調用printf(

)顯示字符串*/

return0;

}

程序運行結果:

China

A

\程序中的轉義字符有:\n、\101、\t、\\。輸出China之后遇到轉義字符'\n'進行換行,其后遇八進制轉義字符'\101',輸出其對應的字符'A',然后遇到轉義字符'\t',水平移動到下一個制表位置,再遇轉義字符'\\',輸出'\',最后遇'\n'進行換行。2.4常

量2.4.3字符常量·字符串常量字符串常量是用雙引號括起來的字符序列。

例如,以下是合法的字符串常量:“a”“CHINA”“**402754**”

“”:表示一個空格串

“”:表示什么字符也沒有的字符串

“\n”:表示一個具有換行功能的字符串2.4常

量2.4.4字符串常量

字符串常量在內存中存儲時,系統(tǒng)自動在每一個字符串常量的尾部加一個“字符串結束標志”,即字符

'\0'(ASCII碼值為0)。因此,長度為

n

個字符的字符串常量在內存中要占用

n+1

個字節(jié)的空間。

例如,字符串

"A"

"Cprogram"

的長度分別為

1

9(即字符的個數(shù)),但在內存中所占的字節(jié)數(shù)分別為

2

10。2.4常

量2.4.4字符串常量A\0ogra

m\0

Cpr(b)字符串“Cprogram”

的存儲形式(a)字符串“A”的存儲形式·字符串常量在內存中的存儲形式:2.4常

量·字符常量與字符串常量的區(qū)別:

①定界符不同

字符常量使用單引號,而字符串常量使用雙引號。

例如:

'a'

"a"

②存儲要求不同

字符常量存儲的是字符的

ASCII

碼值,而字符串常量除了要存儲字符串常量的有效字符外,還要存儲一個字符串結束標志

'\0'。2.4.4字符串常量·符號常量在程序中,如果某個常量多次被使用,則可以使用一個符號來代替該常量,這種相應的符號稱為符號常量。用宏定義

#define

來定義符號常量,格式是在#define后面跟一個“標識符”和一個“字符串”,彼此之間用空格隔開。

例如:

#defineN35

#definePI3.1415

※符號常量不是C語句,故末尾不要加分號。※

習慣上,符號常量用大寫,變量用小寫以示區(qū)別。

※符號常量一旦定義,就不能在程序的其他地方給該標識符再

賦值。2.4.5符號常量2.4常

量#include<stdio.h> /*

程序需要使用C語言提供的庫函數(shù)*/int

main(){

floatr,v,s;

r=2.0; /*將2.0賦值給半徑r*/

v=4.0/3.0*3.1415*r*r*r; /*求球的體積v*/

s=4.0*3.1415*r*r; /*求球的表面積s*/

printf("v=%f\ns=%f\n",v,s); /*輸出球的體積v和表面積s*/return0;}2.4.5符號常量2.4常

量程序運行結果:v=33.509335s=50.264000【例2.2】編寫求一個半徑

r=2.0

的球的體積和表面積的程序。球的體積:v=(4/3)Πr3球的表面積:s=4Πr2#include<stdio.h> /*

程序需要使用C語言提供的庫函數(shù)*/#definePI3.1415 /*定義PI為符號常量,其值為3.1415*/int

main(){

floatr,v,s;

r=2.0; /*將2.0賦值給半徑r*/

v=4.0/3.0*PI*r*r*r; /*求球的體積v*/

s=4.0*PI*r*r; /*求球的表面積s*/

printf("v=%f\ns=%f\n",v,s);/*輸出球的體積v和表面積s*/return0;}v=4.0/3.0*PI*r*r*r

等效于

v=4.0/3.0*3.1415*r*r*r2.4.5符號常量2.4常

量【例2.2】編寫求一個半徑

r=2.0

的球的體積和表面積的程序。s=4.0*PI*r*r

等效于

s=4.0*3.1415*r*r第2章

C

語言基礎及順序結構程序設

內容提綱2.1

C語言的字符集2.2

C

語言的關鍵字、標識符和保留標識符2.3C語言的數(shù)據(jù)類型2.4

常量2.5

變量2.6

C

語言的運算符和表達式2.7C語言中最基本的運算符和表達式2.8C語言的基本語句2.9數(shù)據(jù)的輸入與輸出2.10順序結構程序設計2.11程序舉例Youare

here!你在這兒!?

變量

所謂變量是指在程序運行過程中,其值可以改變的量。

例如:

計算圓周長l的

C

語句:

l=2*3.1415*r;l和r都是變量,r可以有不同的值,

l的值跟隨r的值改變。2.5.1變量的概念2.5變

量?

變量的3個特征:

?變量名

變量名的命名方式符合標識符的命名規(guī)則。

?變量有類型之分

不同類型的變量占用的內存單元(字節(jié))數(shù)不同,因此每個變量都有一個確定的類型。

?變量存放值

程序運行過程中用到的變量必須有確切的值,變量在使用前必須賦值,變量的值存儲在內存中。2.5.1變量的概念2.5變

量1.變量的定義

常量是可以不經定義直接引用的,而程序中用到的所有變量必須先定義后使用。

變量定義的一般形式為:

數(shù)據(jù)類型標識符變量名1[,變量名2,變量名3,…,變量名n];

[

]:表示可選項。

例如:

inta;

/*定義a為整型變量*/

floatx,

y,

z;

/*定義x、y、z為單精度實型變量*/

charch;

/*定義ch為字符型變量*/2.5.2

變量的定義與初始化2.5變

量·進行變量定義時,應注意以下幾點:

①允許在一個數(shù)據(jù)類型標識符后,說明多個相同類型的變量,各

變量名之間用逗號隔開。

②數(shù)據(jù)類型標識符與變量名之間至少用一個空格隔開。

③最后一個變量名之后必須以分號“;”結尾。

④變量定義必須放在變量使用之前,一般放在函數(shù)體的開頭部分。

⑤在同一個程序中變量不允許重復定義。2.5變

量2.5.2

變量的定義與初始化

例如,以下是不合法的定義:

intx,

y,

z; /*定義x、y、z為整型變量*/

inta,

b,

x; /*變量x被重復定義*/

intu,v /*語句末尾沒有;號*/2.變量的初始化

在定義變量的同時可以給變量賦初值,稱為變量初始化。

變量初始化的一般形式為:

數(shù)據(jù)類型標識符變量名1=常量1[,變量名2=常量2,…];

[

]:表示可選項。2.5變量2.5.2

變量的定義與初始化例如:

inta;

//定義a為整型變量

floatx=0,y=0;//定義x、y為實型變量,同時x、y都賦初值為0

charch='a';//定義ch為字符型變量,同時賦初值字符'a'·整型變量整型變量通??煞譃?類:一般整型、短整型、長整型和無符號型。其中,無符號型又有無符號整型、無符號短整型和無符號長整型之分。

變量根據(jù)類型的不同,所能表示的數(shù)值范圍,以及所占內存空間的大小也不同。在VC++2010環(huán)境下的狀況。2.5.3

整型變量符號數(shù)據(jù)類型類型標識符所占字節(jié)數(shù)取值范圍帶符號整型int4-214783648~214783647短整型short或shortint2-32768~32767無符號無符號整型unsigned或unsignedint40~4294967295無符號短整型unsignedshort20~655352.5變

量·實型變量實型變量分為單精度型(float)、雙精度型(double)和長雙精度型(longdouble)3

種。2.5.4實型變量類型名類型標識符所占字節(jié)數(shù)有效數(shù)字取值范圍單精度型float46~7-3.4×10-38~3.4×1038雙精度型double815~16-1.7×10-308~1.7×10308※

實型數(shù)據(jù)的存儲形式決定了能提供的有效數(shù)字是有限的,有效數(shù)字位數(shù)以外的數(shù)字會被舍去,所以實型數(shù)據(jù)會存在誤差。2.5變

量【例2.3】實型數(shù)據(jù)的舍入誤差分析。#include<stdio.h>int

main(){floata,

b;

/*定義a、b為單精度實型變量*/doublec,

d;

/*定義c、d為雙精度實型變量*/a=3.55;/*將3.55賦給單精度實型變量a*/b=12345.678;/*將12345.678賦給單精度實型變量b*/c=3.55;/*將3.55賦給雙精度實型變量c*/d=12345.678;/*將12345.678賦給雙精度實型變量d*/

printf("a=%f,b=%f\n",

a,

b);

/*以單精度實型形式輸出a、b的值*/

printf("c=%f,d=%f\n",

c,

d);

/*以單精度實型形式輸出c、d的值*/return0;}由于b是float類型,有效位數(shù)為7位,將12345.678賦給b時,輸出結果卻顯示為12345.677734,前面7位數(shù)字是有效的,后面數(shù)字出現(xiàn)了誤差。2.5.4實型變量2.5變

量程序運行結果:a=3.550000,b=12345.677734c=3.550000,d=12345.6780002.5.5

字符變量2.5變

·字符變量

字符變量用來存放字符常量,注意只能存放一個字符?!ぷ址兞康念愋蜆俗R符:

char例如:

charc1,c2,c3;

c1='a';

//正確:給字符變量賦值字符'a'

c2='6';

//正確:給字符變量賦值字符'6'

c3="a";

//不正確:給字符變量賦值字符串常量"a"1.字符型數(shù)據(jù)在內存中的存放形式

字符型數(shù)據(jù)在內存中存儲的是ASCII碼的二進制形式,一個字符的存儲占用一個字節(jié)。2.5.5

字符變量2.5變

量例如:

charc1,c2;

c1='a';

c2='b';

在內存中儲存的是字符‘a’、

‘b’的ASCII碼值97和98的二進制形式。2.字符型數(shù)據(jù)的使用

?

由于字符型數(shù)據(jù)在內存中存放的是字符的ASCII碼值,所以也可以把字符型數(shù)據(jù)看成是整型數(shù)據(jù),即字符型和整型可以通用。

?

字符型數(shù)據(jù)可以參與算術運算,也可以把整型數(shù)據(jù)賦值給字符型變量,還可以以整數(shù)形式輸出。2.5.5

字符變量2.5變

量【例2.4】向字符變量賦以整數(shù)。

#include<stdio.h>

int

main(

)

{

charc1,c2;/*定義c1、c2為字符型變量*/

c1=65;

/*

將整數(shù)65賦給字符變量c1,相當于c1='A'

*/

c2=67;

/*將整數(shù)67賦給字符變量c2,相當于c1='C'*/

printf("%c\t%c\n",c1,c2); /*以字符形式輸出c1和c2的值*/

printf("%d\t

%d\n",c1,c2); /*以整數(shù)形式輸出c1和c2的值*/return0;

}2.5.5

字符變量2.5變

量程序運行結果:A

C65

67字符型數(shù)據(jù)既可以用字符形式輸出(用%c),也可以用整數(shù)形式輸出(用%d),增加了程序設計的靈活性。【例2.5】字符型和整型變量可以相互賦值。#include<stdio.h>int

main(){

intk; /*定義k為整型變量*/

charch; /*定義ch為字符型變量*/

k='b'; /*將字符'b'賦給整型變量k*/

ch=66; /*將整數(shù)66賦給字符變量ch*/

printf("%d,%c\n",k,k);

/*分別以整數(shù)和字符形式輸出k的值*/

printf("%d,%c\n",ch,ch);

/*分別以整數(shù)和字符形式輸出ch的值*/return0;}2.5.5

字符變量2.5變

量程序運行結果:

98,b

66,B第2章

C

語言基礎及順序結構程序設

內容提綱2.1

C語言的字符集2.2

C

語言的關鍵字、標識符和保留標識符2.3

C語言的數(shù)據(jù)類型2.4

常量2.5

變量2.6

C

語言的運算符和表達式2.7C語言中最基本的運算符和表達式2.8C語言的基本語句2.9數(shù)據(jù)的輸入與輸出2.10順序結構程序設計2.11程序舉例Youare

here!你在這兒!·運算符用來表示各種運算的符號稱為“運算符”。2.6.1運算符2.6C

語言的運算符和表達式(1)按運算符功能(2)按運算對象的多少運算符按其功能和運算對象的個數(shù)進行分類·運算符按其運算符功能分類

可以分為算術運算符、關系運算符、邏輯運算符、位運算符和特殊運算符5類。·運算符按其運算對象的多少分類

單目運算符:

僅對一個運算對象進行操作。例如

:-5

雙目運算符:對兩個運算對象進行操作。例如:

2+3

三目運算符:

對三個運算對象進行操作。例如:5>9?3:-32.6.1運算符2.6C

語言的運算符和表達式?

表達式

用運算符把運算對象連接起來的符合

C

語言語法規(guī)則的式子,稱為表達式。

例如:

表達式

c/(3*a+b)

中包括+、*、/、(

)

運算符,

運算對象包括3、a、b、c。?

表達式的值

對表達式進行運算,所得到的結果稱為表達式的值。

例如:

表達式

2+cos(0)

的值為

3。2.6.2表達式2.6C

語言的運算符和表達式?運算符的優(yōu)先級

運算符的優(yōu)先級指多個運算符用在同一個表達式中時先進行什么運算,后進行什么運算。?運算符的結合性

運算符的結合性是指在表達式中若連續(xù)出現(xiàn)若干個優(yōu)先級相同的運算符時,各運算符的運算次序。因而,在

C

語言中有所謂“左結合性”和“右結合性”之說。?關于運算符的結合性詳見P222.6.3運算符的優(yōu)先級和結合性2.6C

語言的運算符和表達式第2章

C

語言基礎及順序結構程序設

內容提綱2.1

C語言的字符集2.2

C

語言的關鍵字、標識符和保留標識符2.3

C語言的數(shù)據(jù)類型2.4

常量2.5

變量2.6

C

語言的運算符和表達式2.7

C語言中最基本的運算符和表達式2.8C語言的基本語句2.9數(shù)據(jù)的輸入與輸出2.10順序結構程序設計2.11程序舉例Youare

here!你在這兒!1.基本算術運算符及其表達式?基本算術運算符

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論