《C語(yǔ)言程序設(shè)計(jì)項(xiàng)目式教程高職》全套教學(xué)課件_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)項(xiàng)目式教程高職》全套教學(xué)課件_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)項(xiàng)目式教程高職》全套教學(xué)課件_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)項(xiàng)目式教程高職》全套教學(xué)課件_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)項(xiàng)目式教程高職》全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩1018頁(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)介

項(xiàng)目1初識(shí)C語(yǔ)言項(xiàng)目1初識(shí)C語(yǔ)言項(xiàng)目2掌握C語(yǔ)言的語(yǔ)法基礎(chǔ)項(xiàng)目3初識(shí)C語(yǔ)言項(xiàng)目4使用循環(huán)語(yǔ)句項(xiàng)目5使用數(shù)組處理數(shù)據(jù)項(xiàng)目6程序模塊化設(shè)計(jì)項(xiàng)目7使用指針提高程序開發(fā)效率項(xiàng)目8構(gòu)造數(shù)據(jù)類型項(xiàng)目9文件程序設(shè)計(jì)全套可編輯PPT課件

任務(wù)1認(rèn)識(shí)C語(yǔ)言任務(wù)2運(yùn)行C程序目錄前言在眾多的程序設(shè)計(jì)語(yǔ)言中,C語(yǔ)言以其較強(qiáng)的靈活性和實(shí)用性受到了廣大計(jì)算機(jī)應(yīng)用人員的喜愛(ài)。C語(yǔ)言的語(yǔ)法簡(jiǎn)潔、緊湊,使用方便、靈活,具有豐富的運(yùn)算符和數(shù)據(jù)類型,其程序的模塊化主要通過(guò)函數(shù)實(shí)現(xiàn)。目前,許多開發(fā)工具都遵循標(biāo)準(zhǔn)C語(yǔ)言的基本語(yǔ)法,如微軟的Visual

C++和C#及Java等;很多嵌入式系統(tǒng)都采用C語(yǔ)言來(lái)開發(fā)。本項(xiàng)目將簡(jiǎn)要介紹C語(yǔ)言的基本結(jié)構(gòu)以及C程序的開發(fā)過(guò)程。預(yù)習(xí)本項(xiàng)目,完成以下問(wèn)題?!締?wèn)題1】編寫程序規(guī)范的框架和結(jié)構(gòu),簡(jiǎn)單描述C語(yǔ)言程序的構(gòu)成?!締?wèn)題2】編寫好的C語(yǔ)言程序在計(jì)算機(jī)上如何運(yùn)行?學(xué)習(xí)目標(biāo)知識(shí)目標(biāo)1.了解計(jì)算機(jī)語(yǔ)言的概念以及C語(yǔ)言的特點(diǎn)。2.掌握簡(jiǎn)單C語(yǔ)言程序的基本構(gòu)成。3.熟悉C程序的實(shí)現(xiàn)過(guò)程。技能目標(biāo)1.具備編寫C語(yǔ)言程序的能力。2.具備安裝和使用Visual

C++開發(fā)平臺(tái)的能力。3.具備在Visual

C++環(huán)境下編寫C程序的能力。素質(zhì)目標(biāo)1.提升動(dòng)手能力和團(tuán)隊(duì)協(xié)作意識(shí)。2.掌握學(xué)習(xí)規(guī)律和客觀性原理、聯(lián)系的普遍性原理。任務(wù)1認(rèn)識(shí)C語(yǔ)言任務(wù)1

認(rèn)識(shí)C語(yǔ)言任務(wù)描述由于C語(yǔ)言既有高級(jí)語(yǔ)言的功能,又有低級(jí)語(yǔ)言的一些特點(diǎn),因此它既可以用來(lái)編寫系統(tǒng)軟件,也可以用來(lái)編寫應(yīng)用軟件。C語(yǔ)言在操作系統(tǒng)、工具軟件、圖形圖像處理軟件、數(shù)值計(jì)算、人工智能及數(shù)據(jù)庫(kù)系統(tǒng)等多個(gè)領(lǐng)域得到了廣泛的應(yīng)用。本任務(wù)要求使用C語(yǔ)言編寫程序?qū)崿F(xiàn)輸入矩形的兩條邊長(zhǎng),得到矩形的面積。知識(shí)準(zhǔn)備知識(shí)點(diǎn)1計(jì)算機(jī)語(yǔ)言的種類計(jì)算機(jī)語(yǔ)言的種類非常多,總的來(lái)說(shuō),可以分成機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言三大類。任務(wù)1

認(rèn)識(shí)C語(yǔ)言機(jī)器語(yǔ)言是由0、1組成的機(jī)器指令的集合,是第一代計(jì)算機(jī)語(yǔ)言。計(jì)算機(jī)使用的是由0和1組成的二進(jìn)制數(shù),二進(jìn)制是計(jì)算機(jī)語(yǔ)言的基礎(chǔ)。計(jì)算機(jī)發(fā)明之初,人們只能寫出一串串由0和1組成的指令序列交由計(jì)算機(jī)執(zhí)行,這種計(jì)算機(jī)能夠識(shí)別的語(yǔ)言,就是機(jī)器語(yǔ)言。機(jī)器語(yǔ)言難讀、難記、難寫,容易出錯(cuò),且不同機(jī)型互不兼容。1.機(jī)器語(yǔ)言為了降低使用機(jī)器語(yǔ)言編程的煩瑣程度,人們進(jìn)行了一種有益的改進(jìn),用一些簡(jiǎn)潔的英文字母、字符串來(lái)替代一個(gè)特定指令的二進(jìn)制串。例如,用ADD代表加法,用MOV代表數(shù)據(jù)傳遞等,使程序比較直觀,易于閱讀和理解,更容易實(shí)現(xiàn)糾錯(cuò)及維護(hù),這種程序設(shè)計(jì)語(yǔ)言稱為“匯編語(yǔ)言”,即第二代計(jì)算機(jī)語(yǔ)言。然而,計(jì)算機(jī)是不認(rèn)識(shí)這些符號(hào)的,這就需要一個(gè)專門的程序,負(fù)責(zé)將這些符號(hào)翻譯成二進(jìn)制數(shù)組成的機(jī)器語(yǔ)言,這種翻譯程序被稱為“匯編程序”。2.匯編語(yǔ)言任務(wù)1

認(rèn)識(shí)C語(yǔ)言匯編語(yǔ)言同樣十分依賴于機(jī)器硬件,可移植性差,但效率很高。針對(duì)計(jì)算機(jī)特定硬件而編制的匯編語(yǔ)言程序,能準(zhǔn)確發(fā)揮計(jì)算機(jī)硬件的功能和特長(zhǎng),程序精練且質(zhì)量高,所以至今仍是一種常用而且功能強(qiáng)大的軟件開發(fā)工具。3.高級(jí)語(yǔ)言從最初與計(jì)算機(jī)交流的經(jīng)歷中人們意識(shí)到,應(yīng)該設(shè)計(jì)一種語(yǔ)言,這種語(yǔ)言接近于數(shù)學(xué)語(yǔ)言或人的自然語(yǔ)言,同時(shí)又不依賴于計(jì)算機(jī)硬件,編出的程序能在所有機(jī)器上通用。經(jīng)過(guò)努力,1954年,第一種完全脫離機(jī)器硬件的高級(jí)語(yǔ)言——FORTRAN問(wèn)世了。多年來(lái),有幾百種高級(jí)語(yǔ)言出現(xiàn),有重要意義的只有幾十種,其中影響力較大、使用較普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、PL/1、Pascal、C、Prolog、C++、VC、VB、Java等。高級(jí)語(yǔ)言的發(fā)展也經(jīng)歷了從早期語(yǔ)言到結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言、從面向過(guò)程的程序語(yǔ)言到非過(guò)程化程序語(yǔ)言的過(guò)程。任務(wù)1

認(rèn)識(shí)C語(yǔ)言知識(shí)點(diǎn)2C語(yǔ)言的發(fā)展和特點(diǎn)1.C語(yǔ)言的發(fā)展在C語(yǔ)言誕生以前,系統(tǒng)軟件主要是用匯編語(yǔ)言編寫的。匯編語(yǔ)言程序依賴于計(jì)算機(jī)硬件,其可讀性和可移植性都很差,但一般的高級(jí)語(yǔ)言又難以實(shí)現(xiàn)對(duì)計(jì)算機(jī)硬件的直接操作。比較流行的C語(yǔ)言的編譯器有Microsoft

C/C++、Borland

C/C++、Visual

C++6.0、Win-TC、TurboC/C++for

Windows集成實(shí)驗(yàn)與學(xué)習(xí)環(huán)境等,各版本基本部分是相同的,但略有差異,因此應(yīng)了解所用計(jì)算機(jī)系統(tǒng)配置的C編譯系統(tǒng)的特點(diǎn)和規(guī)定。任務(wù)1

認(rèn)識(shí)C語(yǔ)言美國(guó)貝爾實(shí)驗(yàn)室的肯·湯普森(Ken

Thompson)設(shè)計(jì)出了簡(jiǎn)單而且很接近硬件的B語(yǔ)言,并用B語(yǔ)言寫了第一個(gè)UNIX操作系統(tǒng)。1970年Ken

Thompson和Dennis

Ritchie合作把UNIX的90%以上用C語(yǔ)言改寫,即UNIX第五版。1973年1975年UNIX第六版公布后,C語(yǔ)言的突出優(yōu)勢(shì)才引起人們的注意。1975年,貝爾實(shí)驗(yàn)室的丹尼斯·里奇(Dennis

Ritchie)在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了C語(yǔ)言。1972年至1973年雖然后來(lái)對(duì)C語(yǔ)言進(jìn)行了多次改進(jìn),但主要還是在貝爾實(shí)驗(yàn)室內(nèi)部使用。-1977年出現(xiàn)了不依賴于機(jī)器的C語(yǔ)言編譯文本“可移植C語(yǔ)言編譯程序”,使C語(yǔ)言移植到其他機(jī)器時(shí)所需做的工作大大簡(jiǎn)化,這也推動(dòng)了UNIX操作系統(tǒng)在各種機(jī)器上的迅速實(shí)現(xiàn)。1977年1978年以后,C語(yǔ)言已先后移植到大、中、小、微型機(jī)上,已獨(dú)立于UNIX和PDP。1978年任務(wù)1

