高級(jí)語言程序設(shè)計(jì)(C語言版 第2版)-基于計(jì)算思維能力培養(yǎng) 課件全套 第1-10章-程序設(shè)計(jì)引論-C綜合性程序設(shè)計(jì)案例分析_第1頁
高級(jí)語言程序設(shè)計(jì)(C語言版 第2版)-基于計(jì)算思維能力培養(yǎng) 課件全套 第1-10章-程序設(shè)計(jì)引論-C綜合性程序設(shè)計(jì)案例分析_第2頁
高級(jí)語言程序設(shè)計(jì)(C語言版 第2版)-基于計(jì)算思維能力培養(yǎng) 課件全套 第1-10章-程序設(shè)計(jì)引論-C綜合性程序設(shè)計(jì)案例分析_第3頁
高級(jí)語言程序設(shè)計(jì)(C語言版 第2版)-基于計(jì)算思維能力培養(yǎng) 課件全套 第1-10章-程序設(shè)計(jì)引論-C綜合性程序設(shè)計(jì)案例分析_第4頁
高級(jí)語言程序設(shè)計(jì)(C語言版 第2版)-基于計(jì)算思維能力培養(yǎng) 課件全套 第1-10章-程序設(shè)計(jì)引論-C綜合性程序設(shè)計(jì)案例分析_第5頁
已閱讀5頁,還剩1400頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

高級(jí)語言程序設(shè)計(jì)高級(jí)語言程序設(shè)計(jì)——基于計(jì)算思維能力培養(yǎng)高級(jí)語言程序設(shè)計(jì)——基于計(jì)算思維能力培養(yǎng)第1章程序設(shè)計(jì)引論主要內(nèi)容計(jì)算機(jī)科學(xué)與問題求解程序與程序設(shè)計(jì)程序設(shè)計(jì)語言C語言簡(jiǎn)介C語言程序開發(fā)工具與開發(fā)步驟本章思維導(dǎo)圖計(jì)算機(jī)科學(xué)與問題求解1.11.1計(jì)算機(jī)科學(xué)與問題求解維基百科(Wikipedia)關(guān)于計(jì)算機(jī)科學(xué)(ComputerScience,縮寫為CS)的定義是:系統(tǒng)性研究信息與計(jì)算的理論基礎(chǔ)以及它們?cè)谟?jì)算機(jī)系統(tǒng)中如何實(shí)現(xiàn)與應(yīng)用的實(shí)用技術(shù)的學(xué)科。美國(guó)計(jì)算機(jī)學(xué)會(huì)(ACM)指出計(jì)算機(jī)科學(xué)是“計(jì)算機(jī)和算法過程”的研究,包括它們的原理、它們的硬件和軟件設(shè)計(jì)、它們的應(yīng)用以及它們對(duì)社會(huì)的影響”。CS又稱計(jì)算學(xué)科(ComputingDiscipline)。計(jì)算機(jī)學(xué)科的根本問題是:什么能、且如何被有效地自動(dòng)計(jì)算。1.1計(jì)算機(jī)科學(xué)與問題求解問題求解是指人們?cè)谏a(chǎn)、生活中面對(duì)新的問題時(shí),由于缺少現(xiàn)成的有效對(duì)策所引起的一種積極尋求問題答案的活動(dòng)過程。問題求解是計(jì)算科學(xué)的根本目的,計(jì)算科學(xué)多半也是問題求解的實(shí)踐中發(fā)展起來的。1.1計(jì)算機(jī)科學(xué)與問題求解圖1-1借助于計(jì)算機(jī)的問題求解過程1.1計(jì)算機(jī)科學(xué)與問題求解盡管關(guān)于計(jì)算機(jī)科學(xué)定義有許多種,但它們實(shí)質(zhì)上都強(qiáng)調(diào)了算法的研究。算法是一組明確的,有效可計(jì)算操作的有序集合,它能在有限的時(shí)間內(nèi)結(jié)束,并產(chǎn)生計(jì)算結(jié)果。1.1計(jì)算機(jī)科學(xué)與問題求解迷宮搜索如果我們可以指定一個(gè)算法來解決問題,那么我們就可以對(duì)該問題進(jìn)行自動(dòng)化的求解。計(jì)算機(jī)算法最終需要通過程序設(shè)計(jì)來實(shí)現(xiàn),程序設(shè)計(jì)使得計(jì)算機(jī)科學(xué)成為實(shí)驗(yàn)學(xué)科而非純理論學(xué)科。1.1計(jì)算機(jī)科學(xué)與問題求解2006年,美國(guó)Carnegie

Mellon大學(xué)計(jì)算機(jī)科學(xué)系前系主任周以真(JeannetteM.Wing)教授在CommunicationsoftheACM雜志發(fā)表了一篇《ComputationalThinking》(計(jì)算思維)的文章。1.1計(jì)算機(jī)科學(xué)與問題求解計(jì)算思維是指運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)、以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。計(jì)算思維強(qiáng)調(diào)一切皆可計(jì)算,從物理世界模擬到人類社會(huì)的模擬,從人類社會(huì)模擬再到智能活動(dòng),都可以認(rèn)為是計(jì)算的某種形式。將計(jì)算思維貫穿于理論教學(xué)和實(shí)踐應(yīng)用,將有助于促進(jìn)知識(shí)向能力的轉(zhuǎn)化。1.1計(jì)算機(jī)科學(xué)與問題求解1.1計(jì)算機(jī)科學(xué)與問題求解1.1計(jì)算機(jī)科學(xué)與問題求解主要內(nèi)容計(jì)算機(jī)科學(xué)與問題求解程序與程序設(shè)計(jì)程序設(shè)計(jì)語言C語言簡(jiǎn)介C語言程序開發(fā)工具與開發(fā)步驟程序與程序設(shè)計(jì)1.2程序并非計(jì)算機(jī)專利,《舌尖上的中國(guó)》第二季第2集《心傳》——空心掛面加工:和面、搓條、盤條、上筷子、陰條、分筷子、再陰條、出筷子、裝封。1.2.1程序計(jì)算機(jī)程序(ComputerProgram)是指一組指示計(jì)算機(jī)或其他具有信息處理能力裝置每一步動(dòng)作的指令,通常用某種程序設(shè)計(jì)語言編寫,運(yùn)行于某種目標(biāo)體系結(jié)構(gòu)上。計(jì)算機(jī)(硬件)本身并不是一個(gè)智能設(shè)備,它需要運(yùn)行特定的程序才能完成特定的任務(wù)。1.2.1程序像平常大家用的QQ、支付寶等都是應(yīng)用程序。1.2.1程序圖1-2利用全景拍攝軟件拍攝的全景照(拍攝于DevilsTower,USA)在手機(jī)上安裝全景拍攝程序后,就可以將連續(xù)拍攝的照片拼接成全景照片,上面這幅全景照拍攝于美國(guó)的魔鬼峰1.2.1程序

圖1-3電波鐘表

