C語言程序設(shè)計 課件全套 陳春華 單元1- C語言概述-初識程序 -單元9 文件-資源重復(fù)利用_第1頁
C語言程序設(shè)計 課件全套 陳春華 單元1- C語言概述-初識程序 -單元9 文件-資源重復(fù)利用_第2頁
C語言程序設(shè)計 課件全套 陳春華 單元1- C語言概述-初識程序 -單元9 文件-資源重復(fù)利用_第3頁
C語言程序設(shè)計 課件全套 陳春華 單元1- C語言概述-初識程序 -單元9 文件-資源重復(fù)利用_第4頁
C語言程序設(shè)計 課件全套 陳春華 單元1- C語言概述-初識程序 -單元9 文件-資源重復(fù)利用_第5頁
已閱讀5頁,還剩381頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單元一

C語言概述-初識程序?qū)W(xué)【問題】編程技術(shù)在現(xiàn)代社會中的影響?

編程技術(shù)對于現(xiàn)代社會的重要性不言而喻。我們的生活已經(jīng)與數(shù)字化緊密相連,借助計算機和互聯(lián)網(wǎng),我們可以完成大量的工作和娛樂活動,如在線購物、社交媒體、網(wǎng)上支付、在線教育等等。這些活動的實現(xiàn)都依賴于編程技術(shù),而程序員則是編程技術(shù)的核心人才。計算機語言2認(rèn)識C語言3C語言開發(fā)環(huán)境4程序框架結(jié)構(gòu)目錄1計算機語言—軟件與程序的概念計算機作為一種機器,如何理解人的需求,按照人的思想進(jìn)行工作,是問題求解的關(guān)鍵。程序正是為解決上述問題而提出的一種自動化求解的思路。計算機能完成一系列給定的功能,正是通過執(zhí)行計算機指令實現(xiàn)的。指令是指示計算機執(zhí)行的某種操作的命令,它由一串二進(jìn)制數(shù)碼組成。程序是為了讓計算機執(zhí)行某些操作或解決某個問題而編寫的一系列有序指令的集合,其操作對象是數(shù)據(jù),是人與計算機之間傳遞信息的媒介。軟件是指程序與其相關(guān)文檔或其他從屬物的集合。

軟件=程序+文檔=數(shù)據(jù)結(jié)構(gòu)+算法+文檔計算機語言—分類計算機語言2認(rèn)識C語言3C語言開發(fā)環(huán)境4程序框架結(jié)構(gòu)目錄1認(rèn)識C語言-C語言起源認(rèn)識C語言-C語言標(biāo)準(zhǔn)美國國家標(biāo)準(zhǔn)學(xué)會(ANSI)為C語言制定了一套ANSI標(biāo)準(zhǔn),即C語言標(biāo)準(zhǔn)。C89/C90標(biāo)準(zhǔn)1989國國家標(biāo)準(zhǔn)學(xué)會(ANSI)通過的C語言標(biāo)準(zhǔn)ANSIX3.159-1989,被稱為C89。

C99標(biāo)準(zhǔn)1999年,ISO和國際電工委員會(IEC)正式發(fā)布了ISO/IEC:1999,簡稱C99。本書將基于C99標(biāo)準(zhǔn)進(jìn)行詳解。C11標(biāo)準(zhǔn)2011年ISO和IEC正式發(fā)布C語言標(biāo)準(zhǔn)第三版草案,稱為

ISO/IEC9899:2011,簡稱C11。認(rèn)識C語言-C語言特點

早期的C語言主要用UNIX系統(tǒng)開發(fā),后來C語言標(biāo)準(zhǔn)確立,C語言逐漸被廣泛應(yīng)用在各個領(lǐng)域,成為20世紀(jì)80年代乃至今天最優(yōu)秀的程序設(shè)計語言之一。C語言的主要特點如下:

表達(dá)能力強C99標(biāo)準(zhǔn)共有37個關(guān)鍵字、9條控制語句并且具備豐富的數(shù)據(jù)類型。結(jié)構(gòu)化設(shè)計C語言程序設(shè)計講究自頂向下規(guī)劃項目的思路,注重每個功能模塊化編程。高效性C語言具有直接訪問物理地址的能力,方便了內(nèi)存的管理??梢浦彩褂肅語言編寫的程序修改部分代碼就可以移植到其他設(shè)備運行。整個嵌入式行業(yè)都有用到c語言,用C的職位通常是嵌入式行業(yè),統(tǒng)稱嵌入式軟件工程師。小家電,所謂的冰箱,空調(diào),洗衣機,電飯煲,空氣凈化器,商場或飛機高鐵上的煙霧報警器,甚至自動感應(yīng)的水龍頭等都是嵌入式設(shè)備。汽車行業(yè),除了看起來高大上的顯示界面,電機控制,通訊,開關(guān)門,空調(diào),充電,胎壓監(jiān)測等等都是單片機測量和控制。常見的智能手機,智能手環(huán),手表,耳機,紅綠燈,充電寶,鍵盤,鼠標(biāo),平衡車,電動車這些也都是嵌入式設(shè)備。生活中常見的電子商品。比如夜晚的燈光廣告牌,你用到的u盤,sd卡里面的驅(qū)動,天騎得共享單車,測溫槍以及各行行業(yè)的工業(yè)產(chǎn)品的控制器所用語言都是用的c來寫的。各種芯片原廠,液晶面板原廠,傳感器原廠,都是用C寫自己產(chǎn)品驅(qū)動。認(rèn)識C語言-C語言應(yīng)用領(lǐng)域計算機語言2認(rèn)識C語言3C語言編程環(huán)境4程序框架結(jié)構(gòu)目錄1C語言編程環(huán)境-常用的開發(fā)工具

1.windows系統(tǒng)下最常見的C語言集成開發(fā)環(huán)境,有MicrosoftVisualStudio、DEVC++、Code::Blocks、visualc++6.0、C-Free和Win-TC等。visualc++6.0報錯比較準(zhǔn)確,是微軟推出的一款編譯器,是一個功能強大的可視化軟件開發(fā)工具。Dev-C++(或者叫做Dev-Cpp)是Windows環(huán)境下的一個輕量級C/C++集成開發(fā)環(huán)境(IDE)。它是一款自由軟件,遵守GPL許可協(xié)議分發(fā)源代碼。適合于在教學(xué)中供C/C++語言初學(xué)者使用,也適合于非商業(yè)級普通開發(fā)者使用。2.在線菜鳥工具:/compile/11/Devc++啟動Devc++打開或新建工程打開或新建文件編輯、編譯連接、運行完成

開發(fā)工具使用devc++開發(fā)應(yīng)用程序的步驟C語言編程環(huán)境-Devc++Devc++啟動Devc++打開或新建文件編輯、編譯連接、運行完成

開發(fā)工具使用devc++開發(fā)應(yīng)用程序的步驟C語言編程環(huán)境-Devc++C語言編程環(huán)境-一個C語言小程序程序代碼運行結(jié)果程序開發(fā)過程-四個步驟(1)