認(rèn)識(shí)C語(yǔ)言1990年,國(guó)際標(biāo)準(zhǔn)化組織(InternationOrganizationforStandardization,ISO)接受了87ANSIC為ISOC的標(biāo)準(zhǔn)。1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(AmericanNationalStandardsInstitute,ANSI)根據(jù)C語(yǔ)言問(wèn)世以來(lái)各種版本對(duì)C語(yǔ)言的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn),稱為“ANSIC”。1987年,ANSI又公布了C語(yǔ)言新標(biāo)準(zhǔn),即“87ANSIC”。目前流行的C編譯系統(tǒng)都是以它為基礎(chǔ)的,本書的敘述基本上都是以87ANSIC為基礎(chǔ)。任務(wù)1

認(rèn)識(shí)C語(yǔ)言2.C語(yǔ)言的特點(diǎn)C語(yǔ)言之所以能存在和發(fā)展,并具有生命力,在于它有不同于其他語(yǔ)言的特點(diǎn)。C語(yǔ)言的主要特點(diǎn)如下。具有豐富的數(shù)據(jù)類型。是一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言。C語(yǔ)言編譯后生成的目標(biāo)代碼質(zhì)量高,程序的執(zhí)行效率高。語(yǔ)言簡(jiǎn)潔、緊湊。運(yùn)算符豐富。能進(jìn)行位操作,可以直接對(duì)部分硬件進(jìn)行操作??梢浦残院谩UZ(yǔ)法限制不嚴(yán)格,程序設(shè)計(jì)靈活。任務(wù)1

認(rèn)識(shí)C語(yǔ)言知識(shí)點(diǎn)3C程序的結(jié)構(gòu)和書寫規(guī)則1.C程序的結(jié)構(gòu)C程序是由C語(yǔ)言的若干語(yǔ)句序列組成的。一個(gè)C程序可由以下幾部分組成:文件包含部分、預(yù)處理部分、變量說(shuō)明部分、函數(shù)原型聲明部分、主函數(shù)部分、函數(shù)定義部分。任務(wù)1

認(rèn)識(shí)C語(yǔ)言(1)并不是所有的C程序都必須包含以上6部分,一個(gè)最簡(jiǎn)單的C程序可以只有文件包含部分和主函數(shù)部分兩部分。關(guān)于程序的結(jié)構(gòu)的說(shuō)明如下。(2)main函數(shù)(主函數(shù))是每個(gè)程序執(zhí)行的起始點(diǎn)。一個(gè)C程序總是從main函數(shù)開始執(zhí)行,并在main函數(shù)中結(jié)束。main函數(shù)的書寫位置是任意的,可以將main函數(shù)放在整個(gè)程序的最前面,也可以放在整個(gè)程序的最后,或者放在其他函數(shù)之間。(3)一個(gè)函數(shù)由函數(shù)說(shuō)明和函數(shù)體兩部分組成。任務(wù)1

認(rèn)識(shí)C語(yǔ)言函數(shù)結(jié)構(gòu)如下。函數(shù)類型函數(shù)名(形參表){[聲明部分]/*在這部分定義本函數(shù)所使用的變量*/[執(zhí)行部分]/*由若干條語(yǔ)句組成命令序列*/}當(dāng)然,在某些情況下也可以沒(méi)有聲明部分,甚至可以既沒(méi)有聲明部分也沒(méi)有執(zhí)行部分。注意:變量聲明部分必須在執(zhí)行部分之前。163任務(wù)1

認(rèn)識(shí)C語(yǔ)言可以用/*……*/對(duì)程序任何部分做注釋,以增加可讀性。注釋部分只是用于閱讀,對(duì)程序的運(yùn)行不起作用。C語(yǔ)言中注釋不允許嵌套。注釋可以用英文,也可以用中文。注釋是重要的交流工具,使用注釋是編程人員的良好習(xí)慣。C程序的每個(gè)語(yǔ)句,都以分號(hào)(;)作為語(yǔ)句結(jié)束符。C程序書寫格式自由,一行可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以寫在多行上。(6)(4)(5)C語(yǔ)言本身不提供輸入/輸出語(yǔ)句,輸入/輸出的操作是通過(guò)調(diào)用庫(kù)函數(shù)scanf()和printf()等來(lái)完成的。(7)任務(wù)1

認(rèn)識(shí)C語(yǔ)言2.C程序的書寫規(guī)則C程序的書寫遵循以下原則。函數(shù)體必須由一對(duì)大括號(hào)“{}”括起來(lái)。一個(gè)函數(shù)至少有一對(duì)大括號(hào),如果有多對(duì)大括號(hào),則最外一層的一對(duì)為函數(shù)體的范圍。在C語(yǔ)言程序中,要嚴(yán)格區(qū)分字母的大小寫。C語(yǔ)言程序的書寫習(xí)慣是使用小寫英文字母。函數(shù)是構(gòu)成C語(yǔ)言程序的基本單位。也就是說(shuō),C語(yǔ)言是由一個(gè)或多個(gè)函數(shù)組成的。(1)(3)C語(yǔ)言程序總是從主函數(shù)main()開始執(zhí)行。main()函數(shù)可以放在程序的任意位置。通常把它放在其他函數(shù)的前面,便于閱讀。(5)(2)C程序書寫格式自由。一行內(nèi)可以寫多條語(yǔ)句,一條語(yǔ)句也可以寫在多行上,用“\”作為續(xù)行符;語(yǔ)句或變量說(shuō)明的最后必須有一個(gè)分號(hào)“;”,它是語(yǔ)句或變量說(shuō)明的結(jié)束標(biāo)志;可以對(duì)C語(yǔ)言程序中的任何部分做注釋。(4)任務(wù)1

認(rèn)識(shí)C語(yǔ)言任務(wù)實(shí)施使用C語(yǔ)言編寫程序?qū)崿F(xiàn)輸入矩形的兩條邊長(zhǎng),得到矩形的面積。具體程序代碼如下。#include"stdio.h"

/*頭文件(含輸入/輸出函數(shù))*/main(){

/*主函數(shù)*/floata,b,area;

/*變量聲明*/scanf("%f%f",&a,&b);

/*鍵盤輸入數(shù)據(jù)給變量*/area=a*b;/*計(jì)算*/printf("area=%f\n",area);

/*輸出變量的值至顯示器*/}任務(wù)1

認(rèn)識(shí)C語(yǔ)言任務(wù)實(shí)訓(xùn)1.實(shí)訓(xùn)題目通過(guò)函數(shù)調(diào)用求兩個(gè)數(shù)中的最大值。2.實(shí)現(xiàn)步驟通過(guò)函數(shù)調(diào)用求兩個(gè)數(shù)中的最大值的具體程序代碼如下。注意:上述代碼中包括兩個(gè)函數(shù),即主函數(shù)main()和調(diào)用函數(shù)max(),max()的作用是求任意兩個(gè)整數(shù)中的最大值。任務(wù)1

認(rèn)識(shí)C語(yǔ)言#include"stdio.h"

/*頭文件(含輸入/輸出函數(shù))*/intmax(intx,inty){

/*求兩整數(shù)中較大的數(shù)*/return(x>y?x:y);

/*返回x、y中的最大值,通過(guò)max帶回調(diào)用處*/}main(){

/*主函數(shù)*/inta,b,c;

/*聲明部分,定義變量*/scanf("%d%d",&a,&b);

/*鍵盤輸入數(shù)據(jù)給變量*/c=max(a,b);

/*調(diào)用max,將調(diào)用結(jié)果賦給c*/printf("max=%d",c);

/*輸出變量的值至顯示器*/}任務(wù)2運(yùn)行C程序任務(wù)2

運(yùn)行C程序任務(wù)描述C語(yǔ)言是一種編譯型的程序設(shè)計(jì)語(yǔ)言。用C語(yǔ)言開發(fā)程序,需要開發(fā)環(huán)境。比較流行的集成環(huán)境有Borland

Turbo

C(或稱“TurboC”)、Visual

C++、Dev-C++、Win-TC、Borland

C++。本任務(wù)要求以Visual

C++2010學(xué)習(xí)版為開發(fā)環(huán)境介紹C程序的上機(jī)操作過(guò)程。知識(shí)準(zhǔn)備知識(shí)點(diǎn)1C程序的實(shí)現(xiàn)過(guò)程從編寫一個(gè)C程序到完成運(yùn)行得到結(jié)果一般需要經(jīng)過(guò)以下幾個(gè)步驟。任務(wù)2

運(yùn)行C程序1.編輯編輯是將源程序通過(guò)鍵盤逐個(gè)字符輸入計(jì)算機(jī)內(nèi)存,并加以修改,最后以文本文件的形式保存到磁盤文件中,其文件擴(kuò)展名為“.c”。2.編譯編譯是將已編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼。在編譯時(shí),要對(duì)源程序進(jìn)行語(yǔ)法檢查,如發(fā)現(xiàn)錯(cuò)誤,則顯示出錯(cuò)信息。此時(shí)應(yīng)重新進(jìn)入編輯狀態(tài),對(duì)源程序進(jìn)行修改后再重新編譯,直到通過(guò)編譯為止,此時(shí)生成擴(kuò)展名為“.obj”的同名目標(biāo)文件。3.連接連接是將各個(gè)模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)過(guò)連接處理后,得到可執(zhí)行文件,其擴(kuò)展名為“.exe”。4.運(yùn)行直接運(yùn)行可執(zhí)行文件即可得到程序運(yùn)行結(jié)果。通常,在DOS環(huán)境下直接輸入可執(zhí)行文件名,在Windows環(huán)境下雙擊可執(zhí)行文件名即可運(yùn)行程序。任務(wù)2

運(yùn)行C程序知識(shí)點(diǎn)2Visual

C++簡(jiǎn)介1993年,Microsoft公司推出Visual

Studio

1.0,此后新版本不斷問(wèn)世。雖然VisualStudio經(jīng)歷了諸多版本的改進(jìn)升級(jí),但是Visual

Studio

6.0以后的C++并沒(méi)有太大的變化。隨著C++新標(biāo)準(zhǔn)的公布,Visual

Studio

2010在C++開發(fā)方面產(chǎn)生了很多革命性的變化。最新的計(jì)算機(jī)等級(jí)考試(二級(jí)C)的開發(fā)環(huán)境為Visual

C++2010學(xué)習(xí)版。1.下載安裝Visual

C++2010學(xué)習(xí)版在配套資源中找到Visual

C++2010學(xué)習(xí)版安裝包并按步驟安裝。2.Visual

C++2010學(xué)習(xí)版的主界面在Windows系統(tǒng)任務(wù)欄中,執(zhí)行“開始”→“Microsoft

Visual

C++

2010

