《C語言程序設(shè)計(jì) 第4版》 課件 1- C語言程序設(shè)計(jì)入門、2- 利用三種程序結(jié)構(gòu)解決簡(jiǎn)單問題_第1頁(yè)
《C語言程序設(shè)計(jì) 第4版》 課件 1- C語言程序設(shè)計(jì)入門、2- 利用三種程序結(jié)構(gòu)解決簡(jiǎn)單問題_第2頁(yè)
《C語言程序設(shè)計(jì) 第4版》 課件 1- C語言程序設(shè)計(jì)入門、2- 利用三種程序結(jié)構(gòu)解決簡(jiǎn)單問題_第3頁(yè)
《C語言程序設(shè)計(jì) 第4版》 課件 1- C語言程序設(shè)計(jì)入門、2- 利用三種程序結(jié)構(gòu)解決簡(jiǎn)單問題_第4頁(yè)
《C語言程序設(shè)計(jì) 第4版》 課件 1- C語言程序設(shè)計(jì)入門、2- 利用三種程序結(jié)構(gòu)解決簡(jiǎn)單問題_第5頁(yè)
已閱讀5頁(yè),還剩98頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1單元:C語言程序設(shè)計(jì)入門第2單元:利用三種程序結(jié)構(gòu)解決簡(jiǎn)單問題第3單元:利用數(shù)組處理同類型的批量數(shù)據(jù)第4單元:利用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)第5單元:靈活使用指針處理問題第6單元:利用復(fù)雜的構(gòu)造類型解決實(shí)際問題第7單元:利用文件進(jìn)行數(shù)據(jù)管理第8單元:應(yīng)用軟件設(shè)計(jì)

教學(xué)內(nèi)容第1單元C語言程序設(shè)計(jì)入門【單元導(dǎo)讀】

產(chǎn)生于20世紀(jì)70年代的C語言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)編程語言。

C語言既是通用計(jì)算機(jī)軟件設(shè)計(jì)的基礎(chǔ)語言,也是當(dāng)前嵌入式軟件設(shè)計(jì)的主流語言。通過對(duì)本書的學(xué)習(xí),既能掌握C語言編程基礎(chǔ),也能掌握模塊化程序設(shè)計(jì)方法及軟件工程文件組織方法,可為后續(xù)的其他軟件語言程序設(shè)計(jì)(如Python、Java等)和嵌入式軟件設(shè)計(jì)奠定良好的基礎(chǔ)。

單元學(xué)習(xí)目標(biāo):首先了解通用計(jì)算機(jī)和嵌入式計(jì)算機(jī)的區(qū)別;然后通過上機(jī)練習(xí),掌握VC++2010軟件開發(fā)C程序的方法和步驟;最后能利用基本的數(shù)據(jù)類型和運(yùn)算符解決簡(jiǎn)單的問題。任務(wù)1.1了解通用計(jì)算機(jī)和嵌入式計(jì)算機(jī)的區(qū)別

微型計(jì)算機(jī)具有很大的通用性,所以又稱通用計(jì)算機(jī)。測(cè)控領(lǐng)域的計(jì)算機(jī)系統(tǒng)是嵌入到應(yīng)用系統(tǒng)中,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、成本、體積、可靠性、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng),即嵌入式計(jì)算機(jī)系統(tǒng),簡(jiǎn)稱嵌入式系統(tǒng)(EmbeddedSystem)。通俗地說,除了通用計(jì)算機(jī)(如臺(tái)式計(jì)算機(jī)和筆記本計(jì)算機(jī))外,所有包含CPU的系統(tǒng)都是嵌入式系統(tǒng),其中以微控制器(MicroControllerUnit,MCU,國(guó)內(nèi)也稱為單片機(jī))為核心的嵌入式系統(tǒng)應(yīng)用最廣泛。

通用計(jì)算機(jī)和嵌入式計(jì)算機(jī),是計(jì)算機(jī)技術(shù)在發(fā)展過程中形成的兩大分支。任務(wù)1.1了解通用計(jì)算機(jī)和嵌入式計(jì)算機(jī)的區(qū)別

我國(guó)在眾多嵌入式應(yīng)用領(lǐng)域,取得了舉世矚目的巨大成就。

例如:航空領(lǐng)域、智能家電、智能電動(dòng)汽車等等。

請(qǐng)讀者列舉一些典型的嵌入式系統(tǒng)應(yīng)用實(shí)例。

隨著技術(shù)的發(fā)展,嵌入式計(jì)算機(jī)芯片的硬件集成度越來越高,使得嵌入式硬件設(shè)計(jì)難度不斷降低,因此嵌入式軟件設(shè)計(jì)在整個(gè)嵌入式系統(tǒng)開發(fā)中所占的分量越來越大,而當(dāng)前嵌入式軟件設(shè)計(jì)的主流語言是C語言。關(guān)于嵌入式軟件設(shè)計(jì)的具體內(nèi)容,讀者可通過參考文獻(xiàn)2(索明何《基于構(gòu)件化的嵌入式系統(tǒng)設(shè)計(jì)》)進(jìn)一步學(xué)習(xí)。C語言程序設(shè)計(jì)一般要經(jīng)過4個(gè)基本步驟(VC++2010開發(fā)環(huán)境的使用方法和步驟請(qǐng)參照教材和微課視頻):(1)編輯源程序(.c文件或

.h文件);(2)對(duì)源程序進(jìn)行編譯,生成二進(jìn)制目標(biāo)文件(.obj文件);(3)連接若干個(gè)源文件和庫(kù)文件對(duì)應(yīng)的多個(gè)目標(biāo)文件,生成可執(zhí)行文件(.exe文件);(4)運(yùn)行程序。1.2.1VC++2010開發(fā)環(huán)境的使用方法和步驟任務(wù)1.2使用VC++2010軟件開發(fā)簡(jiǎn)單的C程序

說明:Dev-C++開發(fā)環(huán)境的使用方法和步驟請(qǐng)參照教材附錄E。1.2.2初識(shí)簡(jiǎn)單的C程序任務(wù)1.2使用VC++2010軟件開發(fā)C程序【例1.1】在PC屏幕上顯示一串字符。/*程序功能:在PC屏幕上顯示一串字符*/#include

<stdio.h>

//(1)預(yù)處理命令:包含輸入輸出頭文件intmain(void)

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

printf("這是我寫的第1個(gè)C程序\n");

//(3)調(diào)用printf函數(shù),原樣輸出一串字符return0;

//(4)如程序正常結(jié)束,返回函數(shù)值0}可省略不寫【課堂練習(xí)】同步練習(xí)1-1:分行輸出社會(huì)主義核心價(jià)值觀。任務(wù)1.3

理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

【課堂練習(xí)】同步練習(xí)1-2:寫出C語言的基本數(shù)據(jù)類型及兩種表現(xiàn)形式。