圖1-4車載行車電腦利用車載行車電腦中的程序可以記錄汽車的速度,油耗溫度等信息。隨著信息技術(shù)的普及,需要更多的程序來滿足不同應(yīng)用的需求。1.2.1程序1.2.1程序程序設(shè)計(jì),簡(jiǎn)單地講就是設(shè)計(jì)“程序”的過程,程序設(shè)計(jì)是創(chuàng)造性勞動(dòng)。因此,程序員成為一種熱門職業(yè)。溫度等信息。隨著信息技術(shù)的普及,需要更多的程序來滿足不同應(yīng)用的需求。1.2.2程序設(shè)計(jì)程序設(shè)計(jì)并非計(jì)算機(jī)科學(xué)的全部。1.2.2程序設(shè)計(jì)主要內(nèi)容計(jì)算科學(xué)與問題求解程序與程序設(shè)計(jì)程序設(shè)計(jì)語言C語言簡(jiǎn)介C語言程序開發(fā)工具與開發(fā)步驟程序設(shè)計(jì)語言1.3機(jī)器語言0,1二進(jìn)制代碼,機(jī)器可以唯一識(shí)別的語言1.3.1程序設(shè)計(jì)語言的分類匯編語言用指令助記符來表示機(jī)器指令。1.3.1程序設(shè)計(jì)語言的分類高級(jí)語言用接近自然語言的代碼來書寫程序。例如:printf(“%d”,1+2);System.out.print(1+2);1.3.1程序設(shè)計(jì)語言的分類高級(jí)語言歷史上共出現(xiàn)2000多種。例如:VisualC# JavaPHP JavaScriptObjective-C1.3.1程序設(shè)計(jì)語言的分類編譯型解釋型虛擬機(jī)型圖1-5編譯連接示意圖1.3.2程序的執(zhí)行方式圖1-6解釋流程示意圖

1.3.2程序的執(zhí)行方式編譯型解釋型虛擬機(jī)型圖1-7虛擬機(jī)工作原理示意圖1.3.2程序的執(zhí)行方式編譯型解釋型虛擬機(jī)型1.要把高級(jí)語言編寫的源程序轉(zhuǎn)換為目標(biāo)程序,需要使用()。驅(qū)動(dòng)程序編輯程序編譯程序鏈接程序ABCD提交單選題5分主要內(nèi)容計(jì)算科學(xué)與問題求解程序與程序設(shè)計(jì)程序設(shè)計(jì)語言C語言簡(jiǎn)介C語言程序開發(fā)工具與開發(fā)步驟C語言簡(jiǎn)介1.41972年產(chǎn)生于Bell實(shí)驗(yàn)室1.4C語言簡(jiǎn)介KenThompson江湖人稱kenDennisM.Ritchie江湖人稱dmr1.4C語言簡(jiǎn)介1969年,貝爾實(shí)驗(yàn)室,KenThompson和DennisM.Ritchie夢(mèng)想能遨游宇宙Ken設(shè)計(jì)了一款電子游戲——“SpaceTravel”游戲在PDP-7小型機(jī)上開發(fā),因?yàn)檫@臺(tái)機(jī)器免費(fèi),免費(fèi)的機(jī)器沒有操作系統(tǒng)玩游戲之前,先給PDP-7做個(gè)操作系統(tǒng),命名為“UNIX”1.4C語言簡(jiǎn)介匯編編寫UNIX太慢,又沒有稱手的高級(jí)語言,怎么辦?70年代,將BCPL語言改造成更適合開發(fā)UNIX的B語言1971年,DennisM.Ritchie開始和Thompson合作開發(fā)UNIX,將B語言改造成C語言,1972年正式發(fā)布1.4C語言簡(jiǎn)介1983年,因?yàn)閁NIX和C語言的巨大成功,ken和dmr共同獲得當(dāng)年度的計(jì)算機(jī)界最高獎(jiǎng)——圖靈獎(jiǎng)經(jīng)典CC++JavaC991.4C語言簡(jiǎn)介Ritchie和Unix的設(shè)計(jì)者KenThompson接受美國(guó)國(guó)家技術(shù)勛章1.4C語言簡(jiǎn)介語言簡(jiǎn)潔,功能強(qiáng)大應(yīng)用廣泛,對(duì)許多主流程序設(shè)計(jì)語言產(chǎn)生重要影響Cisquirky,flawed,andanenormoussuccess.1.4C語言簡(jiǎn)介TIOBE程序設(shè)計(jì)語言流行度排名數(shù)據(jù)來源(2022年1月)1.4C語言簡(jiǎn)介目前廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)可為學(xué)習(xí)C++、Java等其它程序設(shè)計(jì)語言打下基礎(chǔ)圖1-12華為鴻蒙操作系統(tǒng)圖1-11Android操作系統(tǒng)1.4C語言簡(jiǎn)介2.用C語言編寫的代碼()??闪⒓磮?zhí)行是一個(gè)源程序經(jīng)過編譯即可執(zhí)行經(jīng)過解釋才能執(zhí)行ABCD提交單選題5分主要內(nèi)容計(jì)算科學(xué)與問題求解程序與程序設(shè)計(jì)程序設(shè)計(jì)語言C語言簡(jiǎn)介C語言程序開發(fā)工具與開發(fā)步驟C語言程序開發(fā)工具1.5《論語》:“工欲善其事,必先利其器”VisualC++和Code::Blocks等。推薦使用:Code::Blocks或VisualC++。本書使用:

開源工具Code::Blocks20.03版Code::Blocks(簡(jiǎn)稱CB),功能強(qiáng)大,支持C與C++,是一款跨平臺(tái)的C/C++集成開發(fā)環(huán)境(IDE)。1.5C語言程序開發(fā)工具可以配置多種編譯器,建議讀者使用GCC編譯器和GDB調(diào)試器。首頁地址:http:://DownloadthebinaryreleaseforWindowscodeblocks-20.03mingw-setup.exe1.5C語言程序開發(fā)工具初始界面1.5C語言程序開發(fā)工具(方式一)新建consoleapplication

Project1.5C語言程序開發(fā)工具選擇C語言1.5C語言程序開發(fā)工具輸入ProjectTitle輸入項(xiàng)目名稱welcome選擇存放路徑1.5C語言程序開發(fā)工具設(shè)置編譯器

設(shè)置編譯器一般用默認(rèn)選項(xiàng)1.5C語言程序開發(fā)工具Code::Blocks視圖

編輯窗口Message窗口工程視圖窗口編譯運(yùn)行編譯并運(yùn)行1.5C語言程序開發(fā)工具HelloWorld程序簡(jiǎn)介

編譯預(yù)處理指令main函數(shù)首部main函數(shù)函數(shù)體1.5C語言程序開發(fā)工具程序運(yùn)行結(jié)果

HelloWorld!Processreturned0(0x0)executiontime:0.042sPressanykeytocontinue.1.5C語言程序開發(fā)工具(方式二)建立單個(gè)C文件

1.5C語言程序開發(fā)工具(方式二)建立單個(gè)C文件#include<stdio.h>intmain(){

printf("welcometoC!\n");

printf("Thereisawillthereisaway!\n");

return0;}WelcometoC!Thereisawillthereisaway!1.5C語言程序開發(fā)工具需求分析設(shè)計(jì)編寫源程序編譯鏈接運(yùn)行調(diào)試1.6C語言程序開發(fā)步驟程序調(diào)試#include<stdio.h>intmain(){