Express”命令,即可啟動(dòng)Visual

C++2010學(xué)習(xí)版開發(fā)環(huán)境,其主界面如圖1-2-1所示。任務(wù)2

運(yùn)行C程序任務(wù)2

運(yùn)行C程序任務(wù)實(shí)施步驟1:在Visual

C++中創(chuàng)建項(xiàng)目(1)執(zhí)行“文件”→“新建”→“項(xiàng)目”命令,彈出“新建項(xiàng)目”對(duì)話框,如圖1-2-2所示。任務(wù)2

運(yùn)行C程序(2)在“新建項(xiàng)目”對(duì)話框中選擇“Visual

C++”→“空項(xiàng)目”選項(xiàng),在下方的“名稱”文本框中輸入項(xiàng)目名稱,如“text”,選擇項(xiàng)目路徑,單擊“確定”按鈕,進(jìn)入新建項(xiàng)目界面,如圖1-2-3所示。任務(wù)2

運(yùn)行C程序步驟2:建立C文件(1)在“新建項(xiàng)目”對(duì)話框的右側(cè)找到新建的項(xiàng)目,如“text”。右擊“text”下的“源文件”,在彈出的快捷菜單中執(zhí)行“添加”→“新建項(xiàng)”命令,彈出“添加新項(xiàng)”對(duì)話框,如圖1-2-4所示。任務(wù)2

運(yùn)行C程序(2)在中間窗格中選擇“C++文件(.cpp)”選項(xiàng),在下方的“名稱”文本框中輸入文件名,如“text01.c”,選擇文件的路徑。單擊“添加”按鈕,進(jìn)入代碼編輯窗口。在代碼編輯窗口中輸入text01.c的源代碼,如圖1-2-5所示。任務(wù)2

運(yùn)行C程序步驟3:生成并運(yùn)行程序(1)將C源程序輸入完成后,按“Ctrl+F5”組合鍵,彈出提示對(duì)話框,如圖1-2-6所示。(2)單擊“是”按鈕,若程序沒(méi)有錯(cuò)誤則顯示圖1-2-7所示的結(jié)果。若程序有錯(cuò)誤,則在代碼編輯窗口下方的輸出窗口中提示錯(cuò)誤,在編輯窗口根據(jù)錯(cuò)誤提示修改源代碼,按“Ctrl+F5”組合鍵重新運(yùn)行。任務(wù)2

運(yùn)行C程序小提示:按“Ctrl+F5”組合鍵運(yùn)行程序后,結(jié)果可能一閃而過(guò)。可以通過(guò)下面兩種方法顯示程序結(jié)果。(1)設(shè)置控制臺(tái)顯示。在代碼編輯窗口右擊“text”,在彈出的快捷菜單中選擇“屬性”命令,彈出“text屬性頁(yè)”對(duì)話框,如圖1-2-8所示。在左側(cè)一欄選擇“配置屬性”→“鏈接器”→“系統(tǒng)”選項(xiàng),將右側(cè)欄中的“子系統(tǒng)”值設(shè)置為“控制臺(tái)(/SUBSYSTEM:CONSOLE)”。經(jīng)過(guò)這樣的配置后,再按“Ctrl+F5”組合鍵,程序執(zhí)行結(jié)束就會(huì)停留在控制臺(tái)界面,顯示結(jié)果并提示“請(qǐng)按任意鍵繼續(xù)”。(2)添加代碼。通過(guò)在程序最后添加代碼“getch();”或“system("pause");”,便可顯示程序結(jié)果。使用“system("pause");”需要包含頭文件“stdlib.h”,即“#include<stdlib.h>”任務(wù)2

運(yùn)行C程序任務(wù)2

運(yùn)行C程序任務(wù)實(shí)訓(xùn)1.實(shí)訓(xùn)題目在Visual

C++中編寫代碼,在控制臺(tái)中打印喜歡的圖案。本實(shí)訓(xùn)要求打印一只蜜蜂。2.實(shí)現(xiàn)步驟在text01項(xiàng)目的源文件下創(chuàng)建Bee.c文件,Bee.c文件的具體程序代碼如下。任務(wù)2

運(yùn)行C程序任務(wù)2

運(yùn)行C程序項(xiàng)目總結(jié)本項(xiàng)目主要學(xué)習(xí)C程序的構(gòu)成與書寫規(guī)則、C程序的開發(fā)過(guò)程等內(nèi)容。重點(diǎn)知識(shí)如下。1.C程序的構(gòu)成(1)C程序主要由函數(shù)構(gòu)成。每一個(gè)C程序必須有且僅有一個(gè)main函數(shù)(主函數(shù))。C程序的執(zhí)行總是從主函數(shù)開始,并在主函數(shù)中結(jié)束。主函數(shù)的書寫位置是任意的,它可以調(diào)用任何非主函數(shù);任何非主函數(shù)都可以相互調(diào)用,但是不能調(diào)用主函數(shù)。(2)一個(gè)函數(shù)由兩部分構(gòu)成。①函數(shù)的說(shuō)明部分,包括函數(shù)類型(返回值類型)、函數(shù)名和形參表。②函數(shù)體。函數(shù)體中包含變量聲明部分和執(zhí)行部分。任務(wù)2

運(yùn)行C程序2.C程序的書寫規(guī)則C程序的書寫格式自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句也可以分寫在多行。每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)。C程序中的注釋在“/*”和“*/”之間,可以用英文,也可以用中文。C程序中注釋不允許嵌套。3.C程序的編譯與執(zhí)行由C語(yǔ)句構(gòu)成的指令序列稱為“C源程序”,C源程序經(jīng)過(guò)C語(yǔ)言編譯程序編譯之后生成一個(gè)后綴為“.obj”的二進(jìn)制文件(稱為“目標(biāo)文件”),然后由連接程序把“.obj”文件與C語(yǔ)言提供的各種庫(kù)函數(shù)連接起來(lái)生成一個(gè)后綴為“.exe”的可執(zhí)行文件。在DOS狀態(tài)下,輸入文件名(不必輸入后綴“.exe”)并按Enter鍵,該文件就可以執(zhí)行。任務(wù)2

運(yùn)行C程序項(xiàng)目拓展C語(yǔ)言之父——丹尼斯·里奇丹尼斯·里奇(1941—2011)出生于美國(guó)紐約州布朗克斯維爾,畢業(yè)于哈佛大學(xué),是計(jì)算機(jī)科學(xué)家。他被譽(yù)為“C語(yǔ)言之父”“UNIX之父”,曾獲圖靈獎(jiǎng),與布萊恩·科爾尼干(BrianKernighan)出版了《C程序設(shè)計(jì)語(yǔ)言》(The

C

Programming

Language)。丹尼斯·里奇原本是一個(gè)物理學(xué)家和數(shù)學(xué)家,卻成了極具傳奇色彩的程序員。顯然,他的專業(yè)背景對(duì)他研發(fā)出C語(yǔ)言和UNIX有很大幫助。正如丹尼斯·里奇所言:“要不懼工作在一個(gè)陌生的領(lǐng)域里?!钡つ崴埂だ锲鎸?duì)所做的事十分感興趣,他創(chuàng)造UNIX的初衷并非為了掙錢,事實(shí)上剛開始是為了省錢,或者是將他們的游戲裝到一個(gè)更省錢的機(jī)器里。丹尼斯·里奇利用貝爾實(shí)驗(yàn)室的資金、技術(shù)、員工等資源條件,發(fā)揮自己的創(chuàng)造性思維,與他的朋友按照各自的時(shí)間安排來(lái)研發(fā)他們想要的東西。任務(wù)2

