《C語(yǔ)言程序設(shè)計(jì)》課件第3章_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》課件第3章_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》課件第3章_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》課件第3章_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》課件第3章_第5頁(yè)
已閱讀5頁(yè),還剩266頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

概述

實(shí)驗(yàn)一熟悉C程序的開(kāi)發(fā)環(huán)境

實(shí)驗(yàn)二

常量、變量及數(shù)據(jù)類型

實(shí)驗(yàn)三運(yùn)算符與表達(dá)式

實(shí)驗(yàn)四基本輸入、輸出

實(shí)驗(yàn)五選擇結(jié)構(gòu)程序設(shè)計(jì)

實(shí)驗(yàn)六循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

實(shí)驗(yàn)七數(shù)組

實(shí)驗(yàn)八字符數(shù)組與字符串

實(shí)驗(yàn)九函數(shù)

實(shí)驗(yàn)十結(jié)構(gòu)體與共用體

實(shí)驗(yàn)十一指針

實(shí)驗(yàn)十二文件管理

實(shí)驗(yàn)十三編譯預(yù)處理

第三部分

上機(jī)實(shí)驗(yàn)指導(dǎo)概

述一、實(shí)驗(yàn)?zāi)康腃語(yǔ)言程序設(shè)計(jì)課程上機(jī)實(shí)驗(yàn)的目的是讓學(xué)生加深對(duì)課堂講授內(nèi)容的理解,培養(yǎng)、訓(xùn)練學(xué)生程序設(shè)計(jì)和程序調(diào)試的能力。在每個(gè)實(shí)驗(yàn)中,除了對(duì)程序設(shè)計(jì)提出要求之外,對(duì)程序的調(diào)試方法也提出具體的要求,這樣就可以逐步培養(yǎng)學(xué)生分析、判斷、改正錯(cuò)誤的能力。“程序設(shè)計(jì)”是一門實(shí)踐性很強(qiáng)的課程,必須十分重視實(shí)踐環(huán)節(jié),必須保證有足夠的上機(jī)實(shí)驗(yàn)時(shí)間,最好能做到授課學(xué)時(shí)與實(shí)踐學(xué)時(shí)之比為1∶1。除了教學(xué)所安排的上機(jī)時(shí)間以外,還應(yīng)當(dāng)提倡學(xué)生多上機(jī)實(shí)踐。C語(yǔ)言程序設(shè)計(jì)課程上機(jī)實(shí)驗(yàn)的目的可以概括為如下幾個(gè)方面。1.加深對(duì)講授內(nèi)容的理解課堂上要講授許多關(guān)于C語(yǔ)言的語(yǔ)法規(guī)則,只記住這些語(yǔ)法規(guī)則是遠(yuǎn)遠(yuǎn)不夠的。學(xué)習(xí)C語(yǔ)言,不僅要熟練掌握其語(yǔ)言本身的特點(diǎn)、語(yǔ)法規(guī)則等,而且更重要的是要掌握分析問(wèn)題、解決問(wèn)題的方法,即鍛煉分析、分解及最終歸納整理出算法的能力。通過(guò)多次上機(jī)實(shí)踐就能自然、熟練地理解和掌握。2.熟練使用集成開(kāi)發(fā)環(huán)境程序的開(kāi)發(fā)環(huán)境包括所用的計(jì)算機(jī)系統(tǒng)的硬件環(huán)境和軟件環(huán)境。一個(gè)C語(yǔ)言源程序總是在一定的硬件和軟件環(huán)境支持下運(yùn)行的。讀者必須了解所使用計(jì)算機(jī)系統(tǒng)的基本操作方法,了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè)C語(yǔ)言程序。3.學(xué)會(huì)調(diào)試程序的一般方法在程序設(shè)計(jì)中,要求掌握如何編寫程序并上機(jī)調(diào)試通過(guò)。因此,調(diào)試程序本身是程序設(shè)計(jì)課程一個(gè)重要的內(nèi)容和基本要求。調(diào)試程序中,要善于發(fā)現(xiàn)程序中的錯(cuò)誤,并且能很快地排除這些錯(cuò)誤,使程序能正確運(yùn)行。調(diào)試程序固然可以學(xué)習(xí)借鑒他人的經(jīng)驗(yàn),但主要還是要通過(guò)自己的直接實(shí)踐來(lái)積累經(jīng)驗(yàn),而且有些經(jīng)驗(yàn)是只可意會(huì)不可言傳的,別人的經(jīng)驗(yàn)不能代替自己的經(jīng)驗(yàn)。調(diào)試程序的能力是每個(gè)程序設(shè)計(jì)人員應(yīng)當(dāng)具備的一項(xiàng)基本能力。C語(yǔ)言程序設(shè)計(jì)的學(xué)習(xí)必須靈活主動(dòng)。也就是說(shuō),在做實(shí)驗(yàn)時(shí)千萬(wàn)不要在程序通過(guò)后就認(rèn)為完成任務(wù)了,而應(yīng)當(dāng)在已通過(guò)的程序基礎(chǔ)上做些改動(dòng),再進(jìn)行編譯、鏈接和運(yùn)行。有時(shí)候還需要設(shè)計(jì)一些測(cè)試的數(shù)據(jù)來(lái)驗(yàn)證程序是否正確,這樣的學(xué)習(xí)才會(huì)有真正的收獲。二、實(shí)驗(yàn)要求上機(jī)實(shí)驗(yàn)一般經(jīng)歷上機(jī)前的準(zhǔn)備(編程)、上機(jī)調(diào)試運(yùn)行和實(shí)驗(yàn)后的總結(jié)三個(gè)步驟。1.上機(jī)實(shí)驗(yàn)前的準(zhǔn)備工作在上機(jī)實(shí)驗(yàn)前應(yīng)做好準(zhǔn)備工作,以提高上機(jī)實(shí)驗(yàn)的效率。準(zhǔn)備工作主要包括以下幾個(gè)方面:(1)了解所用的計(jì)算機(jī)系統(tǒng)(包括C編譯系統(tǒng))的性能和使用方法。(2)復(fù)習(xí)與本實(shí)驗(yàn)有關(guān)的教學(xué)內(nèi)容,掌握本章的主要知識(shí)點(diǎn)。(3)按任課教師的要求獨(dú)立完成上機(jī)程序的編寫。手寫程序應(yīng)整齊清晰,并進(jìn)行人工檢查。(4)對(duì)程序中有疑問(wèn)且不能獨(dú)立解決的地方,應(yīng)做出標(biāo)記,以便在上機(jī)時(shí)給予注意或求助于實(shí)驗(yàn)指導(dǎo)教師。(5)準(zhǔn)備好運(yùn)行、調(diào)試和測(cè)試所需的數(shù)據(jù)。(6)準(zhǔn)備實(shí)驗(yàn)報(bào)告。2.上機(jī)實(shí)驗(yàn)的步驟及實(shí)驗(yàn)內(nèi)容安排上機(jī)實(shí)驗(yàn)時(shí)應(yīng)該一人一組,獨(dú)立上機(jī)。一般上機(jī)實(shí)驗(yàn)的步驟如下:(1)啟動(dòng)操作系統(tǒng)。(2)進(jìn)入C工作環(huán)境(例如:TurboC2.0、TurboC++3.0、VisualC++6.0或Win-TC集成環(huán)境)。(3)輸入自己編好的程序代碼。(4)人工檢查一遍已輸入的程序是否有錯(cuò),發(fā)現(xiàn)有錯(cuò),應(yīng)及時(shí)改正。(5)進(jìn)行編譯和鏈接。如果在編譯和鏈接過(guò)程中發(fā)現(xiàn)錯(cuò)誤,屏幕上會(huì)出現(xiàn)“報(bào)錯(cuò)信息”,根據(jù)提示找到出錯(cuò)的位置和原因,并及時(shí)加以改正,然后再進(jìn)行編譯和鏈接。如此反復(fù),直到順利通過(guò)為止。(6)運(yùn)行程序并分析運(yùn)行結(jié)果是否合理和正確。在運(yùn)行時(shí)要注意,當(dāng)輸入不同的數(shù)據(jù)時(shí)所得到的結(jié)果是否正確。(7)輸出程序清單和運(yùn)行結(jié)果。(8)對(duì)程序的運(yùn)行過(guò)程進(jìn)行記錄和思考,并記載在實(shí)驗(yàn)報(bào)告上。實(shí)驗(yàn)內(nèi)容的安排可根據(jù)習(xí)題量的多少和上機(jī)時(shí)間的長(zhǎng)短,教師可以指定習(xí)題的全部或一部分作為上機(jī)實(shí)驗(yàn)題。本書共包括13個(gè)實(shí)驗(yàn),每個(gè)實(shí)驗(yàn)對(duì)應(yīng)于本書配套教材(《C語(yǔ)言程序設(shè)計(jì)》,柴世紅主編,西安電子科技大學(xué)出版社2011年2月出版)中一個(gè)完整的知識(shí)內(nèi)容,并包括多個(gè)備選的實(shí)驗(yàn)題目,題目設(shè)計(jì)由易到難、由淺入深,在每個(gè)完整的知識(shí)點(diǎn)后增加了實(shí)驗(yàn)思考題,使學(xué)生能更深刻地理解和掌握程序設(shè)計(jì)的算法和思想,在組織上機(jī)實(shí)驗(yàn)時(shí)可以根據(jù)條件做必要的調(diào)整,增加或減少某些部分的內(nèi)容。學(xué)生應(yīng)在實(shí)驗(yàn)前將教師指定的題目編好程序,然后上機(jī)輸入和調(diào)試。有些題目的算法可能不止一種,學(xué)生應(yīng)該嘗試使用多種算法解決同一個(gè)問(wèn)題,并比較不同算法的優(yōu)劣。3.整理實(shí)驗(yàn)結(jié)果并寫出實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)結(jié)束后,要整理實(shí)驗(yàn)結(jié)果并進(jìn)行認(rèn)真分析和總結(jié),根據(jù)教師要求寫出實(shí)驗(yàn)報(bào)告。書寫實(shí)驗(yàn)報(bào)告是整個(gè)實(shí)驗(yàn)過(guò)程的一個(gè)重要環(huán)節(jié)。通過(guò)寫實(shí)驗(yàn)報(bào)告,可以對(duì)整個(gè)實(shí)驗(yàn)作一個(gè)總結(jié),然后不斷積累經(jīng)驗(yàn),提高程序設(shè)計(jì)和調(diào)試的能力。實(shí)驗(yàn)報(bào)告主要包含以下內(nèi)容:(1)實(shí)驗(yàn)?zāi)康?。?shí)驗(yàn)的目的就是深入理解和掌握課程教學(xué)中的有關(guān)基本概念,應(yīng)用基本技術(shù)解決實(shí)際問(wèn)題,從而進(jìn)一步提高分析問(wèn)題和解決問(wèn)題的能力。因此,學(xué)生必須明確實(shí)驗(yàn)的目的。(2)實(shí)驗(yàn)內(nèi)容。每個(gè)實(shí)驗(yàn)都安排了多個(gè)實(shí)驗(yàn)題目,學(xué)生事先必須作好準(zhǔn)備,每個(gè)實(shí)驗(yàn)大約2學(xué)時(shí)做完,學(xué)生按照老師的要求完成指定的實(shí)驗(yàn)題目。(3)算法分析及主要語(yǔ)句說(shuō)明。本書中實(shí)驗(yàn)的安排由易到難,對(duì)一些有難度的題目給出了算法分析和程序注釋。在寫實(shí)驗(yàn)報(bào)告時(shí),對(duì)于書中未給出算法分析的題目,自己要給出算法分析及主要語(yǔ)句的說(shuō)明。