數(shù)據(jù)又有常量與變量?jī)煞N表現(xiàn)形式,例如整型數(shù)據(jù)有整型常量和整型變量。1.3.1常量和變量1、常量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量。根據(jù)書寫方式,常量可分為直接常量和符號(hào)常量。(1)直接常量:如4、23;1.23;'a'、'b';''CHINA''等(2)符號(hào)常量:用#define指令,指定一個(gè)標(biāo)識(shí)符代表一個(gè)常量。

例如,#definePI3.1415926//定義符號(hào)常量PI(代表常量3.1415926)

關(guān)于#define指令的使用方法,將在任務(wù)2.5中詳細(xì)介紹。

用戶定義的標(biāo)識(shí)符不能與系統(tǒng)提供的關(guān)鍵字(參見附錄B)同名。如int、void等都不能作為用戶標(biāo)識(shí)符。另外,標(biāo)識(shí)符區(qū)分大小寫,如Sum和sum是兩個(gè)不同的標(biāo)識(shí)符。1.3.1常量和變量1、常量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

說明:

標(biāo)識(shí)符是用來標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、類型名、宏名、文件名的有效字符序列。C語言的標(biāo)識(shí)符只能由字母、數(shù)字、下畫線3種字符組成,且第一個(gè)字符必須是字母或下畫線。

【課堂練習(xí)】同步練習(xí)1-3:識(shí)別C語言標(biāo)識(shí)符。

在程序執(zhí)行過程中,其值可以改變的量稱為變量。變量必須“先定義,后使用”。定義變量后,編譯系統(tǒng)為每個(gè)變量名分配對(duì)應(yīng)的內(nèi)存地址,即一個(gè)變量名對(duì)應(yīng)一個(gè)存儲(chǔ)單元。1.3.1常量和變量2、變量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

1.3.2整型數(shù)據(jù)1、整型常量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

(3)十六進(jìn)制整數(shù):以0x開頭的數(shù)。如0x123表示十六進(jìn)制數(shù)123,對(duì)應(yīng)十進(jìn)制291。在C語言中,整型常量(整型常數(shù))有3種表示形式:(1)十進(jìn)制整數(shù):如123、-456、7。(2)八進(jìn)制整數(shù):以0開頭的數(shù)。如0123表示八進(jìn)制數(shù)123,對(duì)應(yīng)十進(jìn)制83。歸納起來,有10種整型變量,在VC++系統(tǒng)中對(duì)應(yīng)的數(shù)值范圍如下:(1)整型變量的分類1.3.2整型數(shù)據(jù)2、整型變量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

數(shù)值范圍是怎樣計(jì)算出來的?(2)整型變量在內(nèi)存中的存儲(chǔ)形式(以單字節(jié)整型數(shù)據(jù)為例)1.3.2整型數(shù)據(jù)2、整型變量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

(3)定義整型變量的方法1.3.2整型數(shù)據(jù)2、整型變量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

1)定義一個(gè)變量的格式:類型標(biāo)識(shí)符變量名;

例如:inti;//定義有符號(hào)基本整型變量i

unsignedintj;//定義無符號(hào)基本整型變量j2)同時(shí)定義多個(gè)同類型變量的格式:類型標(biāo)識(shí)符

變量名1,變量名2,變量名3,…;

例如:inti,j,k;//同時(shí)定義三個(gè)基本整型變量i、j、k

定義變量后,系統(tǒng)將根據(jù)變量的類型給變量分配對(duì)應(yīng)大小的內(nèi)存空間,用于存儲(chǔ)該變量。例如:

shortint

i;//定義短整型變量i

i=10;//給變量i賦值【課堂練習(xí)】同步練習(xí)1-4:定義變量。1.3.2整型數(shù)據(jù)2、整型變量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

【例1.2】整型變量的定義、賦值和輸出。#include<stdio.h>//(1)預(yù)處理命令:包含輸入輸出頭文件intmain(void)

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

inti;

//(3)定義變量

i=1234;

//(4)給變量賦值

printf("這是我寫的第2個(gè)C程序\n");

//(5)原樣輸出一串字符

printf("i=%d\n",i);//(6)輸出變量的值}格式輸出函數(shù)printf的用法一般形式:printf(格式控制字符串,輸出列表)作用:向顯示器輸出若干個(gè)任意類型的數(shù)據(jù)。②原樣輸出的字符,在顯示中起提示作用。(2)輸出列表:是需要輸出的一些數(shù)據(jù),可以是常量、變量或表達(dá)式。

多個(gè)數(shù)據(jù)之間要用逗號(hào)隔開。

括號(hào)內(nèi)包含兩部分:(1)格式控制字符串:由雙撇號(hào)括起來的一個(gè)字符串,它包含兩種信息。

①由%開頭的格式符,用于指定數(shù)據(jù)的輸出格式。

%d:以十進(jìn)制形式輸出帶符號(hào)整數(shù);

%%:輸出%%x:以十六進(jìn)制形式輸出無符號(hào)整數(shù);

%c:輸出單個(gè)字符;

%s:輸出字符串;%f:以小數(shù)形式輸出實(shí)數(shù)(默認(rèn)輸出6位小數(shù));%e:以指數(shù)形式輸出實(shí)數(shù);%u:以十進(jìn)制形式輸出無符號(hào)整數(shù);

使用printf函數(shù)時(shí),要求格式控制字符串中必須含有與輸出項(xiàng)一一對(duì)應(yīng)的格式符,并且類型要匹配。printf函數(shù)也可以沒有輸出項(xiàng)。printf("這是我寫的第2個(gè)C程序\n");

//原樣輸出一串字符,并換行printf("i=%d\n",i);//原樣輸出i=,然后以%d形式輸出變量i的值,并換行1.3.2整型數(shù)據(jù)任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

【例1.3】整型變量的定義、賦值和輸出。#include<stdio.h>intmain(void){

unsignedchara;

//定義無符號(hào)單字節(jié)整型變量charb,c;

//定義有符號(hào)單字節(jié)整型變量

unsignedshortintd;

//定義無符號(hào)短整型變量

shortinte,f;

//定義有符號(hào)短整型變量a=0xff;

b=0xff;

c=-1;

//單字節(jié)整型變量賦值

d=0xffff;e=0xffff;f=-1;

//短整型變量賦值

printf("%d%d%d\n",a,

b,

c);//以十進(jìn)制形式輸出變量的值

printf("%d%d%d\n",d,

e,

f);//以十進(jìn)制形式輸出變量的值

}【課后作業(yè)】思考與實(shí)踐:分析并運(yùn)行程序,理解整型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式。1.3.3字符型數(shù)據(jù)1、字符常量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

用一對(duì)單撇號(hào)括起來的一個(gè)字符,稱為字符常量,例如:'A','6','+'

等。

C語言還有一種以

\開頭的字符序列,稱為轉(zhuǎn)義字符(將\后面的字符轉(zhuǎn)換成為另外的含義)。

請(qǐng)參考附錄A,熟悉字符0~9、大寫字母A~Z、小寫字母a~z對(duì)應(yīng)的ASCII碼值。1.3.3

字符型數(shù)據(jù)任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