編輯源程序(Edit)(2)編譯源程序,生成目標(biāo)文件(Compile)(3)連接目標(biāo)文件及相關(guān)模塊,生成可執(zhí)行文件(Link

)(4)運行可執(zhí)行文件(Run)*.cpp或*.c*.obj*.exe編輯編譯連接運行計算機語言2認(rèn)識C語言3C語言開發(fā)環(huán)境4程序框架結(jié)構(gòu)目錄1程序宏觀框架結(jié)構(gòu)-程序組成#include<stdio.h>

intmain(){ printf("歡迎來到C語言的世界!\n");//調(diào)用輸出函數(shù)在屏幕上顯示信息

return0;//函數(shù)返回值為0}編譯預(yù)處理函數(shù)(組)最基本的程序框架程序宏觀框架結(jié)構(gòu)-函數(shù)結(jié)構(gòu)intmain()//主函數(shù)

{printf("歡迎來到C語言的世界!\n");//調(diào)用輸出函數(shù)在屏幕上顯示信息

return0;//函數(shù)返回值為0}函數(shù)返回值類型

函數(shù)名(形式參數(shù))

{

說明語句;

執(zhí)行語句;}函數(shù)首部

函數(shù)體(1)函數(shù)構(gòu)成(2)注釋(3)程序語句:用;作為語句結(jié)束符編譯預(yù)處理:程序編譯之前的準(zhǔn)備工作,以#開頭函數(shù)分類

:函數(shù)是構(gòu)成C語言程序的基本單位;

包括主函數(shù)、庫函數(shù)和用戶自定義函數(shù)函數(shù)組:程序的執(zhí)行以主函數(shù)為核心展開;

函數(shù)組中有且僅有一個主函數(shù)main()//

單行注釋的起始符號/*......*/作為單行或多行注釋程序宏觀框架結(jié)構(gòu)-函數(shù)結(jié)構(gòu)程序框架結(jié)構(gòu)-隨堂練習(xí)模仿編程,打印出一個“*”符號構(gòu)成的三角形圖案*************************

單元小結(jié)

單元二

C語言語法基礎(chǔ)-走進(jìn)數(shù)據(jù)世界1字符輸出函數(shù)3如何輸出數(shù)據(jù)2如何定義數(shù)據(jù)4如何輸入數(shù)據(jù)C語言數(shù)據(jù)分類5算術(shù)運算符6綜合應(yīng)用目錄導(dǎo)學(xué)【問題】如何表示計算機中的數(shù)據(jù)?

計算機憑借超越人腦的計算速度改變著現(xiàn)實世界數(shù)據(jù)處理的進(jìn)程。數(shù)據(jù)處理其本質(zhì)是對數(shù)據(jù)的操作,這些數(shù)據(jù)可能是數(shù)學(xué)問題中的數(shù)值,可能是信息處理中的文字、聲音或視頻。那么,現(xiàn)實世界中存在的大量簡單數(shù)據(jù)如何在程序中存儲和表示呢?

C語言數(shù)據(jù)分類——程序構(gòu)成【例2-1】設(shè)a=18,b=35,要求將a、b兩個整型變量的值進(jìn)行交換。【解題思路】交換兩個變量的值,需要借助一個中間量,臨時保存其中一個變量的值。【源代碼】#include<stdio.h>//包含標(biāo)準(zhǔn)輸入輸出頭文件intmain()//主函數(shù){

inta=18,b,temp;//定義三個整型變量,并為整型變量a初始化賦值為18b=35;//為變量b賦值為35printf("交換前a=%d,b=%d\n",a,b);//輸出交換前a、b的值temp=a;//將變量a的值賦給變量temp保存a=b;//將變量b的值賦給變量ab=temp;//將變量temp的值賦給變量bprintf("交換后a=%d,b=%d",a,b);//輸出交換后a、b的值return0;//函數(shù)返回值為0}【運行結(jié)果】交換前

a=18,b=35交換后

a=35,b=18

C語言數(shù)據(jù)分類——數(shù)據(jù)類型C語言能處理多種類型的數(shù)據(jù),但其最基本的數(shù)據(jù)類型只有:整型、浮點型(小數(shù))和字符型3種。名稱符號存儲空間取值范圍短整型[signed]short[int]2字節(jié)-32768~32677即-2^15~(2^15-1)無符號短整型unsignedshort[int]2字節(jié)0~65535即0~(2^16-1)基本整型[signed]int4字節(jié)-2147483648~2147483647即-2^31~(2^31-1)無符號基本整型unsignedint4字節(jié)0~4294967295即0~(2^32-1)長整型long[int]4字節(jié)-2147483648~2147483647即-2^31~(2^31-1)無符號長整型unsignedlong[int]4字節(jié)0~4294967295即0~(2^32-1)長長整型longlongint8字節(jié)-2^63~(2^63-1)

C語言數(shù)據(jù)分類——整型名稱符號存儲空間有效數(shù)字取值范圍單精度float4字節(jié)6~7-3.4×10^-38~3.4×10^38雙精度double8字節(jié)15~16-1.7×10^-308~1.7×10^308長雙精度longdouble16字節(jié)18~19-1.2×10^-4932~1.2×10^4932

C語言數(shù)據(jù)分類——浮點型ASCII的全稱是"美國信息交換標(biāo)準(zhǔn)代碼"。它設(shè)計于60年代早期,是計算機和諸如打印機、磁帶驅(qū)動器之類的硬件設(shè)備的標(biāo)準(zhǔn)字符集。ASCII是7比特字符集,包含了128個不同的字符值。ASCII支持0-9的數(shù)字,A-Z大寫和小寫英文字母,以及一些特殊字符。被廣泛使用于現(xiàn)代計算機、HTML和因特網(wǎng)上的字符集都是基于ASCII。

C語言數(shù)據(jù)分類——字符型字符型數(shù)據(jù)存放的是該字符所對應(yīng)的ASCII碼值(一個整數(shù))。字符型數(shù)據(jù)進(jìn)行運算時按照所對應(yīng)ASCII碼值進(jìn)行運算。名稱符號存儲空間取值范圍字符型char1字節(jié)值范圍是-128~127值與ASCII表中的字符對應(yīng)無符號字符型unsignedchar1字節(jié)值范圍是0~255值與ASCII表中的字符對應(yīng)

C語言數(shù)據(jù)分類——字符型(1)關(guān)鍵字:在編程語言里事先定義并賦予了特殊含義的單詞類型說明符:int、float、char、void語句定義符:if、for、while、return(2)用戶自定義標(biāo)識符:可定義符號常量名、變量名、函數(shù)名、類型

C語言數(shù)據(jù)分類——標(biāo)識符(3)標(biāo)識符命名規(guī)則標(biāo)識符只能由字母、數(shù)字和下劃線組成。標(biāo)識符不能以數(shù)字作為第一個字符。標(biāo)識符不能使用關(guān)鍵字。標(biāo)識符區(qū)分大小寫字母,如add、Add和ADD是不同的標(biāo)識符。(1)哪些標(biāo)識符屬于合法的

用戶自定義標(biāo)識符:(2)識別程序中的標(biāo)識符#include<stdio.h> voidmain() {inta,b,c;printf("請輸入矩形的長和寬:");

scanf("%d%d",&a,&b);

c=2*(a+b); printf("該矩形周長為:%d.\n",c);}Main

void

_num

age2

a*

N4

3m

%dstrarr_1_names*t

C語言數(shù)據(jù)分類——標(biāo)識符

C語言數(shù)據(jù)分類——sizeof()運算符【說明】

sizeof是C語言的一種單目操作符,它并不是函數(shù)。

sizeof運算符用來計算被運算對象在內(nèi)存中所占字節(jié)數(shù),被運算對象可以是數(shù)據(jù)類型、或已定義的變量、或已定義的數(shù)組(計算結(jié)果是數(shù)組所有元素的存儲單元之和)、或表達(dá)式(計算結(jié)果是表達(dá)式值所占內(nèi)存的字節(jié)數(shù))?!緎izeof語句格式】sizeof(運算對象)

C語言數(shù)據(jù)分類——sizeof()運算符【例2-2】用運算符sizeof()計算不同類型的數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)。#include<stdio.h>//包含標(biāo)準(zhǔn)輸入輸出頭文件intmain()//主函數(shù){ intnum; floatx; doubley; chart; printf("變量占的字節(jié)數(shù):%d,%d,%d,%d\n", sizeof(num),sizeof(x),sizeof(y),sizeof(t)); printf("常量占的字節(jié)數(shù):%d,%d,%d,%d\n", sizeof(3),sizeof(45.6),sizeof(45.6789545),sizeof('m')); return0;//函數(shù)返回值為0}【運行結(jié)果】變量占的字節(jié)數(shù):4,4,8,1常量占的字節(jié)數(shù):4,8,8,11字符輸出函數(shù)3如何輸出數(shù)據(jù)2如何定義數(shù)據(jù)4如何輸入數(shù)據(jù)C語言數(shù)據(jù)分類5算術(shù)運算符6綜合應(yīng)用目錄數(shù)據(jù)定義——直接常量(1)整型常量表示方式前置符號構(gòu)成示例表示方式十進(jìn)制無0~9、正負(fù)號65,-57十進(jìn)制八進(jìn)制00~7、正負(fù)號032,027,-033八進(jìn)制十六進(jìn)制0x或0X0~9,a~f(或A~F)、正負(fù)號0x101,0Xff十六進(jìn)制(2)浮點型常量表示方式符號構(gòu)成示例表示方式十進(jìn)制小數(shù)小數(shù)點.0~9、正負(fù)號和小數(shù)點1.23,.23,-1.必須有唯一的小數(shù)點指數(shù)字母e或E0~9、正負(fù)號、e或E1.23e3,1.23E3字母e或E前必有數(shù),e或E后必為整數(shù)數(shù)據(jù)定義——直接常量(3)字符型常量直接字符常量:用單撇引號括起來的單一字符稱之為字符型常量轉(zhuǎn)義字符常量:以反斜杠“\”作為標(biāo)志符號,見表2-3字符型常量實例'a'、'B'、'9'、'*'直接字符常量'\n''\017''\x01'回車換行??'\'''\"''\\'單引號雙引號反斜杠數(shù)據(jù)定義——直接常量字符串常量字符串常量就是用雙撇引號括起來的一串字符序列。字符串中含有的字符個數(shù)是該字符串的長度。字符串存儲時,每個字符占1個字符,并在字符串的結(jié)尾自動加上一個字符串結(jié)束標(biāo)志'\0',因此字符串的存儲長度比字符串的字符個數(shù)多1。數(shù)據(jù)定義——直接常量定義格式(4)符號常量是指用符號代表某個常量。#define符號常量標(biāo)識符