(4)完整的程序清單。需提供完整、清晰的程序代碼。(5)分析與思考。這部分的內(nèi)容包括:調(diào)試過(guò)程中遇到的問(wèn)題及解決辦法;調(diào)試程序的心得與體會(huì);對(duì)于最終未完成調(diào)試的題目,要認(rèn)真找出錯(cuò)誤并分析原因等。實(shí)驗(yàn)一熟悉C程序的開(kāi)發(fā)環(huán)境

一、實(shí)驗(yàn)?zāi)康?.熟悉TurboC2.0集成開(kāi)發(fā)環(huán)境。2.熟悉VisualC++?6.0集成開(kāi)發(fā)環(huán)境。3.熟悉Win-TC集成開(kāi)發(fā)環(huán)境。4.通過(guò)運(yùn)行簡(jiǎn)單的C程序,初步了解C源程序的結(jié)構(gòu)。二、實(shí)驗(yàn)要求

1.實(shí)驗(yàn)前要認(rèn)真預(yù)習(xí)本實(shí)驗(yàn)內(nèi)容,明確本實(shí)驗(yàn)的目的和要求,熟悉實(shí)驗(yàn)內(nèi)容和步驟。

2.實(shí)驗(yàn)中充分利用時(shí)間進(jìn)行程序輸入和調(diào)試工作,善于提出問(wèn)題。

3.實(shí)驗(yàn)完成后要立即對(duì)實(shí)驗(yàn)過(guò)程進(jìn)行總結(jié),對(duì)于沒(méi)有解決的問(wèn)題要記載,要認(rèn)真寫好實(shí)驗(yàn)報(bào)告。