字符變量用來存放字符,并且只能存放1個(gè)字符。其類型標(biāo)識(shí)符是char。

例如:charc1,c2;//定義字符變量c1、c2c1='a';c2='b';//給變量c1賦值'a',變量c2賦值'b'3、字符型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及使用方法

一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。字符型數(shù)據(jù)在內(nèi)存中存儲(chǔ)的是該字符對(duì)應(yīng)的ASCII碼。

字符型數(shù)據(jù)的存儲(chǔ)形式與單字節(jié)整型數(shù)據(jù)相同。因此,字符型可以當(dāng)作單字節(jié)整型。

2、字符變量

【課堂練習(xí)】同步練習(xí)1-5:字符型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式、常用字符的ASCII碼值。#include<stdio.h>intmain(void){

charc1;

//定義字符變量

c1=97;

//給變量c1賦整數(shù)(將ASCII碼值97賦給變量c1)

printf("%c\n",c1);//以字符形式輸出變量c1的值(ASCII碼值對(duì)應(yīng)的字符)

printf("%d\n",c1);//以整數(shù)形式輸出變量c1的值(字符對(duì)應(yīng)的ASCII碼)}1.3.3字符型數(shù)據(jù)【例1.4】向字符變量賦整數(shù)。任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

【思考與實(shí)踐】分析并運(yùn)行程序,體會(huì)字符型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式。1.3.3字符型數(shù)據(jù)【例1.5】字符型數(shù)據(jù)與整型數(shù)據(jù)混合運(yùn)算。任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

【思考與實(shí)踐】編寫、運(yùn)行程序,分析程序功能。#include<stdio.h>intmain(void){charc1,c2;//定義字符變量

c1='a';c2='b';

//給字符變量賦字符常量

c1=c1-32;c2=c2-32;

//將字符變量對(duì)應(yīng)的ASCII碼值更新

printf("%c,%c\n",c1,

c2);//以字符形式輸出變量c1和c2的值

}

字符串常量是由一對(duì)雙撇號(hào)括起來的字符序列。例如:"CHINA"

,"Cprogram"

,"a","$12.5"

字符常量和字符串常量的區(qū)別:因此字符串常量"CHINA"在內(nèi)存中占用6個(gè)字節(jié)?!舅伎肌孔址A?a'和字符串常量"a"有何區(qū)別?4、字符串常量

1.3.3字符型數(shù)據(jù)任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

【課后作業(yè)】同步練習(xí)1-6:用sizeof運(yùn)算符計(jì)算并輸出字符串常量占用內(nèi)存字節(jié)數(shù)。1.3.4實(shí)型數(shù)據(jù)1、實(shí)型常量

(2)指數(shù)形式。如123e3或123E3都代表123×103。要注意字母e(或E)之前必須要有數(shù)字,且e后面的指數(shù)必須為整數(shù),如e2、4e2.5、.e3、e都不是合法的指數(shù)形式。

實(shí)型常量也稱實(shí)數(shù),在C語言中,實(shí)數(shù)有兩種表示形式:

(1)十進(jìn)制小數(shù)形式。它由數(shù)字和小數(shù)點(diǎn)組成(注意,必須要有小數(shù)點(diǎn))。如:0.123、123.、123.0、0.0。

一個(gè)實(shí)數(shù)可以有多種指數(shù)表示形式。在程序中以指數(shù)形式輸出一個(gè)實(shí)數(shù)時(shí),會(huì)以規(guī)范化的指數(shù)形式輸出。

例如123.456的規(guī)范化指數(shù)形式是1.23456e2。2、實(shí)型變量

根據(jù)數(shù)據(jù)的數(shù)值范圍和精度,實(shí)型變量的類型主要有單精度(float)型和雙精度(double)型。需要注意:實(shí)型數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)精度有限,不可能得到完全精確的數(shù)值。任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

#include<stdio.h>intmain(void){

floatx;//定義實(shí)型變量xx=12.3;//將實(shí)型常數(shù)12.3賦給變量xprintf("%f\n",x);//以小數(shù)形式輸出變量x的數(shù)值printf("%e\n",x);//以指數(shù)形式輸出變量x的數(shù)值}1.3.4實(shí)型數(shù)據(jù)【例1.6】實(shí)型變量的定義、賦值和輸出。任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

【課后作業(yè)】同步練習(xí)1-7:用sizeof運(yùn)算符測(cè)試系統(tǒng)中數(shù)據(jù)類型的存儲(chǔ)字節(jié)數(shù)。1.3.5變量的初始化C語言允許在定義變量的同時(shí),對(duì)變量賦初值,即變量的初始化。任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

例如:

inta=3;

//定義整型變量a,并賦初值3

當(dāng)一次定義同類型的多個(gè)變量時(shí),可以給全部變量或部分變量賦初值。inta,b,c=5;

//定義a、b、c三個(gè)整型變量,只給c賦初值5注意,對(duì)3個(gè)變量賦相同的初值3時(shí),不能寫成:inta=b=c=3;inta=1,b=2,c=3;

//定義a、b、c三個(gè)整型變量,并賦不同的初值inta=3,b=3,c=3;

//定義a、b、c三個(gè)整型變量,并賦相同的初值3【課后作業(yè)】【例1.7】變量的初始化和輸出。charc='a';

//定義字符變量c,并賦初值'a'floatb=1.23;//定義實(shí)型變量b,并賦初值1.23

在定義變量并對(duì)變量初始化時(shí),如果加上關(guān)鍵字const,則變量的值在程序運(yùn)行期間不再改變,這種變量稱為常變量(constantvariable),也稱為只讀變量。例如:constinta=5;

//用const聲明整型變量a為常變量,其值始終是5*1.3.6常變量任務(wù)1.3理解數(shù)據(jù)的基本類型及其表現(xiàn)形式

1.4.1算術(shù)運(yùn)算符及其表達(dá)式1.4.2強(qiáng)制類型轉(zhuǎn)換運(yùn)算符及其表達(dá)式1.4.3賦值運(yùn)算符及其表達(dá)式1.4.4關(guān)系運(yùn)算符及其表達(dá)式1.4.5邏輯運(yùn)算符及其表達(dá)式1.4.6位運(yùn)算符及其表達(dá)式1.4.7

逗號(hào)運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

附錄C列出了C語言的各種運(yùn)算符。1.4.1算術(shù)運(yùn)算符及其表達(dá)式1、基本的算術(shù)運(yùn)算符(2)-

減法運(yùn)算符,或負(fù)值運(yùn)算符,如7-2、-4

(1)+

加法運(yùn)算符,或正值運(yùn)算符,如2+3、+5

(4)/

除法運(yùn)算符,如5/2、5.0/2

(3)*乘法運(yùn)算符,如2*3

(5)%模運(yùn)算符,或稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如5%2的值為1

說明:

任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

【課堂練習(xí)】同步練習(xí)1-8:理解算術(shù)運(yùn)算符的運(yùn)算規(guī)則。1.4.1算術(shù)運(yùn)算符及其表達(dá)式1、基本的算術(shù)運(yùn)算符任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