常量值宏定義程序示例#include<stdio.h> #definePI3.14//定義符號常量PI代表3.14voidmain() {floatr,area; printf("請輸入半徑:");scanf("%f",&r); area=PI*r*r; printf("該圓的面積為:%f.\n",area);}說明:符號常量標(biāo)識符通常大寫寫在程序開頭位置數(shù)據(jù)定義——直接常量(1)判斷下列常量表示正確與否?(2)字符串常量“Todayisfine?\n”的字符串長度為

個字節(jié),它占用的存儲空間為

個字節(jié)。整型常量:32768、037、081、0x4f、0xAH浮點型常量:.124、3.0、1e3、2.3E1.5字符型常量:'a'、'101'、65、'\x21'、'9'(3)在編程處理物理力學(xué)相關(guān)運算時,常將重力加速度G定義為符號常量,其定義語句可描述為:

。數(shù)據(jù)定義——直接常量練習(xí)定義格式在程序運行過程中其值可以改變的量稱為變量。變量必須先定義,后使用。類型標(biāo)識符

變量名1,變量名2,…,變量名n;floatr,area; doublea,b,c;inti=1,s; unsignedlongm,k;charch; 程序示例//定義單精度浮點型變量r和area//定義雙精度浮點型變量a,b和c//定義兩個整型變量,同時給變量i初始化,賦初值1//定義兩個無符號長整型變量m和k//定義一個字符型變量ch用戶標(biāo)識符定名規(guī)則數(shù)據(jù)定義——變量定義(1)下列變量定義中合法的是:(2)若要根據(jù)定期存款數(shù)額c、存款期限m和相應(yīng)的利率r,編程計算本息合計s,則變量定義語句如何描述?longdo=0xfd;intmax=min=0;doublef,inta;charch="A";數(shù)據(jù)定義——變量定義練習(xí)doublefloatLongunsignedintchar,short

不同類型的數(shù)據(jù)共存于同一個表達(dá)式中時,按照C語言的規(guī)則要轉(zhuǎn)換成同一類型,轉(zhuǎn)換是編譯系統(tǒng)自動完成的。說明:必定的轉(zhuǎn)換運算對象類型不同時轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換——自動類型轉(zhuǎn)換printf("%d\n",10/3);printf("%f\n",10.0/3);運算結(jié)果:33.333333在C語言中,還可以把一種類型的數(shù)據(jù)強制轉(zhuǎn)換為另一種類型的數(shù)據(jù)。一般格式(類型標(biāo)識符)(表達(dá)式)重點提示:當(dāng)表達(dá)式為單一常量或變量時,表達(dá)式兩側(cè)的括號()可以省略。當(dāng)浮點型數(shù)據(jù)轉(zhuǎn)換為整數(shù)時,系統(tǒng)采用的是直接截斷的方式,而不是四舍五入。對變量進(jìn)行強制轉(zhuǎn)換后,變量本身的數(shù)據(jù)類型不變,而是得到一個所需要類型的數(shù)據(jù)。(int)2.6doublea=3.68;intb;b=(int)a;2a=3.14b=3程序示例數(shù)據(jù)類型轉(zhuǎn)換——強制類型轉(zhuǎn)換1字符輸出函數(shù)3如何輸出數(shù)據(jù)2如何定義數(shù)據(jù)4如何輸入數(shù)據(jù)C語言數(shù)據(jù)分類5算術(shù)運算符6綜合應(yīng)用目錄#include<stdio.h> voidmain() {floatr,area; printf("請輸入半徑:");scanf("%f",&r); area=3.14*r*r; printf("該圓的面積為:%f.\n",area);}示例:計算并輸出半徑為r的圓的面積。格式化輸出函數(shù)輸出字符串格式化輸出函數(shù)輸出指定格式