運(yùn)行C程序直到1999年,丹尼斯·里奇被授予美國(guó)國(guó)家技術(shù)和創(chuàng)新獎(jiǎng),這項(xiàng)被認(rèn)為是技術(shù)人員最高的榮譽(yù)獎(jiǎng)項(xiàng)之后,他在計(jì)算機(jī)方面的成就和影響才被真正注意到。C語(yǔ)言是使用最廣泛的語(yǔ)言之一,可以說(shuō),C語(yǔ)言的誕生是現(xiàn)代程序語(yǔ)言革命的起點(diǎn),是程序設(shè)計(jì)語(yǔ)言發(fā)展史中的一個(gè)里程碑。自C語(yǔ)言出現(xiàn)后,以C語(yǔ)言為根基的C++、Java和C#等面向?qū)ο蟮恼Z(yǔ)言相繼誕生,并在各自領(lǐng)域大獲成功。如今,C語(yǔ)言依舊在系統(tǒng)編程、嵌入式編程等領(lǐng)域占據(jù)著重要地位。THANKYOU懷揣夢(mèng)想努力砥礪前行項(xiàng)目2掌握C語(yǔ)言的語(yǔ)法基礎(chǔ)任務(wù)3制作用戶注冊(cè)的程序任務(wù)1制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序任務(wù)2制作計(jì)算路途所需時(shí)間的程序目錄前言C語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型的形式出現(xiàn)的。通過(guò)編程解決問(wèn)題,其本質(zhì)是對(duì)數(shù)據(jù)的操作,這些數(shù)據(jù)可能是數(shù)字,也可能是信息處理中的文字、聲音或視頻。隨著大數(shù)據(jù)時(shí)代的到來(lái),數(shù)據(jù)量越來(lái)越龐大,表現(xiàn)形式也更加復(fù)雜多樣。在C語(yǔ)言中,每個(gè)數(shù)據(jù)都屬于一個(gè)確定的數(shù)據(jù)類型,不同類型的數(shù)據(jù)在表示形式、合法的取值范圍、所占用內(nèi)存空間的大小以及可以參與的運(yùn)算等方面有所不同。本項(xiàng)目主要講解常量與變量、基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換以及數(shù)據(jù)的輸入與輸出。預(yù)習(xí)本項(xiàng)目,完成以下問(wèn)題?!締?wèn)題1】C語(yǔ)言中定義數(shù)據(jù)必須遵守的規(guī)則有哪些?【問(wèn)題2】在C語(yǔ)言中,對(duì)于金額數(shù)字計(jì)算表達(dá)式如何描述?其他數(shù)據(jù)類型又是如何描述的?學(xué)習(xí)目標(biāo)知識(shí)目標(biāo)1.掌握C語(yǔ)言的數(shù)據(jù)類型。2.掌握C語(yǔ)言中的變量與常量的使用。3.熟悉運(yùn)算符與表達(dá)式的使用。4.掌握C語(yǔ)言的輸入與輸出。技能目標(biāo)1.具備準(zhǔn)確選擇數(shù)據(jù)類型來(lái)描述程序中的信息的能力。2.具備各種數(shù)據(jù)類型的轉(zhuǎn)換能力。3.具備定義、賦值、初始化變量和常量的能力。4.具備運(yùn)用輸入、輸出語(yǔ)句格式化輸入、輸出信息的能力。學(xué)習(xí)目標(biāo)素質(zhì)目標(biāo)1.具有編碼規(guī)范的職業(yè)素養(yǎng)。2.增強(qiáng)愛(ài)國(guó)情懷、提高對(duì)祖國(guó)的認(rèn)同感。3.加強(qiáng)對(duì)實(shí)踐與認(rèn)識(shí)辯證關(guān)系的理解。任務(wù)1制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序任務(wù)描述某班級(jí)共有45名同學(xué),班長(zhǎng)需要統(tǒng)一采購(gòu)一批學(xué)習(xí)用品(中性筆、筆記本)平均發(fā)放給每位同學(xué)。編寫一個(gè)程序,根據(jù)班長(zhǎng)輸入的為每位同學(xué)發(fā)放的中性筆和筆記本的數(shù)量,計(jì)算需要采購(gòu)的中性筆和筆記本的數(shù)量,并輸出結(jié)果。知識(shí)準(zhǔn)備知識(shí)點(diǎn)1數(shù)據(jù)類型數(shù)據(jù)是程序處理的對(duì)象,程序設(shè)計(jì)的過(guò)程就是數(shù)據(jù)加工和處理的過(guò)程。C語(yǔ)言規(guī)定,程序中使用的每個(gè)數(shù)據(jù)都必須屬于某種數(shù)據(jù)類型。數(shù)據(jù)類型是對(duì)程序所處理數(shù)據(jù)的一種抽象,通過(guò)類型名對(duì)數(shù)據(jù)賦予一些約束,以便進(jìn)行高效處理和檢查。這些約束包括以下幾個(gè)方面。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序(1)(3)每種數(shù)據(jù)類型對(duì)應(yīng)不同的取值范圍,即數(shù)據(jù)類型是數(shù)值的一個(gè)集合。取值范圍存儲(chǔ)空間大小每種數(shù)據(jù)類型對(duì)應(yīng)不同規(guī)格的字(byte,B)空間。(2)運(yùn)算方式數(shù)據(jù)類型是一個(gè)數(shù)據(jù)集合以及其上所帶某種操作的集合。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序C語(yǔ)言提供了豐富的數(shù)據(jù)類型,主要有基本數(shù)據(jù)類型和導(dǎo)出數(shù)據(jù)類型,如圖2-1-1所示。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序這種數(shù)據(jù)類型是根據(jù)數(shù)據(jù)的存在形式劃分的,如果從變化的角度進(jìn)行劃分,C語(yǔ)言中的數(shù)據(jù)還可分為常量和變量?jī)深?。C語(yǔ)言的基本數(shù)據(jù)類型,根據(jù)長(zhǎng)度可分為8位、16位、32位和64位;根據(jù)數(shù)據(jù)的符號(hào)劃分,有無(wú)符號(hào)數(shù)和有符號(hào)數(shù)兩種類型;按照數(shù)據(jù)的數(shù)學(xué)性質(zhì)劃分,有整型、實(shí)型和字符型三種類型。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序知識(shí)點(diǎn)2標(biāo)識(shí)符任何一種語(yǔ)言都有自己的符號(hào)、單詞以及語(yǔ)句構(gòu)成規(guī)則。C語(yǔ)言作為一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,也有自己的字符集、標(biāo)識(shí)符及命名規(guī)則。用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列稱為“標(biāo)識(shí)符”。1.關(guān)鍵字C語(yǔ)言系統(tǒng)設(shè)置特定含義、專門用途的字符序列稱為關(guān)鍵字。關(guān)鍵字不能作其他用途,且只能小寫。例如,用來(lái)說(shuō)明變量類型的標(biāo)識(shí)符int、double以及if語(yǔ)句中的if、else等都已有專門的用途,它們不能再用作變量名和函數(shù)名。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序2.預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符是指在C語(yǔ)言中預(yù)先定義并具有特定含義的標(biāo)識(shí)符,如C語(yǔ)言提供的庫(kù)函數(shù)的名字(如printf)和預(yù)編譯處理命令(如define)等。C語(yǔ)言允許把這類標(biāo)識(shí)符重新定義另作他用,但這將使這些標(biāo)識(shí)符失去預(yù)先定義的原意。鑒于目前各種計(jì)算機(jī)系統(tǒng)的C語(yǔ)言都一致地把這類標(biāo)識(shí)符作為固定的庫(kù)函數(shù)或預(yù)編譯處理中的專門命令使用,為了避免產(chǎn)生誤解,建議用戶不要把這類預(yù)定義標(biāo)識(shí)符另作他用。3.用戶標(biāo)識(shí)符由用戶根據(jù)需要定義的標(biāo)識(shí)符稱為“用戶標(biāo)識(shí)符”,又稱為“自定義標(biāo)識(shí)符”。用戶標(biāo)識(shí)符一般用來(lái)給常量、變量、函數(shù)、數(shù)組、類型、文件等命名。用戶標(biāo)識(shí)符命名規(guī)則如下。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序(1)只能由字母、數(shù)字和下劃線組成,且第一個(gè)字符必須為字母或下劃線。(2)有大小寫之分,如sum、SUM和Sum是3個(gè)不同的標(biāo)識(shí)符。在C程序中,變量名用小寫,常量名用大寫,但不絕對(duì)。(3)ANSI

C沒(méi)有限制標(biāo)識(shí)符長(zhǎng)度,但各個(gè)編譯系統(tǒng)都有自己的規(guī)定和限制。有的系統(tǒng)允許8個(gè)字符,Turbo

C則允許32個(gè)字符。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序標(biāo)識(shí)符不能與關(guān)鍵字同名,最好也不與預(yù)定義標(biāo)識(shí)符同名。標(biāo)識(shí)符命名應(yīng)當(dāng)有一定的意義,做到見名知義,以增加程序的可讀性。最好使用英文單詞及其組合,便于記憶和閱讀。合法的用戶標(biāo)識(shí)符如a1、x2、s_1、s_2、_3、ggde2f_1,不合法的用戶標(biāo)識(shí)符如df1、1a、d@sina、s*b、+d。(4)(5)任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序知識(shí)點(diǎn)3常量1.整型常量下面介紹三種整型常量。十進(jìn)制整型常量由正負(fù)號(hào)和數(shù)字0~9組成,如-36、25等。(1)十進(jìn)制整型常量八進(jìn)制整型常量由正負(fù)號(hào)和數(shù)字0~7組成,且必須以0開頭,如025(對(duì)應(yīng)的十進(jìn)制數(shù)為2×81+5×8o=21)等。(2)八進(jìn)制整型常量(3)十六進(jìn)制整型常量十六進(jìn)制整型常量由正負(fù)號(hào)、數(shù)字0~9和字母A~F(不區(qū)分大小寫)組成,且必須以0x開頭。其中,字符A~F依次表示10~15,如0x15(對(duì)應(yīng)的十進(jìn)制數(shù)為1×161+5×16o=21)等。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序2.實(shí)型常量小數(shù)點(diǎn)是實(shí)數(shù)的標(biāo)志。十進(jìn)制實(shí)型常量。十進(jìn)制實(shí)型常量由正負(fù)號(hào)、數(shù)字0~9和小數(shù)點(diǎn)組成,如1.23、-3.4等。在C語(yǔ)言中,5/2和5.0/2結(jié)果是不同的,前者被認(rèn)為是兩個(gè)整型數(shù)據(jù)相除,結(jié)果仍為整型,后者5.0為實(shí)型常量,則結(jié)果為實(shí)型。因此,5/2結(jié)果為2(取整),5.0/2結(jié)果為2.5。(1)指數(shù)形式的實(shí)型常量。指數(shù)形式的實(shí)型常量由正負(fù)號(hào)、數(shù)字0~9、小數(shù)點(diǎn)和字母E(不區(qū)分大小寫)組成。其一般形式是aEn。其中,a為1~9的實(shí)數(shù),默認(rèn)小數(shù)位為6位;E為階碼標(biāo)志,代表底數(shù)10;n為階碼,只能是十進(jìn)制整數(shù)。例如,0.11寫成指數(shù)形式就是1.100000E-01,即1.100000×10-1。125.6寫成指數(shù)形式就是1.256000E+02,即1.256000×102。(2)·\?:表示單引號(hào)字符,即??!":表示雙引號(hào)字符,即"?!\:表示反斜杠字符,即\?!a:響鈴?!b:退格?!n:換行。

·\f:換頁(yè)。·\r:回車。

·\t:到下一個(gè)制表位?!ddd:表示3位八進(jìn)制數(shù)所代表的字符,如\101=1×82+0×81+1×8o=65,對(duì)應(yīng)字符A(A的ASCII碼值為65)?!xhh:表示2位十六進(jìn)制數(shù)所代表的字符,如\x42=4×161+2×16o=66,對(duì)應(yīng)字符B(B的ASCII碼值為66)。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序3.字符常量普通字符常量。由單引號(hào)引起來(lái)的單個(gè)字符就是普通字符常量,如?A?和?a?等。字符常量在內(nèi)存中占1B的內(nèi)存空間。(1)轉(zhuǎn)義字符由一個(gè)反斜杠“\”開頭,不同于字符原有意義,因此被稱為“轉(zhuǎn)義字符”。常見的轉(zhuǎn)義字符如下。(2)任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序4.字符串常量由一對(duì)雙引號(hào)引起來(lái)的字符序列就是字符串常量,如"English"和"A"等。系統(tǒng)會(huì)自動(dòng)給字符串常量加一個(gè)結(jié)尾符“\0”,因而字符串常量在內(nèi)存中所占的空間為實(shí)際長(zhǎng)度+1,故"A"和?A?是完全不同的,"A"是字符串常量,在內(nèi)存中占2B的空間;?A?是字符常量,在內(nèi)存中占1B的空間。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序知識(shí)點(diǎn)4變量變量是在程序的運(yùn)行過(guò)程中其值可以改變的量。一個(gè)變量應(yīng)該有一個(gè)名字,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,并在該存儲(chǔ)單元中存放變量的值。1.變量的兩個(gè)要素及定義(1)變量的兩個(gè)要素。①變量名。每個(gè)變量都必須有一個(gè)名字——變量名,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。變量命名遵循標(biāo)識(shí)符命名規(guī)則。②變量值。在程序運(yùn)行過(guò)程中,變量值存儲(chǔ)在內(nèi)存中。在程序中,通過(guò)變量名來(lái)引用變量的值。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序變量名和變量值是兩個(gè)不同的概念。如圖2-1-2所示,變量名實(shí)際上是一個(gè)符號(hào)地址,在對(duì)程序編譯鏈接時(shí)由系統(tǒng)給每一個(gè)變量名分配一個(gè)內(nèi)存地址。程序從變量中取值,實(shí)際上是通過(guò)變量名找到相應(yīng)的內(nèi)存地址,從其存儲(chǔ)單元中讀取數(shù)據(jù)。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序(2)變量的定義。在C語(yǔ)言中,所有用到的變量必須先定義后使用。變量定義的一般格式如下。示例如下。[存儲(chǔ)類型]數(shù)據(jù)類型變量名[,變量名2…];floatradius,length,area;任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序在C語(yǔ)言中,要求對(duì)所有用到的變量進(jìn)行強(qiáng)制定義,這樣做的目的如下。①凡未被事先定義的,不作為變量名,這就能保證程序中變量名使用的正確性。例如,如果在定義部分定義了“int