【例1.8】將兩位十進(jìn)制整數(shù)的十位數(shù)和個(gè)位數(shù)分離。#include

<stdio.h>intmain(void){inta=23,b,

c;

//定義a、b、c三個(gè)變量

b

=

a%10;

//求變量a的個(gè)位數(shù)

c

=

a/10;

//求變量a的十位數(shù)(/10相當(dāng)于右移1位)printf("a=%d\n",

a);

//輸出變量a的值printf("十位=%d\n",

c);//輸出變量a對(duì)應(yīng)的十位數(shù)printf("個(gè)位=%d\n",

b);//輸出變量a對(duì)應(yīng)的個(gè)位數(shù)

}1.4.1算術(shù)運(yùn)算符及其表達(dá)式1、基本的算術(shù)運(yùn)算符任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

(1)【例1.9】將一個(gè)正整數(shù)倒序輸出。(2)同步練習(xí)1-9:

用/和%運(yùn)算符將一個(gè)3位和一個(gè)4位十進(jìn)制整數(shù)的各位數(shù)字分離。

(3)【思考與實(shí)踐】

分析并運(yùn)行例1.10程序,體會(huì)不同類型數(shù)據(jù)之間的混合運(yùn)算規(guī)則?!菊n后作業(yè)】1.4.1算術(shù)運(yùn)算符及其表達(dá)式2、自增、自減運(yùn)算符任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

自增運(yùn)算符++:使變量的值自增1,相當(dāng)于i=i+1。自減運(yùn)算符--:使變量的值自減1,相當(dāng)于i=i-1。

i++

表達(dá)式先用i的值,然后對(duì)i的值加1

(先用后加)

++i

先對(duì)i的值加1,然后表達(dá)式用i加1的值(先加后用)--i

先對(duì)i的值減1,然后表達(dá)式用i減1的值(先減后用)

i--

表達(dá)式先用i的值,然后對(duì)i的值減1

(先用后減)有以下4種形式的表達(dá)式:

可見,由自增(自減)運(yùn)算符構(gòu)成不同形式的表達(dá)式時(shí),對(duì)變量而言,自增1(自減1)都具有相同的效果,但對(duì)表達(dá)式而言卻有著不同的值。1.4.1算術(shù)運(yùn)算符及其表達(dá)式2、自增、自減運(yùn)算符#include<stdio.h>intmain(void){int

i=3,j=3,k=3,x=3;

printf("%d\t",i++);printf("i=%d\n",i);

printf("%d\t",++j);printf("j=%d\n",j);

printf("%d\t",k--);printf("k=%d\n",k);

printf("%d\t",--x);printf("x=%d\n",x);}說明:

(1)自增、自減運(yùn)算符只能用于變量,不能用于常量或表達(dá)式。如5++或(a+b)++都是不合法的。(2)自增、自減運(yùn)算符常用在循環(huán)語句中,使循環(huán)變量自動(dòng)加1、減1,這將在后續(xù)單元中學(xué)習(xí)。任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

【例1.11】自增、自減運(yùn)算符的應(yīng)用。1.4.1算術(shù)運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

3、算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性

算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(常量、變量或表達(dá)式)連接起來的、符合C語法規(guī)則的式子。例如:a+b*c-5/2+'a'。C語言規(guī)定了運(yùn)算符的優(yōu)先級(jí)。在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)高低次序執(zhí)行,例如:x-y*z相當(dāng)于x-(y*z)。

算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笙蛴遥ㄗ蠼Y(jié)合性)”,即先左后右。因此a+b-c相當(dāng)于

(a+b)-c。附錄C給出了C語言運(yùn)算符的優(yōu)先級(jí)和結(jié)合性,在分析表達(dá)式時(shí)查詢參考。

如果在一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)相同,則按照規(guī)定的“結(jié)合方向(結(jié)合性)”處理。

問題:a+b-c,b先與a相加,還是先與c相減?1.4.2強(qiáng)制類型轉(zhuǎn)換運(yùn)算符及其表達(dá)式強(qiáng)制類型轉(zhuǎn)換表達(dá)式的一般形式:(類型標(biāo)識(shí)符)(表達(dá)式)例如:

(int)i

將i轉(zhuǎn)換為整型(int)x+y

將x轉(zhuǎn)換成整型后,再與y相加(“(int)”的優(yōu)先級(jí)高于“+”)

(float)(x+y)

將x+y的結(jié)果轉(zhuǎn)換為float型#include<stdio.h>intmain(void){

inti;//定義整型變量i

floatx=2.4F;//定義實(shí)型變量x,并賦初值

i=

(int)x;//將實(shí)型變量x強(qiáng)制轉(zhuǎn)換為int型

printf("x=%f,i=%d\n",x,i);

//輸出變量

x

i的值}【例1.12】將實(shí)型數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為整型。任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

1.4.2強(qiáng)制類型轉(zhuǎn)換運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

【思考與總結(jié)】數(shù)值類型轉(zhuǎn)換有幾種方式?

(1)系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)換。如2+3.5,系統(tǒng)自動(dòng)將整數(shù)2轉(zhuǎn)換為實(shí)型。

(2)強(qiáng)制類型轉(zhuǎn)換。若i為float型,則i%3不合法,必須用(int)i%3。(1)【思考與實(shí)踐】

1)分析并運(yùn)行例1.13程序,體會(huì)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符的作用。

2)編程輸出表達(dá)式的值。(2)同步練習(xí)1-10:

輸出課程的優(yōu)秀率(用百分比表示)。

【課后作業(yè)】1、簡(jiǎn)單賦值運(yùn)算符“=”及其表達(dá)式1.4.3賦值運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

簡(jiǎn)單賦值表達(dá)式的形式:變量=

表達(dá)式

賦值表達(dá)式中的“表達(dá)式”,又可以是一個(gè)賦值表達(dá)式。根據(jù)附錄C,賦值運(yùn)算符是按照“自右向左”的結(jié)合順序。

根據(jù)附錄C,賦值運(yùn)算符的優(yōu)先級(jí)僅高于逗號(hào)運(yùn)算符,而低于其他運(yùn)算符。因此賦值表達(dá)式a=3*5等價(jià)于a=(3*5),i=a+b等價(jià)于i=(a+b)。

一個(gè)表達(dá)式應(yīng)該有一個(gè)值,例如賦值表達(dá)式“

a=5”的值是5。執(zhí)行運(yùn)算后,變量a的值也是5。

同步練習(xí)1-11:分析下面各賦值表達(dá)式中變量a的值。a=5+(c=7)a=b=c=33a=(b=6)/(c=2)a=(b=2)+(c=5)1273

因此

a=b=5與

a=(b=5)等價(jià)。2、復(fù)合的賦值運(yùn)算符及其表達(dá)式1.4.3賦值運(yùn)算符及其表達(dá)式