4.本實(shí)驗(yàn)要求2學(xué)時(shí)完成。三、實(shí)驗(yàn)內(nèi)容和步驟題目1:在TurboC2.0集成開(kāi)發(fā)環(huán)境中輸入并運(yùn)行下面的程序,這個(gè)程序的功能是在屏幕上輸出一行信息。#include<stdio.h>#include<stdlib.h>main(){printf("Hello,World!\n");system("pause");}代碼說(shuō)明:·為了方便,對(duì)程序的每一行都加了一個(gè)行號(hào),即每一行最前面的編號(hào),表示此行代碼所在的行數(shù),在實(shí)際程序編寫過(guò)程中不需要寫出來(lái)?!さ?1行,編譯預(yù)處理命令,包含標(biāo)準(zhǔn)輸入輸出頭文件stdio.h,因?yàn)榈?5行用到了格式化輸出函數(shù)printf()?!さ?2行,編譯預(yù)處理命令,包含標(biāo)準(zhǔn)庫(kù)函數(shù)頭文件stdlib.h,因?yàn)榈?6行用到了系統(tǒng)函數(shù)system("pause"),用來(lái)暫停以查看屏幕,并不是完成題目要求要必須用到的語(yǔ)句。另外還可用getch()函數(shù)來(lái)暫停以查看屏幕,用getch()函數(shù)時(shí)包含頭文件conio.h。TurboC2.0作為在DOS和Windows操作系統(tǒng)上學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)的練習(xí)平臺(tái),具有操作簡(jiǎn)單、界面清晰的特點(diǎn),是C程序設(shè)計(jì)語(yǔ)言初學(xué)者較常用的平臺(tái)。TurboC2.0對(duì)計(jì)算機(jī)的要求低,并且編譯、鏈接的速度快,對(duì)于程序練習(xí)和一般的程序開(kāi)發(fā)都很合適。它的缺點(diǎn)就是不支持鼠標(biāo)操作,也不能同時(shí)編輯多個(gè)文件,而且不能使用漢字。下面是TurboC2.0中C程序的編寫步驟:(1)進(jìn)入TurboC2.0集成開(kāi)發(fā)環(huán)境:打開(kāi)“我的電腦”,進(jìn)入TurboC2.0所在的根目錄C盤(或其他盤),找到TC(或TurboC2)文件夾,雙擊進(jìn)入此文件夾,再找到TC.EXE,雙擊打開(kāi)如圖3-1所示的界面。可以看到,這個(gè)界面從上到下分成四個(gè)區(qū)域。最上面一行是TurboC2.0的主菜單,每個(gè)菜單項(xiàng)的首字母大寫并紅色顯示,按“Alt+紅色字母”就可以打開(kāi)相應(yīng)的下拉菜單。主菜單下面比較大的區(qū)域就是源程序編輯區(qū),編好的源程序就要輸?shù)竭@個(gè)區(qū)域。源程序編輯區(qū)下面是信息窗口,顯示編譯或鏈接時(shí)的信息。信息窗口下面是參考行,給出了一些操作提示信息。圖3-1TurboC2.0集成開(kāi)發(fā)環(huán)境界面(2)新建文件:按快捷鍵“Alt+F”,彈出“File”下拉菜單,選中“New”命令,按回車鍵,新建文件完成,如圖3-2所示。圖3-2新建文件(3)輸入源程序:從光標(biāo)所在處開(kāi)始輸入源程序,如圖3-3所示。圖3-3在編輯區(qū)輸入源程序(4)保存源程序:按鍵盤上快捷鍵“Alt+F”,彈出“File”下拉菜單,用方向鍵選中“Writeto”命令,按回車鍵,此時(shí)彈出重命名對(duì)話框,對(duì)源程序文件進(jìn)行重命名(包括路徑)。學(xué)生可以先在D盤(或E盤)下新建一個(gè)以自己的學(xué)號(hào)或自己名字的拼音命名的文件夾,然后將源程序保存在這個(gè)文件夾里。例如輸入“E:\2010\hello.C”,按回車鍵,如圖3-4所示。圖3-4保存源程序(5)編譯、鏈接、執(zhí)行源程序:按快捷鍵“Ctrl+F9”或執(zhí)行“Run”菜單下的“Run”命令,如圖3-5所示。圖3-5編譯、鏈接、執(zhí)行源程序(6)查看結(jié)果:如果沒(méi)有編譯或鏈接錯(cuò)誤,將出現(xiàn)如圖3-6所示的運(yùn)行結(jié)果;如果有錯(cuò)誤,則會(huì)在消息框給出錯(cuò)誤提示信息。圖3-6運(yùn)行結(jié)果按任意鍵將返回源程序編輯界面,若要再次查看結(jié)果,可按快捷鍵“Alt+F5”或執(zhí)行“Run”菜單下的“Userscreen”命令?!咀⒁狻咳绻麑?shí)驗(yàn)的上機(jī)環(huán)境是TurboC2.0集成開(kāi)發(fā)環(huán)境,學(xué)生在以后的實(shí)驗(yàn)中可以將自己編寫的程序放在一個(gè)專門的文件夾里,以便于集中管理和查看。可以按照以下步驟進(jìn)行操作:①在D盤創(chuàng)建一個(gè)以自己的學(xué)號(hào)命名的文件夾,例如D:\20100001。②然后在這個(gè)文件夾中創(chuàng)建TC.EXE的快捷方式。③用記事本編輯C語(yǔ)言源程序,并保存成*.C的文件(例如1-1.C),如圖3-7所示。圖3-7TC快捷方式和記事本編輯的源程序④用鼠標(biāo)左鍵將1-1.C的文件拖曳至TC.EXE快捷方式,即可打開(kāi)TurboC2.0集成開(kāi)發(fā)環(huán)境,如圖3-8所示。其余操作方法與前面介紹的相同。圖3-8將記事本編輯的源程序拖曳至TC快捷方式⑤如果要將相應(yīng)的可執(zhí)行文件和目標(biāo)文件都放在D:\20100001中,可以進(jìn)行如下設(shè)置:按快捷鍵“Alt+O”,打開(kāi)“Options”菜單,用方向鍵選中“Directories”,按回車鍵;接下來(lái)選中“Outputdirectory”,按回車鍵,在彈出的設(shè)置框里輸入“D:\20100001”,按回車鍵,最后退出菜單。這樣就把.EXE和.OBJ文件的存放目錄設(shè)置成了D:\20100001,如圖3-9所示。圖3-9設(shè)置輸出文件的路徑⑥按快捷鍵“Ctrl+F9”執(zhí)行程序,正確無(wú)誤之后關(guān)閉TurboC2.0集成開(kāi)發(fā)環(huán)境。此時(shí)可以在D:\20100001看到生成的1-1.EXE和1-1.OBJ,如圖3-10所示。圖3-10執(zhí)行程序后在輸出目錄生成的?.EXE和?.OBJ文件⑦如果實(shí)驗(yàn)的上機(jī)環(huán)境是TurboC2.0集成開(kāi)發(fā)環(huán)境,以后的實(shí)驗(yàn)都可以按照以上步驟去做。題目2:在VisualC++?6.0集成開(kāi)發(fā)環(huán)境中輸入并運(yùn)行下面的程序,這個(gè)程序的功能是計(jì)算12345+5432,并在屏幕上輸出。

#include<stdio.h>

main()

{

printf("\n12345+5432=%d\n",12345+5432);

}VisualC++?6.0是Windows操作系統(tǒng)上主流的可視化C語(yǔ)言集成開(kāi)發(fā)環(huán)境,具有使用方便、編程快速的特點(diǎn),可以使用漢字,有相當(dāng)多的程序員使用它,是大多數(shù)人認(rèn)為最好的C語(yǔ)言開(kāi)發(fā)環(huán)境。同時(shí),全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言的上級(jí)考試環(huán)境就是VisualC++?6.0。下面介紹VisualC++?6.0中C程序的編寫步驟:(1)進(jìn)入VisualC++?6.0集成開(kāi)發(fā)環(huán)境:依次點(diǎn)擊“開(kāi)始菜單→所有程序→MicrosoftVisualC++6.0→MicrosoftVisualC++6.0”,打開(kāi)如圖3-11所示的界面。圖3-11VisualC++?6.0集成開(kāi)發(fā)環(huán)境界面(2)創(chuàng)建工作空間:執(zhí)行“File”→“New”命令;在“New”對(duì)話框中,切換到“Workspaces”選項(xiàng)卡;輸入工作空間名(WorkspacesName)和保存位置(Location);然后單擊“OK”按鈕。如圖3-12所示。不管開(kāi)發(fā)幾個(gè)程序,一般每個(gè)人只需一個(gè)工作空間(當(dāng)然也可以每個(gè)程序一個(gè)),主要用于把個(gè)人的源碼及其相關(guān)資源集中在一起,以方便管理。圖3-12創(chuàng)建工作空間窗口(3)新建一空白工程:一個(gè)工程(或項(xiàng)目),一般是一套軟件的源程序及其資源的集合。執(zhí)行“File”→“New”命令;在“New”對(duì)話框中,切換到“Projects”選項(xiàng)卡;選中“Win32ConsoleAppliaction”(Win32控制臺(tái)應(yīng)用程序)和“Addtocurrentworkspace”(添加到當(dāng)前的工作空間),輸入工程名Projectname和保存位置Location;工程名Projectname一般要取與程序功能相關(guān)的名稱,如圖3-13所示。然后單擊“OK”按鈕,彈出如圖3-14所示的窗口,單擊“Anemptyproject”選項(xiàng),創(chuàng)建一個(gè)空白工程,單擊“Finish”按鈕,出現(xiàn)新工程信息窗口,如圖3-15所示,最后單擊“OK”按鈕,空白工程創(chuàng)建完成。圖3-13設(shè)置工程名稱窗口圖3-14選擇空白工程窗口圖3-15新工程信息窗口(4)添加、編輯、保存C源程序文件:執(zhí)行“File”→“New”命令;在“New”對(duì)話框中,切換到“Files”選項(xiàng)卡;選中“C++SourceFile”或者“TextFile”,輸入文件名(擴(kuò)展名必須為?.c),如圖3-16所示,然后單擊“OK”按鈕。在編輯窗口,輸入源程序,并保存,如圖3-17所示。圖3-16輸入源程序名對(duì)話框圖3-17保存源程序?qū)υ捒?5)編譯、鏈接、執(zhí)行源程序:執(zhí)行“Build”→“Execute”命令,或單擊“ExecuteProgram”圖標(biāo),或按快捷鍵“Ctrl+F5”,都會(huì)彈出如圖3-18所示的對(duì)話框。然后單擊“是”按鈕,查看結(jié)果。圖3-18編譯、鏈接、執(zhí)行源程序?qū)υ捒?6)查看結(jié)果:如果沒(méi)有編譯或鏈接錯(cuò)誤,將出現(xiàn)如圖3-19所示的運(yùn)行結(jié)果;如果有錯(cuò)誤,則會(huì)在消息框給出錯(cuò)誤提示信息。圖3-19運(yùn)行結(jié)果(7)退出VC++6.0環(huán)境。方法如同一般Windows窗口的退出。題目3:在Win-TC集成開(kāi)發(fā)環(huán)境中輸入并運(yùn)行下面的程序,這個(gè)程序的功能是在屏幕上輸出星號(hào)組成的圖案。01