printf("welcometoC!\n") printf("Thereisawillthereisaway!\n"); return0;}缺少;號(hào)1.6C語言程序開發(fā)步驟調(diào)試(Debug)d:\c\ch1\1_1.c5 error:expected‘;’beforeprintf1.6C語言程序開發(fā)步驟Bug1.6C語言程序開發(fā)步驟Bug分類語法錯(cuò)運(yùn)行時(shí)錯(cuò)誤邏輯錯(cuò)1.6C語言程序開發(fā)步驟3.以下敘述中錯(cuò)誤的是()。C語言比其他語言高級(jí),具有其他語言的一切優(yōu)點(diǎn)計(jì)算機(jī)只能接受和處理由0和1的代碼組成的二進(jìn)制或數(shù)據(jù)一個(gè)完整的C程序有且僅有一個(gè)主函數(shù)(main()函數(shù))C語言程序的錯(cuò)誤有語法錯(cuò),運(yùn)行時(shí)錯(cuò)誤和邏輯錯(cuò)誤三種ABCD提交單選題5分4.以下敘述中正確的是()。構(gòu)成C程序的基本單位是函數(shù),所有的函數(shù)名都可以由用戶自行命名分號(hào)是C語句之間的分隔符,不是語句的一部分C程序中的每行只能寫一條語句C程序中的注釋部分可以出現(xiàn)在程序中任何合適的地方ABCD提交單選題1分1、CodeBlock的安裝與使用(1)訪問,下載CB安裝包,自行安裝CB軟件。分別采用建工程(Project)方式和單個(gè)C文件方式編寫輸出“HelloWorld!”的程序,并編譯運(yùn)行。(2)熟悉CB菜單主要選項(xiàng)功能,在【Settings】|【Editor】菜單中,對(duì)編輯器字體和字號(hào)進(jìn)行個(gè)性化設(shè)置。(如,試把字體設(shè)置為Cambria,字形為粗體,大小為24)(3)在【Setting】|【CompilerandDebugger】|【Toolchainexecutables】選項(xiàng)卡查看編譯器安裝位置。(4)熟悉Code::Blocks常用操作快捷鍵,熟練地掌握和使用這些快捷鍵可以有效提高編程效率,節(jié)約時(shí)間。實(shí)驗(yàn)一編輯部分:Ctrl+A:全選 Ctrl+C:復(fù)制

Ctrl+X:剪切 Ctrl+V:粘貼

Ctrl+Z:撤銷 Ctrl+S:保存

Ctrl+Y:重做

Ctrl+Shift+C:注釋掉當(dāng)前行或選中塊實(shí)驗(yàn)一編輯部分:Ctrl+Shift+X:解除注釋

Tab:縮進(jìn)當(dāng)前行或選中塊Shift+Tab:減少縮進(jìn)

按住Ctrl,滾動(dòng)鼠標(biāo)滾輪,放大或縮小字體實(shí)驗(yàn)一編譯與運(yùn)行部分:Ctrl+F9:編譯

Ctrl+F10:運(yùn)行上次成功編譯后的程序Ctrl+Shift+F9:編譯當(dāng)前文件(而不是當(dāng)前打開的工程項(xiàng)目)F9:編譯并運(yùn)行當(dāng)前代碼(如果編譯錯(cuò)誤會(huì)提示錯(cuò)誤而不會(huì)運(yùn)行)實(shí)驗(yàn)一編譯與運(yùn)行部分:Shift+F11:全屏關(guān)開

Ctrl+C:終止正在運(yùn)行的程序界面部分:Shift+F2:左側(cè)導(dǎo)航欄開關(guān)鍵實(shí)驗(yàn)一2、VisualC++的安裝與使用。全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語言程序設(shè)計(jì)考試大綱(2022版)規(guī)定的開發(fā)環(huán)境為MicrosoftVisualC++2010學(xué)習(xí)版,請(qǐng)自行安裝,并在其中創(chuàng)建C程序,在屏幕上分行輸出自己的學(xué)號(hào)、姓名和E-mail。實(shí)驗(yàn)一高級(jí)語言程序設(shè)計(jì)——基于計(jì)算思維能力培養(yǎng)第2章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式主要內(nèi)容C程序基本結(jié)構(gòu)C程序中常見的符號(hào)數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式本章思維導(dǎo)圖C程序基本結(jié)構(gòu)2.1#include<stdio.h>/*

@函數(shù)名稱:getMax

@入口參數(shù):兩個(gè)整型形式參數(shù)a,b

@函數(shù)功能:返回兩個(gè)形式參數(shù)中的較大者 @文件名:2_1.c*/注釋【例2.1】C語言程序示例。2.1C程序基本結(jié)構(gòu)intgetMax(inta,intb){intm;if(a>b)m=a;else m=b;returnm; /*如果a>b,則返回a,否則返回b*/}函數(shù)名稱函數(shù)體2.1C程序基本結(jié)構(gòu)/* @函數(shù)名稱:main()

@函數(shù)功能:主函數(shù)*/intmain(){intx,y,z; /*變量定義*/printf("Pleaseinputtwointegers:");scanf("%d%d",&x,&y); /*輸入兩個(gè)整數(shù)*/

2.1C程序基本結(jié)構(gòu)z=getMax(x,y);/*調(diào)用函數(shù)max求x,y中的較大者存入z*/printf("較大的數(shù)是:%d\n",z);

/*輸出z的值*/return0;}函數(shù)調(diào)用z=max(x,y);intmax(inta,intb){…returnm;}2.1C程序基本結(jié)構(gòu)語句分隔符;2.1C程序基本結(jié)構(gòu)主要內(nèi)容C程序基本結(jié)構(gòu)C程序中常見的符號(hào)數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式C程序中

常見的符號(hào)2.21、標(biāo)識(shí)符:用于標(biāo)識(shí)程序中的函數(shù)、變量等對(duì)象的名稱統(tǒng)稱標(biāo)識(shí)符。系統(tǒng)預(yù)定義標(biāo)識(shí)符用戶自定義標(biāo)識(shí)符2.2C程序中常見的符號(hào)命名規(guī)則:(1)英文字母或下劃線開頭,中間可以是數(shù)字或英文字線、下劃線等。(2)見名知意例:max,a,b,m,sum,_price,my@name,9cd2.2C程序中常見的符號(hào)2、關(guān)鍵字:又稱保留字,它們是C語言中預(yù)先規(guī)定的具有固定含義的標(biāo)識(shí)符。 int表示整數(shù)類型char表示字符類型return表示返回主調(diào)函數(shù)。

用戶在自定義標(biāo)識(shí)符不能與關(guān)鍵字相同。例如:2.2C程序中常見的符號(hào)