student;”,而在執(zhí)行語(yǔ)句中錯(cuò)寫成staent。例如,“staent=30;”在編譯時(shí)檢查出staent未經(jīng)定義,不作為變量名,因此輸出“變量staent未經(jīng)聲明”的提示信息,便于用戶發(fā)現(xiàn)錯(cuò)誤,避免變量名使用時(shí)出錯(cuò)。②每一個(gè)變量被指定為一個(gè)確定類型,在編譯時(shí)就能為其分配相應(yīng)的存儲(chǔ)單元。例如,指定a、b為int型,C編譯系統(tǒng)為a和b各分配兩個(gè)字節(jié)的存儲(chǔ)空間,并按整數(shù)方式存儲(chǔ)數(shù)據(jù)。③指定每一變量屬于一個(gè)類型,便于在編譯時(shí)據(jù)此檢查該變量所進(jìn)行的運(yùn)算是否合法。例如,整型變量a和b,可以進(jìn)行求余運(yùn)算,即a%b。%是求余,得到a/b的余數(shù)。如果將a、b指定為實(shí)型變量,則不允許進(jìn)行求余運(yùn)算,在編譯時(shí)會(huì)給出有關(guān)出錯(cuò)信息。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序2.變量的初始化變量的初始化就是在定義變量的同時(shí)對(duì)變量賦初值。可以給其中的一個(gè)賦值,也可以同時(shí)給多個(gè)變量賦值。示例如下。需要說(shuō)明的是,變量的初始化不是在編譯階段完成的(除了靜態(tài)存儲(chǔ)變量和外部變量),而是在程序運(yùn)行時(shí)才被賦值的。intsum=0;charch1=a,ch2=b;inta,b,c=10;任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序【例2-1-1】變量的初始化與使用。參考程序如下。/*變量的初始化*/#include<stdio.h>intmain(){inta,b;printf("請(qǐng)輸入a,b兩個(gè)整數(shù)\n");scanf("%d%d",&a,&b);charch1=?A?,ch2=?a?;任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序printf("A=%d\n",a);printf("B=%d\n",b);printf("%c,%c\n",ch1,ch2);return

0;}任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序程序運(yùn)行結(jié)果如圖2-1-3所示。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序本程序中,“int

a,b,c=10;”表示定義了3個(gè)整型變量,但只給變量c賦初值10。如果要同時(shí)給3個(gè)變量賦值,可以采用如下形式。注意:(1)在設(shè)計(jì)程序時(shí),應(yīng)當(dāng)根據(jù)數(shù)據(jù)本身的特點(diǎn)和變化范圍正確選擇變量類型。(2)在不同的C編譯程序中,同一類型的數(shù)據(jù)所占的字節(jié)數(shù)可能有所不同,一般情況下,這種差異不會(huì)影響C程序的通用性。inta,b,c;a=b=c=10;任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序3.變量的分類變量可分為整型變量、實(shí)型變量和字符變量。(1)整型變量。了解整型變量前需要先了解整型數(shù)據(jù)在內(nèi)存中的存放形式。數(shù)值是以補(bǔ)碼表示的:正數(shù)的補(bǔ)碼和原碼相同;負(fù)數(shù)的補(bǔ)碼是將該數(shù)的絕對(duì)值的二進(jìn)制形式按位取反再加1。例如,求-10的補(bǔ)碼。10的原碼:00000000000010100000000000001010取反:1111111111110101任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序得到1111111111110101,再加1,得-10的補(bǔ)碼:0000000000001010由此可知,左邊的第一位是表示符號(hào)的。①整型變量的分類。整型變量的分類有以下幾種。a.基本型:類型說(shuō)明符為int,在內(nèi)存中占2個(gè)字節(jié)。b.短整型:類型說(shuō)明符為short

int或short。所占字節(jié)和取值范圍均與基本型相同。c.長(zhǎng)整型:類型說(shuō)明符為long

int或long,在內(nèi)存中占4個(gè)字節(jié)。d.無(wú)符號(hào)型:類型說(shuō)明符為unsigned。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序無(wú)符號(hào)型又可與上述3種類型匹配構(gòu)成以下類型?!o(wú)符號(hào)基本型:類型說(shuō)明符為unsigned

int或unsigned?!o(wú)符號(hào)短整型:類型說(shuō)明符為unsigned

short?!o(wú)符號(hào)長(zhǎng)整型:類型說(shuō)明符為unsigned

long。各種無(wú)符號(hào)類型量所占的內(nèi)存字節(jié)數(shù)與相應(yīng)的有符號(hào)類型相同;但由于省去了符號(hào)位,不能表示負(fù)數(shù)。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序無(wú)符號(hào)整型變量最大表示65

535。11111111111111110111111111111111有符號(hào)整型變量最大表示32

767。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序在表2-1-1中列出了C語(yǔ)言中各類整型變量所分配的內(nèi)存字節(jié)數(shù)及其表示范圍。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序②整型變量的定義。整型變量定義的一般形式如下。示例如下。類型說(shuō)明符變量名標(biāo)識(shí)符,變量名標(biāo)識(shí)符,…;inta,b,c;(a,b,c為整型變量)longx,y;(x,y為長(zhǎng)整型變量)unsignedp,q;(p,q為無(wú)符號(hào)整型變量)任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序在書寫變量定義時(shí),應(yīng)注意以下幾點(diǎn)。a.允許在一個(gè)類型說(shuō)明符后定義多個(gè)相同類型的變量。各變量名之間用逗號(hào)間隔。類型說(shuō)明符與變量名之間至少用一個(gè)空格間隔。b.最后一個(gè)變量名之后必須以“;”結(jié)尾。c.變量定義必須放在變量使用之前,一般放在函數(shù)體的開頭部分。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序【例2-1-2】整型變量的定義與使用。參考程序如下。/*整型變量的定義與使用*/#include<stdio.h>intmain(){inta,b,c,d;unsignedu;a=12;b=-36;任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序u=10;c=a+u;d=b+u;printf("a+u=%d,b+u=%d\n",c,d);return0;}小提示:在Visual