在簡(jiǎn)單賦值運(yùn)算符“=”之前加上其他運(yùn)算符,可構(gòu)成復(fù)合的賦值運(yùn)算符。a*=3等價(jià)于a=a*3a-=3等價(jià)于a=a-3a*=b+2等價(jià)于a=a*(b+2)a+=3等價(jià)于a=a+3a/=3等價(jià)于a=a/3a%=3等價(jià)于a=a%3任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

【課后作業(yè)】【思考與實(shí)踐】

(1)分析并運(yùn)行例1.14程序,體會(huì)復(fù)合賦值運(yùn)算符的運(yùn)算規(guī)則。

(2)編程輸出變量的值。①a*=b+2

②a*=

(b+2)

(

)

(對(duì)表達(dá)式

b+2

外加括號(hào),因?yàn)椤?”的優(yōu)先級(jí)高于“*=”)③

=

(在“=”左側(cè)補(bǔ)上變量名a)

(將“a*”移到“=”右側(cè))

aa*(b+2)

3、類型轉(zhuǎn)換1.4.3賦值運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

注意:在賦值運(yùn)算中,需要根據(jù)數(shù)據(jù)的類型和數(shù)值的范圍為變量指定合適的類型,必要時(shí)還需要借助強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,以防出錯(cuò)。

【思考與實(shí)踐】

如果賦值運(yùn)算符“=”兩側(cè)的數(shù)據(jù)類型不一致,但同為數(shù)值型數(shù)據(jù),在賦值時(shí),系統(tǒng)會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換。

課后上機(jī)編程,輸出教材中所列的幾種情況下變量的值,并思考其原因。1.4.4關(guān)系運(yùn)算符及其表達(dá)式1、關(guān)系運(yùn)算符及其優(yōu)先級(jí)次序

優(yōu)先級(jí)相同(高)優(yōu)先級(jí)相同(低)③>

大于①<

小于②<=

小于或等于⑥!=

不等于④>=

大于或等于⑤==

等于任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

根據(jù)附錄C,關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。a=b>c等價(jià)于

a=(b>c)例如:

c>a+b等價(jià)于

c>(a+b)a==b<c等價(jià)于

a==(b<c)a>b==c等價(jià)于

(a>b)==c2、關(guān)系表達(dá)式1.4.4關(guān)系運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來的式子,稱為關(guān)系表達(dá)式。a+b>c+d(a=3)>(b=5)'a'<'b'a==3例如:a>ba!=3

關(guān)系表達(dá)式的值是一個(gè)邏輯值:“真”或“假”。例如關(guān)系表達(dá)式“5==3”的值為“假”,“5>=0”的值為“真”。

關(guān)系運(yùn)算結(jié)果,以“1”代表“真”,以“0”代表“假”。關(guān)系表達(dá)式邏輯值(真、假)關(guān)系表達(dá)式的值(1、0)a>ba>b+ca!=b+ca>b>c若a=3,b=2,c=1,則:真假假假1000【課堂練習(xí)】【例1.15】考察關(guān)系表達(dá)式的值。假1.4.5邏輯運(yùn)算符及其表達(dá)式1、邏輯運(yùn)算符及其優(yōu)先級(jí)次序

③!邏輯非①&&邏輯與②||邏輯或

邏輯運(yùn)算的真值表aba&&ba||b!a真真真假假真假假真真假真假真假假真!a==b||c<d等價(jià)于a>b&&c>d等價(jià)于a+b>c&&x+y<d等價(jià)于根據(jù)附錄C,幾種運(yùn)算符的優(yōu)先級(jí)次序:

?。ǚ牵?/p>

高算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&和||賦值運(yùn)算符低(a+b)(>c)(x+y)(<d)&&(a>b)(c>d)&&(!a)(==b)||(c<d)任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

2、邏輯表達(dá)式的值

1.4.5邏輯運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

C語言規(guī)定,參與邏輯運(yùn)算的操作數(shù)以非0代表“真”,以0代表“假”。邏輯表達(dá)式的值,即邏輯運(yùn)算結(jié)果,以數(shù)值1代表“真”,以0代表“假”。例如:(1)若a=3,則!a的值:(4)'a'&&'b'的值:(2)若a=3,b=4,則a&&b的值:(3)3&&0||-4的值:0111在邏輯表達(dá)式的求解過程中,有時(shí)并非所有的運(yùn)算都被執(zhí)行。

例如:

(1)a&&b:只有當(dāng)a為真(非0)時(shí),才需要判斷b的值。只要a為假,就不必判斷b的值,此時(shí)整個(gè)表達(dá)式已確定為假。(2)a||b:只要a為真(非0),就不必判斷b的值。只有a為假,才判斷b的值。1.4.5邏輯運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

【課堂練習(xí)】(1)同步練習(xí)1-12:關(guān)系運(yùn)算符和邏輯運(yùn)算符的綜合運(yùn)用。(2)【思考與實(shí)踐】分析并運(yùn)行例1.16程序,考察邏輯表達(dá)式的值。位運(yùn)算符含義&按位與|按位或^按位異或~按位取反<<左移>>右移說明:1)位運(yùn)算符中除“~”以外,均為二目運(yùn)算符,即要求兩側(cè)各有一個(gè)運(yùn)算量。

2)運(yùn)算量只能是整型或字符型數(shù)據(jù),不能是實(shí)型數(shù)據(jù)。1.4.6位運(yùn)算符及其表達(dá)式

在嵌入式軟件設(shè)計(jì)中,經(jīng)常用到位運(yùn)算符:對(duì)二進(jìn)制位進(jìn)行運(yùn)算。任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

例如,0x23與0x45按位與:00100011(0x23)

&)01000101(0x45)

特殊用途:“與0清零、與1保留”——可對(duì)數(shù)據(jù)的某些位清零,某些位保留不變。0&0=0,0&1=0,1&0=0,1&1=100000001(0x01)1.4.6位運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

1、“按位與”運(yùn)算符(&)

例如,將0x23的高4位清零,低4位保留不變。00100011

(0x23)

&)00001111(0x0F)0000

0011

(0x03)例如,0x23與0x45按位或:00100011(0x23)

|)01000101(0x45)

特殊用途:“或1置1、或0保留”——可對(duì)數(shù)據(jù)的某些位置1,某些位保留不變。0|0=0,0|1=1,1|0=1,1|1=101011101(0x67)2、“按位或”運(yùn)算符(|)1.4.6位運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

例如,將0x23的高4位置1,低4位保留不變。00100011

(0x23)

|)

11110000(0xF0)1111

0011

(0xF3)例如,0x23與0x45按位異或:00100011(0x23)

^)01000101(0x45)

特殊用途:“異或1取反(0變1,1變0),異或0保留”——可對(duì)數(shù)據(jù)的某些位取反,某些位保留不變。3、“按位異或”運(yùn)算符(^)01011100(0x66)兩者相異為1,相同為0。0^0=0,0^1=1,1^0=1,1^1=0

1.4.6位運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

例如,將0x23的高4位取反,低4位保留不變。00100011

(0x23)

^)11110000(0xF0)1101