如何輸出函數(shù)——格式輸出函數(shù)函數(shù)格式格式1:printf("字符串常量");//將“字符串常量”顯示輸出格式2:printf("格式控制字符串",輸出項列表);//按“格式控制字符串”所規(guī)定的格式,將“輸出項列表”中各輸出項的值輸出到標(biāo)準(zhǔn)輸出設(shè)備。

如何輸出函數(shù)——格式輸出函數(shù)printf()函數(shù)的功能是將信息按照格式控制字符串中指定的格式輸出到顯示器上顯示。函數(shù)功能格式說明printf(“格式控制字符串

“,輸出項列表

);雙撇括號括起來包括“格式控制符”和“普通字符”“格式控制符”由%開頭“普通字符”按原樣輸出。輸出項之間用逗號隔開輸出項可以是常量、變量及表達(dá)式輸出項個數(shù)與格式控制符個數(shù)相同

如何輸出函數(shù)——格式輸出函數(shù)printf("請輸入矩形的長和寬:");//普通字符串,按原樣輸出

printf("%d,%d,%d,%d\n",a,b,i,j);//輸出變量a,b,i,j的值printf("圓的面積為:%6.2f",area);//area按照寬度為6,2個小數(shù)位的形式輸出。

示例格式說明符功能說明舉例c以字符形式輸出單個字符chart='A';printf("%c,%c",t,'D');//輸出:A,Dd或i以有符號的十進(jìn)制整數(shù)形式輸出inta=-15;printf("%d,%i",a,3);//輸出:-15,3%u以無符號十進(jìn)制整數(shù)形式輸出intb=-15;printf("%u,%u",b,153);//輸出:4294967281,153%o(小寫字母)以八進(jìn)制無符號形式輸出整數(shù)intb=15;printf("%o,%o",b,30);//輸出:17,36%x或%X以十六進(jìn)制無符號形式輸出整數(shù)inta=168;printf("%d,%x,%X",a,a,a);//輸出:168,a8,A8%f按十進(jìn)制小數(shù)形式輸出單、雙精度數(shù),默認(rèn)為6位小數(shù)floata=36.73; doubleb=75.89;printf("%f,%f",a,b);//輸出:36.730000,75.890000%e或%E按指數(shù)形式輸出單、雙精度數(shù)精度實數(shù)floata=0.03673;doubleb=1758.9;printf("%e,%E",a,b);//輸出:3.673000e-002,1.758900+003

如何輸出函數(shù)——格式輸出函數(shù)附加格式修飾字符

如何輸出函數(shù)——格式輸出函數(shù)修飾說明符功能說明舉例L或l用于長整型,可加在格式符d、ox、u之前l(fā)onglonga=12345678901;printf("%d,%lld",a,a);//輸出:-539222987,12345678901h按短整型數(shù)據(jù)輸出inta=34567;printf("%d,%hd",a,a);//輸出:34567,-30969m(正整數(shù))指定輸出項所占的字符數(shù)(域?qū)挘?,若實際位數(shù)小于m,左端補空格,若大于m,按實際位數(shù)輸出。inta=19;printf("%3d,%5d",a,a);//輸出:19,19.n(正整數(shù))指定輸出實型數(shù)據(jù)的小數(shù)位數(shù),系統(tǒng)默認(rèn)6位小數(shù)

floata=8.367;printf("%.2f,%6.2f",a,a);//輸出:8.37,8.370(數(shù)字)指定數(shù)字前的空格用0填充inta=19;printf("%04d",a);//輸出:0019-指定輸出項的對齊方式,-表示左對齊,默認(rèn)是右對齊inta=19;printf("%-4d,%4d",a,a);//輸出:19,19

(1)輸出提示語“請輸入銀行卡密碼:”的語句可描述為________________________________________

(2)已知變量sum為n以內(nèi)自然數(shù)的和,按6個字符寬度輸出sum值的語句可描述為

;

如何輸出函數(shù)——格式輸出函數(shù)練習(xí)printf("請輸入銀行卡密碼:");

printf(“sum=%6d”,sum);【源代碼】#include<stdio.h>//包含標(biāo)準(zhǔn)輸入輸出頭文件intmain()//主函數(shù){inta=3,b=6;//定義兩個個整型變量a,b,表示長方形的長和寬ints=a*b;//計算長方形面積printf("長方形面積是%d",s);//輸出長方形的面積return0;//函數(shù)返回值為0}

如何輸出函數(shù)——格式輸出函數(shù)示例【例2-4】已知一個長方形的長3,寬6,求長方形的面積并輸出?!具\行結(jié)果】長方形面積是18【解題思路】首先確定程序中涉及的變量和類型,再確定變量值的獲取方式,是通過賦值還是運算,最后運用輸出語句輸出變量的值。

如何輸出函數(shù)——putchar()函數(shù)函數(shù)格式程序示例putchar(ch);putchar('A');

//輸出字符'A'putchar('\101');//輸出字符'A'putchar('a'-32); //輸出字符'A'intch=65;putchar(ch);//輸出字符'A'//在標(biāo)準(zhǔn)輸出設(shè)備上輸出一個字符整型或字符型的常量、變量或表達(dá)式

下面程序功能為:輸出與變量ch左右相鄰的兩個字母,根據(jù)注釋信息將程序填寫完整。#include<stdio.h> voidmain() {charch=’M’; //字符變量定義并初始化

//調(diào)用putchar()輸出與ch左相鄰的字母

//調(diào)用putchar()輸出與ch右相鄰的字母}

如何輸出函數(shù)——putchar()函數(shù)練習(xí)

如何輸出函數(shù)——putchar()函數(shù)示例【例2-5】依據(jù)注釋,使用字符輸出函數(shù)putchar()實現(xiàn)變量值的輸出。#include<stdio.h>intmain(){intb;b=97;chart='D';putchar(t);//輸出字符變量的值putchar(b);//輸出ASCII值為97對應(yīng)的字符putchar('\n');//輸出轉(zhuǎn)義字符\nputchar('#');//輸出字符常量#putchar(65);//輸出ASCII值為65的字符’A’return0;}【運行結(jié)果】Da#A1字符輸出函數(shù)3如何輸出數(shù)據(jù)2如何定義數(shù)據(jù)4如何輸入數(shù)據(jù)C語言數(shù)據(jù)分類5算術(shù)運算符6綜合應(yīng)用目錄

如何輸入函數(shù)——scanf()函數(shù)【例2-4】已知一個長方形的長3,寬6,求長方形的面積并輸出?!驹创a】#include<stdio.h>intmain()//主函數(shù){inta=3,b=6;ints=a*b;printf("長方形面積是%d",s);return0;}輸入一個長方形的長和寬,求長方形的面積并輸出。【源代碼】#include<stdio.hintmain()//主函數(shù){inta,b;printf("請輸入a和b的值:");scanf("%d%d",&a,&b);ints=a*b;printf("長方形面積是%d",s);return0;}函數(shù)格式scanf("格式控制字符串",輸入項地址列表);1.格式控制字符串:用雙引號括起來的字符串,包含格式說明符和普通字符。

格式說明符--%[修飾符]格式字符,將輸入數(shù)據(jù)轉(zhuǎn)換為指定類型,存放到指