C++開發(fā)工具中,一個(gè)項(xiàng)目只能有一個(gè)main()方法,所以在一個(gè)項(xiàng)目中測(cè)試多個(gè)方法時(shí),需要將前一個(gè)main()方法改為注釋。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序程序運(yùn)行結(jié)果如圖2-1-4所示。注意:不同種類的整型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序(2)實(shí)型變量。①實(shí)型變量的分類。根據(jù)數(shù)值的范圍可將實(shí)型變量分為單精度(float)、雙精度(double)和長(zhǎng)雙精度(long

double)3種類型。各種實(shí)型變量所占位數(shù)及其表示范圍如表2-1-2所示。注意:在C語(yǔ)言中,實(shí)數(shù)都是有符號(hào)的,不可以使用無(wú)符號(hào)修飾符。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序C語(yǔ)言提供了一個(gè)測(cè)試某種數(shù)據(jù)類型所占存儲(chǔ)空間大小的運(yùn)算符sizeof,其格式如下。示例如下。sizeof(類型標(biāo)識(shí)符或數(shù)據(jù))sizeof(int)任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序當(dāng)不了解所用編譯系統(tǒng)中的某種數(shù)據(jù)類型的寬度時(shí),可以使用這個(gè)運(yùn)算符進(jìn)行計(jì)算。②實(shí)型變量的定義。在程序運(yùn)行過(guò)程中可以改變其值的實(shí)型量稱為實(shí)型變量。示例如下。floatx,y;/*定義x和y為單精度變量*/doublez;/*定義z為雙精度變量*/任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序③實(shí)型數(shù)據(jù)的存儲(chǔ)。一個(gè)實(shí)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)字節(jié)(32位)。與整型數(shù)據(jù)的存儲(chǔ)方式不同,實(shí)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。系統(tǒng)把一個(gè)實(shí)型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分分別存放。指數(shù)部分采用規(guī)范化的指數(shù)形式。例如,實(shí)數(shù)3.14159在內(nèi)存中的存放形式如圖2-1-5所示。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序圖2-1-5中是用十進(jìn)制數(shù)來(lái)示意的,實(shí)際上在計(jì)算機(jī)中是用二進(jìn)制數(shù)來(lái)表示小數(shù)部分,用2的冪次來(lái)表示指數(shù)部分的。在4個(gè)字節(jié)中,究竟用多少位來(lái)表示小數(shù)部分,用多少位來(lái)表示指數(shù)部分,ANSIC標(biāo)準(zhǔn)并無(wú)具體規(guī)定,由各C編譯系統(tǒng)自定。不少編譯系統(tǒng)以24位表示小數(shù)部分(包括符號(hào)位),以8位表示指數(shù)部分(包括指數(shù)的符號(hào))。小數(shù)部分占的位數(shù)越多,數(shù)的有效數(shù)字越多,精度越高。指數(shù)部分占的位數(shù)越多,則能表示的數(shù)值范圍越大。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序(3)字符變量。①字符變量的定義。定義字符變量的一般形式如下。上述代碼定義ch1和ch2為字符變量,各能存儲(chǔ)一個(gè)字符常量??梢杂萌缦抡Z(yǔ)句對(duì)ch1和ch2賦值。注意:一個(gè)字符變量只能存儲(chǔ)一個(gè)字符常量。charch1,ch2;ch1=a;ch2=b;任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序②字符變量的存儲(chǔ)。將一個(gè)字符常量放到一個(gè)字符變量中,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼放到存儲(chǔ)單元中。在C語(yǔ)言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,即一個(gè)字符型數(shù)據(jù)既可以字符形式輸出,也可以整數(shù)形式輸出。以字符形式輸出時(shí),需要先將存儲(chǔ)單元中的ASCII碼轉(zhuǎn)換成相應(yīng)的字符,然后輸出。以整數(shù)形式輸出時(shí),直接將ASCII碼作為整數(shù)輸出。字符型數(shù)據(jù)也可以進(jìn)行算術(shù)運(yùn)算,此時(shí)是對(duì)它們的ASCII碼進(jìn)行算術(shù)運(yùn)算。示例如下。ch2=ch1+1;任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序知識(shí)點(diǎn)5算術(shù)運(yùn)算符與表達(dá)式1.常見的算術(shù)運(yùn)算符常見的算術(shù)運(yùn)算符包括+、-、*、/、%和正負(fù)號(hào),主要用于對(duì)數(shù)值型數(shù)據(jù)進(jìn)行一般的算術(shù)運(yùn)算,其運(yùn)算規(guī)則、運(yùn)算對(duì)象和結(jié)果類型如表2-1-3所示。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序有關(guān)算術(shù)運(yùn)算符的說(shuō)明以下。(1)除法運(yùn)算符(/)。如果兩個(gè)整數(shù)相除,那么結(jié)果為整數(shù),如5/3的結(jié)果為1,舍去小數(shù)部分。如果兩個(gè)運(yùn)算對(duì)象中至少有一個(gè)是實(shí)型,那么結(jié)果是實(shí)型。(2)如果參加+、-、*、/運(yùn)算的兩個(gè)數(shù)有一個(gè)為實(shí)數(shù),則結(jié)果為double型,因?yàn)樗袑?shí)數(shù)都按double型進(jìn)行計(jì)算。(3)求余運(yùn)算符(%)。要求兩個(gè)操作數(shù)均為整型,結(jié)果為兩數(shù)相除所得的余數(shù)。求余也稱為“求?!?。一般余數(shù)的符號(hào)與被除數(shù)的符號(hào)相同。例如,8%5=3,-8%5=-3,8%-5=3。(4)雙目運(yùn)算符優(yōu)先級(jí)。*、/、%同級(jí),+、-同級(jí),且前三個(gè)運(yùn)算符的優(yōu)先級(jí)高于后兩個(gè)運(yùn)算符。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序2.算術(shù)表達(dá)式算術(shù)表達(dá)式是指用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱“操作數(shù)”)連接起來(lái)的、符合C語(yǔ)言語(yǔ)法規(guī)則的表達(dá)式。運(yùn)算對(duì)象可以是常量、變量、函數(shù)等。例如,a*b/c-1.5+?a?。需要注意的是,C語(yǔ)言算術(shù)表達(dá)式與數(shù)學(xué)表達(dá)式的書寫形式有一定的區(qū)別,具體如下。C語(yǔ)言算術(shù)表達(dá)式的乘號(hào)(*)不能省略。例如,數(shù)學(xué)表達(dá)式“b2-4ac”對(duì)應(yīng)的C語(yǔ)言算術(shù)表達(dá)式應(yīng)該寫成“b*b-4*a*c”。(1)C語(yǔ)言算術(shù)表達(dá)式中只能出現(xiàn)字符集允許的字符。例如,數(shù)學(xué)表達(dá)式“πr2”對(duì)應(yīng)的C語(yǔ)言算術(shù)表達(dá)式應(yīng)該寫成“PI*r*r”(PI是已經(jīng)定義的符號(hào)常量)。(2)任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序C語(yǔ)言算術(shù)表達(dá)式不允許有分子分母的形式。(3)C語(yǔ)言算術(shù)表達(dá)式只使用圓括號(hào)改變運(yùn)算的優(yōu)先順序(不要使用{}、[])。可以使用多層圓括號(hào),左右括號(hào)必須配對(duì),運(yùn)算時(shí)從內(nèi)層括號(hào)開始,由內(nèi)向外依次計(jì)算表達(dá)式的值。(4)任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序任務(wù)實(shí)施步驟1:分析任務(wù)需求要應(yīng)用C語(yǔ)言計(jì)算班級(jí)學(xué)生學(xué)習(xí)用品的采購(gòu)數(shù)量,可以通過(guò)以下步驟實(shí)現(xiàn)。(1)定義兩個(gè)整數(shù)類型的變量,分別用于存放中性筆和筆記本的數(shù)量;定義一個(gè)常量,用于存放班級(jí)的學(xué)生數(shù)量45。(2)輸出提示信息,提示用戶輸入每位同學(xué)需要發(fā)放的中性筆和筆記本的數(shù)量。(3)獲取用戶從鍵盤輸入的每位同學(xué)需要發(fā)放的中性筆和筆記本的數(shù)量。(4)計(jì)算需要采購(gòu)的中性筆和筆記本的數(shù)量。中性筆總數(shù)=人數(shù)*給每位同學(xué)發(fā)放的中性筆的數(shù)量筆記本總數(shù)=人數(shù)*給每位同學(xué)發(fā)放的筆記本的數(shù)量(5)輸出計(jì)算結(jié)果。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序步驟2:在Visual

C++中創(chuàng)建項(xiàng)目打開Visual

C++后創(chuàng)建項(xiàng)目text02,在text02項(xiàng)目的源文件包中創(chuàng)建Supplies.cpp文件,如圖2-1-6所示。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序步驟3:在Supplies.cpp中編寫代碼Supplies.cpp中的具體代碼如下。#include<stdio.h>intmain(){

intnumBi;

intnumBen;

constintStu=45;

inttotalBi,totalBen;

printf("請(qǐng)輸入發(fā)給每位同學(xué)的中性筆數(shù)量:");

scanf("%d",&numBi);任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序

printf("請(qǐng)輸入發(fā)給每位同學(xué)的筆記本數(shù)量:");

scanf("%d",&numBen);

totalBi=Stu*numBi;

totalBen=Stu*numBen;

printf("一共需要采購(gòu)%d支中性筆,%d本筆記本\n",totalBi,totalBen);

return0;}任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序步驟4:測(cè)試Supplies.cpp中的代碼運(yùn)行Supplies.cpp,假設(shè)需要發(fā)給每位同學(xué)3支中性筆、2本筆記本,計(jì)算結(jié)果如圖2-1-7所示。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序任務(wù)實(shí)訓(xùn)1.實(shí)訓(xùn)題目計(jì)算鐘點(diǎn)工的薪水,在控制臺(tái)輸入鐘點(diǎn)工的工時(shí)后,計(jì)算出鐘點(diǎn)工的薪水。假設(shè)鐘點(diǎn)工每小時(shí)20元。2.實(shí)現(xiàn)步驟分析題目可以得出以下內(nèi)容。(1)鐘點(diǎn)工的薪水=一小時(shí)的薪資*工時(shí)。因此,需要定義3個(gè)變量來(lái)表達(dá)薪水的計(jì)算過(guò)程,工時(shí)可能為小數(shù),所以需要設(shè)定為float數(shù)據(jù)類型,而最后的工資可能也會(huì)有小數(shù),也采用float數(shù)據(jù)類型。(2)每小時(shí)的薪資是已定的,因此只需要接受控制臺(tái)輸入的工時(shí)后與每小時(shí)的薪資相乘即可。任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序具體代碼如下。#include<stdio.h>intmain(){intHourlyRate=20;//表示每小時(shí)的薪水floatHoursWorked;//表示工作的時(shí)長(zhǎng)floatGrossPay;//表示應(yīng)該得到的工資printf("請(qǐng)輸入工作的時(shí)長(zhǎng):");scanf("%f",&HoursWorked);printf("每小時(shí)%d元,您一共工作%f小時(shí),總共應(yīng)得%f元\n",HourlyRate,HoursWorked,HoursWorked*HourlyRate);}任務(wù)1

制作計(jì)算學(xué)習(xí)用品采購(gòu)數(shù)量的程序運(yùn)行上述代碼,輸入工時(shí)為5.5,計(jì)算總薪資,運(yùn)行結(jié)果如圖2-1-8所示。任務(wù)2制作計(jì)算路途所需時(shí)間的程序任務(wù)2

制作計(jì)算路途所需時(shí)間的程序任務(wù)描述編寫一個(gè)程序,計(jì)算坐高鐵所需的時(shí)間,輸入出發(fā)時(shí)間和到達(dá)時(shí)間,分別以小時(shí)數(shù)和分鐘數(shù)兩個(gè)整數(shù)表示,然后計(jì)算并輸出到達(dá)時(shí)間和出發(fā)時(shí)間之差,同樣以小時(shí)數(shù)和分鐘數(shù)來(lái)表示。知識(shí)準(zhǔn)備知識(shí)點(diǎn)1自增、自減運(yùn)算符自增運(yùn)算符(++)和自減運(yùn)算符(--)在C語(yǔ)言中使用得比較頻繁,這兩個(gè)運(yùn)算符有一個(gè)共同的特點(diǎn),就是它們既可以出現(xiàn)在變量的左邊,構(gòu)成前置自增(++)或前置自減(--),又可以出現(xiàn)在變量的右邊,構(gòu)成后置自增(++)或后置自減(--)。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序前置自增(++)或前置自減(--)運(yùn)算的語(yǔ)法規(guī)則是先將變量的值加1或減1,再使用該變量。后置自增(++)或后置自減(--)運(yùn)算的語(yǔ)法規(guī)則是先使用該變量,再將變量的值加1或減1。注意:自增和自減是單目運(yùn)算符,因此常量和表達(dá)式不可以進(jìn)行自增或自減運(yùn)算。例如,5++和(a+5)++都是不合法的。【例2-2-1】使用自增、自減運(yùn)算符的示例如下。#include<stdio.h>intmain(){intNumber1=8;//定義變量賦值為8intNumber2=8;任務(wù)2

制作計(jì)算路途所需時(shí)間的程序intResultPreA,ResultLastA;//聲明變量,保存自增運(yùn)算的結(jié)果intResultPreD,ResultLastD;//聲明變量,保存自減運(yùn)算的結(jié)果ResultPreA=++Number1;//前綴自增運(yùn)算ResultLastA=Number2++;//后綴自增運(yùn)算printf("自增運(yùn)算后的結(jié)果如下...\n");printf("自增運(yùn)算后自身的數(shù)值:%d\n",Number1);//Number1自增后自身的數(shù)值printf("自增運(yùn)算的結(jié)果:%d\n",ResultPreA);//Number1自增后的結(jié)果任務(wù)2