0011

(0xD3)4、“按位取反”運(yùn)算符(~)例如,0x55按位取反:01010101(0x55)~)↓

10010110(0xaa)1.4.6位運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

對(duì)一個(gè)二進(jìn)制數(shù)按位取反:0變1,1變0。

例如:

a<<3,表示將a的二進(jìn)制數(shù)左移3位,高位溢出后丟棄,低位補(bǔ)0。任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

用來將一個(gè)數(shù)的各二進(jìn)制位全部左移若干位。5、“左移”運(yùn)算符(<<)1.4.6位運(yùn)算符及其表達(dá)式例如:

a>>3,表示將a的二進(jìn)制數(shù)右移3位,低位溢出后丟棄,對(duì)于無符號(hào)數(shù),高位補(bǔ)0?!菊n堂思考與實(shí)踐】分析并運(yùn)行例1.17程序,考察位運(yùn)算表達(dá)式的值。任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

1.4.6位運(yùn)算符及其表達(dá)式6、“右移”運(yùn)算符(>>)

用來將一個(gè)數(shù)的各二進(jìn)制位全部右移若干位?!纠?.18】利用位運(yùn)算符實(shí)現(xiàn)對(duì)8位寄存器R和對(duì)16位寄存器R'的二進(jìn)制位操作

。1.4.6位運(yùn)算符及其表達(dá)式任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

1.4.7逗號(hào)運(yùn)算符及其表達(dá)式

逗號(hào)表達(dá)式的一般形式:表達(dá)式1,表達(dá)式2

根據(jù)附錄C,逗號(hào)運(yùn)算符的結(jié)合性是“從左至右”。求解過程:先求解表達(dá)式1,再求解表達(dá)式2。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。

例如,逗號(hào)表達(dá)式“2+3,3+5”的值是8。

【思考】

表達(dá)式“a=2*3,a*5”的值是多少?

30C語言中,在所有運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。任務(wù)1.4

利用基本的運(yùn)算符解決簡(jiǎn)單問題

逗號(hào)表達(dá)式的擴(kuò)展形式:表達(dá)式1,

表達(dá)式2,表達(dá)式3,…,表達(dá)式n整個(gè)逗號(hào)表達(dá)式的值等于表達(dá)式n的值?!菊n堂練習(xí)】【例1.19】考察逗號(hào)表達(dá)式的值。【課后作業(yè)】同步練習(xí)1-13:考察逗號(hào)表達(dá)式的值。第1單元:C語言程序設(shè)計(jì)入門第2單元:利用三種程序結(jié)構(gòu)解決簡(jiǎn)單問題第3單元:利用數(shù)組處理同類型的批量數(shù)據(jù)第4單元:利用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)第5單元:靈活使用指針處理問題第6單元:利用復(fù)雜的構(gòu)造類型解決實(shí)際問題第7單元:利用文件進(jìn)行數(shù)據(jù)管理第8單元:應(yīng)用軟件設(shè)計(jì)

教學(xué)內(nèi)容第2單元利用三種程序結(jié)構(gòu)解決簡(jiǎn)單問題【單元導(dǎo)讀】

在現(xiàn)實(shí)生活中,經(jīng)常遇到順序執(zhí)行、選擇執(zhí)行和循環(huán)執(zhí)行的問題,這些問題可通過C語言程序來解決。

單元學(xué)習(xí)目標(biāo):能利用C語言中的順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)解決實(shí)際問題,并在此基礎(chǔ)上,能利用預(yù)處理命令提高編程效率。

計(jì)算機(jī)程序

=數(shù)據(jù)結(jié)構(gòu)

+算法

+程序代碼2.1.1算法及流程圖表示1、算法的概念

為解決問題而采用的方法和步驟稱為算法。對(duì)于同一個(gè)問題可以有不同的算法,應(yīng)盡量選擇占用內(nèi)存小、執(zhí)行速度快的算法。2、算法的5個(gè)特征

(1)有窮性:一個(gè)算法應(yīng)包含有限的操作步驟,且每個(gè)步驟都能在有限時(shí)間內(nèi)完成。

(2)確定性:算法中的每一個(gè)步驟都應(yīng)該是確定的,而不應(yīng)模糊和具有二義性。

(3)可行性:算法的每一個(gè)步驟都是切實(shí)可行的。

(4)有輸入:一個(gè)算法可有零個(gè)或多個(gè)輸入(鍵盤輸入或傳給算法數(shù)據(jù))。

(5)有輸出:一個(gè)算法必須有一個(gè)或多個(gè)輸出(顯示輸出或傳給算法數(shù)據(jù))。任務(wù)2.1知識(shí)儲(chǔ)備3、算法的流程圖表示

常用的算法表示方法:自然語言描述法、流程圖法、計(jì)算機(jī)語言描述法。在此,只介紹最常用的流程圖法。2.1.1算法及流程圖表示任務(wù)2.1知識(shí)儲(chǔ)備2.1.2程序的三種基本結(jié)構(gòu)1、順序結(jié)構(gòu)

按照程序語句書寫的順序一步一步依次執(zhí)行。

根據(jù)條件判斷的結(jié)果,從多種路徑中選擇其中的一種路徑執(zhí)行。

2、選擇結(jié)構(gòu)任務(wù)2.1知識(shí)儲(chǔ)備

將一組操作重復(fù)執(zhí)行多次。有“當(dāng)型”和“直到型”兩種循環(huán)結(jié)構(gòu)。

2.1.2程序的三種基本結(jié)構(gòu)3、循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)

先判斷

后執(zhí)行直到型循環(huán)結(jié)構(gòu)

先執(zhí)行

后判斷任務(wù)2.1知識(shí)儲(chǔ)備1、聲明語句:對(duì)變量、函數(shù)、類型(如結(jié)構(gòu)體等類型)等進(jìn)行聲明例如:

變量聲明語句:inti;

變量聲明語句:int

a1=12,a2=34,a3=56;

在C語言中,分號(hào)是語句的結(jié)束標(biāo)志。C語句分為6類。2.1.3C語句分類2、表達(dá)式語句:在表達(dá)式的末尾加分號(hào)例如:

a=3(賦值表達(dá)式)

a=3;

(賦值語句)i++(自增1表達(dá)式)i++;

(自增1語句)任務(wù)2.1知識(shí)儲(chǔ)備3、函數(shù)調(diào)用語句:函數(shù)調(diào)用表達(dá)式加分號(hào)例如:

printf("這是我寫的第1個(gè)C程序\n");2.1.3C語句分類4、控制語句:控制程序的流程(1)條件語句:if語句、switch語句(3)轉(zhuǎn)向語句:break語句、continue語句、return語句、goto語句(2)循環(huán)語句:while語句、do…while語句、for語句任務(wù)2.1知識(shí)儲(chǔ)備

把多條語句用花括號(hào)括起來組成的一個(gè)語句,稱為復(fù)合語句。例如:5、復(fù)合語句2.1.3C語句分類