3、運(yùn)算符:C語言的運(yùn)算符有34種,如加、減、乘、除,分別表示為:+、-、*、/按運(yùn)算對(duì)象分:?jiǎn)文窟\(yùn)算符,如求負(fù)(-),自增(++)等雙目運(yùn)算符,如+、-三目運(yùn)算符,唯一一個(gè),條件運(yùn)算符?:2.2C程序中常見的符號(hào)4、數(shù)據(jù):程序的加工對(duì)象,分為常量與變量。常量是指程序運(yùn)行過程中保持不變的量。如:"Pleaseinputtwointegers:"2.2C程序中常見的符號(hào)4、數(shù)據(jù):程序的加工對(duì)象,分為常量與變量。變量是指程序運(yùn)行過程中可以修改的數(shù)據(jù),一般對(duì)應(yīng)內(nèi)存單元。如:intx,y,z;2.2C程序中常見的符號(hào)5、分隔符與其它符號(hào)空格、回車、逗號(hào)、分號(hào)都是有效的分隔符。{、}、/*和*/等具有特定含義的符號(hào)塊注釋則包含在“/*”與“*/”之間。2.2C程序中常見的符號(hào)1.下列選項(xiàng)中不是C語言合法的自定義標(biāo)識(shí)符的是()。sum01Flagpriceofbeef_priceABCD提交單選題5分主要內(nèi)容C程序基本結(jié)構(gòu)C程序中常見的符號(hào)數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式數(shù)據(jù)類型2.3處理輸入設(shè)備輸出設(shè)備數(shù)據(jù)數(shù)據(jù)2.3數(shù)據(jù)類型(1)將牛肉切成大小適中的小塊(2)將每個(gè)土豆均勻切成4小塊(3)倒入50ml油,大火加熱…數(shù)據(jù)處理步驟2.3數(shù)據(jù)類型2.3數(shù)據(jù)類型基本數(shù)據(jù)類型和構(gòu)造數(shù)據(jù)類型整數(shù)型、浮點(diǎn)型、字符型、字符串型和布爾型。數(shù)據(jù)類型決定了:該變量能夠存放數(shù)據(jù)的類型該變量占用內(nèi)存占用的空間大小能夠?qū)υ撟兞繄?zhí)行的操作為何要區(qū)分?jǐn)?shù)據(jù)類型?2.3數(shù)據(jù)類型圖2-5炊具和餐具的類型決定了其功能與用途2.3數(shù)據(jù)類型高級(jí)語言中的同一種數(shù)據(jù)類型又根據(jù)需要存儲(chǔ)數(shù)據(jù)的范圍區(qū)分成了不同的類別。如,在C語言中整型可分為:基本整型(int)短整型(shortint)長(zhǎng)整型(longint)2.3數(shù)據(jù)類型2.3數(shù)據(jù)類型int整數(shù),在目前絕大多數(shù)機(jī)器上占4個(gè)字節(jié)float單精度浮點(diǎn)數(shù),4個(gè)字節(jié)double雙精度浮點(diǎn)數(shù),8個(gè)字節(jié)2.3數(shù)據(jù)類型char字符,1個(gè)字節(jié),表示256個(gè)ASCII字符,或0~255的整數(shù)shortshortint,簡(jiǎn)寫為short,短整數(shù),2個(gè)字節(jié)2.3數(shù)據(jù)類型longlongint,簡(jiǎn)寫為long,長(zhǎng)整數(shù),4個(gè)字節(jié)Longlongint,8個(gè)字節(jié)longdouble,長(zhǎng)雙精度(高精度)浮點(diǎn)數(shù),10個(gè)字節(jié)unsigned用來修飾char、int、short和long無符號(hào)整數(shù)(正整數(shù)和0)2.3數(shù)據(jù)類型類型名范圍存儲(chǔ)大小char0~2551個(gè)字節(jié)shortint-215(-32768)~215-1(32767)2個(gè)字節(jié)int-231(-2147483648)~231-1(2147483647)4個(gè)字節(jié)unsignedint0~232-14個(gè)字節(jié)longlonglong-231(-2147483648)~231-1(2147483647)-263~263-14個(gè)字節(jié)8個(gè)字節(jié)float-3.4×10-38~3.4×1038精度為6位有效數(shù)字4個(gè)字節(jié)double-1.7×10-308~1.7×10308精度為15位有效數(shù)字8個(gè)字節(jié)如何知道變量占用的內(nèi)存大小?2.C語言中,錯(cuò)誤的int類型的常數(shù)是()。1E500370xafABCD提交單選題5分sizeof是C語言的運(yùn)算符,并非函數(shù),用于計(jì)算類型占用的字節(jié)數(shù)用法:sizeof(類型)結(jié)果為類型占用的字節(jié)數(shù)sizeof(變量名)結(jié)果為表達(dá)式值所屬類型占用的字節(jié)數(shù)2.3數(shù)據(jù)類型#include<stdio.h>intmain(){ printf("數(shù)據(jù)類型

字節(jié)\n"); printf("char%d\n",sizeof(char)); printf("short %d\n",sizeof(short)); printf("int %d\n",sizeof(int)); printf("unsigned %d\n",sizeof(unsigned)); printf("long %d\n",sizeof(long)); printf("longlong%d\n

",sizeof(longlong)); printf("float %d\n",sizeof(float)); printf("double %d\n",sizeof(double)); return0;}【例2.2】測(cè)試各種數(shù)據(jù)類型占用的內(nèi)存空間數(shù)據(jù)類型

字節(jié)char 1short 2int 4unsigned 4long 4longlong 8float 4double 82.3數(shù)據(jù)類型主要內(nèi)容C程序基本結(jié)構(gòu)C程序中常見的符號(hào)數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式常量2.4整型常量字符型常量實(shí)型常量字符串常量2.4常量整型常數(shù)的表示形式(1)十進(jìn)制整數(shù):

如2008、+1975、-1,18u,123L,140Lu(2)八進(jìn)制整數(shù):

例如,012表示(12)8,-020表示(-20)8。(3)十六進(jìn)制整數(shù):

例如,0x20表示十六進(jìn)制的(20)16,同理0x2A3B表示十六進(jìn)制數(shù)(2A3B)16整型常量默認(rèn)為int型2.4.1整型常量實(shí)型常量的表示形式(1)十進(jìn)制小數(shù)表示形式

如.56、3.1415926、-96.25f、20.(2)指數(shù)形式

例如,314.15926e-2、0.031415926E2。注意:e4,2E4.5,.e8都是不合法的表示形式。浮點(diǎn)型常量默認(rèn)為double型2.4.2實(shí)型常量C語言中用單引號(hào)括起來的單個(gè)字符為字符常量。如‘A’,‘9’等。ASCII碼

b7b6b5b4b3b2b1b001000001附錄B是常用字符的ASCII碼表2.4.3字符常量小寫字母‘a(chǎn)’的ASCII碼為97大寫字母‘A’的ASCII碼為65大寫字母與其對(duì)應(yīng)的小寫字母的ASCII碼相差32。將一個(gè)大寫字母的ASCII碼加上32可以將它轉(zhuǎn)換成對(duì)應(yīng)的小寫字母;數(shù)字字符‘0’的ASCII碼為48。

2.4.3字符常量字符含義字符含義‘\n’換行(Newline)‘\a’響鈴報(bào)警提示音(AlertorBell)‘\r’回車(不換行)(CarriageReturn)‘\”’一個(gè)雙引號(hào)(DoubleQuotationMark)‘\0’空字符,通常用作字符串結(jié)束標(biāo)志‘\’’單引號(hào)(SingleQuotationMark)‘\t’水平制表(HorizontalTabulation)‘\\’一個(gè)反斜線(Backslash)‘\v’垂直制表(VerticalTabulation)‘\?’問號(hào)(QuestionMark)‘\b’退格(Backspace)‘\ddd’1到3位八進(jìn)制ASCII碼值所代表的字符‘\f’走紙換頁(FormFeed)‘\xhh’1到2位十六進(jìn)制ASCII碼值所代表的字符轉(zhuǎn)義字符‘\n’:換行‘\t’:水平制表‘\b’:退格‘\ddd’‘\xhh’3.下列轉(zhuǎn)義字符中錯(cuò)誤的是()。'\000''\r''\x111''\2'ABCD提交單選題5分例如:printf(“Hesaid\”Ilikeclanguageverymuch.\”\n”);輸出結(jié)果為:Hesaid”Ilikeclanguageverymuch.”轉(zhuǎn)義字符用雙引號(hào)括起來的串如:"Helloworld!","a","中國(guó)","3.14159"等。

2.4.4字符串常量可用#define宏定義宏常量例如,若有定義:#definePI3.1415926則area=PI*10.2*10.2;等價(jià)于area=3.1415926*10.2*10.2;

注意:后面不需加;號(hào)2.4.5宏常量變量2.5變量的本質(zhì)是內(nèi)存或CPU中的寄存器,其值可以改變。使用變量前要需根據(jù)存儲(chǔ)的數(shù)據(jù)類型與數(shù)據(jù)范圍選擇相應(yīng)的變量類型。2.5變量例如:intlength;floatarea,volume;charanswer,selection;ANSIC變量使用基本原則變量必須先聲明,后使用;所有變量必須在第一條可執(zhí)行語句前聲明;聲明的順序無關(guān)緊要;一條聲明語句可聲明若干個(gè)同類型的變量。2.5.1變量的聲明每一條完整的聲明語句都要以分號(hào)結(jié)尾;在同一個(gè)函數(shù)中,不能聲明同名的多個(gè)變量。變量的命名規(guī)則同用戶自定義標(biāo)識(shí)符的命名規(guī)則,同時(shí)遵循見名知意的原則。