#include<stdio.h>02

#include<conio.h>03

main()04

{05

printf("*\n");06

printf("***\n");07

printf("*****\n");08

printf("*******\n");09

getch();10

}代碼說(shuō)明:

·第01行,編譯預(yù)處理命令,包含標(biāo)準(zhǔn)輸入輸出頭文件stdio.h,因?yàn)榈?6行用到了格式化輸出函數(shù)printf()。

·第02行,編譯預(yù)處理命令,包含頭文件conio.h,因?yàn)榈?0行用到了getch()函數(shù)來(lái)暫停以查看屏幕。

·第05行到第08行,直接用格式化輸出函數(shù)printf()打印出星號(hào)圖案。Win-TC集成開(kāi)發(fā)環(huán)境是TurboC2.0編譯外殼程序,該軟件的特點(diǎn)就是在Windows下編輯TC源程序,能夠充分利用Windows的支持剪貼板和中文的優(yōu)點(diǎn)。與本書配套的《教材》中所有示例程序均是通過(guò)Win-TC集成開(kāi)發(fā)環(huán)境調(diào)試通過(guò)。下面是Win-TC集成開(kāi)發(fā)環(huán)境中C程序編寫的步驟:(1)進(jìn)入Win-TC集成開(kāi)發(fā)環(huán)境:依次點(diǎn)擊“開(kāi)始菜單→所有程序→Win-TC→Win-TC”,打開(kāi)如圖3-20所示的窗口,然后單擊“知道了”按鈕,打開(kāi)Win-TC界面,如圖3-21所示。圖3-20操作系統(tǒng)檢測(cè)警告窗口圖3-21Win-TC集成開(kāi)發(fā)環(huán)境界面圖3-20的窗口給出了一個(gè)規(guī)范的C語(yǔ)言源程序的范例。main()函數(shù)的返回值類型可以定義為int型,程序可以給操作系統(tǒng)返回一個(gè)整數(shù)值。所以,一般不要將main()函數(shù)的返回值類型寫成void類型。在Win-Tc環(huán)境中編寫程序,源程序末尾必須要加getch()或者system("pause")函數(shù)才能夠看到屏幕輸出的結(jié)果。而在前面介紹的TurboC2.0環(huán)境或VisualC++6.0環(huán)境中都可以不加getch()或者system("pause")函數(shù)。在TurboC2.0環(huán)境中可以用快捷鍵“Alt+F5”來(lái)查看屏幕。(2)新建文件:執(zhí)行“文件”→“新建”命令,如圖3-22所示。圖3-22新建文件窗口(3)輸入源程序:從光標(biāo)所在處開(kāi)始輸入源程序,如圖3-23所示。圖3-23在編輯區(qū)輸入源程序窗口輸入源程序時(shí),每一行代碼前都有自動(dòng)生成的行號(hào)。編輯時(shí)還可以使用復(fù)制、粘貼操作,所以會(huì)加快程序編輯的速度。編輯菜單下有編輯配置命令,可以設(shè)置編輯時(shí)的一些屬性,例如“顏色和字體設(shè)置”等。(4)保存源程序:執(zhí)行“文件”→“保存文件”命令,如圖3-24所示。在“另存為”對(duì)話框中選擇合適的路徑并輸入文件名,點(diǎn)擊“保存”按鈕。圖3-24保存源程序?qū)υ捒?5)編譯、鏈接、執(zhí)行源程序:按快捷鍵“Ctrl+F9”或執(zhí)行“運(yùn)行”菜單下的“編譯鏈接并運(yùn)行”命令,如圖3-25所示。圖3-25編譯、鏈接、執(zhí)行源程序?qū)υ捒?6)查看結(jié)果:如果沒(méi)有編譯或鏈接錯(cuò)誤,將出現(xiàn)如圖3-26所示的運(yùn)行結(jié)果;如果有錯(cuò)誤,則會(huì)在消息框給出錯(cuò)誤提示信息。(7)按任意鍵將返回源程序編輯界面。圖3-26運(yùn)行結(jié)果四、實(shí)驗(yàn)思考題1.如何用記事本編輯源程序,然后在TurboC2.0集成開(kāi)發(fā)環(huán)境中被調(diào)用?2.簡(jiǎn)述C語(yǔ)言源程序的結(jié)構(gòu)。實(shí)驗(yàn)二常量、變量及數(shù)據(jù)類型

一、實(shí)驗(yàn)?zāi)康?.掌握C語(yǔ)言的數(shù)據(jù)類型,熟悉整型、字符型、實(shí)型數(shù)據(jù)的常量表示。2.掌握如何定義一個(gè)整型、字符型、實(shí)型變量,以及對(duì)它們賦值的方法。3.了解數(shù)據(jù)的溢出錯(cuò)誤和舍入誤差。4.進(jìn)一步熟悉C程序的編輯、編譯、鏈接和運(yùn)行的過(guò)程。二、實(shí)驗(yàn)要求1.實(shí)驗(yàn)前復(fù)習(xí)常量、變量、數(shù)據(jù)類型的基本概念以及常量、變量的表示方法。2.認(rèn)真預(yù)習(xí)本實(shí)驗(yàn)內(nèi)容。3.本實(shí)驗(yàn)要求2學(xué)時(shí)完成。三、實(shí)驗(yàn)內(nèi)容和步驟題目1:輸入并運(yùn)行下面的程序。(1)定義兩個(gè)整型變量并初始化,同時(shí)將其相加之和顯示出來(lái)。01

#include<stdio.h>02

#include<stdlib.h>03

04

main()05

{06

intx=10,y=100,z;0708

z=x+y;09

printf("z=%d",z);1011

system("pause");12

}步驟:打開(kāi)TurboC2.0環(huán)境,新建文件,輸入源程序,按快捷鍵“Ctrl+F9”運(yùn)行程序并查看結(jié)果。(2)從鍵盤輸入一個(gè)整數(shù),并將其值加1,然后顯示出來(lái)。01

#include<stdio.h>0

2#include<stdlib.h>

0304

main()05