例如:下面的for循環(huán)體是空語句,在嵌入式軟件設(shè)計(jì)中常用作軟件延時(shí)。

for(i=10000;i>0;i--) {

;

//空語句

}6、空語句:只有一個(gè)分號(hào),什么也不執(zhí)行任務(wù)2.1知識(shí)儲(chǔ)備1、數(shù)據(jù)輸入輸出的概念及在C語言中的實(shí)現(xiàn)2.2.1數(shù)據(jù)輸入輸出函數(shù)

(1)從計(jì)算機(jī)內(nèi)存向輸出設(shè)備傳送數(shù)據(jù)稱為輸出,從輸入設(shè)備向計(jì)算機(jī)內(nèi)存?zhèn)魉蛿?shù)據(jù)稱為輸入。

(2)C語言本身不提供輸入輸出語句,而用戶可以通過調(diào)用C標(biāo)準(zhǔn)函數(shù)庫(kù)中的輸入輸出函數(shù),實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。

(3)使用標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)時(shí),要用預(yù)處理命令#include將其對(duì)應(yīng)的頭文件“stdio.h”包含到源文件中:

#include<stdio.h>或

#include"stdio.h"任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題2、字符輸出函數(shù)——putchar函數(shù)

●向顯示器輸出一個(gè)字符。2.2.1數(shù)據(jù)輸入輸出函數(shù)任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題putchar('H');

//輸出字符Hputchar('\n');//換行charc='X';

putchar(c);//輸出字符X3、字符輸入函數(shù)——getchar函數(shù)

●讀取從鍵盤上輸入的一個(gè)字符。

注意:getchar函數(shù)只能接收一個(gè)字符,輸入數(shù)字也按字符處理。輸入多個(gè)字符時(shí),計(jì)算機(jī)只接收第一個(gè)字符。2.2.1數(shù)據(jù)輸入輸出函數(shù)【例2.1】從鍵盤輸入一個(gè)字符,并在顯示屏顯示。任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題#include

<stdio.h>

//包含輸入輸出頭文件intmain(void){

charc;printf("請(qǐng)輸入一個(gè)字符:");

//原樣輸出一串字符,增加人機(jī)互動(dòng)性

c

=

getchar();

//從鍵盤輸入一個(gè)字符

putchar(c);

//在屏幕上顯示輸入的字符

putchar('\n');

//換行

}putchar(getchar());//在屏幕上顯示輸入的字符

【課后作業(yè)】同步練習(xí)2-1:putchar和getchar函數(shù)的應(yīng)用。4、格式輸出函數(shù)——printf函數(shù)2.2.1數(shù)據(jù)輸入輸出函數(shù)任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題

●向顯示器輸出若干個(gè)任意類型的數(shù)據(jù)。一般形式:printf(格式控制字符串,輸出列表)在1.3.2節(jié)中曾學(xué)過:按照格式控制字符串中以%開頭的格式符指定的格式,將輸出列表中對(duì)應(yīng)的數(shù)據(jù)輸出。也可以沒有輸出列表項(xiàng)。printf("這是我寫的第2個(gè)C程序\n");

//原樣輸出一串字符,并換行printf("i=%d\n",i);//原樣輸出i=,然后以%d形式輸出變量i的值,并換行printf("%d,%c\n",

i,c);//分別以%d形式和%c形式輸出變量i和變量c的值,并換行#include<stdio.h>

//包含輸入輸出庫(kù)函數(shù)頭文件intmain(void){

inta=5,b=-1;

floatc=1.2;

chard='a';printf("a=%d,b=%d,c=%f,d='%c'\n",a,b,c,d);//依次按指定的格式將多個(gè)數(shù)據(jù)輸出

printf("字母a的ASCII碼:%d\n",d);//以十進(jìn)制格式輸出字母a的ASCII碼printf("字母a的ASCII碼:%x\n",d);//以16進(jìn)制格式輸出字母a的ASCII碼printf("輸出字符串:%s\n","CHINA");//輸出字符串"CHINA"printf("今年的增長(zhǎng)率=");//原樣輸出一串字符printf("50%%\n");//輸出50%}2.2.1數(shù)據(jù)輸入輸出函數(shù)【例2.2】printf函數(shù)使用:格式化輸出數(shù)據(jù)。任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題4、格式輸出函數(shù)——printf函數(shù)【思考與實(shí)踐】分析并運(yùn)行例2.2程序,以進(jìn)一步掌握printf函數(shù)的使用方法。【課后作業(yè)】【例2.3】printf函數(shù)的使用:指定輸出寬度、小數(shù)位數(shù)和左端對(duì)齊。

說明:使用printf函數(shù)輸出數(shù)據(jù)時(shí),還可在格式符中的%和格式字符之間加入一些修飾符,用于指定輸出寬度、小數(shù)位數(shù)和左端對(duì)齊。5、格式輸入函數(shù)——scanf函數(shù)2.2.1數(shù)據(jù)輸入輸出函數(shù)任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題

一般形式:scanf(格式控制字符串,地址列表)

(2)地址列表:由若干個(gè)地址組成的列表。

變量的地址:地址運(yùn)算符“&”后跟變量名。

多個(gè)地址之間要用逗號(hào)隔開。

(1)格式控制字符串的作用與printf函數(shù)類似。

●按用戶指定的格式從鍵盤把數(shù)據(jù)輸入到指定的變量地址中。%d:輸入有符號(hào)的十進(jìn)制整數(shù);%e:以指數(shù)形式輸入單精度實(shí)數(shù)(%le用于輸入雙精度實(shí)數(shù))%u:輸入無符號(hào)的十進(jìn)制整數(shù);%x:輸入無符號(hào)的十六進(jìn)制整數(shù);%c:輸入單個(gè)字符;%s:輸入字符串(將字符串送到一個(gè)字符數(shù)組中);%f:以小數(shù)形式輸入單精度實(shí)數(shù)(%lf用于輸入雙精度實(shí)數(shù));#include<stdio.h>

//包含輸入輸出庫(kù)函數(shù)頭文件intmain(void){

inti,j;

floatk;

doublex;

printf("請(qǐng)輸入兩個(gè)整數(shù)和兩個(gè)實(shí)數(shù):\n");//提示輸入4個(gè)數(shù)據(jù)

scanf("%d%d%f%lf",&i,&j,&k,&x);//輸入4個(gè)數(shù)據(jù)分別賦給4個(gè)變量

printf("%d,%d,%f,%f\n",i,j,k,x);//將4個(gè)變量的數(shù)值輸出}

說明:用scanf函數(shù)一次輸入多個(gè)數(shù)值或多個(gè)字符串時(shí),在兩個(gè)數(shù)據(jù)之間可用空格或換行符或Tab符作分隔。2.2.1數(shù)據(jù)輸入輸出函數(shù)【例2.4】用scanf函數(shù)輸入多個(gè)數(shù)值數(shù)據(jù)。①用空格作分隔