制作計(jì)算路途所需時(shí)間的程序printf("自增運(yùn)算后自身的數(shù)值:%d\n",Number2);//Number2自增后自身的數(shù)值printf("自增運(yùn)算的結(jié)果:%d\n",ResultLastA);//Number2自增后的結(jié)果Number1=8;//恢復(fù)變量的值為8Number2=8;ResultPreD=--Number1;//前綴自減運(yùn)算ResultLastD=Number2--;//后綴自減運(yùn)算printf("自減運(yùn)算后的結(jié)果如下...\n");printf("自減運(yùn)算后自身的數(shù)值:%d\n",Number1);//Number1自減后自身的數(shù)值任務(wù)2

制作計(jì)算路途所需時(shí)間的程序printf("自減運(yùn)算的結(jié)果:%d\n",ResultPreD);//Number1自減后的結(jié)果printf("自減運(yùn)算后自身的數(shù)值:%d\n",Number2);//Number2自減后自身的數(shù)值printf("自減運(yùn)算的結(jié)果:%d\n",ResultLastD);//Number2自減后的結(jié)果return0;}任務(wù)2

制作計(jì)算路途所需時(shí)間的程序運(yùn)行程序,程序的運(yùn)行結(jié)果如圖2-2-1所示。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序從上述實(shí)例代碼和運(yùn)行結(jié)果可知以下幾點(diǎn)。(1)在程序代碼中,定義Number1和Number2兩個(gè)變量用來(lái)進(jìn)行自增、自減運(yùn)算。(2)進(jìn)行自增運(yùn)算,分為前綴自增和后綴自增。通過(guò)程序最終的顯示結(jié)果可以看到,自增變量Number1和Number2的結(jié)果同為8,但是得到表達(dá)式結(jié)果的兩個(gè)變量ResultPreA和ResultLastA是不一樣的。ResultPreA的值為9,ResultLastA的值為8,因?yàn)榍熬Y自增使得ResultPreA變量先進(jìn)行自增操作,然后進(jìn)行賦值操作;后綴自增操作是先進(jìn)行賦值操作,然后進(jìn)行自增操作,所以兩個(gè)變量得到表達(dá)式的結(jié)果值是不一樣的。(3)在自減運(yùn)算中,前綴自減和后綴自減與自增運(yùn)算方式是相同的,前綴自減是先進(jìn)行減1操作然后進(jìn)行賦值操作;而后綴自減是先進(jìn)行賦值操作,再進(jìn)行自減操作。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序知識(shí)點(diǎn)2位運(yùn)算符位運(yùn)算符包括按位取反運(yùn)算符(~)、移位運(yùn)算符、按位“與”(&)、按位“或”(|)和按位“異或”(^),下面將詳細(xì)介紹這5種位運(yùn)算符。1.按位取反運(yùn)算符按位取反運(yùn)算符就是將其操作對(duì)象中的所有二進(jìn)制位全部改變狀態(tài),即“逢0變1,逢1變0”。例如,八進(jìn)制數(shù)0217(二進(jìn)制為10001111),按位取反后為八進(jìn)制數(shù)0160(二進(jìn)制為01110000),所以~0217的值是0160。按位取反運(yùn)算符的應(yīng)用示例如下。unsignedcharx=0137;/*二進(jìn)制01011111*/x=~x;/*x的二進(jìn)制結(jié)果為10100000*/任務(wù)2

制作計(jì)算路途所需時(shí)間的程序2.移位運(yùn)算符移位運(yùn)算符有左移運(yùn)算符(<<)和右移運(yùn)算符(>>)兩種。(1)左移運(yùn)算符。左移運(yùn)算符是將其操作對(duì)象向左移動(dòng)指定的位數(shù),每左移1位相當(dāng)于乘以2,移n位相當(dāng)于乘以2的n次方。一個(gè)二進(jìn)制位組在左移時(shí)右邊補(bǔ)0,移幾位右邊補(bǔ)幾個(gè)0。其一般書寫格式如下。其中,表達(dá)式1是被左移對(duì)象,表達(dá)式2給出左移位數(shù)。例如,表達(dá)式“x<<4”的結(jié)果就是將x左移4位。左邊移出的位被舍棄。例如,表達(dá)式“0377<<4”,其結(jié)果為0360,即11111111左移4位后為11110000。表達(dá)式1<<表達(dá)式2任務(wù)2

制作計(jì)算路途所需時(shí)間的程序(2)右移運(yùn)算符。右移運(yùn)算符是將其操作數(shù)向右移動(dòng)指定的位數(shù),右移操作相當(dāng)于除以2,右移n位相當(dāng)于除以2的n次方。在進(jìn)行右移時(shí),右邊移出的二進(jìn)制位被舍棄。其一般書寫格式如下。其中,表達(dá)式1是被右移對(duì)象,表達(dá)式2給出移動(dòng)位數(shù)。例如,表達(dá)式“x>>2”的結(jié)果就是將x右移2位。例如,表達(dá)式“0377>>4”的結(jié)果為017。它相當(dāng)于將二進(jìn)制數(shù)11111111右移4位,結(jié)果為00001111。表達(dá)式1>>表達(dá)式2任務(wù)2

制作計(jì)算路途所需時(shí)間的程序注意:(1)左移或右移時(shí)出現(xiàn)的空位應(yīng)當(dāng)補(bǔ)0。(2)如果左移或右移的位數(shù)是負(fù)值,則移位的最終結(jié)果為0值。(3)如果參與移位運(yùn)算的變量是有符號(hào)的整型變量,則應(yīng)當(dāng)將最左邊的二進(jìn)制位當(dāng)作符號(hào)位,并根據(jù)補(bǔ)碼來(lái)確定最終的結(jié)果。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序3.按位“與”按位“與”的一般書寫格式如下。其中,表達(dá)式1和表達(dá)式2均為整型表達(dá)式。按位“與”遵循這樣的原則:當(dāng)兩個(gè)操作對(duì)象的相應(yīng)二進(jìn)制位均為1時(shí),則該對(duì)應(yīng)位的按位“與”結(jié)果為1,否則為0,可以簡(jiǎn)記為“兩1為1,其余為0”。例如,“15&26”,15的二進(jìn)制表示為00001111,26的二進(jìn)制表示為00011010,按位“與”后的二進(jìn)制表示為00001010。表達(dá)式1&表達(dá)式2任務(wù)2

制作計(jì)算路途所需時(shí)間的程序注意:按位“與”的運(yùn)算,兩個(gè)表達(dá)式之間用一個(gè)“&”符號(hào),而邏輯“與”,兩個(gè)表達(dá)式之間用兩個(gè)“&”符號(hào),這是初學(xué)者經(jīng)常出錯(cuò)的地方??梢岳冒次弧芭c”來(lái)獲取指定位的值。例如,假設(shè)x是一般的unsigned類型的整型數(shù)(2個(gè)字節(jié)),想獲取其低字節(jié)的值時(shí),只需將x與0377相與即可。示例如下。其中,x的二進(jìn)制表示為0101000101110010,0377的二進(jìn)制表示為0000000011111111,y的二進(jìn)制表示為0000000001110010。y=x&0377任務(wù)2

制作計(jì)算路途所需時(shí)間的程序還可以利用按位“與”來(lái)測(cè)試指定的位是否為0。例如,想測(cè)試上例中x從左數(shù)第四位是否為0,則只需將它與010000(八進(jìn)制)按位“與”(y=x&010000)。若y為0,則說(shuō)明被測(cè)位為0,否則為1。x的二進(jìn)制表示為0101000101110010,010000(八進(jìn)制)的二進(jìn)制表示為0001000000000000,計(jì)算結(jié)果為0001000000000000。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序4.按位“或”按位“或”的一般書寫格式如下。其中,表達(dá)式1和表達(dá)式2是整型表達(dá)式。按位“或”遵循這樣的原則:當(dāng)兩個(gè)操作對(duì)象的相應(yīng)二進(jìn)制位均為0時(shí),該對(duì)應(yīng)位的按位“或”結(jié)果才為0,否則為1,可以簡(jiǎn)記為“兩0為0,其余為1”。例如,“35|41”,35的二進(jìn)制表示為0000000000100011,41的二進(jìn)制表示為0000000000101001,按位“或”的結(jié)果為0000000000101011。表達(dá)式1|表達(dá)式2任務(wù)2

制作計(jì)算路途所需時(shí)間的程序可以利用按位“或”來(lái)將指定位設(shè)置為1。例如,將x從右數(shù)的第三位(二進(jìn)制位)設(shè)置為1,只需執(zhí)行如下表達(dá)式即可。x=x|04x的二進(jìn)制表示為0111100001000011,04的二進(jìn)制表示為0000000000000100,按位“或”的結(jié)果為0111100001000111。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序5.按位“異或”按位“異或”的一般書寫格式如下。表達(dá)式1^表達(dá)式2任務(wù)2

制作計(jì)算路途所需時(shí)間的程序其中,表達(dá)式1和表達(dá)式2是整型表達(dá)式。按位“異或”遵循這樣的原則:當(dāng)其兩個(gè)操作對(duì)象的相應(yīng)位相同時(shí),則該對(duì)應(yīng)位“異或”的結(jié)果為0,可以簡(jiǎn)記為“相同為0,不同為1”,即0^0=0,0^1=1,1^1=0。按位“異或”也可稱為“不進(jìn)位加”,即兩個(gè)操作對(duì)象執(zhí)行二進(jìn)制相加,但不向高位進(jìn)位。例如,“73^81”,73的二進(jìn)制表示為0000000001001001,81的二進(jìn)制表示為0000000001010001,按位“異或”結(jié)果為0000000000011000。所以“異或”的意思是判斷兩個(gè)相應(yīng)的二進(jìn)制位是否相異。如果相異,則結(jié)果為“真”(為1),否則為“假”(為0)。利用按位“異或”可使一個(gè)數(shù)的各二進(jìn)制位翻轉(zhuǎn)。例如,要使x的各位翻轉(zhuǎn),只需執(zhí)行如下表達(dá)式。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序其中,x的二進(jìn)制表示為0101000101110010,“異或”后的結(jié)果為1010111010001101。x=x^0177777任務(wù)2