{

06

intx;

07

08

scanf("%d",&x);

09

++x;

10

printf("%d",x);

11

12

system("pause");13

}步驟:打開(kāi)TurboC2.0環(huán)境,新建文件,輸入源程序,按快捷鍵“Ctrl+F9”運(yùn)行程序并查看結(jié)果。步驟:打開(kāi)TurboC2.0環(huán)境,新建文件,輸入源程序,按快捷鍵“Ctrl+F9”運(yùn)行程序并查看結(jié)果。題目2:上機(jī)調(diào)試下列程序,分析出運(yùn)行結(jié)果,并與上機(jī)運(yùn)行結(jié)果作對(duì)比。

01

#include<stdio.h>

02

#include<stdlib.h>

03

04

main()

05

{

06

floatx=45.982;

07

08

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

09

10

system("pause");

11

}題目3:字符數(shù)據(jù)的輸出,分析出運(yùn)行結(jié)果,并與上機(jī)運(yùn)行結(jié)果作對(duì)比。

01

#include<stdio.h>

02

#include<stdlib.h>

03

04

main()

05

{

06

charc='A';

07

08

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

09

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

10

11

system("pause");

12

}題目4:上機(jī)調(diào)試下列程序,分析出運(yùn)行結(jié)果,并與上機(jī)運(yùn)行結(jié)果作對(duì)比。

01

#include<stdio.h>

02

#include<stdlib.h>

0304

main()05

{06

intx=32767,y=-32768;

07

08

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

09

printf("x+1=%d\n",x+1);

10

printf("y=%d\n",y);

11

printf("y-1=%d\n",y-1);

12

13

system("pause");

14

}題目5:用sizeof運(yùn)算符求出本編譯系統(tǒng)中各種數(shù)據(jù)類型所占內(nèi)存字節(jié)數(shù),分析出運(yùn)行結(jié)果,并與上機(jī)運(yùn)行結(jié)果作對(duì)比。01

#include<stdio.h>02

#include<stdlib.h>

0304

main()05

{

06

printf("sizeof(int)=%d\n",sizeof(int));

07

printf("sizeof(short)=%d\n",sizeof(short));

08

printf("sizeof(long)=%d\n",sizeof(long));

09

printf("sizeof(float)=%d\n",sizeof(float));

10

printf("sizeof(double)=%d\n",sizeof(double));

11

printf("sizeof(char)=%d\n",sizeof(char));

12

13

system("pause");

14

}四、實(shí)驗(yàn)思考題1.為什么C語(yǔ)言中的每個(gè)數(shù)據(jù)都要屬于一個(gè)特定的類型?2.使用計(jì)算機(jī)編寫程序時(shí)如何選擇合適的數(shù)據(jù)類型?3.計(jì)算機(jī)中表示的數(shù)是連續(xù)的嗎?4.實(shí)型數(shù)據(jù)存儲(chǔ)時(shí)為什么會(huì)有誤差?實(shí)驗(yàn)三運(yùn)算符與表達(dá)式

一、實(shí)驗(yàn)?zāi)康?/p>

1.掌握C語(yǔ)言算術(shù)、賦值、自增、自減運(yùn)算符及相應(yīng)表達(dá)式。

2.掌握C語(yǔ)言關(guān)系、邏輯運(yùn)算符及相應(yīng)表達(dá)式。

3.掌握不同類型數(shù)據(jù)之間的賦值規(guī)律。

4.了解強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換以及運(yùn)算符的優(yōu)先級(jí)、結(jié)合性。

5.學(xué)會(huì)根據(jù)表達(dá)式編寫相應(yīng)程序,驗(yàn)證表達(dá)式結(jié)果的方法。二、實(shí)驗(yàn)要求1.實(shí)驗(yàn)前復(fù)習(xí)各種運(yùn)算符的作用以及表達(dá)式的值的類型。2.認(rèn)真預(yù)習(xí)本實(shí)驗(yàn)內(nèi)容。3.本實(shí)驗(yàn)要求2學(xué)時(shí)完成。三、實(shí)驗(yàn)內(nèi)容和步驟題目1:已知:a=5,b=6,x=8.7,y=3.4(a,b整型,x,y浮點(diǎn)),計(jì)算算術(shù)表達(dá)式(float)(a+b)/2+(int)x%(int)y的值。試編程上機(jī)驗(yàn)證。①先判斷結(jié)果值類型,可設(shè)置一個(gè)此類型的變量用于記錄表達(dá)式結(jié)果,本例用s存放結(jié)果;②程序先給幾個(gè)變量賦初值,然后將表達(dá)式賦值給變量s;③最后打印變量s的值就是表達(dá)式的值。

01

#include<stdio.h>

02

main()

03

{

04

inta=5,b=6;

05

floatx=8.7,y=3.4;

06

doubles;

07

s=(float)(a+b)/2+(int)x%(int)y;

08

printf("(float)(a+b)/2+(int)x%%(int)y=%f\n",s);

09

getch();

10

}題目2:已知:a=10,x=8.3,y=5.9(a整型,x,y浮點(diǎn)),計(jì)算算術(shù)表達(dá)式x+a%3*(int)(x+y)%2/4的值。試編程上機(jī)驗(yàn)證。01

#include<stdio.h>02

main()03

{04

inta=10;05

floatx=8.3,y=5.9;06

doubles;07

s=x+a%3*(int)(x+y)%2/4;08

printf("x+a%%3*(int)(x+y)%%2/4=%f\n",s);09

getch();

10

}題目3:自增、自減運(yùn)算符練習(xí)。分析下面程序結(jié)果,并上機(jī)驗(yàn)證。01

#include<stdio.h>02

main()03

{

04

inta=5,b=6;

05

floatx=8.7,y=3.4;

06

printf("%d\t%d\n",++a,b+a++);

07

printf("%f\t%f\n",--y,x+y--);08

}題目4:賦值表達(dá)式練習(xí)。分析下面程序結(jié)果,并上機(jī)驗(yàn)證。01

#include<stdio.h>02

main()03

{04

inta,b;05

floatx,y;06

x=y=b=a=3;07

a+=a;08

y-=2;09

b*=2+3;10

x/=x+x;11

a%=(b%=2);12

a+=a-=a*=a;

13

printf("%d\t%d\n",a,b);

14

printf("%f\t%f\n",x,y);15}題目5:關(guān)系表達(dá)式練習(xí)。編程判斷兩個(gè)分?jǐn)?shù)12/345678999與34/567899999哪個(gè)大?01

#include<stdio.h>02

main()03

{04

doublex,y;05

x=12./345678999;06

y=34./567899999;07

printf("(x>y)==%d\n",x>y);08

}題目6:?jiǎn)柼?hào)表達(dá)式練習(xí)。分析下面程序結(jié)果,并上機(jī)驗(yàn)證。01

#include<stdio.h>02

main()03

{04

inta=5,b=6;05

floatx=8.7,y=3.4;06

printf("x<y?x:a<b?a:b=%f\n",x<y?x:a<b?a:b);07

}題目7:邏輯表達(dá)式練習(xí)。分析下面程序結(jié)果,并上機(jī)驗(yàn)證。

01

#include<stdio.h>

02

main()

03

{

04

charc; /*定義字符變量c*/

05

printf("pleaseinputacharacter\n");/*輸出信息*/

06

scanf("%c",&c); /*從鍵盤輸入字符*/

07

c=(c>='a'&&c<='z')?(c-32):c;/*條件運(yùn)算符使用*/

08

printf("%c\n",c); /*輸出結(jié)果*/

09

}題目8:逗號(hào)表達(dá)式練習(xí)。分析下面程序結(jié)果,并上機(jī)驗(yàn)證。01

#include<stdio.h>02

main()03

{04

inta,b,c,d;05

a=2,b=3,c=4;06

d=a,printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);07

}四、實(shí)驗(yàn)思考題1.總結(jié)賦值轉(zhuǎn)換原則。2.什么是自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換?實(shí)驗(yàn)四基本輸入、輸出

一、實(shí)驗(yàn)?zāi)康?/p>