②用換行符作分隔任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題③用Tab符作分隔5、格式輸入函數(shù)——scanf函數(shù)【課堂練習(xí)】同步練習(xí)2-2:scanf函數(shù)的正確輸入數(shù)據(jù)方法。

當(dāng)輸入數(shù)據(jù)的類型與scanf函數(shù)中的格式符指定的類型不一致時(shí),系統(tǒng)認(rèn)為該數(shù)據(jù)結(jié)束。2.2.1數(shù)據(jù)輸入輸出函數(shù)【例2.5】用scanf函數(shù)輸入多個(gè)不同類型的數(shù)據(jù)。任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題#include

<stdio.h>intmain(void){

inti;charj; floatk;printf("請(qǐng)輸入1個(gè)整數(shù)、1個(gè)字符和1個(gè)實(shí)數(shù):\n");

//提示輸入3個(gè)數(shù)據(jù)

scanf("%d%c%f",&i,&j,&k);//輸入3個(gè)數(shù)據(jù)分別賦給變量i、j、k

printf("%d,%c,%f\n",i,j,k);//將變量i、j、k的數(shù)據(jù)輸出

}5、格式輸入函數(shù)——scanf函數(shù)#include<stdio.h>intmain(void){

chari,j,k;

printf("請(qǐng)輸入3個(gè)字符:\n");//提示輸入3個(gè)數(shù)據(jù)

scanf("%c%c%c",&i,&j,&k);//輸入3個(gè)數(shù)據(jù)分別賦給變量i、j、k

printf("%c,%c,%c\n",i,j,k);//將變量i、j、k的數(shù)據(jù)輸出}用scanf函數(shù)輸入字符時(shí),系統(tǒng)將輸入的空格、換行符作為有效字符。2.2.1數(shù)據(jù)輸入輸出函數(shù)【例2.6】用scanf函數(shù)輸入多個(gè)字符。任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題【課后作業(yè)】同步練習(xí)2-3:scanf函數(shù)的正確輸入數(shù)據(jù)方法、解決實(shí)際問題。5、格式輸入函數(shù)——scanf函數(shù)2.2.2順序結(jié)構(gòu)程序設(shè)計(jì)應(yīng)用任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題【例2.7】將輸入的兩個(gè)整數(shù)交換,然后再輸出這兩個(gè)整數(shù)。ABABABAB

兩名同學(xué)互換位置,如何實(shí)現(xiàn)?

需要借助一個(gè)臨時(shí)變量實(shí)現(xiàn)兩數(shù)的交換。//==================================//程序功能:輸入兩個(gè)整數(shù),交換后再輸出。//設(shè)計(jì)日期:2023-07-20//==================================#include<stdio.h>//包含頭文件intmain(void){

intx,y,t;//定義三個(gè)變量

printf("請(qǐng)輸入兩個(gè)整數(shù)(用空格隔開):");scanf("%d%d",&x,&y);//輸入兩個(gè)數(shù)據(jù)給x和y

t=x;x=y;y=t;//將數(shù)x和y交換

printf("將輸入的兩個(gè)整數(shù)交換之后:");printf("%d%d\n",x,y);//輸出x和y兩個(gè)數(shù)}【例2.8】計(jì)算1+2+3+4+5的和。#include

<stdio.h>intmain(void){

inti=1,

s=0;s=s+i;i++;s=s+i;i++;s=s+i;i++;s=s+i;i++;s=s+i;

printf("sum=%d\n",s);}2.2.2順序結(jié)構(gòu)程序設(shè)計(jì)應(yīng)用重復(fù)執(zhí)行多次循環(huán)結(jié)構(gòu)任務(wù)2.2利用順序結(jié)構(gòu)程序解決實(shí)際問題

選擇結(jié)構(gòu)程序:根據(jù)不同的條件,執(zhí)行不同的語句(根據(jù)不同的條件選擇不同的道路)。兩種選擇語句:if語句和switch語句。1、if語句的3種形式

(1)if基本形式if(表達(dá)式)語句#include<stdio.h>intmain(void){

inta,b,t;printf("請(qǐng)輸入兩個(gè)整數(shù)(用空格隔開):");scanf("%d%d",&a,&b);if(a<b){

t=a;a=b;b=t; }printf("由大到?。?d,%d\n",a,b);}2.3.1if語句及應(yīng)用【例2.9】輸入兩個(gè)整數(shù),要求按由大到小的順序輸出。任務(wù)2.3利用選擇結(jié)構(gòu)程序解決實(shí)際問題1、if語句的3種形式

2.3.1if語句及應(yīng)用任務(wù)2.3利用選擇結(jié)構(gòu)程序解決實(shí)際問題(1)if基本形式if(表達(dá)式)語句#include<stdio.h>intmain(void){

intscore;

printf("請(qǐng)輸入成績(jī):");

scanf("%d",&score);

if(score>=60)printf("恭喜,通過!\n");}要求:當(dāng)考試成績(jī)不低于60分時(shí),輸出“恭喜,通過”。【例2.10】用if語句判斷考試結(jié)果。#include<stdio.h>intmain(void){

intscore;

printf("請(qǐng)輸入成績(jī):");

scanf("%d",&score);

if(score>=60)printf("恭喜,通過!\n");

elseprintf("未通過,繼續(xù)努力!\n");}2.3.1if語句及應(yīng)用if(表達(dá)式)語句1else語句2(2)if…else基本形式【例2.11】用if…else語句判斷考試結(jié)果?!菊n后作業(yè)】【例2.12】判斷輸入的數(shù)據(jù)是否為0。【例2.13】判斷輸入的兩個(gè)數(shù)據(jù)是否有0。任務(wù)2.3利用選擇結(jié)構(gòu)程序解決實(shí)際問題1、if語句的3種形式

要求:當(dāng)考試成績(jī)不低于60分時(shí),輸出“恭喜,通過!”。

當(dāng)考試成績(jī)低于60分時(shí),輸出“未通過,繼續(xù)努力!”

同步練習(xí)2-4:

用if語句解決實(shí)際問題。2.3.1if語句及應(yīng)用任務(wù)2.3利用選擇結(jié)構(gòu)程序解決實(shí)際問題1、if語句的3種形式

說明:注意if與else的配對(duì)關(guān)系。else總是與它上面最近的未配對(duì)的if配對(duì)。(3)if…else嵌套形式——用于解決多分支問題2.3.1if語句及應(yīng)用任務(wù)2.3利用選擇結(jié)構(gòu)程序解決實(shí)際問題1、if語句的3種形式

(3)if…else嵌套形式——用于解決多分支問題

虛線左側(cè)的嵌套結(jié)構(gòu),還可寫成虛線右側(cè)的更加緊湊的形式?!纠?.14】根據(jù)符號(hào)函數(shù),編程實(shí)現(xiàn)輸入一個(gè)x值,輸出y值。#include<stdio.h>intmain(void){

intx,y;

printf("請(qǐng)輸入x的值:");

scanf("%d",&x);

printf("x=%d,y=%d\n",x,y);}if(x<0)y=-1;elseif(x==0)y=0;else

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論