2.5.1變量的聲明新定義的變量其值為不確定數(shù)據(jù)。inta,b;charc;floatarea;2.5.2變量初始化inta=20,b=30;charc=‘A’;floatarea;2.5.2變量初始化新定義的變量其值為不確定數(shù)據(jù)。簡(jiǎn)單賦值語句語法:

變量=

表達(dá)式;Don’tforgetthesemicolon!!Everyassignmentexpressionhasavalue2.5.3變量的訪問與使用例如:a=b; 30b=0; c=c+1;0662.5.3變量的訪問與使用對(duì)變量進(jìn)行賦值時(shí),賦值語句右邊的表達(dá)式類型應(yīng)該與賦值語句左邊的變量類型相容。ValidExample: InvalidExample:

intx; charc; x=20; c=“Hello”;2.5.3變量的訪問與使用多重賦值語句語法:變量1=

變量2=

表達(dá)式;Don’tforgetthesemicolon!!右結(jié)合:從右向左賦值變量1=(變量2=表達(dá)式);2.5.3變量的訪問與使用Example:inta,b;intc;a=b=c=0;b??a??

c??0002.5.3變量的訪問與使用多重賦值語句顯示變量的值printf(“a:%d\n”,a);a:30注意:%d僅用于int型變量,如果要顯示字符型,可以用%c來代替%d。如果要顯示float型變量,則需要用%f。默認(rèn)情況下,%f會(huì)顯示出小數(shù)點(diǎn)后6位數(shù)字。2.5.3變量的訪問與使用4.下列選項(xiàng)中正確的變量聲明與初始化語句是()。inta=b=10;chara='我';floata=10;doublea=∞;ABCD提交單選題5分5.下列數(shù)據(jù)中,不是C語言常量的是()。'\n'"a"e-2012ABCD提交單選題5分主要內(nèi)容C程序基本結(jié)構(gòu)C程序中常見的符號(hào)數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式2.6算術(shù)運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符賦值運(yùn)算符條件運(yùn)算符逗號(hào)運(yùn)算符指針運(yùn)算符自增(自減)運(yùn)算符求字節(jié)運(yùn)算符和特殊運(yùn)算符2.6運(yùn)算符與表達(dá)式Example:x+y操作數(shù)(Operand)運(yùn)算符(Operator)操作數(shù)(Operand)2.6運(yùn)算符與表達(dá)式2.6.1算術(shù)運(yùn)算符Addition(+)Subtraction(-)Multiplication(*)Division(/)Modulus(%)(x+y)/2-(a*b-(a+b))/(x-y)(x+y)/2-(a*b-a-b)/(x-y)2.6.1算術(shù)運(yùn)算符除法/Division浮點(diǎn)數(shù)除法(FloatingDivision)xoryorbotharefloats整數(shù)除法(IntegerDivision)xandyareintegersExample:x/y除法/DivisionExample:anintegeraninteger

theresultisalsoaninteger11/2=5除法/DivisionExample:andoubleaninteger

theresultisalsoandouble11.0/2=5.5求余%(Modulus)操作數(shù)必須為整數(shù)Example:11%3=2anintegeranintegertheresultistheremainderof11/3113392remainderresult求余(Modulus)余數(shù)符號(hào)與被除數(shù)同號(hào)Example:-26%-8=-2anintegeraninteger-26-83-24-2remainderresulttheresultistheremainderof-26/-8求余(Modulus)Example:15%-4=3anintegeraninteger15-4-3123remainderresulttheresultistheremainderof15/-4余數(shù)符號(hào)與被除數(shù)同號(hào)#include<stdio.h>intmain(){inta=17,integerResult;floatb=17.0,floatResult;integerResult=a/2;printf("integerResult:%d\n",integerResult);floatResult=b/2;printf("floatResult:%f\n",floatResult);printf("Remainderof(7+79)and24is:%d",(7+79)%24);return0;}integerResult:8floatResult:8.500000Remainderof(7+79)and24is:14【例2.3】寫出下面程序的輸出結(jié)果。如何分離個(gè)位、十位、百位數(shù)字?個(gè)位:153%10

=3十位:153/10%10=5百位:153/100=1【例2.4】利用算術(shù)運(yùn)算符求一個(gè)三位整數(shù)的百位數(shù)、十位數(shù)和個(gè)位數(shù),并輸出它們和與乘積。#include<stdio.h>intmain(){intx,b0,b1,b2,sum,product;x=153;b0=x%10;

//求個(gè)位數(shù)b1=x/10%10;

//求十位數(shù)b2=x/100;

//求百位數(shù)sum=b0+b1+b2;product=b0*b1*b2;printf("b2=%d\tb1=%d\tb0=%d\n",b2,b1,b0);printf("sum=%d\tproduct=%d\n",sum,product);return0;}b2=1b1=5b0=3sum=9product=157.設(shè)floatc,f;,將數(shù)學(xué)表達(dá)式c=(f-32)正確表示成C語言賦值表達(dá)式的是()。c=5*(f-32)/9c=5/9(f-32)c=5/9*(f-32)c=5/(9*(f-32))ABCD提交單選題5分2.6.2運(yùn)算符的優(yōu)先級(jí)與結(jié)合性當(dāng)算術(shù)表達(dá)式包含兩個(gè)或兩個(gè)以上的算術(shù)運(yùn)算符時(shí)

首先要確定運(yùn)算順序所有的運(yùn)算符都有一個(gè)優(yōu)先級(jí)

(OrderofPrecedence)

附錄C——運(yùn)算符的優(yōu)先級(jí)與結(jié)合性不同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——從高到低

例如:*,/,%

優(yōu)先級(jí)大于+、-相同優(yōu)先級(jí)時(shí)的運(yùn)算順序:——左結(jié)合為從左到右,右結(jié)合為從右到左例如:算術(shù)運(yùn)算為左結(jié)合,賦值運(yùn)算為右結(jié)合2.6.2運(yùn)算符的優(yōu)先級(jí)與結(jié)合性除后置++、--運(yùn)算符之外的一元運(yùn)算符和三元運(yùn)算符均為右結(jié)合;除賦值運(yùn)算符之外的所有二元運(yùn)算符均為左結(jié)合。自增和自減運(yùn)算符(++和--)用作后綴運(yùn)算符時(shí)(比如x++)具有較高的優(yōu)先級(jí)。運(yùn)算符的優(yōu)先級(jí)不需要去死記硬背,編寫程序時(shí)可以通過使用()來改變表達(dá)式的計(jì)算順序。2.6.2運(yùn)算符的優(yōu)先級(jí)與結(jié)合性5+2+4*3-6=?例:算術(shù)表達(dá)式計(jì)算順序71219-6=13=135+2+4*(3–6)=?利用()改變計(jì)算順序:7-3=-5-12=-572.6.3關(guān)系運(yùn)算符運(yùn)算符意義范例結(jié)果<

小于10<90<=小于或等于8<=201>

大于10>81>=大于或等于8>=100==等于10==101!=不等于9!=90例如,表達(dá)式10+30<10+40等價(jià)于(10+30)<(10+40)。2.6.3關(guān)系運(yùn)算符注意不要直接判斷兩個(gè)浮點(diǎn)數(shù)是否相等。注意區(qū)別C語言的關(guān)系表達(dá)式與數(shù)學(xué)中的關(guān)系表達(dá)式。在數(shù)學(xué)中10<x<20,表示x∈(10,20)在C語言中能用10<x<20表示x∈(10,20)嗎?2.6.4復(fù)合賦值運(yùn)算符Syntax:

變量x=變量x

運(yùn)算符op

表達(dá)式;

變量x

運(yùn)算符op=表達(dá)式;例如:

x=x+10;可寫成:x+=10;2.6.4復(fù)合賦值運(yùn)算符Example:num=num+2;num15

15+2

1717Example:num+=2;similarto

num=num+2shorthandassignmentoperator2.6.4復(fù)合賦值運(yùn)算符運(yùn)算符復(fù)合賦值運(yùn)算例子計(jì)算過程+=num+=2;num=num+2;-=num-=2;num=num–2;*=num*=a+b;num=num*(a+b);/=num/=a-b;num=num/(a-b);%=num%=2;num=num%2;2.6.4復(fù)合賦值運(yùn)算符例如,若有變量定義intx=10;則表達(dá)式: x*=2+3;等價(jià)于: x=x*(2+3); (x的結(jié)果為50)而不是: x=x*2+3;

(x的結(jié)果為23)例如,若有變量定義inta=10,b=20,c=30;表達(dá)式a+=b+=c;等價(jià)于a+=(b+=c); //執(zhí)行完后a的值為60,b的值為50,c的值為30執(zhí)行后,a,b,c的值分別是?2.6.4復(fù)合賦值運(yùn)算符再如,若有變量定義inta=3;表達(dá)式 a+=a*=a-=1;的計(jì)算順序?yàn)椋篴-=1; //a=2a*=a; //a=4a+=a;

//a=82.6.4復(fù)合賦值運(yùn)算符8.設(shè)floatm=4.0,n=4.0;,使m為10.0的表達(dá)式是()。m-=n*2.5m/=n+9m*=n-6m+=n+2ABCD提交單選題5分2.6.5++和--運(yùn)算符x++,x--,++x,--x++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為后綴(postfix)運(yùn)算符時(shí),先取x的值參與表達(dá)式計(jì)算,然后x自身加/減1y=x++;y=x;x=x+1;2.6.5++和--運(yùn)算符x++,x--,++x,--x++讓參與運(yùn)算的變量加1,--讓參與運(yùn)算的變量減1作為前綴(prefix)運(yùn)算符時(shí),先將x的值加1,然后再取x的值參與表達(dá)式計(jì)算y=++x;x=x+1;y=x;Example:y=x++-2x10similartoy=x–2;x=x+1;后綴(Postfix)增1和減1運(yùn)算符y??811Example:y=++x-2x10similartox=x+1;y=x–2;y??911前綴(Prefix)增1和減1運(yùn)算符y=-x++; printf("x:%d,y:%d\n",x,y); x10similartoy=-(x++);后綴(Postfix)增1和減1運(yùn)算符11y10-10x=x+1;printf(“x:%d,y:%d\n",x,y);x:11,y:-102.6.5++和--運(yùn)算符良好的程序設(shè)計(jì)風(fēng)格提倡:在一行語句中,一個(gè)變量只能出現(xiàn)一次增1或者減1運(yùn)算過多的增1和減1運(yùn)算混合,不僅可讀性差,而且因?yàn)榫幾g器實(shí)現(xiàn)的方法不同,導(dǎo)致不同編譯器產(chǎn)生不同的運(yùn)行結(jié)果9.若定義了inta,x,y;,則下列語句中不正確的是()。x=y=5;++x;x=y+=x*30;a=y+x=30;ABCD提交單選題5分表達(dá)式的類型轉(zhuǎn)換2.72.7表達(dá)式的類型轉(zhuǎn)換賦值表達(dá)式的類型轉(zhuǎn)換char,shortintunsignedlongunsignedlonglonglonglongdoubledoublefloat2.7表達(dá)式的類型轉(zhuǎn)換不當(dāng)?shù)馁x值將導(dǎo)致溢出2.7表達(dá)式的類型轉(zhuǎn)換例如,有變量定義:inta=2;longb=10;doublec=25;floatsum=0;sum=‘A'+2*a+b*c的計(jì)算過程:2.7表達(dá)式的類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換

(類型說明符)表達(dá)式(float)(x+y) 將x+y的值轉(zhuǎn)換成float類型。(int)a+b 將a的值取出轉(zhuǎn)換為int型再與b相加。(double)b 取出變量b的值轉(zhuǎn)換為double型#include<stdio.h>intmain(){constfloatpi=3.1415926;//定義const常量floatr=5.0;doublelength,area;length=2.0*pi*r; //計(jì)算圓的周長(zhǎng)area=pi*r*r; //計(jì)算圓的面積printf("length=%f\n",length);//輸出圓的周長(zhǎng)printf("area=%f\n",area);//輸出圓的面積return0;}length=31.415924area=78.539810【例2.6】計(jì)算并輸出圓的周長(zhǎng)和面積。(const常量示例)10.設(shè)inta=9,b=20;,則printf("%d,%d\n",a--,--b);的輸出結(jié)果是()。9,199,2010,1910,20ABCD提交單選題5分11.C語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是()。%=/=<=ABCD提交單選題5分12.設(shè)intj=5;,則執(zhí)行語句j+=j-=j*j;后,j的值是

[填空1]

。作答填空題5分13.設(shè)intx=2,y=5;,則表達(dá)式x+++y的值是

[填空1]

;printf("%d",x<y<4);語句輸出的結(jié)果是

[填空2]

。作答填空題10分實(shí)驗(yàn)二1.改正下面程序的錯(cuò)誤,并調(diào)試運(yùn)行。#include<stdio.h>intmain(){intx=23;floaty=56.35;printf("x=%d\n",x);printf("y=%d\n",y);}實(shí)驗(yàn)二2.調(diào)試下面的程序,分析程序的輸出結(jié)果。

#include<stdio.h>intmain(){inta=68,b=2;floatx=12.3,y=2.6;printf("%f\n",(float)(a*b)/2);printf("%d,%d\n",(int)x%(int)y,a-1);}實(shí)驗(yàn)二3.所謂反序數(shù),就是將整數(shù)的數(shù)字倒過來后所形成的整數(shù),如1234的反序數(shù)是4321。已知a為4位整數(shù),編寫程序,求其反序數(shù)存入變量b后輸出。例如,a=1234,則應(yīng)輸出b=4321。4.編寫程序,已知立方體的長(zhǎng)、寬、高,計(jì)算立方體的體積和各側(cè)面面積并輸出。實(shí)驗(yàn)二5.在Code::Blocks中建立一個(gè)project,在main函數(shù)中定義一些未經(jīng)初始化的變量,通過CB的單步調(diào)試功能觀察變量的值。進(jìn)一步熟悉Code::Blocks集成開發(fā)環(huán)境。實(shí)驗(yàn)二6.在CB中建立C工程文件,輸入如圖2-11(a)所示程序代碼,在第7行x=x+1;處設(shè)置斷點(diǎn),單步執(zhí)行程序,觀察執(zhí)行x=x+1;語句前后變量x的值的變化情況,分析圖2-11(b)所示的數(shù)據(jù)溢出情況產(chǎn)生的原因。實(shí)驗(yàn)二(a)設(shè)置斷點(diǎn)(b)單步執(zhí)行x=x+1;語句圖2-11利用單步調(diào)試觀測(cè)變量溢出情況高級(jí)語言程序設(shè)計(jì)——基于計(jì)算思維能力培養(yǎng)第3章算法與簡(jiǎn)單C程序設(shè)計(jì)主要內(nèi)容C語句C程序輸入、輸出操作的實(shí)現(xiàn)算法簡(jiǎn)單程序設(shè)計(jì)舉例實(shí)驗(yàn)三本章思維導(dǎo)圖C語句3.1表達(dá)式語句z=x*y+6;i++;空語句;復(fù)合語句