1.掌握格式輸入函數(shù)scanf()函數(shù)輸入各種類型數(shù)據(jù)的方法。

2.掌握格式輸出函數(shù)printf()函數(shù)輸出各種類型數(shù)據(jù)的方法。

3.掌握字符輸入、輸出函數(shù)getchar()和putchar()的使用方法。

4.理解C語(yǔ)言程序的順序結(jié)構(gòu)。二、實(shí)驗(yàn)要求

1.實(shí)驗(yàn)前復(fù)習(xí)基本輸入、輸出函數(shù)的用法。

2.認(rèn)真預(yù)習(xí)本實(shí)驗(yàn)內(nèi)容。

3.本實(shí)驗(yàn)要求2學(xué)時(shí)完成。三、實(shí)驗(yàn)內(nèi)容和步驟題目1:用下面的scanf()函數(shù)輸入數(shù)據(jù),使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a'。請(qǐng)問(wèn)在鍵盤上如何輸入?正確輸入各數(shù)據(jù)后,請(qǐng)給出運(yùn)行結(jié)果。01

#include<stdio.h>02

#include<stdlib.h>0304

main()05

{06

inta,b;07

floatx,y;08

charc1,c2;09

10

scanf("a=%d

b=%d",&a,&b);

11

scanf("%f

%e",&x,&y);

12

scanf("%c

%c",&c1,&c2);

13

printf("a=%d,b=%d,x=%f,",a,b,x);

14

printf("y=%f,c1=%c,c2=%c\n",y,c1,c2);

15

16

system("pause");

17

}思考:如果第三個(gè)scanf()函數(shù)雙引號(hào)里面去掉空格字符,寫成:scanf("%c%c",&c1,&c2);按以上的內(nèi)容輸入,輸出將如何變化?題目2:編寫程序,在屏幕上輸出下列字符串。Hello,world!f:\test\a.txtShesays:"IliketheCprogramminglanguage!"參考程序如下:01#include<stdio.h>02#include<stdlib.h>

0304main()05

{06

printf("Hello,world!\n");07

printf("f:\\test\\a.txt\n");08

printf("Shesays:\"IliketheCprogramminglanguage!\"\n");0910

system("pause");11

}題目3:字符數(shù)據(jù)的輸入、輸出。從鍵盤輸入一個(gè)英文小寫字母,然后輸出對(duì)應(yīng)的大寫字母。試著完成下面的程序,并查看運(yùn)行結(jié)果是否正確。

01

#include<stdio.h>

02

#include<stdlib.h>

03

04

main()

05

{

06

charc;07

08

printf("Pleaseinputaalphabet:\n");

09

【1】=getchar();

10

putchar(【2】);

11

putchar('\n');

12

13

system("pause");

14

}題目4:(《教材》例4-8的程序)輸入一名學(xué)生的學(xué)號(hào)(7位數(shù)字)、生日(年-月-日)、性別(M:男;F:女)及三門功課(語(yǔ)文、數(shù)學(xué)、英語(yǔ))的成績(jī),現(xiàn)要求計(jì)算該學(xué)生的總分和平均分,并將該學(xué)生的全部信息輸出(包括總分、平均分)。輸入、輸出的形式如圖3-27所示。圖3-27題目4運(yùn)行結(jié)果題目5:已知三角形三邊長(zhǎng)分別為8,9,10,求此三角形的面積。要求:程序填空并寫出運(yùn)行結(jié)果。01

#include<stdio.h>02

#include<stdlib.h>03

#include<【1】>

0405

main()06

{07

inta=8,b=9,c=10;08

doubles,aera;0910

s=(a+b+c)/【2】;11

aera=sqrt(s*(【3】)*(【4】)*(【5】));12

printf("Theaeraofthistriagleis:%.3f\n",【6】);13

putchar('\n');1415

system("pause");16

}四、實(shí)驗(yàn)思考題1.用scanf()接收多個(gè)數(shù)值型數(shù)據(jù)時(shí),有哪些分隔數(shù)據(jù)項(xiàng)的方法?2.用scanf()如何正確輸入多個(gè)字符型數(shù)據(jù),有哪些方法?3.用scanf()如何正確接收多個(gè)字符串?dāng)?shù)據(jù),有哪些方法?4.如果字符串中有空格,能否用scanf()函數(shù)輸入?實(shí)驗(yàn)五選擇結(jié)構(gòu)程序設(shè)計(jì)

一、實(shí)驗(yàn)?zāi)康?.了解C語(yǔ)言表示邏輯量的方法(以0代表“假”,以非0代表“真”)。2.學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式,熟練掌握if語(yǔ)句和switch語(yǔ)句。3.結(jié)合程序掌握一些簡(jiǎn)單的算法。二、實(shí)驗(yàn)要求1.做實(shí)驗(yàn)前復(fù)習(xí)關(guān)系表達(dá)式、邏輯表達(dá)式和if語(yǔ)句、switch語(yǔ)句。2.認(rèn)真預(yù)習(xí)本實(shí)驗(yàn)內(nèi)容。3.本實(shí)驗(yàn)要求4學(xué)時(shí)完成。三、實(shí)驗(yàn)內(nèi)容和步驟題目1:將下列由程序流程圖(見(jiàn)圖3-28)描述的算法,轉(zhuǎn)換為C源代碼,然后輸入計(jì)算機(jī)并運(yùn)行。圖3-28程序流程圖題目2:輸入一個(gè)整數(shù),打印出它是奇數(shù)還是偶數(shù)。要求:程序填空,上機(jī)運(yùn)行并寫出運(yùn)行結(jié)果。參考程序如下:

01

#include<stdio.h>

02

#include<conio.h>

03

main()

04

{

05

inta;

06

rintf(“\nPleaseinputainteger:\n”);

07

scanf("%d",【1】);08

if(【2】)09

printf("Itisanoddnumber.\n");10

else11

printf("Itisanevennumber.\n");12

getch();13

}題目3:計(jì)算如下分段函數(shù)值:

具體要求如下:①

用if語(yǔ)句實(shí)現(xiàn)分支。自變量x與函數(shù)值均用單精度類型。

自變量x用scanf()函數(shù)輸入,且輸入前要有提示。結(jié)果的輸出采用以下形式:x=具體值,f(x)=具體值③

程序填空,上機(jī)運(yùn)行并分別輸入x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0,運(yùn)行該程序,并寫出運(yùn)行結(jié)果。01

#include<stdio.h>02

#include<conio.h>03

main()04

{

05

floatx,y;06

printf("\nPleaseinputfloatx:\n");07

scanf("%f",【1】);08

if(【2】)09

y=x*x+x-6;10

elseif(【3】)11

y=x*x-5*x+6;12

else13

y=x*x-x-1;14

printf("\nx=%g,f(x)=%g\n",x,y);15

getch();16

}題目4:輸入一個(gè)年份,判斷是不是閏年。閏年的條件有兩個(gè):①能被4整除,但不能被100整除;②能被400整除。要求:程序填空并寫出運(yùn)行結(jié)果。參考程序如下:01

#include<stdio.h>02

#include<conio.h>03

main()04

{

05

intyear;06

printf("\nPleaseinputayear:\n");07

scanf("%d",【1】);08

if(year%4==0&&year%100!=0||【2】==0)09

printf("%disleap\n\n",

【3】);10

else11

printf("%disnotleap\n\n",【4】);12

getch();13

}

題目5:由鍵盤輸入3個(gè)整數(shù),判斷以此3個(gè)數(shù)為邊長(zhǎng)的三角形屬于什么類型(不等邊、等腰、等邊或不能構(gòu)成三角形)。要求:程序填空,并寫出運(yùn)行結(jié)果。參考程序如下:01

#include<stdio.h>02

#include<conio.h>