定變量中。

普通字符--從鍵盤輸入數(shù)據(jù)時,普通字符要原樣輸入。2.輸入變量地址表列:即是存放數(shù)據(jù)的變量的地址,同時輸入多個量時,用“,”間隔開,書寫時要在每個變量前面加“&”符號,其后的變量名是接收輸入數(shù)據(jù)的變量。

如何輸入函數(shù)——scanf()函數(shù)函數(shù)說明scanf("%d%d",&a,&b);格式符功能說明%c接收一個字符%d或%i接收有符號十進(jìn)制整型數(shù)據(jù)%o(小寫字母)接收無符號的八進(jìn)制整數(shù)%x或%X接收一個無符號的十六進(jìn)制整數(shù)%f接收一個浮點型數(shù)據(jù)(float)%1f接收一個浮點型數(shù)據(jù)(double)%s接收一字符串,以空白字符結(jié)束

如何輸入函數(shù)——scanf()函數(shù)格式符說明練習(xí)重點提示:輸入數(shù)值時,在兩個數(shù)值之間需要插入間隔符(空格、Tab鍵、回車)%c作為輸入控制字符時,在輸入字符數(shù)據(jù)之前不需要插入間隔符。

如何輸入函數(shù)——scanf()函數(shù)練習(xí)1.根據(jù)輸入的自然數(shù)n值,計算n以內(nèi)自然數(shù)的和sum,則輸入n值的語句可描述為2.分別按照int、double和char類型給變量a,b,c輸入數(shù)值的語句可描述為3.若a=2,b=3.2,c=’a’,則程序運行時,正確的輸入方法是scanf("%d%lf%c",&a,&b,&c);

scanf("%d",&n);23.2a

格式符說明l用于長整型和雙精度浮點型,可加在d.u.f之前mm代表一個正整數(shù),用于指定輸入數(shù)據(jù)所占寬度*表示本輸入項在讀入后不賦給相應(yīng)的變量

如何輸入函數(shù)——scanf()函數(shù)附加格式說明符

如何輸入函數(shù)——scanf()函數(shù)示例【例2-6】從鍵盤依次輸入一個整數(shù)、一個單精度浮點數(shù)、一個雙精度浮點數(shù)、一個字符,將輸入數(shù)據(jù)分別賦值給不同變量,并輸出變量值?!窘忸}思路】首先確定程序中涉及的變量和類型,通過scanf格式輸入語句為變量賦值,最后運用輸出語句輸出變量的值【源代碼】#include<stdio.h>//包含標(biāo)準(zhǔn)輸入輸出頭文件intmain()//主函數(shù){inta;//定義整型變量afloatb;//定義單精度變量bdoublec;//定義雙精度變量cchard;//定義字符變量dscanf("%d%f%lf%c",&a,&b,&c,&d);//通過鍵盤輸入數(shù)據(jù)為變量賦值printf("a=%d,b=%f,c=%f,d=%c",a,b,c,d);//輸出各變量的值return0;//函數(shù)返回值為0}【運行結(jié)果】4556.545.5ca=45,b=56.500000,c=45.500000,d=c函數(shù)格式程序示例getchar();charch;ch=getchar();putchar(ch);//在標(biāo)準(zhǔn)輸入緩沖區(qū)中讀取一個字符。參數(shù)為空charch;putchar(getchar());//將getchar()讀入的字符直接用putchar()輸出

如何輸入函數(shù)——getchar()函數(shù)注:getchar()是與putchar()相對應(yīng)的單個字符輸入函數(shù),其作用是從鍵盤接收、輸出一個字符。說明:

如何輸入函數(shù)——getchar()函數(shù)1.getchar()函數(shù)沒有參數(shù),函數(shù)的返回值是從輸入設(shè)備得到的字符,該函數(shù)對于鍵盤上的任何鍵都是有效的,如按下Shift鍵或Esc鍵,getchar()函數(shù)也會將其視為有效輸入。2.從鍵盤輸入的數(shù)據(jù)通過回車鍵確認(rèn)結(jié)束,送入緩沖區(qū)。該函數(shù)從緩沖區(qū)中讀入一個字符。3.該函數(shù)得到的字符可以賦給一個字符變量或整型變量,也可以作為表達(dá)式一部分。

下面程序功能為:輸入一個A~Z之間的字母,輸出與之左右相鄰的兩個字母,根據(jù)注釋信息將程序填寫完整。#include<stdio.h> voidmain() {charch; //數(shù)據(jù)準(zhǔn)備

//調(diào)用getchar()輸入一個字母,并賦值給ch

//調(diào)用putchar()輸出與ch左相鄰的字母

//調(diào)用putchar()輸出與ch右相鄰的字母}

如何輸入函數(shù)——getchar()函數(shù)練習(xí)1字符輸出函數(shù)3如何輸出數(shù)據(jù)2如何定義數(shù)據(jù)4如何輸入數(shù)據(jù)C語言數(shù)據(jù)分類5算術(shù)運算符6綜合應(yīng)用目錄算術(shù)運算符——算術(shù)運算符含義運算符含義舉例運算結(jié)果+正號(單目運算)+aa的值-負(fù)號(單目運算)-aa的相反數(shù)+加法運算符a+ba與b的和-減法運算符a-ba與b的差*乘法運算符a*ba與b的乘積/除法運算符a/ba除以b的商%求余運算符a%ba除以b的余數(shù)1.由于鍵盤無×、÷號,在C語言中運算以*和/代替;2.對于除法運算符,兩個整數(shù)相除的結(jié)果為整數(shù),如5/2的結(jié)果為2,舍去小數(shù)部分;只有兩數(shù)中至少有一個是浮點數(shù)時,結(jié)果才為浮點數(shù),如5/2.0的結(jié)果為2.5;除法運算/,寫出以下運算的結(jié)果9/2_______9.0/2_______9/2.0_______9.0/2.0_______3.求余運算%僅用于整數(shù)間的運算,若存在負(fù)整數(shù),則余數(shù)的正負(fù)號與被除數(shù)相同,如-3%2的結(jié)果為-1;求余運算%,寫出以下運算的結(jié)果