{ …}3.1C語句C程序輸入/輸出操作的實(shí)現(xiàn)3.23.2.1字符輸入/輸出通過調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)來實(shí)現(xiàn)#include<stdio.h>字符輸出函數(shù)putchar(c)

輸出一個(gè)字符c字符輸入函數(shù)getchar()

無參數(shù)函數(shù)值為從輸入設(shè)備接收的字符#include<stdio.h>intmain(){chara='n',b='i';intc=99;putchar(a-32);

//輸出大寫字母Nputchar(b);putchar(c);putchar(c+2);putchar('\n'); //輸出換行符return0;}Nice

【例3.1】putchar函數(shù)應(yīng)用舉例。#include<stdio.h>intmain(){chara,b;a=getchar();b=getchar();putchar(a);putchar(b);return0;}AB↙ABAB↙A【例3.2】getchar函數(shù)應(yīng)用舉例。#include<stdio.h>intmain(){inta=65;longb=1234567;floatc=12.34567;printf("%c,%d,%6d,%-6d,%1d\n",a,a,a,a,a);printf("%ld,%8ld,%4ld\n",b,b,b,a);

//此處輸出項(xiàng)列表比格式轉(zhuǎn)換符多出一項(xiàng)printf("%f,%10f,%10.2f,%-10.2f\n",c,c,c,c,c);printf("%s,%8.6s,%-8.3s\n","Hello","Hello","Hello");return0;}【例3.3】格式輸出程序示例?!纠?.3】格式輸出程序示例。printf()函數(shù)printf(“格式串”,表達(dá)式1,表達(dá)式2,…);3.2.2格式輸入/輸出格式轉(zhuǎn)換控制字符表類型說明類型說明d以帶符號(hào)的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào))c以字符形式輸出,只輸出一個(gè)字符o以八進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0)s輸出字符串x十六進(jìn)制無符號(hào)整數(shù)(小寫字母a~f)f以小數(shù)形式輸出單、雙精度數(shù)、默認(rèn)輸出6位小數(shù)X十六進(jìn)制無符號(hào)整數(shù)(大寫字母A~F)e十進(jìn)制指數(shù)(小寫e)u以無符號(hào)十進(jìn)制形式輸出整數(shù)E十進(jìn)制指數(shù)(大寫E)g,G選用%f或%e格式中輸出寬度較短的一個(gè)格式在格式說明中,%和上述格式轉(zhuǎn)換字符之間可以按以下順序插入如下附加字符:%+、-、#m.nh、l格式字符↓↓↓↓↓↓開始符標(biāo)志字符寬度

指示符精度

指示符長(zhǎng)度

修正符格式轉(zhuǎn)換字符printf函數(shù)附加字符表字符說

明標(biāo)志字符-輸出的數(shù)字或字符在域內(nèi)向左對(duì)齊,右端補(bǔ)空格,缺省是左對(duì)齊+輸出數(shù)據(jù)為正是冠以+號(hào),為負(fù)時(shí)冠以-號(hào),缺省時(shí)正數(shù)不輸出+號(hào)#八進(jìn)制輸出時(shí)加前綴0,十六進(jìn)制輸出時(shí)加前綴0x寬度指示m指示輸出項(xiàng)所占的最小寬度。當(dāng)m小于數(shù)據(jù)實(shí)際寬度時(shí),按實(shí)際寬度輸出。例如,printf(“%3d”,1234);實(shí)際輸出為:1234字符說

明精度指示.n對(duì)實(shí)數(shù),表示輸出n位小數(shù);對(duì)字符串,表示截取的字符個(gè)數(shù)。例如,printf(“%6.2f”,12.3467);長(zhǎng)度修正字母l用于長(zhǎng)整數(shù),可加在格式字符d,o,x,u之間字母h用于短整數(shù),可加在格式字符d,o,x,u之間printf函數(shù)附加字符表(續(xù))輸出結(jié)果為:_12.35(_代表空格)例:printf("%6d\n",123);printf("%-6d\n",123);輸出結(jié)果為:123123又如,printf(“%+d,%+d\n”,123,-123);輸出結(jié)果為:+123,-123例:

若要輸出八進(jìn)制或十六進(jìn)制,可以使用以下形式:printf(“%o,%x\n”,10,16);輸出結(jié)果為:12,10例:#include<stdio.h>#include<stdio.h>intmain(){inta=97;longb=1234567;floatc=12.34567;printf("%c,%d,%6d,%-6d,%1d\n",a,a,a,a,a);printf("%ld,%8ld,%4ld\n",b,b,b,a);//此處輸出項(xiàng)列表比格式轉(zhuǎn)換符出多一項(xiàng)

printf("%f,%10f,%10.2f,%-10.2f\n",c,c,c,c,c);printf("%s,%8.6s,%-8.3s\n","Hello","Hello","Hello");return0;}【例3.3】格式輸出程序示例。a,97,97,97,971234567,1234567,123456712.345670,12.345670,12.35,12.35Hello,Hello,Hel【例3.3】格式輸出程序示例。編譯程序不對(duì)輸出項(xiàng)列表的項(xiàng)數(shù)與格式轉(zhuǎn)換符個(gè)數(shù)進(jìn)行檢查,當(dāng)輸出項(xiàng)列表多于格式轉(zhuǎn)換符時(shí),多余的項(xiàng)將不被輸出。反之,則可能出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。此外,當(dāng)格式轉(zhuǎn)換符與輸出項(xiàng)的類型不匹配時(shí),編譯程序也不做檢查,但在運(yùn)行時(shí)將得到不正確的運(yùn)行結(jié)果。初寫程序時(shí)要特別注意,不要誤用%d輸出float和double的表達(dá)式,同理,也不能用%f輸出int型的表達(dá)式。提示

但%d可輸出字符的ASCII碼,反之,%c可以輸出ASCII碼值對(duì)應(yīng)的字符。 scanf(“格式控制串”,地址列表);%*mh、l格式字符↓↓↓↓↓開始符賦值抑制符寬度指示符長(zhǎng)度修正符格式轉(zhuǎn)換字符scanf格式字符類型說明d輸入有符號(hào)的十進(jìn)制整數(shù)u輸入無符號(hào)的十進(jìn)制整數(shù)o輸入無符號(hào)的八進(jìn)制整數(shù)x,X輸入無符號(hào)的十六進(jìn)制整數(shù)(大小寫作用相同)c輸入單個(gè)字符s輸入字符串。將字符串送到一個(gè)字符數(shù)組中,在輸入時(shí)以非空格白字符開始,以第一個(gè)空白字符結(jié)束。字符串以串結(jié)束標(biāo)志’\0’作為其最后一個(gè)字符scanf格式字符類型說明f輸入float型實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入;輸入double型實(shí)數(shù),需用%lfe,E,g,G與f作用相同,e與f,g可以互相轉(zhuǎn)換。注意,輸入double數(shù)據(jù)需加前綴lscanf格式字符例如:inta;doubleb;scanf(“%d%lf”,&a,&b); 輸入1212.34↙后變量a獲得12,變量b獲得12.34。scanf格式字符若將輸入語句改成:scanf(“%d,%lf”,&a,&b);則輸入格式應(yīng)為:12,12.34↙scanf格式字符同理,scanf(“a=%d,b=%lf”,&a,&b);輸入時(shí)應(yīng)采用以下格式:a=12,b=12.34↙scanf格式字符#include<stdio.h>intmain(){inta;charb;

printf("PleaseinputanintegerandthenpressEnter:");scanf("%d",&a);printf("a=%d\n",a);