制作計(jì)算路途所需時(shí)間的程序知識(shí)點(diǎn)3賦值運(yùn)算符在C語(yǔ)言中,可以通過(guò)賦值運(yùn)算直接為變量提供數(shù)據(jù)。賦值運(yùn)算是C程序中應(yīng)用得最為廣泛的一種運(yùn)算。賦值運(yùn)算符(=)是將其右側(cè)表達(dá)式的值賦給左側(cè)的變量。賦值號(hào)左側(cè)一定是變量,右側(cè)是表達(dá)式。如果右側(cè)表達(dá)式的類型與左側(cè)變量的類型不一致,則先將右側(cè)表達(dá)式的值轉(zhuǎn)換為與左側(cè)變量相同的類型,再進(jìn)行賦值。示例如下。i=d+3任務(wù)2

制作計(jì)算路途所需時(shí)間的程序其中,i為int型,d為double型。于是此運(yùn)算的處理過(guò)程是先將3轉(zhuǎn)換為double型(3.0),再執(zhí)行d+3.0,結(jié)果為double型,最后把double的結(jié)果轉(zhuǎn)換為int型,并賦值給i。由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子稱為“賦值表達(dá)式”。賦值表達(dá)式的一般形式如下。例如,“a=5”是一個(gè)賦值表達(dá)式。對(duì)賦值表達(dá)式求解的過(guò)程是:將賦值運(yùn)算符右側(cè)的表達(dá)式的值賦給左側(cè)的變量。賦值表達(dá)式的值就是被賦值的變量的值。例如,“a=5”這個(gè)賦值表達(dá)式的值為5(變量a的值也是5)。賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符,如“a+=a-=a*a”也是一個(gè)賦值表達(dá)式。<變量><賦值運(yùn)算符><表達(dá)式>任務(wù)2

制作計(jì)算路途所需時(shí)間的程序如果a的初值為10,此賦值表達(dá)式的求解步驟如下。(1)進(jìn)行“a-=a*a”的運(yùn)算,它相當(dāng)于a=a-a*a=10-100=-90。(2)進(jìn)行“a+=-90”的運(yùn)算,相當(dāng)于a=a+(-90)=-90-90=-180,即上式相當(dāng)于a=a+(a=a-a*a)。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序C語(yǔ)言中明確規(guī)定:賦值運(yùn)算符(=)左側(cè)只能是變量,不能是常量和算術(shù)表達(dá)式。例如,表達(dá)式a=a+7=c+b,第二個(gè)賦值號(hào)左側(cè)出現(xiàn)了算術(shù)表達(dá)式a+7,因此它是不合法的。將賦值表達(dá)式作為表達(dá)式的一種,使賦值操作不僅可以出現(xiàn)在賦值語(yǔ)句中,而且能以表達(dá)式的形式出現(xiàn)在其他語(yǔ)句(如輸出語(yǔ)句、循環(huán)語(yǔ)句)中,如“printf("%d",a=b);”。如果b的值為3,則輸出a的值(也是表達(dá)式a=b的值)為3。在一個(gè)語(yǔ)句中完成了賦值和輸出雙重功能。這是C語(yǔ)言靈活性的一種表現(xiàn)。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序在變量說(shuō)明中給變量初始化和賦值語(yǔ)句的區(qū)別為:給變量初始化是變量說(shuō)明的一部分,初始化后的變量與其后的其他同類變量之間仍必須用逗號(hào)間隔,而賦值語(yǔ)句必須以分號(hào)結(jié)尾。同時(shí),在變量說(shuō)明中,不允許連續(xù)給多個(gè)變量賦值。例如,“inta=b=c=5;”是錯(cuò)誤的,必須寫成“inta=5,b=5,c=5;”。賦值語(yǔ)句允許連續(xù)賦值。給多個(gè)變量賦同一值時(shí)可用連等的方式進(jìn)行?!癮=b=c=5;”按照賦值運(yùn)算符的右結(jié)合性,實(shí)際上等效于“c=5;b=c;a=b;”。賦值表達(dá)式和賦值語(yǔ)句的區(qū)別:賦值表達(dá)式是一種表達(dá)式,它可以出現(xiàn)在任何允許表達(dá)式出現(xiàn)的地方,而賦值語(yǔ)句則不能。例如,“if(x=y+5)>0z=x;”是合法的,而語(yǔ)句“if(x=y+5;)>0z=x;”是非法的,因?yàn)椤皒=y+5;”是語(yǔ)句,不能出現(xiàn)在表達(dá)式中。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序賦值運(yùn)算符包括簡(jiǎn)單賦值運(yùn)算符和復(fù)合賦值運(yùn)算符,復(fù)合賦值運(yùn)算符又包括算術(shù)復(fù)合賦值運(yùn)算符和位操位復(fù)合賦值運(yùn)算符,如表2-2-1所示。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序知識(shí)點(diǎn)4逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符是C語(yǔ)言提供的又一種特殊的運(yùn)算符。用逗號(hào)運(yùn)算符將兩個(gè)或多個(gè)表達(dá)式連接起來(lái),構(gòu)成一個(gè)完整的表達(dá)式,稱為“逗號(hào)表達(dá)式”。逗號(hào)表達(dá)式的一般形式如下。逗號(hào)表達(dá)式的求解過(guò)程是:自左向右,求解表達(dá)式1,求解表達(dá)式2,…,求解表達(dá)式n。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式n的值。表達(dá)式1,表達(dá)式2,…,表達(dá)式n任務(wù)2

制作計(jì)算路途所需時(shí)間的程序注意:逗號(hào)表達(dá)式的優(yōu)先級(jí)最低,結(jié)合順序?yàn)樽宰笙蛴?。例如,表達(dá)式“a=3*5,a++,a*4”的值為64,變量a的值為16。逗號(hào)表達(dá)式主要用于將若干表達(dá)式串聯(lián)起來(lái),表示一個(gè)順序操作(計(jì)算)。在多數(shù)情況下,使用逗號(hào)表達(dá)式的目的只是想分別得到各個(gè)表達(dá)式的值,而并非一定要得到和使用整個(gè)逗號(hào)表達(dá)式的值。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序【例2-2-2】逗號(hào)表達(dá)式示例。程序代碼如下。#include<stdio.h>intmain(){intx,a;x=(a=3,6*3);/*a=3,x=18*/printf("%d,%d\n",a,x);x=a=3,6*a;/*a=3,x=3*/printf("%d,%d\n",a,x);}任務(wù)2

制作計(jì)算路途所需時(shí)間的程序程序的運(yùn)行結(jié)果如圖2-2-2所示。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序任務(wù)實(shí)施步驟1:分析任務(wù)需求要使用C語(yǔ)言計(jì)算路途所需時(shí)間,可以通過(guò)以下步驟實(shí)現(xiàn)。定義4個(gè)整數(shù)類型的變量,分別用于存放出發(fā)、到達(dá)的小時(shí)和分鐘。(1)輸出提示信息,提示用戶輸入出發(fā)的小時(shí)、分鐘,到達(dá)的小時(shí)、分鐘。(2)任務(wù)2

制作計(jì)算路途所需時(shí)間的程序輸出所花費(fèi)的小時(shí)數(shù)和所花費(fèi)的分鐘數(shù),即到達(dá)時(shí)間與出發(fā)時(shí)間的時(shí)間差。將出發(fā)時(shí)間和到達(dá)時(shí)間轉(zhuǎn)換為分鐘,并計(jì)算時(shí)間差。(3)(5)用時(shí)間差除以60,商為所花費(fèi)的小時(shí)數(shù),余數(shù)為所花費(fèi)的分鐘數(shù)。(4)任務(wù)2

制作計(jì)算路途所需時(shí)間的程序步驟2:在Visual

C++中創(chuàng)建項(xiàng)目打開Visual

C++后,在text02項(xiàng)目的源文件包中創(chuàng)建Time.cpp文件。步驟3:在Time.cpp中編寫代碼Time.cpp中的具體代碼如下。#include<stdio.h>intmain(){inthour1,minute1;inthour2,minute2;printf("出發(fā)時(shí)間為:");scanf("%d%d",&hour1,&minute1);任務(wù)2

制作計(jì)算路途所需時(shí)間的程序printf("到達(dá)時(shí)間為:");scanf("%d%d",&hour2,&minute2);inta1=hour1*60+minute1;inta2=hour2*60+minute2;inta=a2-a1;inth=a/60;a%=60;printf("本次列車共需要:%d小時(shí)%d分鐘:",h,a);return

0;}任務(wù)2

制作計(jì)算路途所需時(shí)間的程序步驟4:測(cè)試Time.cpp中的代碼運(yùn)行Time.cpp,假設(shè)出發(fā)時(shí)間為7:40,到達(dá)時(shí)間為9:15,程序運(yùn)行結(jié)果如圖2-2-3所示。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序任務(wù)實(shí)訓(xùn)1.實(shí)訓(xùn)題目編寫在已知三角形3條邊長(zhǎng)度的情況下計(jì)算其面積的C程序。此處使用三角形的面積公式中的海倫公式:設(shè)三角形的三邊長(zhǎng)分別為a、b、c,半周長(zhǎng)p=(a+b+c)÷2,則三角形的面積為

任務(wù)2

制作計(jì)算路途所需時(shí)間的程序2.實(shí)現(xiàn)步驟本實(shí)訓(xùn)中涉及的變量包括三角形的邊長(zhǎng)和面積,邊長(zhǎng)的數(shù)據(jù)類型通常為浮點(diǎn)(float)型,為了更精確地顯示計(jì)算結(jié)果,面積的數(shù)據(jù)類型可定義為double型。由于計(jì)算面積時(shí)需要用到平方根的計(jì)算,須調(diào)用math.h頭文件。小提示:math.h頭文件中聲明了一些常用的數(shù)學(xué)運(yùn)算,如三角函數(shù)、平方根、指數(shù)、對(duì)數(shù)、絕對(duì)值等運(yùn)算。任務(wù)2

制作計(jì)算路途所需時(shí)間的程序具體代碼如下。#include<stdio.h>#include<math.h>intmain(){floata,b,c;

//定義三角形的3條邊f(xié)loatp;

//定義中間變量pdoubles;//定義面積sprintf("請(qǐng)輸入三角形3條邊的長(zhǎng)度:")任務(wù)2

制作計(jì)算路途所需時(shí)間的程序scanf("%f%f%f",&a,&b,&c);

//輸入3條邊的長(zhǎng)度p=(a+b+c)/2;

//求解中間變量ps=sqrt(p*(p-a)*(p-b)*(p-c));

//利用公式求解三角形的面積sprintf("三角形的面積為%f\n",s);//輸出面積sreturn0;}任務(wù)2

制作計(jì)算路途所需時(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)論