27%4_______13%3_______15%5_______15%20_______16%(-7)_______-16%7_______-16%-7_______9%12_______365%10_______365/10%10_______365/100_______4.在進(jìn)行算術(shù)運算時,如果運算符兩側(cè)的數(shù)據(jù)類型不同,會進(jìn)行自動轉(zhuǎn)換成相同的類型再進(jìn)行運算。4.在進(jìn)行算術(shù)運算時,如果運算符兩側(cè)的數(shù)據(jù)類型不同,會進(jìn)行自動轉(zhuǎn)換成相同的類型再進(jìn)行運算。運算符說明算術(shù)運算符——算術(shù)運算符注意1.由于鍵盤無×、÷號,在C語言中運算以*和/代替;2.對于除法運算符,兩個整數(shù)相除的結(jié)果為整數(shù),如5/2的結(jié)果為2,舍去小數(shù)部分;只有兩數(shù)中至少有一個是浮點數(shù)時,結(jié)果才為浮點數(shù),如5/2.0的結(jié)果為2.5;3.求余運算%僅用于整數(shù)間的運算,若存在負(fù)整數(shù),則余數(shù)的正負(fù)號與被除數(shù)相同,如-3%2的結(jié)果為-1;(1)有定義語句:charch=‘M’;寫出將變量ch變?yōu)樾懽帜傅谋磉_(dá)式。(2)變量s表示一個百分制考試成績,寫出獲取其十位數(shù)碼的表達(dá)式。算術(shù)運算符——練習(xí)ch=ch+32s=s/10算術(shù)運算符——示例#include<stdio.h>intmain(){ inta=3,b=8,c=2; printf("%d,%d,%d\n",a+b,a-c,a*2+b-1); printf("%d,%d,%d",a,b,c); return0;}【運行結(jié)果】11,1,133,8,2【例2-8】運行下面程序,查看輸出結(jié)果算術(shù)運算符——自加自減算術(shù)運算符運算符含義舉例運算結(jié)果說明++自增1運算符a++或++a使a的值加1++和--為單目運算,且只能用于單一變量運算;++a和--a,是在使用a之前,先使a的值加1或減1;a++和a--,是在使用a之后,再使a的值加1或減1。--自減1運算符a--或--a使a的值減1分析程序輸出結(jié)果。#include<stdio.h> intmain()

{

inta=9,b;b=++a;//先讓a自增1,再取a的值。a=a+1;b=a;printf("a=%d,b=%d\n",a,b);b=a--;//先取a的值,再自減1b=a;a=a-1;printf("a=%d,b=%d\n",a,b);printf("a++=%d,++b=%d,%d,%d\n",a++,++b,a,b);return0;

}程序輸出結(jié)果算術(shù)運算符——運算符示例算術(shù)運算符——賦值運算符一般格式變量=表達(dá)式賦值號運算符表達(dá)式計算結(jié)果+=x=3;x+=5;x=x+5;x的值是10-=x=3;x-=5;x=x-5;x的值是-2*=x=3;x*=5+1;x=x*(5+1);x的值是18/=x=3;x/=5;x=x/5;x的值是0%=x=3;x%=5;x=x%5;x的值是3算術(shù)運算符--優(yōu)先級與結(jié)合性優(yōu)先級和結(jié)合性兩個問題優(yōu)先級是表達(dá)式中有不同的運算符時,按照運算符的優(yōu)先級確定運算符的執(zhí)行順序結(jié)合性是表達(dá)式中若有相鄰幾個優(yōu)先級相同的運算符時,需要結(jié)合運算符確定運算方向。算術(shù)運算符——運算符示例【例2-10】運行下面程序,查看輸出結(jié)果【源代碼】#include<stdio.h>intmain(){ floatx=6.5; inty=5,z;z=(int)x+y+++x*y;//相當(dāng)于(int)x+(y++)+x*y printf("x=%f,y=%d,z=%d",x,y,z); return0;}【運行結(jié)果】x=6.500000,y=6,z=501字符輸出函數(shù)3如何輸出數(shù)據(jù)2如何定義數(shù)據(jù)4如何輸入數(shù)據(jù)C語言數(shù)據(jù)分類5算術(shù)運算符6綜合應(yīng)用目錄

對于計算機程序可處理的問題來說,程序中所用到的數(shù)據(jù)以及對這些數(shù)據(jù)的類型和數(shù)據(jù)組織形式的描述稱之為“數(shù)據(jù)結(jié)構(gòu)”,對數(shù)據(jù)處理所采用的方法和步驟等操作的描述稱為“計算機算法”。程序=數(shù)據(jù)結(jié)構(gòu)+算法

使用流程圖描述綜合應(yīng)用——程序算法(1)自頂向下

程序設(shè)計時,應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計,逐步使問題具體化。(2)逐步細(xì)化(3)模塊化設(shè)計

對復(fù)雜問題,應(yīng)設(shè)計一些子目標(biāo)作為過渡,逐步細(xì)化。

一個復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為子目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每一個小目標(biāo)稱為一個模塊。綜合應(yīng)用——結(jié)構(gòu)化程序設(shè)計原則(1)順序結(jié)構(gòu)

順序結(jié)構(gòu)指算法的實現(xiàn)過程按照相應(yīng)的步驟依次順序執(zhí)行,直至結(jié)束。順序結(jié)構(gòu)是最簡單的一種基本結(jié)構(gòu)。(2)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)

又稱為分支結(jié)構(gòu),此結(jié)構(gòu)中必包含一個條件判斷,根據(jù)判斷結(jié)果從兩種或多種路徑中選擇其中的一條執(zhí)行。

又稱重復(fù)結(jié)構(gòu),其含義是當(dāng)條件允許時,反復(fù)執(zhí)行某些操作。綜合應(yīng)用——程序結(jié)構(gòu)#include<stdio.h>voidmain(){charch1,ch2;printf("請輸入一個大寫字母:");ch1=getchar();ch2=ch1+32;printf("對應(yīng)的小寫字母為:");putchar(ch2);}可替換為:scanf("%c",&ch1);可替換為:

printf("對應(yīng)的小寫字母為:%c",ch2);運行結(jié)果:綜合應(yīng)用——應(yīng)用示例1通過鍵盤輸入一個大寫字母,輸出該大寫字母對應(yīng)的小寫字母。綜合應(yīng)用——應(yīng)用示例2從鍵盤依次輸入3個實數(shù),計算并輸出這3個數(shù)的和及平均值。#include<stdio.h>intmain(){floatnum1,num2,num3;floatsum,avg;printf("請輸入三個數(shù):");scanf("%f,%f,%f",&num1,&num2,&num3);sum=num1+num2+num3;avg=sum/3.0;printf("三個數(shù)的和:%f,平均值:%f",sum,avg);return0; }請輸入三個數(shù):3.5,9.5,10.5三個數(shù)的和:23.500000,平均值:7.833333【運行結(jié)果】有若干只雞兔同在一個籠子里,從上面數(shù),有35個頭,從下面數(shù),有94只腳。問籠中各有幾只雞和幾只兔?#include

