版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
XXX學(xué)院授課方案
課名:教師:班級:時間:
課題:銀行存款原樣的輸出
教學(xué)目的及要求:要求學(xué)生了解C語言的發(fā)展歷史、特點(diǎn),掌握C語言編譯和運(yùn)行工具環(huán)境及其使
用方法。
教學(xué)重點(diǎn):掌握c語言的編譯和運(yùn)行工具環(huán)境及其使用方法。
教學(xué)難點(diǎn):C語言程序調(diào)試方法的熟練掌握
思政元素:對于編程課程,應(yīng)不斷堅持編程練習(xí),培養(yǎng)百折不撓、堅忍不拔的必勝信勺;
教學(xué)步驟及內(nèi)容:(講授一2學(xué)時)引入新課:
這是本學(xué)期第一次課,這學(xué)期將一起學(xué)習(xí)“C語言程序設(shè)計”這門課程。這是一門編程語
言課,編程課程可能使人感到枯燥乏味,但不斷堅持編程練習(xí)卻能培養(yǎng)百折不撓、堅忍不拔的必
勝信念;下面先來看看這樣一個問題;
問題情景及其實(shí)現(xiàn)
#include<stdio.h>
intmain()
(
printf(“張三存款5000元!\n0);
return0;
)
程序運(yùn)行結(jié)果:
張三存款5000元!
在開發(fā)一個簡單程序前,我們首先需要選擇一種語言,那么我們?yōu)槭裁催x擇這種語言?這種
語言有哪些特點(diǎn)?語言運(yùn)行環(huán)境與開發(fā)工具是什么?......,帶著這些問題,我們來認(rèn)識一下C的發(fā)
展歷史、語言特點(diǎn)、運(yùn)行環(huán)境與開發(fā)工具,并學(xué)習(xí)一個簡單的C程序的編程過程。
新課教學(xué):
一、C語言發(fā)展歷史
[CPL語K:W0?大學(xué).一I
1~
[acpij**:州橋大學(xué).|
I
B*X:Bdl夕4*.
4PDP機(jī)N上用其&系線
治黔空.1972-197g-陽其改寫系他|
二、C涪言的特點(diǎn)
?語言簡潔,表達(dá)能力強(qiáng),易于理解
令只有32個關(guān)鍵字,9種控制語句
?有大量的標(biāo)準(zhǔn)庫函數(shù)
令數(shù)據(jù)類型豐富
?運(yùn)算符種類多,功能強(qiáng)
?程序書寫格式自由
?可直接訪問物理地址,實(shí)現(xiàn)對硬件和低層系統(tǒng)軟件的訪問
?語言生成的代碼質(zhì)量高
?可移植性好
?應(yīng)用面廣,適于教學(xué)
三、C語言運(yùn)行環(huán)境與開發(fā)工具
C語言作為高級語言,要想得到可以執(zhí)行的C程序,必須對C源程序進(jìn)行編譯和連接,而該
過程需要在開發(fā)工具特定的運(yùn)行環(huán)境下進(jìn)行。
1、C語言的運(yùn)行環(huán)境
VisualC++6.0(后面稱VC6.0)是當(dāng)今Windows操作系統(tǒng)下最流行的C類集成開發(fā)環(huán)境之
一。這類編譯程序也兼容了對C語言的編譯和運(yùn)行。
它具有方便、直觀、快捷的編輯器,功能強(qiáng)大的調(diào)試器,功能更完善的編譯器,還具有豐富
的庫函數(shù)。它向用戶提供了一個集成環(huán)境,把程序的編輯、編譯、連接和運(yùn)行等操作全部集中在
一個界面上進(jìn)行,使用十分方便。
本教程采用VC6.0編譯程序作為C語言程序的運(yùn)行環(huán)境,下面我們先對VC6.0的使用進(jìn)行基
本的介紹。
2、C語言的開發(fā)工具的使用
(1)啟動VC6.0編譯程序。
(2)創(chuàng)建項目
(3)C源文件的創(chuàng)建
(4)編輯源代碼
(5)編譯連接源程序
(6)執(zhí)行程序
?知識擴(kuò)展:字符原樣輸出程序
/*-----------Aprogramtoprintwelcome------------*/
#include<stdio.h>
intmain()
(
prinlf("welcome!");
return0;
}
XXX學(xué)院授課方案
課名:教師:班級:時間:
課題:簡單C程序調(diào)試
教學(xué)目的及要求:掌握編輯工具VC6.0調(diào)試C程序的方法。
教學(xué)重點(diǎn):掌握簡單C程序的編輯、編譯,連接、運(yùn)行過程,及幾種程序錯誤的查看方法。
教學(xué)難點(diǎn):C程序的查錯處理
思政元素:在實(shí)踐教學(xué)環(huán)節(jié),要求學(xué)生養(yǎng)成認(rèn)真負(fù)責(zé)的工作態(tài)度,一絲不茍的工匠精神和求真務(wù)實(shí)的科學(xué)精神。
教學(xué)步驟及內(nèi)容:(實(shí)驗-1學(xué)時)
上節(jié)課講解了C的編譯程序VC6.0,本節(jié)課將在計算機(jī)上熟悉運(yùn)用VC6.0編輯調(diào)試簡單的C程序“
對于編寫程序,實(shí)踐教學(xué)環(huán)節(jié)是鍛煉學(xué)生的實(shí)作技能,我們需要認(rèn)真調(diào)試程序,掌握程序調(diào)
試的步驟與方法,為后續(xù)編寫程序和測試程序打下堅實(shí)的基礎(chǔ),作為學(xué)生需要養(yǎng)成認(rèn)真負(fù)責(zé)的工
作態(tài)度,一絲不茍的工匠精神和求真務(wù)實(shí)的科學(xué)精神。下面看看對于程序調(diào)試需要執(zhí)行的相關(guān)調(diào)
試步驟
簡單的c程序:
/*......................Aprogramtoprintwelcome----------------*/
#includc<stdio.h>
intmain()
(
printf("welcome!");
return0;
)
或編輯調(diào)試書上項目一種的其他程序代碼。
通過對以上簡單程序的調(diào)試,熟悉并掌握C程序在VC6.0下的編輯、編譯、連接及運(yùn)行的調(diào)
試方法。
對于C語言的編譯環(huán)境可以根據(jù)教學(xué)需要自行選擇(主要注意編譯環(huán)境支持的版本);
注意:包含庫和連接庫的配置;
XXX學(xué)院授課方案
課名:教師:班級:時間:
課題:利息的計算(1)
教學(xué)目的及要求:要求學(xué)生掌握C語言的字符集、標(biāo)識符概念,掌握C語言中基本數(shù)據(jù)類型中的整
型、實(shí)型和字符型(包含字符串)。
教學(xué)重點(diǎn):掌握整型、實(shí)型和字符型(包含字符串)的常量與變量的使用。
教學(xué)難點(diǎn):整型、實(shí)型、字符型(包含字符串)的內(nèi)存存儲形式,及其常量與變量的表示范圍,及
實(shí)型數(shù)據(jù)有效性的理解
思政元素:
教學(xué)步驟及內(nèi)容:(講授-2~3學(xué)時)引入新課:
1.2.1問題情景及其實(shí)現(xiàn)
假設(shè)XXX銀行1年定期存款的利率為3%,并已知存款期為3年,存款本金為5000元,請計算3
年后可以得到的利息是多少。
#include<stdio.h>
#inclidc<math.h>
intmain()
(
doubleIrate=0.03;
doubleDmoney=5000,Dinterest;
intterm=3;
Dinterest=Dmoneypow((l+Irate),term)-Dmoney;
printfC存款金額為%』lf的%(1年存款利息是:%.21f元g",Dmoney,term,Dinterest);
return0;
)
程序運(yùn)行結(jié)果如下:
存款金額為5000.0的3年存款利息是:463.64元
分析:
計算機(jī)操作處理時,要完成以下工作:
?在內(nèi)存中給存款金額Dmoney、存款利率Irate、存款期限term和存款利息Dinterest開辟存
儲空間,存放它們的值。應(yīng)該留多大的地方來存放它們的值?
?數(shù)據(jù)3和0.03與term、Irate不同,它們是在編寫程序時就給出確定的值,在運(yùn)算過程
中不會改變。這樣的數(shù)計算機(jī)怎么處理?對整數(shù)3和小數(shù)0.03,計算機(jī)存放時是否有區(qū)別?
?+、-、*、=等這些符號計算機(jī)的識別與執(zhí)行是怎樣的?
一、C的字符集及詞法約定
1、基本字符集
字符集是C語言的基本字符集,C語言使用基本字符集如下:
①大寫字母:ABC...XYZ
②小寫字母:abc...xyz
③數(shù)字:0123456789
④特殊符號:+-*/><()[]{)_=!#%.
⑤空白符:空格符、換行符、制表符
2、標(biāo)識符
標(biāo)識符是用來標(biāo)識某種對象的名字,這些對象可以是程序中的變量、符號常量、數(shù)組、函數(shù)和數(shù)
據(jù)類型筆。
e標(biāo)識符的構(gòu)成成份是:字母、數(shù)字和下劃線;
e構(gòu)成規(guī)則是:以字母或下劃線開頭的序列。
c語言中標(biāo)識符分為系統(tǒng)定義標(biāo)識符和用戶定義標(biāo)識符兩種
(1)系統(tǒng)定義標(biāo)識符
系統(tǒng)定義標(biāo)識符是指具有固定名字和特定含義的標(biāo)識符,如前面程序中看到的mt、float、
double、printf等。
系統(tǒng)定義標(biāo)識符又可以進(jìn)一步分為關(guān)鍵字和預(yù)定義標(biāo)識符兩種類型。
①關(guān)鍵字
關(guān)鋌字是C語言系統(tǒng)使用的具有特定含義的標(biāo)識符,它們都是一些英文單詞或縮寫,也稱為
特定字或保留字,不能作為預(yù)定義標(biāo)識符和用戶定義標(biāo)識符使用。
C語言定義了32個關(guān)鍵字,如下所示:
表1?1C語音32美健)
,值。bmkdiednrcomlcoiitinixdrfaull(14doubkHtrmum
rxlrrnSoilgotoITlotlootMurnJ?ort血xd
UzeoftfitkUrurttwMrhunkNiumtcntdvoMvohtllrwhik
②預(yù)定義標(biāo)識符
是具有特定含義的標(biāo)識符,包括系統(tǒng)標(biāo)準(zhǔn)
庫函數(shù)名和編譯預(yù)處理命令等。
例如:printf、scanfsdefine和include等都是預(yù)定義標(biāo)識符。
(2)用戶定義標(biāo)識符
用戶定義標(biāo)識符用于對用戶使用的變量、數(shù)組和函數(shù)等操作對象進(jìn)行命名。
例如:將兩個變量命名為a和b,將一個數(shù)組命名為student,將一個函數(shù)命名為max等“
二、常量與變量
在計算機(jī)處理的程序中,我們不免經(jīng)常與數(shù)據(jù)打交道,根據(jù)數(shù)據(jù)的值是固定的,還是可變的,我
們將數(shù)據(jù)分為兩大類:常量和變量。
1、常量
定義:程序運(yùn)行時其值不能改變的量(即常數(shù))
例如:5000,3,0.03
一分類:符號常量和直接常量
(1)符號常量:用標(biāo)識符代表常量
定義格式:#define符號常量常量
?一般用大寫字母
?是宏定義預(yù)處理命令,不是C語句
(2)直接常量:
>整型常量
>實(shí)型常量
>字符型常量
>字符串常量
2、變量
在程序運(yùn)行過程中其值可以改變的量稱為變量。變量有整型變量、實(shí)型變量、字符變量等。
程序中的變星由用戶標(biāo)識符來表示,在C語言中,所有變雖必須遵循“先定義,后使用”的
原則。變量的定義一般放在函數(shù)體的開頭,即聲明部分。
變量定義語句的形式為:
類型說明符變量名表;
即:類型說明符變量名1,變量名2,…;
其中:類型說明符由關(guān)鍵字表示,不同的關(guān)健字表示不同的數(shù)據(jù)類型,變量名是用戶標(biāo)識符,由
用戶命名。
通常,定義了一個變量而未賦初值時,一般變量中存放的是隨機(jī)值。因此,為使定義的變量
有一確切的數(shù)值,需給定義的變量賦一初值。
注意:一個變量代表著內(nèi)存中一個具體的存儲單元,用變量名來標(biāo)識。存儲單元中存放的數(shù)據(jù)稱
為變量的值,變量的值可以通過賦值的方法獲得和改變。一定要區(qū)分開變量名和變量值這兩個不
同的概念。
三、基本數(shù)據(jù)類型
「整型
廣本類型I瑟菰型){慧然
I空類型
「數(shù)組類型
結(jié)構(gòu)體類型
C數(shù)據(jù)類型<構(gòu)造類型j聯(lián)合體類型
、枚舉類型
I指針類型
1、整型
(1)整型常量
表示形式:
。十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號表示.如123.-456,0
O八進(jìn)制整數(shù):由數(shù)字。開頭,后跟數(shù)字0~7表示.如0123、011
e十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f或A~F表示.如0xl23、0xff
整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型
O在整常量后加字母u或U,認(rèn)為它是無符號整型常量
場在整常量后加字母1或L,認(rèn)為它是longint型常量(可以加lu,表示unsignedlong常量
(2)整型變量
整型變量的數(shù)據(jù)類型根據(jù)存儲空間的大小分為:
⑴短整型shortint或short
⑵基本型ini
⑶長整型longint或long
另外,整型變量還有指示的修飾符signed或unsigned,也即整型數(shù)據(jù)有正數(shù)/負(fù)數(shù)、無符號數(shù)之
分.
整型變量定義的語法:
類型說明符變量名標(biāo)識符1,變量名標(biāo)識符2,……;
【例1-2]整型變量的定義與使用
#include<stdio.h>
intmain()
inta=-10;
unsignedu=-10;
longL=180;
printf('a=%d,b=%u,L=%ld\nn,a,u,L);
return0;
)
程序運(yùn)行結(jié)果:
a=-10,b=65535,L=180
【例1-3】整型數(shù)據(jù)的溢出
#include<stdio.h>
intmain()
(
shortinta;
a=32767;
printf('*%dM,a);
a=a+2:
printf('%d\n';a);
return0;
}
2、實(shí)型
(1)實(shí)型常量
實(shí)型常量數(shù)據(jù)(浮點(diǎn)數(shù))在寫作時可以有兩種表示方法:
①十進(jìn)制小數(shù)形式:
由教字和小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn))。
例如:0.1234,1234.0,0.0
②指數(shù)形式:
使用e或E代表10的指數(shù),“E”前必須有數(shù)字(有效數(shù)據(jù));“E”后為指數(shù)且必須為整數(shù)
(2)實(shí)型變量
float(單精度):占4字節(jié),提供7位有效數(shù)字
double(雙精度):占8字節(jié),提供15位有效數(shù)字
實(shí)型變量的語法:
類型說明符變量名
實(shí)型數(shù)據(jù)在內(nèi)存以指數(shù)形式存儲:
內(nèi)存形式:
3141—___________111
楨1E小分指數(shù)數(shù)制楨觸分
?rt-?*■
【例1乂】實(shí)型數(shù)據(jù)的舍入誤差
#include<stdio.h>
intmain()
(
floata.b;
a=123456.789e5;
b=a+20;
printf(,%f\n",a);
printf('%f\n",b);
return0;
)
【例1-5】實(shí)型數(shù)據(jù)的有效值位數(shù)
#include<stdio.h>
intmain()
(
floata;
doubleb;
a=33333.33333;
b=33333.33333333333333;
prinif("%f\n”,a);
printf(M%lf\n,,,b);
看量A6用字管與ASCHfMW
returnU;1rAsnrAM11ASCIIASCII
?lT單
4IMk
S0W5i
■e1WI
■?q107k
)AeR1(01
*SI▼9S100■
TIMa
?n0111■
<THl
■WI1J
3、字符型靜*Ms>X114f
(toe)TIBs
g?naa1Ml
(CR)?jjA117.
(1)字符型常量|,<Bnt▼
OMlC1w
AM2D1201
M3121T
tF122I
V?tfGa<
表示形式:用單引號括起來的單個普通字符或轉(zhuǎn)義字符。|H.124
?r?1c12)>
0JdIM
\HJ1Ke1270
3Lf
Ml3M<
字符常量的值:該字符的ASCII碼值。
轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示
表V4常用的轉(zhuǎn)義字符及其含義:
轉(zhuǎn)義字符含義轉(zhuǎn)義字符含義
\n換行\(zhòng)t水平制表
\b退格\r回車
\f換頁\\反斜線
\,單引號\M雙引號
\ddd1~3位8進(jìn)制數(shù)代表的字符\xhh1~2位16進(jìn)制數(shù)代表的字符
【例1-6】轉(zhuǎn)義字符的使用
#include<stdio.h>
intmain()
printf(1\101\x42C\n");
printf('Isay:\"Howareyou?\"\n");
printf('\\CProgramWXn");
printf('Turbo\'C\H,);
return0;
)
程序運(yùn)行結(jié)果:
ABC
Isay:"Howareyou?"
\CProgram\
TurboC'
(2)字符型變量
?字符型變量的數(shù)據(jù)類型為char,占1字節(jié)。
?字符型變量的分類:
字符型變量還有符號指示的修飾符signed或unsigned,也即字符型數(shù)據(jù)有正數(shù)/負(fù)數(shù)、無
符號正數(shù)之分。
?字符型變量的數(shù)值范圍:
>unsignedchar的數(shù)值范圍:0—255
>char的數(shù)值范圍:-128—+127
注意:字符變量存放的是字符ASCII碼
【例1-7】向字符變量賦以整數(shù)
#include<stdio.h>
intmain()
chara,b;
a=115;b=116;
printf("字符型變量字符型輸出:%c,%c\n",a,b);
primf("字符型變量的整型輸出:%d,%d\n\a,b);
return0;
)
程序運(yùn)行結(jié)果:
字符型變量字符型輸出:M
字符型變量的整型輸出:115,116
【例1-8】字符類型與整型間的轉(zhuǎn)換
#include<stdio.h>
intmain()
{
chara,b;
a=y;
b='f;
printf("初始小寫字符:%c,%c\n",a,b);
printf("初始字符的ASCII碼值:%d,%d\n",a,b);
a=a-32;
b=b-32;
printfC轉(zhuǎn)換后的大寫字符:%c,%c\n",a,b);
prinif(,轉(zhuǎn)換后字符的ASCII碼值:%d,%d\n”,a,b);
return0;
)
程序運(yùn)行結(jié)果:
初始小寫字符:s,t
初始字符的ASCH碼值:115,116
轉(zhuǎn)換后的大寫字符:S,T
轉(zhuǎn)換后字符的ASCII碼值:83,84
(3)字符串常量
一表示形式:用雙引號I"")括起來的字符序列
一存儲規(guī)則:每個字符串尾自動加一個''0’作為字符串結(jié)束的標(biāo)志
一字符常量與字符串常量的不同:見課件。
注意:沒有字符串變量,字符串用字符數(shù)組存放!
前而講解了C的基本數(shù)據(jù)類型,這些婁型在C中怎么應(yīng)用呢?當(dāng)然使用它們離不開運(yùn)算符.
什么是運(yùn)算符呢?怎樣使用C中豐富的運(yùn)算符呢?下面我們就來看看。
XXX學(xué)院授課方案
課名:教師:班級:時間:
課題:數(shù)據(jù)類型的合理應(yīng)用
教學(xué)目的及要求:掌握c程序中的基本數(shù)據(jù)類型。
教學(xué)重點(diǎn):了解掌握并簡單c程序中的整型、實(shí)型、字符型數(shù)據(jù)的表示形式。
教學(xué)難點(diǎn):c程序中各種數(shù)據(jù)類型的合理運(yùn)用,及其同異。
思政元素:理論與實(shí)踐一致:使學(xué)生知道軟件編程思想運(yùn)行的嚴(yán)密性、理論方法與實(shí)現(xiàn)技術(shù)的高
度一致是計算機(jī)科學(xué)與技術(shù)學(xué)科同數(shù)學(xué)學(xué)科密切相關(guān)的根本原因。
教學(xué)步驟及內(nèi)容:(實(shí)驗?2學(xué)時)
上節(jié)課講解了C的基本數(shù)據(jù)類型,結(jié)合課后習(xí)題,運(yùn)用VC6.0編輯調(diào)試簡單的C程序,了解
各種數(shù)據(jù)類型的存儲方式,讓理論與實(shí)踐一致,使學(xué)生了解軟件編程思想運(yùn)行的嚴(yán)密性,在編程
中需要嚴(yán)格遵循編程的語法格式,了解編程設(shè)計要求以及靈活應(yīng)用。
參考書上實(shí)例,結(jié)合課后習(xí)題,嘗試編輯C程序調(diào)試,了解各種數(shù)據(jù)類型間的異同。
通過對以上程序的調(diào)試,進(jìn)一步掌握C程序在VC6.0下的編輯、編譯、連接及運(yùn)行的調(diào)試方
法。
1、
#include<stdio.h>
intmain()
(
charc1=,a,.c2='b;c3=,c;c4='\10l;c5='\ll6':
printf("a%cb%c\tc%c\tabc\n'*,c1,c2,c3);
printf("\t\b%c%c';c4,c5);
return0;
)
3、
#include<stdio.h>
intmain()
|
inty=3,x=3,z=l;
printf("%d%d\n”,(++x,y++),z+2);
return0;
)
4、
#include<stdio.h>
intmain()
(
inta=12345;
floatb=-198.345,c=6.5;
printf(Ha=%4d,b=%-l0.2e,c=%6.2f\n",a,b,c);
return0;
)
5、
#include<stdio.h>
intmain()
(
intx=-2345;
floaty=-12.3;
printf(n%6d,%6.2f;x,y);
return0;
XXX學(xué)院授課方案
課名:教師:班級:時間:
課題:利息的計算(2)
教學(xué)目的及要求:要求學(xué)生掌握C語言中的運(yùn)算符和表達(dá)式,掌握運(yùn)各種運(yùn)算符的運(yùn)算。
教學(xué)重點(diǎn):掌握基本類型的使用,熟練進(jìn)行運(yùn)算符的運(yùn)算。
教學(xué)難點(diǎn):運(yùn)算符的靈活使用。
思政元素:
教學(xué)步驟及內(nèi)容:(講授-2~3學(xué)時)引入新課:
前面我們學(xué)習(xí)了基本數(shù)據(jù)類型,我們需要運(yùn)用這些類型的數(shù)據(jù)進(jìn)行運(yùn)算處理,就要使用到運(yùn)
算符,C語言提供了豐富的運(yùn)算符。
新課教學(xué):
四、運(yùn)算符與表達(dá)式
變量用來存放數(shù)據(jù),運(yùn)算符則用來處理數(shù)據(jù)。
所謂運(yùn)算符就是指運(yùn)算的符號,例如加運(yùn)算符(+)、乘運(yùn)算符(*)、取地址運(yùn)算符(&)等。
表達(dá)式與運(yùn)算符密不可分,它由運(yùn)算符與操作數(shù)組合而成,并由運(yùn)算符指定對操作數(shù)要進(jìn)行
的運(yùn)算,根據(jù)運(yùn)算符需要參與的操作數(shù)的個數(shù)分為:單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符,一
個表達(dá)式的運(yùn)算結(jié)果是一個值。
C語言提供的運(yùn)算符有以下幾種:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、條件
運(yùn)算符、賦值運(yùn)算符、逗號運(yùn)算符、sizeof運(yùn)算符及其它運(yùn)算符。
注:可以根據(jù)需要有選擇性的講解以下運(yùn)算符,有些運(yùn)算符可以讓學(xué)生自行學(xué)習(xí),不理解部分可
以在實(shí)現(xiàn)時提出,老師在講解。
1、算數(shù)運(yùn)算符與算術(shù)表達(dá)式
(1)基本的算術(shù)運(yùn)算符及算數(shù)表達(dá)式
①基本的算術(shù)運(yùn)算符
C語言中提供的基本的算數(shù)運(yùn)算符包括:加(+)、減(-)、乘(*)、除(/)和求余(%)。如
表1-5所示。
表1-55種基本的茸術(shù)運(yùn)真符
運(yùn)算符名字實(shí)例
+加10+2.5/嚅出12.5*/
-般3.8-4/*融-0.2*/
*乘2*2.4/*得出4.8*/
/除7/2.0/*得出3.5*/
%取余10?3/*得出1*/
②算術(shù)表達(dá)式
用算術(shù)運(yùn)算符連接而成的式子稱為算術(shù)表達(dá)式。
【例1-9】基本算數(shù)運(yùn)算。
#include<stdio.h>
intmain()
(
unsignedshortu=65500;
u=u+50;
printf('u=%u\n",u);
return0;
)
程序運(yùn)行結(jié)果:
u=14
注意:
?當(dāng)算數(shù)運(yùn)算符兩邊的操作數(shù)是相同的數(shù)據(jù)類型的表達(dá)式時,運(yùn)算的結(jié)果將保持原來的數(shù)據(jù)
類型。因此,5/2的值是2,不是2.5。因為表達(dá)式5/2是整型表達(dá)式。
?生不能用于實(shí)型數(shù)據(jù),2.5%2是非法表達(dá)式。
?算術(shù)表達(dá)式的結(jié)果應(yīng)該不超過其所能表示的數(shù)的范圍。
(2)取反運(yùn)算符和自增自減運(yùn)算符
C語言中,減號(-)又是一個取反運(yùn)算符,在此之外C語言還提供了另外兩個用于算數(shù)運(yùn)算的單
目運(yùn)算符:++(自增)和--(自減)。++的作用是使變量的值自己增1,而--的作用是使變量
的值自己減1。
假定變量value已預(yù)定義:intvalue=5;如表1-6所示
表36自地和自減運(yùn)算符
運(yùn)算符名字實(shí)例
++自加(前綴)(+4-yaiue)+10/*得出16,value變?yōu)?*/
++自加(后綴)(value**)+10/*得出15,value變?yōu)?*/
——自減(前綴)(—value)+10/*得出14,value變?yōu)?*/
—自派(后嫄(value")+10/*黜15,value變?yōu)?*/
由此可■見,自增和自減運(yùn)算符可■在變量名前,也可在變量名后,即可以用于前緩和后綴的形
式,但含義并不相同。
?對于前綴的形式,變量先作自增或自減運(yùn)算,然后將運(yùn)算結(jié)果用于表達(dá)式中;
?對于后綴的形式,變量的值先在表達(dá)式中參與運(yùn)算,然后再作自增或自減運(yùn)算。
【例1-10]自增自減運(yùn)算。
#include<stdio.h>
intmain()
(
inti=3,a;
a=20-i++;
printfCa=%d,i=%d\n",a,i);
b=++i+2;
printfCb=%d,i=%d\nb,i);
return0;
)
程序運(yùn)行結(jié)果:
a=17,i=4
b=7,i=5
說明:
?++運(yùn)算符只能用于變量,不能用于常量和表達(dá)式,因為++和一蘊(yùn)含了賦值操作。
?兩個+和-之間不能有空格
?作為前綴和后綴的區(qū)別
2、賦值運(yùn)算符與賦值表達(dá)式
C語言中,“二”被稱為賦值運(yùn)算符,其含義是將運(yùn)算符右邊表達(dá)式的值送到左邊變量名所代
表的存儲單元內(nèi)。
其簡單形式是:變量;表達(dá)式
這和形式的整個表達(dá)式稱為賦值表達(dá)式。執(zhí)行賦值表達(dá)式時,一般首先計算右邊表達(dá)式的值,
然后賦給左邊變量。在使用賦值表達(dá)式時應(yīng)注意以下幾點(diǎn)。
(1)“二”左邊必須是變量名或者是對應(yīng)某特定內(nèi)存單元的表達(dá)式。
(2)C語言允許在一個表達(dá)式中對多個變量連續(xù)賦值
(3)賦值運(yùn)算符的優(yōu)先級很低,僅高于逗號運(yùn)算符。
(4)賦值表達(dá)式的值就是“二”右邊表達(dá)式的值。
【例1-11]賦值運(yùn)算。
#include<stdio.h>
intmain()
(
inta=38,b=6,c;
floatf=4;
c=a/f-b
printf("c=%d",c);
return0;
)
程序運(yùn)行結(jié)果:c=3
在這個賦值語句中,右邊的表達(dá)式的類型是double,而c是int型,所以賦值執(zhí)行后結(jié)果的類
型是int,即對double型的值截去小數(shù)部分之后的整數(shù)部分。
注意這里是截去,不是四舍五入。
3、關(guān)系運(yùn)算符與關(guān)系表達(dá)式
在程序中經(jīng)常需要比較兩個量的大小關(guān)系,以決定程序下一步的工作。比較兩個量的運(yùn)算符
稱為關(guān)系運(yùn)算符。
C提供6種關(guān)系運(yùn)算符,用于數(shù)值之間的比較,表達(dá)式的值用整型量1(表示true),0(表
示false),見表1-7。
表1-7關(guān)系運(yùn)算圓
運(yùn)算符名字
==等于3==爭德曲I移
J=不等于產(chǎn)福鹿,與
<小于產(chǎn)檄器1探
<=小于或等于5<='5產(chǎn)錫瞄1移
>大于泮得岫砥松
>=大于、或等于臚德般工移
說明:第一:<=和>=運(yùn)算符不能寫成=<和=>,=<和。是無效的運(yùn)算符。第二:字符串不
應(yīng)當(dāng)用關(guān)系運(yùn)算符比較,因為被比較的不是字符串的內(nèi)容本身,而是字符串的地址。
【例1-12]關(guān)系運(yùn)算。
#include<stdio.h>
intmain()
(
intn;
floata,b,c;
a=7.2:f
b=6.5;A/*對變量a,b,c分別賦值為7.2、6.5和&9;*/
c=8.9;一
n=a>b>c;/*表達(dá)式n=a>b>c等價于n=((a>b)>c)o*/
printf('n=%d,a=%f,b=%f,c=%f\n'\n,a,b,c);
return0;
)
程序運(yùn)行結(jié)果:
n=O,a=7.2OOOOO,b=6.5OOOOO.c=8.9OOOOO
4、邏輯運(yùn)算符與邏輯表達(dá)式
?邏輯運(yùn)算符
&&||!
?邏輯表達(dá)式
用邏輯運(yùn)算符將運(yùn)算對象連接成的式子
例如:0&&'b'
a&&b||c&&d
a||b-5||c/4
!x+y>=z
?邏輯運(yùn)算符的優(yōu)先級和結(jié)合性:
>!是單目運(yùn)算符,右結(jié)合,高于算術(shù)運(yùn)算符
>&&和II是雙目運(yùn)算符,左結(jié)合,高于賦值運(yùn)算符,低于關(guān)系運(yùn)算符。
邏輯運(yùn)算符的運(yùn)算規(guī)則
運(yùn)算對象邏輯運(yùn)算結(jié)夕I
從左到右依次進(jìn)行邏輯計算aba&&balib!a
非。1ho110
?運(yùn)算對象為非。表示邏輯真
非。0010
今運(yùn)算對象為0表示邏輯假0非。011
000Q1
>邏輯運(yùn)算的結(jié)果為0或1
?運(yùn)算按照從左至右的順序進(jìn)行,一旦能夠確定邏輯表達(dá)式的值,就立即結(jié)束運(yùn)算——邏輯
運(yùn)算的短路性質(zhì)
【例1-13)邏輯運(yùn)算。
#include<stdio.h>
intmain()
inta=5,b=0,c=-2,m;
m=a++&&b++&&c++;
printf("a=%d,b=%d,c=%d,m=%d\n,1,a,b,c,m);
m=a++||b++||c++;
printf(',a=%d,b=%d,c=%d,m=%d\nH,a,b,c,m);
m=(a-7)||b-&&c++;
printf("a=%d,b=%d,c=%d,m=%d\n',,a,b,c,m);
return0;
)
程序運(yùn)行結(jié)果:
a=6,b=l,c=-2,m=0
a=7,b=l,c=-2,m=1
a=7,b=0,c=-1,m=1
5、位運(yùn)算符與位表達(dá)式
?位運(yùn)算符:~&A|??
>位運(yùn)算符的運(yùn)算對象只能是整型數(shù)據(jù)或字符型數(shù)據(jù),不能是實(shí)型數(shù)據(jù)
>運(yùn)算對象一律按二進(jìn)制補(bǔ)碼參加運(yùn)算,并按位進(jìn)行運(yùn)算
>位運(yùn)算的結(jié)果是一個整型數(shù)據(jù)
?位邏輯運(yùn)算符運(yùn)算規(guī)則
假設(shè)ai和bi均是一個二進(jìn)制位(bit)
運(yùn)算對象邏輯運(yùn)算結(jié)果
alb]帆&bjallbi限?F
000001
010111
100110
111100
【例1-14]邏輯位運(yùn)算(見課件)
?位移位運(yùn)算符運(yùn)算規(guī)則
■a?b將a的值(二進(jìn)制編碼)左移b位,右補(bǔ)0
■a?b將a的值(二進(jìn)制編碼)右移b位,左補(bǔ)?;?
【例1-15]邏輯移位運(yùn)算(見課件)
6、條件運(yùn)算符與條件表達(dá)式
?條件運(yùn)算符:?:
?條件表達(dá)式的一般形式
表達(dá)式1?表達(dá)式2:表達(dá)式3
例如:m<n?x:a+3
a++>=10&&b—>20?a:b
x=3+a>5?100:200
>C語言中唯一的三目運(yùn)算符,要正確區(qū)分用?和:分隔的表達(dá)式
>涉及條件運(yùn)算符的優(yōu)先級與結(jié)合性
?條件運(yùn)算符優(yōu)先級高于賦值、逗號運(yùn)算符,低于其他運(yùn)算符
(實(shí)例見課件)
?條件運(yùn)算符具有右結(jié)合性
?當(dāng)一個表達(dá)式中出現(xiàn)多個條件運(yùn)算符時,應(yīng)該將位于最右邊的問號與離它最近的冒號配
對,并按這一原則正確區(qū)分各條件運(yùn)算符的運(yùn)算對象。
(實(shí)例見課件)
【例1-16]條件表達(dá)式
#include<stdio.h>
intmain()
(
charch='a*;
ch=ch>='a,&&ch<=,z'?ch-'a'+'A':ch;
printf('%c\n'\ch);
return0;
)
程序運(yùn)行結(jié)果:
A
7、逗號運(yùn)算符與逗號表達(dá)式
?逗號運(yùn)算符形成逗號表達(dá)式的一般形式
表達(dá)式1,表達(dá)式2,……,表達(dá)式n
?逗號表達(dá)式的值
從左向右,依次對表達(dá)式求值,最后得到表達(dá)式n的值就是逗號表達(dá)式的值
【例1-17]逗號表達(dá)式
#include<stdio.h>
intmain()
inta=3,b=5,c=7,x,y;
y=(x=a+b,++b);
printf('x=%d,y=%d\n",x,y);
return0;
)
程序運(yùn)行結(jié)果:
x=8,y=6
8、其它運(yùn)算符及其運(yùn)算
(1)sizeof運(yùn)算符
-為單目運(yùn)算符
-運(yùn)算對象是變量名或數(shù)據(jù)類型標(biāo)識符及數(shù)據(jù)常量等
-運(yùn)算結(jié)果為該對象的長度
(2)復(fù)合的賦值運(yùn)算符
復(fù)合的賦值運(yùn)算符,又稱為帶有運(yùn)算的賦值運(yùn)算符,也叫賦值縮寫。
例如:i=i+j;可表示為i+=j;這里+=是復(fù)合賦值運(yùn)算符。
+=加賦值-=減賦值
*=乘賦值/=除賦值
%=求余賦值&=按位與賦值
1=按位或賦值人=按位異或賦值
?=左移位賦值>>=右移位賦值
注意:x*=y+8等價于x=x*(y+8),不等價于x=x*y+8。
z&=y-x等價于z=z&(y-x)?而不等價于z=z&y-x0
XXX學(xué)院授課方案
課名:教師:班級:時間:
課題:運(yùn)算符的合理使用
教學(xué)目的及要求:掌握運(yùn)算符的靈活與合理使用,解決編程問題,并運(yùn)用編輯工具VC6.0調(diào)試C程
序,進(jìn)一步熟悉其編輯和調(diào)式的方法。
教學(xué)重點(diǎn):掌握運(yùn)算符的合理使用及其編程方法,學(xué)習(xí)運(yùn)算符的優(yōu)先級和結(jié)合性,以及運(yùn)算符在運(yùn)
算過程中起參與運(yùn)算的數(shù)據(jù)類型的轉(zhuǎn)換方式。
教學(xué)難點(diǎn):C程序數(shù)據(jù)類型轉(zhuǎn)換理解,及其C程序的查錯處理
思政元素:
教學(xué)步驟及內(nèi)容:(實(shí)驗與講授-2學(xué)時)
上節(jié)課講解了C的運(yùn)算符極其表達(dá)式,本節(jié)課將運(yùn)用學(xué)過的運(yùn)算符,設(shè)計編寫程序,解決相
關(guān)問題,并在計算機(jī)上運(yùn)用VC6.0編輯調(diào)試所設(shè)計的C程序。
題目:編寫一個C程序,計算算式2■x(9+2士^)+201族4+1的結(jié)果。
24
#include<stdio.h>
intmain()
{
doubles;
s=(9+(2.5+3)/4)/2+2010%4+l;
printf('s=%lf\n",s);
return0;
)
程序運(yùn)行結(jié)果:
s=8.187500
在設(shè)計過程中往往有同學(xué)不注意C算式的書寫形式,和數(shù)學(xué)中的算式混為一談,注意,C的
表達(dá)式與數(shù)學(xué)算式有一定的區(qū)別,在設(shè)計這道題時,我們要注意兩點(diǎn),就是運(yùn)算符的優(yōu)先級和結(jié)
合性,以及數(shù)據(jù)的類型轉(zhuǎn)換。
五、運(yùn)算符的優(yōu)先級和結(jié)合性
運(yùn)用C語言運(yùn)算符進(jìn)行運(yùn)算時,需要掌握運(yùn)算符的優(yōu)先級和結(jié)合性。
>優(yōu)先級:運(yùn)算符運(yùn)算的先后順序
>結(jié)合性:運(yùn)算符運(yùn)算的方向。
六、數(shù)據(jù)的類型轉(zhuǎn)換
C語言表達(dá)式中可以將不同類型的數(shù)據(jù),按一定的運(yùn)算規(guī)則進(jìn)行計算,運(yùn)算中這些數(shù)據(jù)將會
作某種轉(zhuǎn)換,把它們轉(zhuǎn)換成同一類型的數(shù)據(jù),然后再進(jìn)行運(yùn)算。這種轉(zhuǎn)換的方法包含兩種:自動
轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換。
1、自動轉(zhuǎn)換
就是系統(tǒng)根據(jù)規(guī)則自動將兩個不同數(shù)據(jù)類型的運(yùn)算對象轉(zhuǎn)換成同一數(shù)據(jù)類型的過程。
轉(zhuǎn)換原則:自動將精度低、表示范圍小的運(yùn)算對象類型向精度高、表示范圍大的運(yùn)算對象類
型轉(zhuǎn)換doublefloat
高精度
(示例見課件)t
long
2、強(qiáng)制轉(zhuǎn)換?
強(qiáng)制轉(zhuǎn)換的一般形式unsigned
低精度
(類型名)表達(dá)式inItsl…ion,cndi
例如:(int)('b,+3*x)%3
l/(float)a+6
>(float)22/5與(fl不同
>錯誤的類型轉(zhuǎn)換:
(int)b=a+5
b=int(3*a)
注意:強(qiáng)制轉(zhuǎn)換只是中間代換量的提取轉(zhuǎn)換,而不能真正改變某變量的類型.
【例1-18]數(shù)據(jù)的強(qiáng)制類型轉(zhuǎn)換(示例見課件)
XXX學(xué)院授課方案
課名:教師:班級:時間:
課題:存款的輸入與利息的輸出(1)
教學(xué)目的及要求:掌握C語言輸出函數(shù)的使用方法。
教學(xué)重點(diǎn):掌握C語言格式化格式化輸出函數(shù)printf。
教學(xué)難點(diǎn):C程序中結(jié)合各種類型的數(shù)據(jù)及其豐富的運(yùn)算符進(jìn)行程序設(shè)計,合理使用輸出函數(shù)。
思政元素:
教學(xué)步驟及內(nèi)容:(講授-2學(xué)時)引入新課:
13.1問題情景及其實(shí)現(xiàn)
假設(shè)XXX銀行1年定期存款的利率為3%,,并已知存款期為n年,存款本金為X元,請計
算n年后可以得到的本利總和是多少。
#include<stdio.h>
#include<math.h>
intmain()
{
doubleIrate=O.O3;
doubleDmoney=5000,Dinterest;
intterm;
printf。存款金額為:");
scanf("%lf\&Dmoney);
prinlfC存款期限為:”);
scanf("%d'\&term);
Dinterest=Dmoney*pow((1+Irate),term)-Dmoney;
printf("存款金額為%.1岬的%(1年存款利息是:%.21元也",Dmoney,term,Dinterest);
return0;
)
程序運(yùn)行結(jié)果如下:
存款金額為:6000Z
存款期限為:4/
存款金額為6000.0的4年存款利息是:753.05元
在上面設(shè)計的簡單C程序中用到的數(shù)據(jù):Iraie、Dmoney.term;對數(shù)據(jù)進(jìn)行的運(yùn)算:-、*、
首先需要考慮在程序開始執(zhí)行時存款、年限是不確定的值?應(yīng)該怎樣設(shè)計它們的值?這樣設(shè)
計有什么好處?這樣的設(shè)計計算機(jī)怎么處理?通過對利息的計算后,我們需要輸出利息,如果我
們希望輸出結(jié)果保留兩位小數(shù)該怎么設(shè)計呢?隨著這些問題的提出,我們需要了解在C程序在運(yùn)
行過程中,往往需要由用戶輸入一些數(shù)據(jù),而程序運(yùn)算所得到的結(jié)果又需要輸出給用戶,由此實(shí)
現(xiàn)了人和計算機(jī)之間的交互。所以在程序設(shè)計中,輸入輸出語句是一類必不可少的重要語句,在
C語言中,沒有專門的輸入輸出語句,任何的輸入輸出操作都是通過對標(biāo)準(zhǔn)I/O(輸入/輸出)庫
函數(shù)的調(diào)用實(shí)現(xiàn),primf函數(shù)就是負(fù)責(zé)數(shù)據(jù)輸出的庫函數(shù)之一,而我們在前面的任務(wù)中只對printf
函數(shù)進(jìn)行了初步的介紹。學(xué)習(xí)C語言,不僅要學(xué)習(xí)C的語法規(guī)則,更重要的是學(xué)習(xí)各種庫函數(shù)的
具體使用方法。
帶著以上這些問題,我們來認(rèn)識一下C語言基本的輸入和輸出庫函數(shù)的使用。
新課講授:
-1中聯(lián)楨―俘/___________________
格式字符tX
一、C程序數(shù)據(jù)的輸出w以十塔“一,■出2號M(正故不—號)
wI—帽勸就神―(不—0—
以十六注?一索>由無移號一-(和由
1、printf()函數(shù)%■I-+1?期式■出無
XM期t
(1)printf函數(shù)調(diào)用的一般形式為:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年玻璃制品采購合同
- 2024年物業(yè)服務(wù)與社區(qū)文化活動策劃委托合同3篇
- 《背影》課時教案模板
- 擬定財務(wù)的個人工作計劃大全
- 2024山東基礎(chǔ)軟件服務(wù)市場前景及投資研究報告
- 產(chǎn)科工作計劃
- 初中教師年終教學(xué)計劃五篇
- 幼兒園實(shí)習(xí)自我總結(jié)十篇
- 內(nèi)勤個人工作計劃10篇
- 關(guān)于教師一級述職報告3篇
- 2025年三支一扶考試基本能力測驗試題及解答參考
- 2024版食源性疾病培訓(xùn)完整課件
- 【MOOC】信號與系統(tǒng)-南京郵電大學(xué) 中國大學(xué)慕課MOOC答案
- 護(hù)理不良事件分析 課件
- 10萬噸級泊位工程施工組織設(shè)計
- 《Python程序設(shè)計》課件-2:變量和數(shù)據(jù)類型
- 糖尿病相關(guān)論文開題報告
- 糖尿病患者健康管理測試試題(三套題-有答案)
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 2024年安全員C證考試題庫附答案很全
- 2024年鹽酸小檗堿片(鹽酸黃連素片)項目可行性研究報告
評論
0/150
提交評論