0304main()05{06

inta,b,c;07

printf("\nPleaseinputa,b,c:\n");08

scanf("%d%d%d",

【1】);09

if(【2】)10

if(【3】)11

printf(“Itisanequillateraltriangle.\n”);/*輸出是等邊三角形*/12

elseif(【4】)13

printf(“Itisanisoscelestriangle.\n”);/*輸出是等腰三角形*/14

else15printf("Itisascalenetriangle.\n");/*輸出是不等邊三角形*/16

else17printf("Itisnottriangle!\n");/*輸出不是三角形*/1819getch();20}題目6:根據(jù)百分制分?jǐn)?shù)決定成績(jī)等級(jí)如下:①80分(含)以上為A級(jí)。②70分(含)以上且80分以下為B級(jí)。③60分(含)以上且70分以下為C級(jí)。④60分以下為D級(jí)。用多分支語(yǔ)句if-elseif和switch兩種方法編寫程序,輸入一個(gè)百分制分?jǐn)?shù),輸出相應(yīng)的等級(jí)。要求:程序填空,并寫出運(yùn)行結(jié)果。方法一:

01

#include<stdio.h>

02

#include<conio.h>

03

main()

04

{

05

floatscore;

06

charrank;

07

printf("\nPleaseinputascore:\n");

08

scanf("%f",【1】);

09

if(【2】)

10

{11

printf("Inputerror!\n");/*輸入錯(cuò)誤*/12

getch();13

exit(0);/*結(jié)束程序*/14

}15

elseif(【3】)16

rank='A';17

elseif(【4】)18

rank='B';19

elseif(【5】)20rank='C';21

else22

rank='D';23

printf("%gisrank%c.\n",score,rank);24

getch();25

}方法二:

01

#include<stdio.h>

02

#include<conio.h>

03

main()

04

{

05

floatscore;intx;

06

charrank;

07

printf("\nPleaseinputascore:\n");

08

scanf("%f",【1】);

09

x=(int)score/10;10

if(score>100)11x=11;12

switch(x)13

{14case10:15case9:16case8:rank=【2】;break;17case7:rank=【3】;break;18case6:rank=【4】;break;19case5:20case4:21case3:22case2:23case1:24case0:rank=【5】;break;25default:printf("Inputerror!\n"); /*輸入錯(cuò)誤*/26getch();27exit(0); /*結(jié)束程序*/28}29printf("%gisrank%c.\n",score,rank);30getch();31}題目7:由鍵盤輸入3個(gè)整數(shù),按降序打印這3個(gè)數(shù)。請(qǐng)編寫程序并上機(jī)調(diào)試。

四、實(shí)驗(yàn)思考題如何判斷一個(gè)數(shù)n能否被3和5整除。實(shí)驗(yàn)六循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

一、實(shí)驗(yàn)?zāi)康?/p>

1.掌握在設(shè)計(jì)條件型循環(huán)結(jié)構(gòu)時(shí),如何正確地設(shè)定循環(huán)條件。

2.掌握如何正確地控制計(jì)數(shù)型循環(huán)結(jié)構(gòu)的循環(huán)次數(shù)。

3.練習(xí)并掌握選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的嵌套、多重循環(huán)的應(yīng)用。

4.掌握在程序設(shè)計(jì)中用循環(huán)的方法實(shí)現(xiàn)一些常用算法,加強(qiáng)調(diào)試程序的能力。二、實(shí)驗(yàn)要求1.復(fù)習(xí)while、do-while、for語(yǔ)句和continue、break語(yǔ)句。2.能夠用流程圖表示實(shí)驗(yàn)題目的算法。3.能夠獨(dú)立調(diào)試運(yùn)行實(shí)驗(yàn)題目。4.本實(shí)驗(yàn)要求4學(xué)時(shí)完成。三、實(shí)驗(yàn)內(nèi)容和步驟題目1:分別用while循環(huán)和for循環(huán)計(jì)算:

1?+?2?+?3?+?…?+?100?=??要求:寫出程序并上機(jī)查看運(yùn)行結(jié)果。題目2:輸入一行字符,分別統(tǒng)計(jì)出其中大小寫英文字母、空格、數(shù)字和其他字母的個(gè)數(shù)。要求:程序填空,并寫出兩組運(yùn)行結(jié)果。01

#include<stdio.h>02

#include<conio.h>03

#include<ctype.h>04

main()05

{06

charc; 07

intletter=0,capital=0,lower=0,space=0,digital=0,other=0;08

printf("\ninputalinecharacter:\n");09

while((c=getchar())!='\n')10

{11

if(【1】) /*統(tǒng)計(jì)大小寫字母的個(gè)數(shù)*/12{13letter++;14if(【2】)15lower++; /*統(tǒng)計(jì)小寫字母的個(gè)數(shù)*/16}17elseif(【3】)18space++; /*統(tǒng)計(jì)空格的個(gè)數(shù)*/19elseif(【4】)20digital++; /*統(tǒng)計(jì)數(shù)字的個(gè)數(shù)*/21else22other++; /*統(tǒng)計(jì)其他字符的個(gè)數(shù)*/23}24capital=letter-lower;25printf("Letter:%d(Capital:%dLowercase: %d)\n",letter,capital,lower);26

printf("Spaces:%d\nDigital:%d\nOther:

%d\n",space,digital,other);27

getch();28

}

題目3:求兩個(gè)正整數(shù)的最大公約數(shù)和最小公倍數(shù)。分析:求兩個(gè)正整數(shù)的最大公約數(shù)采用輾轉(zhuǎn)相除法:①輸入正整數(shù)m和n,保證m不小于n。②如果n≠0,則求r=m%n,然后m=n,n=r;重復(fù)此操作直到n=0。③如果n=0,則此時(shí)m就是最大公約數(shù),而最小公倍數(shù)是這兩數(shù)之積除以這兩個(gè)數(shù)的最大公約數(shù)得到的商。要求:程序填空,并寫出兩組運(yùn)行結(jié)果。01

#include<stdio.h>02

#include<conio.h>03

main()04

{05

intm,n,r,a;06

printf("\nInput2positiveinteger:\n");07

scanf("%d%d",【1】);08

a=【2】;09

if(m<n)10

{11

m=m+n;12n=m-n;13m=m-n;14

}15

while(n!=0)16

{17

r=【3】;18

m=n;19

n=r;20

}21

printf(“Thelargestdivisoris:%d\n”,【4】);/*輸出最大公約數(shù)*/22

printf(“Thesmallestcommonmultipleis:%d\n”,a/m);/*輸出最小公倍數(shù)*/23getch();24}題目4:在屏幕上打印出下三角的乘法表,如圖3-29所示。試著完成下面的程序,并查看運(yùn)行結(jié)果是否正確。圖3-29乘法表01

#include<stdio.h>02

#include<conio.h>03

main()04

{05

inti,j;06

for(i=1;i<=9;i++)07

{08

for(j=1;【1】;j++)09

printf("%d*%d=%-4d",i,j,【2】);10

printf("\n");11

}12

getch();13

}題目5:在屏幕上打印出1000以內(nèi)的素?cái)?shù),每行打印10個(gè),并統(tǒng)計(jì)個(gè)數(shù)。要求:程序填空,并寫出運(yùn)行結(jié)果。01

#include<stdio.h>02

#include<conio.h>03

main()04

{05

inti,j,prime,s=0;06

for(i=2;【1】;i++)07

{08prime=1;09for(j=2;j<=i-1;j++)10{11if(【2】)12{13prime=0;14break;15}16}17if(【3】)18{19printf("%6d",i);20s++;21if(【4】)22printf("\n");23}24}25printf("\nThesumofprimeis:%d",s);26getch();27}題目6:打印出如圖3-30所示的圖案。要求:程序填空,并寫出運(yùn)行結(jié)果。圖3-30*號(hào)圖案01

#include<stdio.h>02

#include<conio.h>03