<stdio.h>voidmain(){intx,y,head,foot;//x只雞,y只兔子,head為頭的總數(shù),foot為腳的總數(shù)printf("請輸入雞兔總頭數(shù)和總腳數(shù):");scanf("%d%d",&head,&foot);y=(foot-2*head)/2;x=head-y;printf("雞與兔的數(shù)目分別為:%d,%d.\n",x,y);}運行結(jié)果:綜合應(yīng)用——應(yīng)用示例3單元小結(jié)謝謝!單元三

選擇結(jié)構(gòu)-開啟程序設(shè)計之旅導(dǎo)學(xué)【問題】什么是選擇結(jié)構(gòu)?

現(xiàn)實生活中,解決問題時并不是按部就班,一步一步執(zhí)行的,很多情況下需要根據(jù)不同情況作出不同的選擇。比如我們走到一個路口的時候,需要根據(jù)自己目的地和信號燈作出走哪條路的選擇。同樣,在C語言程序中,也需要對一些條件進(jìn)行判斷,決定執(zhí)行哪部分代碼,這就是我們即將要學(xué)習(xí)的選擇語句結(jié)構(gòu)。if語句2if雙分支語句3if多分支語句4多分支switch語句目錄1if語句—關(guān)系運算符及表達(dá)式關(guān)系運算符及表達(dá)式if語句——關(guān)系運算符及表達(dá)式(1)關(guān)系運算符運算符含義結(jié)合性用法舉例(假設(shè)a=5,b=8)優(yōu)先級>大于左結(jié)合a>b、5>31>=大于等于左結(jié)合a>=b、6>=21<小于左結(jié)合a<b、(3+2)<71<=小于等于左結(jié)合a<=b、a+3<=a*b1==等于、相等左結(jié)合a==b、a==b-32!=不等于、不相等左結(jié)合a!=b、1!=22if語句——關(guān)系運算符及表達(dá)式(2)關(guān)系表達(dá)式

用關(guān)系運算符將兩個表達(dá)式(算術(shù)、關(guān)系、邏輯或賦值表達(dá)式)連接起來構(gòu)成關(guān)系表達(dá)式。關(guān)系表達(dá)式成立時,值為1,否則,其值為0?!纠?-2】如果num=40,計算num/10!=2的值【例3-1】intnum1=10,num2=5,num3=20,num4=10;計算(num1+num2)>(num3–num4)表達(dá)式的值。

解析:(num1+num2)的結(jié)果是15,(num3–num4)的結(jié)果是10,所以原式相當(dāng)于求15>10的結(jié)果,為真,即結(jié)果是1。解析:由于算術(shù)運算符的優(yōu)先級高于關(guān)系運算符,所以先計算num/10,等于4,再計算4!=2,這個式子是成立的,所以結(jié)果是邏輯真,即1。if語句——關(guān)系表達(dá)式隨堂練習(xí)

r==3r<=5

0<r<4

【思考】如何表示數(shù)值的范圍呢?(1)字符變量ch的值是字母’y’的關(guān)系表達(dá)式為:

。(2)整型變量n為偶數(shù)的關(guān)系表達(dá)式為:

。(3)當(dāng)整型變量r的值為5時,判斷下列關(guān)系表達(dá)式的值。if語句—邏輯運算符及表達(dá)式邏輯運算符及表達(dá)式(1)邏輯運算符(2)運算規(guī)則if語句—邏輯運算符及表達(dá)式邏輯運算符是連接一個或多個條件的運算符,C語言中的邏輯運算符包括:&&、||、!三種。在參與運算或編寫程序時,我們一般將0稱為“假”,將非零值稱為“真”。邏輯運算的結(jié)果也只有“真”和“假”,“真”對應(yīng)的值為1,“假”對應(yīng)的值為0。運算符含義結(jié)合性舉例優(yōu)先級&&與運算,雙目,對應(yīng)數(shù)學(xué)中的“且”左結(jié)合1&&0、(7>3)&&(b>a)2||或運算,雙目,對應(yīng)數(shù)學(xué)中的“或”左結(jié)合1||0、(6>3)||(b>a)3!非運算,單目,對應(yīng)數(shù)學(xué)中的“非”右結(jié)合!a、!(3<5)1(3)運算符優(yōu)先級?。ǚ牵ǜ撸┧阈g(shù)運算符關(guān)系運算符&&和||賦值運算符(低)if語句—邏輯運算符及表達(dá)式(4)邏輯表達(dá)式示例【例3-3】3&&0

解析:3為真,0為假,相與的結(jié)果為假,也就是0?!纠?-4】(5>2)&&(4>2)

解析:5>2的結(jié)果是真,為1,4>2結(jié)果是真,也為1,所以相與的結(jié)果為真,即為1。【例3-5】-10||0

解析:-10為真,0為假,相或的結(jié)果為真,也就是1。【例3-6】(5>0)||(5<8)

解析:5>0的結(jié)果是真,為1,5<8的結(jié)果是真,為1,所以相或的結(jié)果為真,也就是1?!纠?-7】!0

解析:因為0為假,所以非運算的結(jié)果為真,也就是1?!纠?-8】!(8>5)

解析:8>5的結(jié)果是1,為真,非運算的結(jié)果為假,也就是0。if語句—邏輯運算符及表達(dá)式(1)判斷字符變量ch的值為大寫字母的邏輯表達(dá)式為:

ch>=’A’&&ch<=’Z’

。(2)判斷某一年份year是否為閏年。閏年是符合以下條件的年份:能被4整除但不能被100整除,或者能被400整除。若用整型變量year表示年份,則閏年的邏輯判斷表達(dá)式為:

if語句—邏輯表達(dá)式隨堂練習(xí)(3)一個三角形的三邊分別用a,b,c表示,寫出判斷該三角形為等腰三角形的邏輯表達(dá)式。

year%4==0&&year%100!=0||year%400==0a==b||b==c||c==aif語句—流程圖流程圖if語句—流程圖符號名稱含義符號名稱含義起止框算法的起點和終點,是任何流程圖比不可少的特定過程一個特定過程,如函數(shù)輸入、輸出框數(shù)據(jù)的輸入和輸出操作流程線連接各個圖框,表示執(zhí)行的順序處理框各種形式數(shù)據(jù)的處理連接點表示與流程圖其它部分相連判斷框判斷條件是否成立,成立時在出口處標(biāo)注“是”或“Y”,不成立時標(biāo)注“否”或“N”【例3-10】使用流程圖描述算法:輸入圓的半徑,計算圓的面積。

優(yōu)化if語句—流程圖if語句—單分支if語句

單分支if語句(1)語法格式(2)執(zhí)行流程

if(表達(dá)式){語句組;}重要提示:

“語句組”是一條獨立的語句,“{}”可以省略;“語句組”為多條語句的復(fù)合語句,“{}”不能省略。if語句—單分支if語句2【例3-11】從鍵盤輸入一個字母,無論該字母為大寫字母還是小寫字母,均以小寫字母形式輸出。#include<stdio.h>voidmain(){charch;printf("請輸入一個字母:");ch=getchar();

if(ch>='A'&&ch<='Z')ch=ch+32;printf("輸出結(jié)果為:");putchar(ch);}if語句—單分支if語句示例if語句—單分支if語句練習(xí)以下程序段的功能是計算一個整數(shù)的絕對值,將程序補充完整。#include<stdio.h>intmain(){ intn; printf("請輸入一個整數(shù):"); scanf(______________); printf("|%d|=",n); if(_________)_________________;printf("%d",n); return0;}if語句2if雙分支語句3if多分支語句4多分支switch語句目錄1if雙分支語句-語句格式if雙分支語句if雙分支語句-語句格式(1)語法格式(2)執(zhí)行流程

if(表達(dá)式){語句組1;}else

{語句組2;}【例3-12】輸入學(xué)生的C語言成績,判斷是否及格。#include<stdio.h>intmain(){intscore;printf("請輸入成績:\n");scanf("%d",&score);

if(score>=60)printf("成績及格\n");

elseprintf("成績不及格\n");return0;}if雙分支語句-引例【例3-13】輸入一個正整數(shù),判斷該數(shù)是偶數(shù),還是奇數(shù)。#include<stdio.h>voidmain(){

intx;printf("請輸入一個正整數(shù):");scanf("%d",&x);