printf("PleaseinputancharacterandthenpressEnter:");scanf("%c",&b);printf("b=%c\n",b);return0;}PleaseinputanintegerandthenpressEnter:12↙a=12PleaseinputancharacterandthenpressEnter:b=方法1:增加getchar();方法2:改為scanf(“%c”,&b)【例3.4】scanf函數(shù)輸入示例。寬度指示符用十進(jìn)制整數(shù)指定輸入數(shù)據(jù)的最大寬度,例如:scanf(“%3d”,&a);若輸入12345,則僅把前3位數(shù)123賦值給整型變量a,其余部分駐留在鍵盤緩沖區(qū)。寬度指示符又如:scanf(“%3d%3d”,&a,&b);若輸入數(shù)據(jù)12345,則把前3位123賦值給整型變量a,而把后兩位45賦值給變量b。寬度指示符賦值抑制符“*”

賦值抵制符“*”表示輸入項(xiàng)讀入后不賦值給相應(yīng)的變量,即跳過該輸入值。

例如:scanf(“%d%*d%d”,&a,&b);

若輸入101112↙

則把10賦值給變量a,11被讀入但未被賦值給變量b,12被賦值給變量b。長(zhǎng)度修正符

長(zhǎng)度修正符h和l分別用于輸入短整數(shù)和長(zhǎng)整數(shù),另外l還可加在格式轉(zhuǎn)換符f前,用于輸入double型變量的值。

例如:doublex;scanf(“%lf”,&x);常見錯(cuò)誤舉例inta,b;floatx;scanf(“%d”,a);scanf(“a=%d\n”,&a);scanf(“%7.2f”,&x)scanf(“%d%d”,&a,&b);12,34↙#include<stdio.h>intmain(){constfloatpi=3.1415926; //定義const常量floatr;doublelength,area;

printf("Pleaseinputradiusofacicle:");

scanf("%f",&r); //輸入圓的半徑【例3.5】修改例2.6,從鍵盤接收用戶輸入的圓的半徑,計(jì)算并輸出圓的周長(zhǎng)和面積。

length=2.0*pi*r; //計(jì)算圓的周長(zhǎng)

area=pi*r*r; //計(jì)算圓的面積printf("length=%f\n",length);//輸出圓的周長(zhǎng)printf("area=%f\n",area); //輸出圓的面積return0;}【例3.5】修改例2.6,從鍵盤接收用戶輸入的圓的半徑,計(jì)算并輸出圓的周長(zhǎng)和面積。1.設(shè)intx;,則下列選項(xiàng)中錯(cuò)誤的輸入語句是()。scanf("%d",x);scanf("%d",&x);scanf("%o",&x);scanf("%x",&x);ABCD提交單選題5分2.執(zhí)行語句printf("|%9.4f|\n",12345.67);后的輸出結(jié)果是()。|2345.6700||12345.6700||12345.670||12345.67|ABCD提交單選題5分3.若在下面程序運(yùn)行時(shí)輸入123456,程序的輸出結(jié)果是什么?

[填空1]

[填空2]

作答#include<stdio.h>intmain(){inta,b;scanf("%2d%*2s%2d",&a,&b);printf("%d,%d\n",a,b);return0;}填空題10分算法3.3AlgorithmsDataStructuresPrograms+=N.Wirth著名論斷:高德納(DonaldE.Knuth):“計(jì)算機(jī)科學(xué)就是算法的研究”3.3算法3.3.1問題求解過程中算法的作用

利用計(jì)算機(jī)進(jìn)行問題求解,根本上就是弄清楚兩個(gè)基本問題,一是“做什么”,二是“怎么做”。

即What和How的問題。

算法設(shè)計(jì)回答的就是“怎么做”的問題。

對(duì)同一個(gè)問題,往往有不同的解題方法,各種方法有優(yōu)劣之分。檢索(查找)檢索(查找)數(shù)據(jù)檢索算法胡強(qiáng)查詢結(jié)果:5條記錄計(jì)算機(jī)是如何幫用戶查找數(shù)據(jù)的?順序檢索序號(hào)班級(jí)名稱姓名學(xué)號(hào)022級(jí)網(wǎng)絡(luò)工程聶加望2208066047122級(jí)網(wǎng)絡(luò)工程潘杰2208066048222級(jí)網(wǎng)絡(luò)工程秦彪2208066049322級(jí)網(wǎng)絡(luò)工程邱強(qiáng)22080660514

522級(jí)網(wǎng)絡(luò)工程唐重喜2208066054012查詢姓名為譚青的同學(xué)22級(jí)網(wǎng)絡(luò)工程譚青2208066053

34422級(jí)網(wǎng)絡(luò)工程譚青2208066053

序號(hào)班級(jí)名稱姓名學(xué)號(hào)022級(jí)網(wǎng)絡(luò)工程聶加望2208066047122級(jí)網(wǎng)絡(luò)工程潘杰2208066048222級(jí)網(wǎng)絡(luò)工程秦彪2208066049322級(jí)網(wǎng)絡(luò)工程邱強(qiáng)2208066051

522級(jí)網(wǎng)絡(luò)工程唐重喜2208066054012422級(jí)網(wǎng)絡(luò)工程譚青2208066053

3456順序檢索查詢姓名為鄒婕的同學(xué)“瞎子”找真幣假幣假幣假幣假幣假幣假幣順序檢索

超市若有10000種不同貨品,每掃描一個(gè)條碼時(shí)需要在10000種不商品中尋找這件商品的名稱和價(jià)格。若1秒內(nèi)查詢1000次,查完全部貨物耗時(shí)10秒。順序檢索順序檢索效率太低!無法滿足應(yīng)用要求!怎樣提高檢索效率?順序檢索猜價(jià)格二分檢索123456….4096查詢關(guān)鍵字15002048二分檢索查詢關(guān)鍵字15001024二分檢索查詢關(guān)鍵字15001536二分檢索序號(hào)班級(jí)名稱姓名學(xué)號(hào)022級(jí)網(wǎng)絡(luò)工程聶加望2208066047122級(jí)網(wǎng)絡(luò)工程潘杰2208066048222級(jí)網(wǎng)絡(luò)工程秦彪2208066049322級(jí)網(wǎng)絡(luò)工程邱強(qiáng)22080660514

522級(jí)網(wǎng)絡(luò)工程唐重喜2208066054l=0查詢學(xué)號(hào)為2208066053的同學(xué)22級(jí)網(wǎng)絡(luò)工程譚青2208066053

422級(jí)網(wǎng)絡(luò)工程譚青2208066053

r=5midl=3mid序號(hào)班級(jí)名稱姓名學(xué)號(hào)022級(jí)網(wǎng)絡(luò)工程聶加望2208066047122級(jí)網(wǎng)絡(luò)工程潘杰2208066048222級(jí)網(wǎng)絡(luò)工程秦彪2208066049322級(jí)網(wǎng)絡(luò)工程邱強(qiáng)22080660514

522級(jí)網(wǎng)絡(luò)工程唐重喜2208066054l=0查詢學(xué)號(hào)為2208066052的同學(xué)422級(jí)網(wǎng)絡(luò)工程譚青2208066053

r=5midl=3mid二分檢索序號(hào)班級(jí)名稱姓名學(xué)號(hào)022級(jí)網(wǎng)絡(luò)工程聶加望2208066047122級(jí)網(wǎng)絡(luò)工程潘杰2208066048222級(jí)網(wǎng)絡(luò)工程秦彪2208066049322級(jí)網(wǎng)絡(luò)工程邱強(qiáng)22080660514

522級(jí)網(wǎng)絡(luò)工程唐重喜2208066054查詢學(xué)號(hào)為2208066052

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論