main()

04

{05

inti,j;06

charspace='

';07

for(i=0;i<=3;i++)08

{

09

for(j=1;【1】;j++)10printf("%c",space);11for(j=1;j<=3;j++)12printf("*");13for(j=1;【2】;j++)14printf("%c",space);15for(j=1;j<=3;j++)16printf("*");17【3】;18

}19

}題目7:編程把下列數(shù)列延長(zhǎng)到第50項(xiàng):1、2、5、10、21、42、85、170、341、682、…屏幕輸出時(shí)要求格式對(duì)齊。要求:上機(jī)運(yùn)行,并寫出運(yùn)行結(jié)果。01

#include<stdio.h>02

#include<conio.h>03/*奇數(shù)項(xiàng)?=?前一偶數(shù)項(xiàng)?×?2?+?1,偶數(shù)項(xiàng)?=?前一奇數(shù)項(xiàng)?×?2*/04main()05{06inti;07

doubleresult;08

result=0;09

for(i=1;i<=50;i++)10

{11

if(i%2==1)12result=result*2+1;13else14result=result*2;15

printf("%-15.0f",result);16if(i%5==0)17printf("\n");18}19}四、實(shí)驗(yàn)思考題1.求解1000以內(nèi)的完數(shù)。如果一個(gè)數(shù)恰好等于它的所有因子(包括1但不包括自身)之和,例如:6的因子為1,2,3,且1?+?2?+?3?=?6,因此6是一個(gè)“完數(shù)”。計(jì)算并輸出1000以內(nèi)的所有“完數(shù)”之和,輸出形式為:完數(shù)1?+?完數(shù)2?+?…?=?和值。2.計(jì)算分?jǐn)?shù)序列:

前20項(xiàng)之和。3.在嵌套循環(huán)結(jié)構(gòu)中如何提高編寫程序的效率?4.如何避免死循環(huán)?實(shí)驗(yàn)七數(shù)

一、實(shí)驗(yàn)?zāi)康?.掌握數(shù)組的定義及初始化的規(guī)則。2.掌握C語(yǔ)言數(shù)組的基本用法。3.練習(xí)并掌握常用的排序算法。4.練習(xí)并掌握和數(shù)組有關(guān)的其他簡(jiǎn)單算法。二、實(shí)驗(yàn)要求1.實(shí)驗(yàn)前復(fù)習(xí)數(shù)組的定義以及數(shù)組元素的引用方法。2.能夠用程序流程圖來(lái)描述實(shí)驗(yàn)題目的算法。3.本實(shí)驗(yàn)要求4學(xué)時(shí)完成。三、實(shí)驗(yàn)內(nèi)容和步驟題目1:閱讀下面的程序,寫出運(yùn)行結(jié)果并說(shuō)出程序的功能,然后上機(jī)驗(yàn)證。01

#include<stdio.h>02

#include<conio.h>03

main()04

{05

inti,f[10];06

f[0]=f[1]=1;07

for(i=2;i<10;i++)08

f[i]=f[i-1]+f[i-2];09

puts("\n");10

for(i=0;i<10;i++)

11

{12printf("%6d",f[i]);13if((i+1)%5==0)14puts("\n");15

}16getch();17

}題目2:從鍵盤上任意輸入10個(gè)整數(shù),按從小到大的順序顯示在屏幕上。以下采用選擇法排序。要求:程序填空,并寫出運(yùn)行結(jié)果。01

#include<stdio.h>02

#include<conio.h>03

main()04

{05

inti,j,a[10],p;60

printf("\nPleaseinput10integer:\n");70

for(i=0;i<10;i++)08

scanf("%d",【1】);09

printf("Beforesortint:\n");10

for(i=0;i<10;i++)11

{12

printf("%6d",a[i]);13

}14

for(i=0;i<10-1;i++)15

{16

p=i;17

for(j=i+1;j<10;j++)18if(【2】)19p=j;20if(p!=i)21{22a[p]=a[p]+a[i];23a[i]=a[p]-a[i];24a[p]=a[p]-a[i];25}26

}27

printf("\nAftersortint:\n");28

for(i=0;i<10;i++)29

{30

printf("%6d",【3】);31

}32printf("\n");33getch();34}題目3:將數(shù)列1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,1,5,10,10,5,1,…延長(zhǎng)到第55項(xiàng)。運(yùn)行下面的程序,并查看運(yùn)行結(jié)果是否正確。(提示:以上數(shù)列由楊輝三角構(gòu)成,本題要求給出楊輝三角的前10行,楊輝三角的前10行即有55個(gè)數(shù)。將楊輝三角存儲(chǔ)在二維數(shù)組中,如圖3-31所示,分析楊輝三角的形成規(guī)律及存儲(chǔ)規(guī)律,完成程序編碼上機(jī)調(diào)試。)圖3-31楊輝三角的存儲(chǔ)01

#include<stdio.h>02

#include<conio.h>03

main()04

{05

inti,j,a[10][10],p=0;06

for(i=0;i<10;i++)07

for(j=0;j<=i;j++)08{09if(j==0||j==i)10a[i][j]=1;11else12a[i][j]=a[i-1][j]+a[i-1][j-1];13printf("%6d",a[i][j]);14if(++p%10==0)15printf("\n");16}17printf("\n");18getch();19}題目4:請(qǐng)編程計(jì)算圖3-32給出的矩陣周邊元素之和。要求:編寫程序,輸出并記錄結(jié)果。圖3-32矩陣題目5:用篩選法求100以內(nèi)的素?cái)?shù)。篩選法求素?cái)?shù)的基本思路是:判斷100以內(nèi)的每一個(gè)數(shù),逐個(gè)找出非素?cái)?shù)并把它去除,使得最后剩下的全是素?cái)?shù)。具體算法:①先去掉1。②用2、3、4、…、100作為除數(shù),去除該數(shù)以后所有的數(shù),把該數(shù)的倍數(shù)標(biāo)注為0,表示該數(shù)已從數(shù)組中去除。③循環(huán)結(jié)束,數(shù)組中不為0的數(shù)即為100之內(nèi)的素?cái)?shù)。要求:上機(jī)運(yùn)行并寫出運(yùn)行結(jié)果。01

#include<stdio.h>02

#include<conio.h>03

04

main()05

{06

inti,j,a[100];07

for(i=2;i<100;i++)08

{09a[i]=i;10

}

1112

for(i=2;i<100;i++)13for(j=i+1;j<100;j++)14if(a[i]!=0&&a[j]!=0&&a[j]%a[i]==0)15a[j]=0;

1617j=1;18for(i=2;i<100;i++)19

if(a[i]!=0)20{21printf("%4d",a[i]);22if(j++%5==0)23printf("\n");24}25

26getch();27}四、實(shí)驗(yàn)思考題

1.題目2中的10個(gè)數(shù)據(jù)如何能夠隨機(jī)生成?

2.請(qǐng)將題目2中數(shù)據(jù)采用冒泡法排序思想編程。并說(shuō)明冒泡法和選擇法的排序區(qū)別。

3.如何將題目3的結(jié)果輸出成圖3-31所示的下三角形式?實(shí)驗(yàn)八字符數(shù)組與字符串

一、實(shí)驗(yàn)?zāi)康?/p>

1.掌握字符數(shù)組的定義、初始化、數(shù)組元素的引用以及輸入、輸出。

2.理解字符串的概念。

3.練習(xí)并掌握字符數(shù)組的處理方法。

4.掌握常用字符串處理函數(shù)。

5.掌握字符串的排序方法。二、實(shí)驗(yàn)要求

1.實(shí)驗(yàn)前復(fù)習(xí)C語(yǔ)言中字符串的表示方法。

2.能用程序流程圖來(lái)描述實(shí)驗(yàn)題目的算法。

3.本實(shí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論