if(x%2==0)printf("正整數(shù)%d是偶數(shù)。\n",x);

elseprintf("正整數(shù)%d是奇數(shù)。\n",x);}if雙分支語句-引例0#include<stdio.h>#include<math.h>intmain(){ floata,b,c,p,s; printf("請輸入三條邊的值:"); scanf("%f%f%f",&a,&b,&c); if(a+b>c&&b+c>a&&a+c>b) { p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("三角形面積:%f",s); } else printf("三條邊不能構(gòu)成三角形") ; return0;}1.已知三角形三條邊長,判斷三條邊能否組成三角形,如能組成三角形,則計算三角形面積。設(shè)三條邊的長度為a、b、c,則計算三角形面積公式為:,其中p=(a+b+c)/2。如不能組成三角形,則輸出“三條邊不能構(gòu)成三角形”。if雙分支語句-練習(xí)if雙分支語句-條件運算符

條件運算符if雙分支語句-條件運算符(1)語法格式(2)執(zhí)行流程表達(dá)式1?表達(dá)式2:表達(dá)式3關(guān)系表達(dá)式或邏輯表達(dá)式

先計算表達(dá)式1的值,若表達(dá)式1的值為真,則計算表達(dá)式2的值,并將表達(dá)式2的值作為整個表達(dá)式的值;若表達(dá)式1的值為假,則計算表達(dá)式3的值,并將表達(dá)式3的值作為整個表達(dá)式的值。(3)優(yōu)先級

條件運算符的優(yōu)先級高于賦值運算符?!纠?-9】下列程序的輸出結(jié)果是?#include<stdio.h>intmain(){

inta=1;

intb=2;

printf("返回的是%d\n",a>b?a:b);return0;}if雙分支語句-引例1.以下程序段的功能是計算一個整數(shù)的絕對值,使用條件表達(dá)式,將程序補充完整。intn;scanf("%d",&n);

n=n<0?-n:n;;printf("該整數(shù)的絕對值是%d.",n);2.已知變量a、b,求兩個數(shù)的最小值。if雙分支語句-條件運算符練習(xí)if語句2if雙分支語句3if多分支語句4多分支switch語句目錄1

多分支選擇結(jié)構(gòu)是指對多個條件進(jìn)行判斷,然后選擇滿足條件的語句塊進(jìn)行執(zhí)行??梢杂枚嘀豬f語句、if語句嵌套和switch語句實現(xiàn)。if(條件表達(dá)式1){語句塊1}elseif(條件表達(dá)式2){語句塊2}┋elseif(條件表達(dá)式n){語句塊n}else{語句塊n+1;} if多分支語句-語句格式1.多重if語句是有if-else語句按照層次結(jié)構(gòu)組成,語法格式如下:if多分支語句-示例

【例3-14】判斷輸入字符ASCII碼所在的范圍,分別給出不同的輸出。例如輸入為”g”,輸出顯示為它是小寫字符。

charc;printf("請輸入一個字符:");c=getchar();if(c<32)printf("這是一個控制字符\n");elseif(c>='0'&&c<='9')printf("這是一個數(shù)字字符\n");elseif(c>='A'&&c<='Z') printf("這是一個大寫字母\n");elseif(c>='a'&&c<='z') printf("這是一個小寫字母\n");else printf("這是一個其他字符\n");if(判斷條件1)if(判斷條件2)...if(判斷條件n) {語句塊n}else {語句塊n+1}...else{語句2}else{語句1}if多分支語句-語句格式2.if語句嵌套結(jié)構(gòu)就是將整個if塊插入另一個if塊中,其語法格式如下:if多分支語句-示例

【例3-15】輸入三個邊長a、b、c,如果這三個邊能構(gòu)成三角形,判斷該三角形是等邊三角形、等腰三角形,還是其它三角形。if(a+b>c&&b+c>a&&a+c>b){if(a==b&&b==c)printf("該三角形是等邊三角形.\n");

else

if(a==b||b==c||a==c)printf("該三角形是等腰三角形.\n");

elseprintf("該三角形是其它三角形.\n");}else

printf("注意:不能構(gòu)成合法三角形.\n");if多分支語句-語句格式重要提示:

else總是和它前面離它最近的未配對的if相匹配??梢酝ㄟ^“{}”來強制if和else的配對關(guān)系。最后的else語句不是必須的,是可選的,可以省略if語句2if雙分支語句3if多分支語句4多分支switch語句目錄11.語法格式switch(表達(dá)式)//表達(dá)式的值只能在下面的case值表中出現(xiàn)一次{case

常量表達(dá)式1:[語句序列1;][break;]

case

常量表達(dá)式2:[語句序列2;][break;]

……

case

常量表達(dá)式n:[語句序列n;][break;]

default:語句序列n+1;}方括號括起來的可省退出當(dāng)前switch語句整型或字符型整型或字符型,常量值不能重復(fù)多分支switch語句-語法格式多分支switch語句-執(zhí)行流程(2)執(zhí)行流程首先計算switch后面表達(dá)式的值,再依次與每一個case后面的常量表達(dá)式的值進(jìn)行比較,若有相等的情況,則以該case為入口,執(zhí)行相應(yīng)的語句序列。若所有case后面的常量表達(dá)式的值沒有與switch后面表達(dá)式的值相等的情況,則執(zhí)行default后面的語句序列。若相應(yīng)的語句序列后面有break,則程序跳出switch選擇結(jié)構(gòu),執(zhí)行switch選擇結(jié)構(gòu)后面的語句;若相應(yīng)的語句序列后面沒有break,則執(zhí)行下一個case后面的語句序列。多分支switch語句-與if多分支語句區(qū)別switch結(jié)構(gòu)語句只進(jìn)行相等與否的判斷;而if結(jié)構(gòu)語句還可以進(jìn)行大小范圍上的判斷。switch無法處理浮點數(shù),只能進(jìn)行整數(shù)的判斷,case標(biāo)簽值必須是常量;而if語句則可以對浮點數(shù)進(jìn)行判斷。多分支switch語句--練習(xí)#include<stdio.h>intmain(){ inta=1,b=0; scanf("%d",&a); switch(a) { case1:b=1;break; default:b=10;break; case2:b=2; } printf("%d",b);}若鍵盤輸入5,運行結(jié)果為________________多分支switch語句--練習(xí)#include<stdio.h>main(){chargrade='C';switch(grade){case'A':printf("90-100\n");case'B':printf("80-90\n");case'C':printf("70-80\n");case'D':printf("60-70\n");break;case'E':printf("<60\n");default:printf("error!\n");}}運行結(jié)果:________________多分支switch語句——引例根據(jù)學(xué)生考試成績score的值判定考試等級。判定標(biāo)準(zhǔn)如下表所示。成績(score)等級score>=90優(yōu)秀(A級)80<=score<90良好(B級)70<=score<80中等(C級)60<=score<70及格(D級)score<60不及格(E級)多分支switch語句—引例實現(xiàn)#include<stdio.h>voidmain(){doublescore;printf("請輸入學(xué)生成績:");scanf("%lf",&score);

switch((int)(score/10))//分析switch后面的表達(dá)式為什么寫成(int)(score/10)?{case10:

case9:printf("

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論