C語(yǔ)言程序設(shè)計(jì) 課件全套 原莉 0開(kāi)篇、1創(chuàng)建第一個(gè)C程序-10利用文件完善項(xiàng)目_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì) 課件全套 原莉 0開(kāi)篇、1創(chuàng)建第一個(gè)C程序-10利用文件完善項(xiàng)目_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì) 課件全套 原莉 0開(kāi)篇、1創(chuàng)建第一個(gè)C程序-10利用文件完善項(xiàng)目_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì) 課件全套 原莉 0開(kāi)篇、1創(chuàng)建第一個(gè)C程序-10利用文件完善項(xiàng)目_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì) 課件全套 原莉 0開(kāi)篇、1創(chuàng)建第一個(gè)C程序-10利用文件完善項(xiàng)目_第5頁(yè)
已閱讀5頁(yè),還剩822頁(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)介

C語(yǔ)言程序設(shè)計(jì)創(chuàng)建第一個(gè)C語(yǔ)言程序項(xiàng)目1“學(xué)生成績(jī)管理系統(tǒng)”中相關(guān)數(shù)據(jù)設(shè)計(jì)及簡(jiǎn)單處理項(xiàng)目2項(xiàng)目中學(xué)生成績(jī)的等級(jí)判定項(xiàng)目3項(xiàng)目中的設(shè)計(jì)數(shù)據(jù)處理及封面與菜單的初步項(xiàng)目4學(xué)生成績(jī)的分組匯總程序項(xiàng)目5利用數(shù)組完善項(xiàng)目中數(shù)據(jù)的處理項(xiàng)目6利用函數(shù)進(jìn)行項(xiàng)目的整體框架設(shè)計(jì)項(xiàng)目7利用結(jié)構(gòu)體實(shí)現(xiàn)項(xiàng)目項(xiàng)目8利用指針優(yōu)化項(xiàng)目項(xiàng)目9利用文件完善項(xiàng)目項(xiàng)目10開(kāi)篇--學(xué)生成績(jī)管理系統(tǒng)開(kāi)篇--學(xué)生成績(jī)管理系統(tǒng)

實(shí)現(xiàn)在線測(cè)試系統(tǒng)主頁(yè)面的布局和美化某班級(jí)需要一個(gè)學(xué)生成績(jī)管理系統(tǒng),該系統(tǒng)應(yīng)具有學(xué)生成績(jī)的添加、刪除、查詢、修改、插入和排序等處理功能,提供數(shù)字按鍵菜單操作方式,如圖0-1所示。任務(wù)描述實(shí)現(xiàn)在線測(cè)試系統(tǒng)主頁(yè)面的布局和美化某班級(jí)需要一個(gè)學(xué)生成績(jī)管理系統(tǒng),該系統(tǒng)應(yīng)具有學(xué)生成績(jī)的添加、刪除、查詢、修改、插入和排序等處理功能,提供數(shù)字按鍵菜單操作方式,如圖0-1所示。開(kāi)篇--學(xué)生成績(jī)管理系統(tǒng)

實(shí)現(xiàn)在線測(cè)試系統(tǒng)主頁(yè)面的布局和美化某班級(jí)需要一個(gè)學(xué)生成績(jī)管理系統(tǒng),該系統(tǒng)應(yīng)具有學(xué)生成績(jī)的添加、刪除、查詢、修改、插入和排序等處理功能,提供數(shù)字按鍵菜單操作方式,如圖0-1所示。任務(wù)分析實(shí)現(xiàn)根據(jù)上面的問(wèn)題描述,可以得出該學(xué)生系統(tǒng)要實(shí)現(xiàn)的功能,有以下幾方面:1.錄入學(xué)生成績(jī)信息。2.實(shí)現(xiàn)刪除功能,即輸入學(xué)號(hào),刪除相應(yīng)的記錄。3.實(shí)現(xiàn)查找功能,即輸入學(xué)號(hào),查詢?cè)搶W(xué)生的相應(yīng)信息。4.實(shí)現(xiàn)修改功能,即輸入學(xué)號(hào),修改相應(yīng)的記錄信息。5.指定位置插入學(xué)生的成績(jī)信息,即將新的記錄插入到指定位置。6.實(shí)現(xiàn)學(xué)生的排名,即按照選定的關(guān)鍵字段進(jìn)行排序。7.?dāng)?shù)據(jù)統(tǒng)計(jì),按用戶指定條件進(jìn)行統(tǒng)計(jì)。測(cè)試系統(tǒng)主頁(yè)面的布局和美化某班級(jí)需要一個(gè)學(xué)生成績(jī)管理系統(tǒng),該系統(tǒng)應(yīng)具有學(xué)生成績(jī)的添加、刪除、查詢、修改、插入和排序等處理功能,提供數(shù)字按鍵菜單操作方式,如圖0-1所示。開(kāi)篇--學(xué)生成績(jī)管理系統(tǒng)

實(shí)現(xiàn)在線測(cè)試系統(tǒng)主頁(yè)面的布局和美化某班級(jí)需要一個(gè)學(xué)生成績(jī)管理系統(tǒng),該系統(tǒng)應(yīng)具有學(xué)生成績(jī)的添加、刪除、查詢、修改、插入和排序等處理功能,提供數(shù)字按鍵菜單操作方式,如圖0-1所示。任務(wù)分析學(xué)生成績(jī)管理系統(tǒng)錄入數(shù)據(jù)查詢記錄修改記錄插入記錄刪除記錄成績(jī)排序數(shù)據(jù)統(tǒng)計(jì)瀏覽記錄開(kāi)篇--學(xué)生成績(jī)管理系統(tǒng)

實(shí)現(xiàn)在線測(cè)試系統(tǒng)主頁(yè)面的布局和美化某班級(jí)需要一個(gè)學(xué)生成績(jī)管理系統(tǒng),該系統(tǒng)應(yīng)具有學(xué)生成績(jī)的添加、刪除、查詢、修改、插入和排序等處理功能,提供數(shù)字按鍵菜單操作方式,如圖0-1所示。實(shí)施方案本案例貫穿整個(gè)教材,由系統(tǒng)的初步設(shè)計(jì)、開(kāi)發(fā)、優(yōu)化到系統(tǒng)的最后完善。方案設(shè)計(jì)如下:1.項(xiàng)目1-項(xiàng)目6,各項(xiàng)目設(shè)計(jì)獨(dú)立的案例,重點(diǎn)是學(xué)習(xí)、掌握C語(yǔ)言程序設(shè)計(jì)的語(yǔ)法規(guī)則。2.項(xiàng)目7,按照模塊化程序設(shè)計(jì)方法,完成系統(tǒng)的整體結(jié)構(gòu)和系統(tǒng)界面的設(shè)計(jì)。3.項(xiàng)目8,進(jìn)行數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及主要功能函數(shù)的實(shí)現(xiàn),從而學(xué)習(xí)結(jié)構(gòu)體相關(guān)內(nèi)容。4.項(xiàng)目9,利用指針優(yōu)化各功能模塊。5.項(xiàng)目10,利用文件實(shí)現(xiàn)系統(tǒng)的數(shù)據(jù)存取,完善整個(gè)系統(tǒng)。知識(shí)儲(chǔ)備要完成學(xué)生成績(jī)管理系統(tǒng)的開(kāi)發(fā),必須學(xué)完正本教材全部?jī)?nèi)容,熟悉C語(yǔ)言的語(yǔ)法規(guī)則和三大基本結(jié)構(gòu),掌握C語(yǔ)言程序設(shè)計(jì)的基本技能和結(jié)構(gòu)化程序設(shè)計(jì)方法。謝謝多一點(diǎn)努力,多一點(diǎn)實(shí)踐,多一點(diǎn)點(diǎn)就能創(chuàng)造奇跡!C語(yǔ)言程序設(shè)計(jì)創(chuàng)建第一個(gè)C語(yǔ)言程序項(xiàng)目1“學(xué)生成績(jī)管理系統(tǒng)”中相關(guān)數(shù)據(jù)設(shè)計(jì)及簡(jiǎn)單處理項(xiàng)目2項(xiàng)目中學(xué)生成績(jī)的等級(jí)判定項(xiàng)目3項(xiàng)目中的設(shè)計(jì)數(shù)據(jù)處理及封面與菜單的初步項(xiàng)目4學(xué)生成績(jī)的分組匯總程序項(xiàng)目5利用數(shù)組完善項(xiàng)目中數(shù)據(jù)的處理項(xiàng)目6利用函數(shù)進(jìn)行項(xiàng)目的整體框架設(shè)計(jì)項(xiàng)目7利用結(jié)構(gòu)體實(shí)現(xiàn)項(xiàng)目項(xiàng)目8利用指針優(yōu)化項(xiàng)目項(xiàng)目9利用文件完善項(xiàng)目項(xiàng)目10項(xiàng)目1創(chuàng)建第一個(gè)C語(yǔ)言程序目標(biāo)TARGET知識(shí)目標(biāo)能夠使用了解C語(yǔ)言的產(chǎn)生、發(fā)展和特點(diǎn)掌握C程序的實(shí)現(xiàn)過(guò)程和結(jié)構(gòu)熟悉VisualC++6.0開(kāi)發(fā)環(huán)境理解程序設(shè)計(jì)的思想、方法以及算法了解軟件編程的規(guī)范目標(biāo)TARGET技能目標(biāo)熟悉VisualC++6.0環(huán)境能夠在VisualC++6.0下運(yùn)行、調(diào)試C程序認(rèn)識(shí)C程序任務(wù)1.1創(chuàng)建及運(yùn)行第一個(gè)C程序任務(wù)1.2運(yùn)用算法描述問(wèn)題任務(wù)1.3任務(wù)1.1認(rèn)識(shí)C程序

任務(wù)描述認(rèn)識(shí)第一個(gè)C程序,其運(yùn)行結(jié)果是在計(jì)算機(jī)屏幕上輸出一行文本信息(項(xiàng)目名稱)“學(xué)生成績(jī)管理系統(tǒng)”。任務(wù)分析這是一個(gè)簡(jiǎn)單的C語(yǔ)言程序,只需要一條格式輸出語(yǔ)句即可實(shí)現(xiàn)上述功能。算法設(shè)計(jì)輸出文本“學(xué)生成績(jī)管理系統(tǒng)”,可以使用格式輸出函數(shù)實(shí)現(xiàn)。任務(wù)1.1認(rèn)識(shí)C程序

實(shí)現(xiàn)在線測(cè)試系統(tǒng)主頁(yè)面的布局和美化某班級(jí)需要一個(gè)學(xué)生成績(jī)管理系統(tǒng),該系統(tǒng)應(yīng)具有學(xué)生成績(jī)的添加、刪除、查詢、修改、插入和排序等處理功能,提供數(shù)字按鍵菜單操作方式,如圖0-1所示。程序代碼#include"stdio.h"/*編譯預(yù)處理命令*/voidmain(){ printf("學(xué)生成績(jī)管理系統(tǒng)\n");

/*在屏幕上輸出學(xué)生成績(jī)管理系統(tǒng)*/}/*main()主函數(shù)結(jié)束*/執(zhí)行結(jié)果1認(rèn)識(shí)C語(yǔ)言及C程序Part◎C語(yǔ)言的特點(diǎn)◎C程序的實(shí)現(xiàn)過(guò)程◎C程序的結(jié)構(gòu)◎C語(yǔ)言的產(chǎn)生和發(fā)展C語(yǔ)言的產(chǎn)生和發(fā)展

1972年美國(guó)貝爾實(shí)驗(yàn)室DennisRitchie和BrainKernighan首先推出1983年美國(guó)貝爾實(shí)驗(yàn)室DennisRitchie和BrainKernighan改進(jìn)推出(TheCProgramingLanguage)1983年美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)ANSI,制定標(biāo)準(zhǔn)C(ANSIC)20世紀(jì)80年代中期美國(guó)貝爾實(shí)驗(yàn)室B.Stroustrup博士C++微軟MSC++\VisualC++,BorlandTurboC++\C++Builder面向過(guò)程面向?qū)ο驝語(yǔ)言的特點(diǎn)

簡(jiǎn)潔緊湊、靈活方便.語(yǔ)言功能豐富。C是結(jié)構(gòu)式語(yǔ)言。C語(yǔ)言允許直接訪問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行操作。因此既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多功能。C語(yǔ)言程序生成代碼質(zhì)量高,程序執(zhí)行效率高。C語(yǔ)言具備良好的可移植性。C程序的實(shí)現(xiàn)過(guò)程

源程序文件(*.C)可執(zhí)行文件(*.exe)結(jié)果目標(biāo)文件(*.obj)編輯

編譯鏈接運(yùn)行C程序的實(shí)現(xiàn)過(guò)程

1.編輯??梢杂萌魏我环N編輯軟件將在紙上編寫好的C語(yǔ)言程序輸入計(jì)算機(jī),并將C語(yǔ)言源程序文件*.c以純文本文件形式保存在計(jì)算機(jī)的磁盤上(不能設(shè)置字體、字號(hào)等)。2.編譯。編譯過(guò)程使用C語(yǔ)言編譯程序?qū)⒕庉嫼玫脑闯绦蛭募?.c”,翻譯成二進(jìn)制目標(biāo)代碼文件“*.obj”。編譯程序?qū)υ闯绦蛑鹁錂z查語(yǔ)法錯(cuò)誤發(fā)現(xiàn)錯(cuò)誤后,不僅會(huì)顯示錯(cuò)誤的位置(行號(hào)),還會(huì)告知錯(cuò)誤類型信息。我們需要再次回到編輯軟件修改源程序的錯(cuò)誤,然后,再進(jìn)行編譯,直至排除所有語(yǔ)法和語(yǔ)義錯(cuò)誤。C程序的實(shí)現(xiàn)過(guò)程

3.鏈接。程序編譯后產(chǎn)生的目標(biāo)文件是可重定位的程序模塊,不能直接運(yùn)行。鏈接將編譯生成的各個(gè)目標(biāo)程序模塊和系統(tǒng)或第三方提供的庫(kù)函數(shù)“*.lib”鏈接在一起,生成可以脫離開(kāi)發(fā)環(huán)境、直接在操作系統(tǒng)下運(yùn)行的可執(zhí)行文件“*.exe”。4.運(yùn)行程序。如果經(jīng)過(guò)測(cè)試,運(yùn)行可執(zhí)行文件達(dá)到預(yù)期設(shè)計(jì)目的,這個(gè)C語(yǔ)言程序的開(kāi)發(fā)工作便到此完成了。如果運(yùn)行出錯(cuò),這說(shuō)明程序處理的邏輯存在問(wèn)題,需要再次回到編輯環(huán)境針對(duì)程序出現(xiàn)的邏輯錯(cuò)誤進(jìn)一步檢查、修改源程序,重復(fù)編輯→編譯→鏈接→運(yùn)行的過(guò)程,直到取得預(yù)期結(jié)果為止。C程序的結(jié)構(gòu)

#include"stdio.h"/*編譯預(yù)處理命令*/voidmain(){intiScore1,iScore2,iScore3;/*定義整型變量iScore1、iScore1、iScore1*/floatfAverage;/*定義單精度浮點(diǎn)型變量fAverage*/iScore1=86;/*給變量iScore1賦值86*/iScore2=79;/*給變量iScore2賦值79*/iScore3=92;/*給變量iScore3賦值92*/fAverage=(iScore1+iScore2+iScore3)/3.0;/*計(jì)算平均成績(jī)*/printf("Theaverageis%f\n",fAverage);/*輸出平均成績(jī)*/}例1-1班級(jí)一學(xué)習(xí)小組有三名同學(xué),C語(yǔ)言程序設(shè)計(jì)這門課程的成績(jī)分別為86、79、92,計(jì)算他們的平均成績(jī),并輸出。說(shuō)明:(1)#include是編譯預(yù)處理命令,放在源程序的最前面,編譯預(yù)處理命令后面不加分號(hào)。(2)main()為主函數(shù),其中main是函數(shù)的名字,“()”里是函數(shù)的參數(shù),此處為空。void是一種數(shù)據(jù)類型,空類型。函數(shù)是由函數(shù)頭和函數(shù)體組成的。函數(shù)頭包括函數(shù)的返回至類型、函數(shù)名和函數(shù)參數(shù),函數(shù)體是由一對(duì)“{}”括起來(lái)的用于完成某種功能的語(yǔ)句的集合。函數(shù)一般包括變量定義語(yǔ)句部分和執(zhí)行語(yǔ)句部分。(3)程序的變量在使用前需要先進(jìn)行定義,在同一個(gè)函數(shù)中變量定義語(yǔ)句放在執(zhí)行語(yǔ)句的前面?!癷ntiScore1,iScore2,iScore3;”和“floatfAverage;”都是變量定義語(yǔ)句。說(shuō)明:(4)從“iScore1=86;”語(yǔ)句開(kāi)始,下面的全部是執(zhí)行語(yǔ)句部分,其中“iScore1=86;”、“iScore2=79;”、“iScore3=92;”這三條語(yǔ)句都是賦值語(yǔ)句,即分別將整數(shù)86、79、92給整型變量iScore1、iScore2和iScore3。(5)“fAverage=(iScore1+iScore2+iScore3)/3.0;”這條語(yǔ)句的作用是將變量iScore1、iScore2和iScore3的值相加,然后除以3,得到的結(jié)果賦值給單精度浮點(diǎn)型變量fAverage。(6)“printf("Theaverageis%f",fAverage);”是調(diào)用庫(kù)函數(shù)printf(),輸出相應(yīng)文本及fAverage的值。(7)“/*……*/”括起來(lái)的注釋部分,用來(lái)對(duì)程序進(jìn)行說(shuō)明,向用戶提示或解釋程序的意義。程序編譯時(shí),計(jì)算機(jī)不會(huì)對(duì)注釋做任何處理,注釋可以出現(xiàn)在程序的任何位置,它的出現(xiàn)不會(huì)對(duì)程序的執(zhí)行有任何影響。注意:(1)在C程序中,每一條語(yǔ)句的最后都有一個(gè)分號(hào)“;”,表示一條語(yǔ)句的結(jié)束。(2)C程序中是區(qū)分大小寫的。(3)程序中的許多符號(hào)如逗號(hào)“,”、分號(hào)“;”、雙引號(hào)“""”都是英文狀態(tài)下的符號(hào),輸入應(yīng)格外注意。任務(wù)1.2創(chuàng)建及運(yùn)行第一個(gè)C程序

任務(wù)描述在VisualC++6.0環(huán)境下,創(chuàng)建及運(yùn)行第一個(gè)C程序,計(jì)算機(jī)屏幕上輸出一行文本信息(項(xiàng)目名稱)“學(xué)生成績(jī)管理系統(tǒng)”。任務(wù)分析熟悉VisualC++6.0環(huán)境,能夠正確編輯、鏈接、運(yùn)行C程序。算法設(shè)計(jì)與程序代碼算法與程序代碼參考任務(wù)1-1。2C程序的開(kāi)發(fā)環(huán)境Part◎在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序◎C程序的開(kāi)發(fā)環(huán)境C程序的開(kāi)發(fā)環(huán)境

C語(yǔ)言的運(yùn)行環(huán)境很多,有MicrosoftVisualC++、MicrosoftVisualStudio、DEVC++、BorlandC++、BorlandC++Builder、GNUDJGPPC++、HighC、TurboC、C-Free和Win-TC等等,每一種運(yùn)行環(huán)境都有自身的特點(diǎn),讀者可以根據(jù)自己的特點(diǎn)酌情選用。這里我們主要介紹MicrosoftVisualC++6.0。VisualC++6.0是微軟推出的一款編譯器,是一個(gè)功能強(qiáng)大的可視化軟件開(kāi)發(fā)工具,它將程序代碼的編輯、編譯、連接和調(diào)試等功能集于一體。C程序的開(kāi)發(fā)環(huán)境單擊【開(kāi)始】按鈕,在打開(kāi)的【開(kāi)始】菜單中選擇【所有程序】,單擊【MicrosoftVisualStudio6.0】,選擇【MicrosoftVisualC++6.0】,或者雙擊桌面上的MicrosoftVisualC++6.0圖標(biāo),啟動(dòng)VisualC++6.0,進(jìn)入MicrosoftVisualC++6.0集成開(kāi)發(fā)環(huán)境,如圖1-3所示。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序

1.創(chuàng)建工程(1)選擇菜單中的【文件】命令,打開(kāi)菜單,單擊菜單項(xiàng)【新建】,打開(kāi)【新建】對(duì)話框,如圖1-4所示。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序

1.創(chuàng)建工程(2)選擇菜單中的【文件】命令,打開(kāi)菜單,單擊菜單項(xiàng)【新建】,打開(kāi)【新建】對(duì)話框,如圖在【新建】對(duì)話框中,選擇【工程】選項(xiàng)卡,在左側(cè)列表中選擇“Win32ConsoleApplication”類型,VisualC++6.0將創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序。在右側(cè)【工程名稱】文本框中輸入工程名稱,如“MyAve”,單擊【位置】文本框右側(cè)的小按鈕,在彈出的對(duì)話框中選擇存儲(chǔ)位置,如“D:\MYC”,如圖1-5所示。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序

1.創(chuàng)建工程(3)單擊【確定】按鈕,彈出【W(wǎng)in32ConsoleApplication-步驟】對(duì)話框,選擇默認(rèn)單選項(xiàng)【一個(gè)空工程】,即創(chuàng)建一個(gè)空的工程,不包含任何的源文件,如圖1-6所示。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序2.創(chuàng)建文件(1)單擊【確定】按鈕,彈出【W(wǎng)in32ConsoleApplication-步驟】對(duì)話框,選擇默認(rèn)單選項(xiàng)【一個(gè)空工程】,即創(chuàng)建一個(gè)空的工程,不包含任何的源文件,如圖選擇菜單中的【文件】命令,打開(kāi)菜單,單擊菜單項(xiàng)【新建】,打開(kāi)【新建】對(duì)話框,如圖1-7所示。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序2.創(chuàng)建文件(2)單擊【確定】按鈕,彈出【W(wǎng)in32ConsoleApplication-步驟】對(duì)話框,選擇默認(rèn)單選項(xiàng)【一個(gè)空工程】,即創(chuàng)建一個(gè)空的工程,不包含任何的源文件,如圖(2)在【新建】對(duì)話框中,選擇【文件】選項(xiàng)卡,在左側(cè)列表中選擇“C++SourceFile”類型,在右側(cè)【文件】文本框中輸入文件名稱,如“LT1-1.c”,這里文件名必須以.c結(jié)尾,因?yàn)镃程序源程序的擴(kuò)展名為.c,如圖1-5所示,其他選項(xiàng)默認(rèn)即可。其中默認(rèn)將該文件添加到剛剛所建的工程MyAve中,位置是“D:\MYC\LT1-1.c”,如圖1-7所示。菜單中的【文件】命令,打開(kāi)菜單,單擊菜單項(xiàng)【新建】,打開(kāi)【新建】對(duì)話框,如圖1-7所示。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序2.創(chuàng)建文件(3)單擊【確定】按鈕,則回到VisualC++6.0界面,同時(shí)打開(kāi)代碼編輯窗口。打開(kāi)【工作空間】窗口,在其下方選擇【FileView】選項(xiàng)卡,可以看到在SourceFiles文件夾中多了一個(gè)文件LT1-1.c,如圖1-8所示。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序3.編輯C程序源文件在打開(kāi)的代碼編輯窗口例1-1的程序代碼,如圖1-9所示。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序4.編譯選擇菜單中的【組建】命令,打開(kāi)菜單,單擊菜單項(xiàng)【編譯】,對(duì)C源程序進(jìn)行編譯,同時(shí)在VisualC++6.0下部輸出窗口中顯示調(diào)試信息,如圖1-10所示。如果程序存在語(yǔ)法錯(cuò)誤,那么讀者需要根據(jù)輸出窗口中的錯(cuò)誤提示,返回代碼編輯窗口修改程序,然后再次進(jìn)行編譯,直到提示無(wú)錯(cuò)誤為止,如圖1-9所示。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序5.鏈接選擇菜單中的【組建】命令,打開(kāi)菜單,單擊菜單項(xiàng)【組建】,在VisualC++6.0下部輸出窗口中顯示調(diào)試信息,與編譯過(guò)程類似。如果程序存在錯(cuò)誤,那么讀者需要根據(jù)輸出窗口中的錯(cuò)誤提示,返回代碼編輯窗口修改程序,然后再次進(jìn)行編譯、連接,直到提示無(wú)錯(cuò)誤為止。在VisualC++6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行C程序6.運(yùn)行選擇菜單中的【組建】命令,打開(kāi)菜單,單擊菜單項(xiàng)【!執(zhí)行LT1-1.exe】,可以看到屏幕中彈出一DOS輸出窗口,如圖1-11所示。注意:在VisualC++6.0環(huán)境下,編譯、鏈接和運(yùn)行不僅可以用菜單命令進(jìn)行操作還可以使用快捷鍵進(jìn)行操作,編譯、鏈接和運(yùn)行分別對(duì)應(yīng)的快捷鍵是Ctrl+F7、F7和Ctrl+F5。也可以使用命令按鈕進(jìn)行操作,對(duì)應(yīng)的命令按鈕分別是、、。任務(wù)1.3運(yùn)用算法描述問(wèn)題

任務(wù)描述班級(jí)一學(xué)習(xí)小組有三名同學(xué),C語(yǔ)言程序設(shè)計(jì)這門課程的成績(jī)分別為86、79、92,計(jì)算他們的平均成績(jī),并輸出。請(qǐng)利用流程圖描述法給出其算法。任務(wù)分析用流程圖或者NS流程圖圖描述算法。任務(wù)1.3運(yùn)用算法描述問(wèn)題

算法設(shè)計(jì)3程序算法基礎(chǔ)Part◎程序設(shè)計(jì)語(yǔ)言◎程序◎程序設(shè)計(jì)方法◎程序設(shè)計(jì)的一般步驟◎算法◎軟件編程規(guī)范程序

程序是程序設(shè)計(jì)中最為基本的概念,由有限的指令序列構(gòu)成,它的作用是告訴計(jì)算機(jī)當(dāng)前的處理對(duì)象與處理步驟,使計(jì)算機(jī)完成相應(yīng)的任務(wù)。VisualC++6.0是微軟推出的一款編譯器,是一個(gè)功能強(qiáng)大的可視化軟件開(kāi)發(fā)工具,它將程序代碼的編輯、編譯、連接和調(diào)試等功能集于這里的處理對(duì)象即數(shù)據(jù),包括數(shù)據(jù)的類型、數(shù)據(jù)的組織形式和數(shù)據(jù)之間的相互關(guān)系,可以被稱為“數(shù)據(jù)結(jié)構(gòu)”;而處理步驟指的是“操作”,也就是算法。換言之算法和數(shù)據(jù)結(jié)構(gòu)是程序的兩個(gè)重要方面。因此,著名的科學(xué)家沃思(NiklausWirth)提出過(guò)一個(gè)經(jīng)典的公式:

算法+數(shù)據(jù)結(jié)構(gòu)=程序程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言是建立在一定語(yǔ)法規(guī)則之上、用于向計(jì)算機(jī)傳遞程序設(shè)計(jì)人員思想的一批特殊符號(hào)的集合。它能夠使程序設(shè)計(jì)人員準(zhǔn)確地定義計(jì)算機(jī)所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動(dòng)。自20世紀(jì)60年代以來(lái),世界上公布的程序設(shè)計(jì)語(yǔ)言已有上千種之多,但是只有很小一部分得到了廣泛的應(yīng)用。從發(fā)展歷程來(lái)看,程序設(shè)計(jì)語(yǔ)言可以分為機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言、非過(guò)程化語(yǔ)言4代。C語(yǔ)言就是高級(jí)語(yǔ)言中的代表之一。程序設(shè)計(jì)方法

1.程序設(shè)計(jì)程序設(shè)計(jì)(Programming)是人們借助程序設(shè)計(jì)語(yǔ)言,將某一任務(wù)的處理對(duì)象、處理方法及處理步驟轉(zhuǎn)化為計(jì)算機(jī)能夠處理的符號(hào)序列(語(yǔ)句、命令、指令),以及指揮計(jì)算機(jī)完成相應(yīng)任務(wù)的過(guò)程。它是軟件構(gòu)造活動(dòng)中的重要組成部分。程序設(shè)計(jì)方法

2.結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)思想源于20世紀(jì)60年代,是至今仍被廣泛應(yīng)用的一種計(jì)算機(jī)軟件開(kāi)發(fā)技術(shù)。所謂的結(jié)構(gòu)化程序設(shè)計(jì)方法指的是“按照一組能夠提高程序易讀性和易維護(hù)性的規(guī)則進(jìn)行程序設(shè)計(jì)的方法”。其要點(diǎn)如下:原則:(1)程序的質(zhì)量標(biāo)準(zhǔn)是“清晰第一,效率第二”。(2)遵循自頂向下、逐步求精、模塊化設(shè)計(jì)的原則。自頂向下:指從問(wèn)題的全局下手,把一個(gè)復(fù)雜的任務(wù)分解成許多易于控制和處理的子任務(wù),子任務(wù)還可能做進(jìn)一步分解,如此重復(fù),直到每個(gè)子任務(wù)都容易解決為止。逐步求精:指在將抽象問(wèn)題分解成若干個(gè)相對(duì)獨(dú)立的小問(wèn)題時(shí),要逐級(jí)地由抽象到具體、又粗到細(xì)、由表及里進(jìn)行細(xì)化,直到將問(wèn)題細(xì)化到可以用程序的3種結(jié)構(gòu)來(lái)實(shí)現(xiàn)為止。模塊化:指解決一個(gè)復(fù)雜問(wèn)題是自頂向下逐層把軟件系統(tǒng)劃分成一個(gè)個(gè)較小的、相對(duì)獨(dú)立但又相互關(guān)聯(lián)的模塊的過(guò)程。程序設(shè)計(jì)方法

2.結(jié)構(gòu)化程序設(shè)計(jì)方法(3)使用順序、選擇、循環(huán)這三種基本結(jié)構(gòu)表示程序邏輯,即由這三種結(jié)構(gòu)組合或者嵌套而成,并且要滿足下面的條件。每個(gè)程序模塊只準(zhǔn)許有一個(gè)入口和一個(gè)出口。沒(méi)有死語(yǔ)句(永遠(yuǎn)執(zhí)行不到的語(yǔ)句)。沒(méi)有死循環(huán)(永遠(yuǎn)不能終止的循環(huán))。程序設(shè)計(jì)方法

2.結(jié)構(gòu)化程序設(shè)計(jì)方法(4)程序的書寫必須,按照一定的規(guī)范和格式進(jìn)行。不能隨便拼湊。(5)程序的設(shè)計(jì)風(fēng)格要以好的可讀性為標(biāo)準(zhǔn),以使用程序的用戶為核心,外觀美觀,結(jié)構(gòu)流暢、語(yǔ)句簡(jiǎn)潔。程序設(shè)計(jì)的一般步驟

(1)分析問(wèn)題對(duì)于接受的任務(wù)要進(jìn)行認(rèn)真的分析,研究所給定的條件,分析最后應(yīng)達(dá)到的目標(biāo),找出解決問(wèn)題的規(guī)律,選擇解題的方法,完成實(shí)際問(wèn)題。(2)設(shè)計(jì)算法即設(shè)計(jì)出解題的方法和具體步驟。(3)編寫程序?qū)⑺惴ǚg成計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,對(duì)源程序進(jìn)行編輯、編譯和連接。程序設(shè)計(jì)的一般步驟

(4)運(yùn)行程序,分析結(jié)果運(yùn)行可執(zhí)行程序,得到運(yùn)行結(jié)果。能得到運(yùn)行結(jié)果并不意味著程序正確,要對(duì)結(jié)果進(jìn)行分析,看它是否合理。不合理要對(duì)程序進(jìn)行調(diào)試,即通過(guò)上機(jī)發(fā)現(xiàn)和排除程序中的故障的過(guò)程。(5)編寫程序文檔許多程序是提供給別人使用的,如同正式的產(chǎn)品應(yīng)當(dāng)提供產(chǎn)品說(shuō)明書一樣,正式提供給用戶使用的程序,必須向用戶提供程序說(shuō)明書。內(nèi)容應(yīng)包括:程序名稱、程序功能、運(yùn)行環(huán)境、程序的裝入和啟動(dòng)、需要輸入的數(shù)據(jù),以及使用注意事項(xiàng)等。算法算法(Algorithm)是對(duì)特定問(wèn)題求解方法與步驟的描述,是程序求解問(wèn)題的核心內(nèi)容。1.算法的特征(1)有窮性:一個(gè)算法應(yīng)包含有限的操作步驟,而不能是無(wú)限的。(2)確定性:算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的,而不應(yīng)當(dāng)是含糊的、摸棱兩可的。即必須有明確的含義,不能存在二義性。(3)可行性(有效性):算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。(4)有零個(gè)或多個(gè)輸入。算法1.算法的特征(5)有一個(gè)或多個(gè)輸出。一個(gè)好的算法不僅要滿足上述特征,還應(yīng)當(dāng)達(dá)到以下要求:正確性:運(yùn)行該算法,能獲得正確的結(jié)果??勺x性:易于理解和交流健壯性:具有很好的適應(yīng)能力,具有很好的容錯(cuò)能力。高效性:盡可能追求較少的時(shí)間與空間占用(越簡(jiǎn)單越好)。算法1.算法描述(1)自然語(yǔ)言描述法自然語(yǔ)言即人類日常使用的語(yǔ)言,可以是中文、英文等。用自然語(yǔ)言描述的算法通俗易懂,不用專門的訓(xùn)練,較為靈活。但是,自然語(yǔ)言也有一些缺點(diǎn)。首先自然語(yǔ)言具有歧義性,容易導(dǎo)致算法執(zhí)行的不確定性;其次自然語(yǔ)言的語(yǔ)句一般較長(zhǎng),導(dǎo)致描述的算法太長(zhǎng);再者自然語(yǔ)言表示的算法不便翻譯成計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。上面例1-2使用的即是自然語(yǔ)言描述法。算法1.算法描述(2)流程圖描述法流程圖是使用一組規(guī)定的符號(hào)、流程線和文字說(shuō)明來(lái)表示各種操作、算法的方法。其優(yōu)點(diǎn)是清晰簡(jiǎn)潔,直觀形象,容易表達(dá)選擇結(jié)構(gòu),不依賴于任何具體的計(jì)算機(jī)和計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,從而有利于不同環(huán)境的程序設(shè)計(jì)。其缺點(diǎn)是占用篇幅較長(zhǎng),畫起來(lái)比較麻煩,而且使用流程線可以使流程任意轉(zhuǎn)向,不能保證算法的結(jié)構(gòu)化。會(huì)造成閱讀和修改上的困難,可以借助于專用的流程圖制作軟件來(lái)提升繪制和修改。ANSI規(guī)定了一些常用的流程圖符號(hào),見(jiàn)表1-1所示。連接點(diǎn)算法

常用的流程圖符號(hào)符號(hào)符號(hào)名稱含義起止框算法的開(kāi)始和結(jié)束輸入/輸出框輸入/輸出操作處理框?qū)騼?nèi)的內(nèi)容進(jìn)行處理判斷框?qū)騼?nèi)的條件進(jìn)行判斷流程線流程線的方向連接點(diǎn)常用于換頁(yè)處,表示兩個(gè)具有同一標(biāo)記的“連接點(diǎn)”應(yīng)連接成一個(gè)點(diǎn)預(yù)先定義的進(jìn)程預(yù)先定義的函數(shù)、子例程等算法

流程圖表示3中基本結(jié)構(gòu)圖1-13(a)順序結(jié)構(gòu)圖1-13(b)選擇結(jié)構(gòu)算法

流程圖表示3中基本結(jié)構(gòu)算法例1-2比較兩個(gè)人的身高,將個(gè)子較高的那個(gè)人的身高輸出到屏幕上。要想解決上面的問(wèn)題,需要定義變量fTall1和fTall2分別存儲(chǔ)兩個(gè)人的身高,fMax存放身高的最大值,計(jì)算最大值即比較兩個(gè)數(shù)的大小。具體的步驟如下:(1)輸入2個(gè)人的身高分別存入變量fTall1和fTall2中。(2)比較2個(gè)人的身高,如果fTall1較大,則把第一個(gè)人的身高值賦值給fMax。否則,將第二個(gè)人的身高賦值給fMax。(3)輸出fMax的值,即個(gè)子較高的人的身高。

問(wèn)題分析算法例1-3用流程圖描述法描述例1-2的算法如圖1-14所示。算法1.算法描述(3)N-S流程圖描述法N-S流程圖類似流程圖,也被稱為盒圖或NS圖(NassiShneiderman圖)。1972年,N-S流程圖由美國(guó)學(xué)者I.Nassi和B.Shneiderman提出(以兩個(gè)人的名字的頭一個(gè)字母組成)。它是一種在流程圖中完全去掉流程線,將全部算法寫在一個(gè)矩形陣內(nèi),在框內(nèi)還可以包含其他框的流程圖形式。即由一些基本的框組成一個(gè)大的框,N-S圖包括順序、選擇和循環(huán)三種基本結(jié)構(gòu)。其優(yōu)點(diǎn)是形象直觀,功能域明確,具有良好的可見(jiàn)度,很容易確定局部和全局?jǐn)?shù)據(jù)的作用域,很容易表示嵌套關(guān)系及模塊的層次關(guān)系。其缺點(diǎn)是不可能任意轉(zhuǎn)移控制,修改需要重畫整個(gè)圖。算法N_S流程圖表示3中基本結(jié)構(gòu)圖1-15(a)順序結(jié)構(gòu)圖1-15(b)選擇結(jié)構(gòu)算法

流程圖表示3中基本結(jié)構(gòu)圖1-15(c)當(dāng)型循環(huán)結(jié)構(gòu)

圖1-15(d)直到型循環(huán)結(jié)構(gòu)算法例1-4用N-S流程圖描述法描述例1-2的算法如圖1-16所示。算法1.算法描述(4)偽代碼描述法偽代碼描述法是使用介于自然語(yǔ)言與編程語(yǔ)言之間的文字和符號(hào)描述算法的方法。其優(yōu)點(diǎn)是回避了程序設(shè)計(jì)語(yǔ)言的嚴(yán)格、煩瑣的書寫格式,書寫方便,同時(shí)具備格式緊湊,易于理解,便于向計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言過(guò)渡。其缺點(diǎn)是偽代碼的種類繁多,語(yǔ)句不容易規(guī)范,有時(shí)會(huì)產(chǎn)生誤讀。算法例1-5用N-S流程圖描述法描述例1-2的算法如圖1-16所示。INPUTftall1,ftall2IFftall1>ftall2THENftall1-〉fmaxELSEftall2-〉fmaxPRINTfmax算法1.算法描述(5)程序設(shè)計(jì)語(yǔ)言描述法計(jì)算機(jī)是無(wú)法識(shí)別自然語(yǔ)言、流程圖和為代碼的。只有使用程序設(shè)計(jì)語(yǔ)言編寫的程序,經(jīng)過(guò)編譯、連接成可執(zhí)行程序后,才能被計(jì)算機(jī)執(zhí)行。因此,使用任何方法描述的算法,最終都要將其轉(zhuǎn)化成程序。其優(yōu)點(diǎn)是可被計(jì)算機(jī)識(shí)別并執(zhí)行。其缺點(diǎn)是必須嚴(yán)格遵循所使用的語(yǔ)言的語(yǔ)法規(guī)則。算法例1-6用程序設(shè)計(jì)語(yǔ)言描述法描述例1-2的算法如下所示。#include"stdio.h"voidmain(){floatftall1,ftall2,fmax;scanf("%f%f",&ftall1,&ftall2);if(ftall1>ftall2)fmax=ftall1;elsefmax=ftall2;printf("%f",fmax)

;}軟件編程規(guī)范1.程序的可讀性原則(1)編程規(guī)范概要①程序結(jié)構(gòu)清晰,簡(jiǎn)單易懂,單個(gè)函數(shù)的程序行數(shù)不得超過(guò)100行。②打算干什么,要簡(jiǎn)單,直截了當(dāng),代碼精簡(jiǎn),避免垃圾程序。③盡量使用標(biāo)準(zhǔn)庫(kù)函數(shù)和公共函數(shù)。④不要隨意定義全局變量,盡量使用局部變量。⑤使用括號(hào)以避免二義性。軟件編程規(guī)范1.程序的可讀性原則(2)可讀性要求①可讀性第一,效率第二。②主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο螅┒x或引用時(shí),注釋能反映其含義。③常量定義(define)有相應(yīng)說(shuō)明。④處理過(guò)程的每個(gè)階段都有相關(guān)注釋說(shuō)明。⑤利用縮進(jìn)來(lái)顯示程序的邏輯結(jié)構(gòu),縮進(jìn)量一致,可以以Tab鍵為單位。⑥循環(huán)、分支層次不要超過(guò)五層。⑦適當(dāng)?shù)氖褂米⑨?,注釋可以與語(yǔ)句在同一行,也可以在上行。⑧保持各種運(yùn)算的標(biāo)準(zhǔn)形式,通過(guò)括號(hào)避免運(yùn)算符的二義性。軟件編程規(guī)范2.匈牙利命名法匈牙利命名法是一種編程時(shí)的命名規(guī)范,以一個(gè)或者多個(gè)小寫字母開(kāi)頭作為前綴,表示類型;前綴之后的是首字母大寫的一個(gè)單詞或多個(gè)單詞組合,該單詞要指明變量的用途。要基于容易記憶容易理解的原則。保證名字的連貫性是非常重要的。匈牙利命名法非常便于記憶,而且使變量名非常清晰易懂,這樣,增強(qiáng)了代碼的可讀性,方便各程序員之間相互交流代碼。其缺點(diǎn)是在使用匈牙利命名法時(shí)會(huì)產(chǎn)生冗余。匈牙利命名法有其優(yōu)點(diǎn)但也有缺點(diǎn),這就需要在使用中揚(yáng)長(zhǎng)避短,合理應(yīng)用它。拓展案例案例1-1寫出下面問(wèn)題的算法。問(wèn)題描述比較三個(gè)人的身高,將個(gè)子較高的那個(gè)人的身高輸出到屏幕上。拓展案例

算法設(shè)計(jì)拓展案例案例1-2寫出下面問(wèn)題的算法。問(wèn)題描述本題是一個(gè)經(jīng)典的數(shù)學(xué)問(wèn)題。對(duì)于一個(gè)大于2的正整數(shù),判斷它是不是一個(gè)素?cái)?shù)。。拓展案例

算法設(shè)計(jì)拓展活動(dòng)查資料對(duì)比國(guó)內(nèi)外軟件行業(yè)發(fā)展現(xiàn)狀,體會(huì)軟件發(fā)展對(duì)國(guó)力的重要性,認(rèn)識(shí)“中國(guó)芯”,作為新時(shí)代的大學(xué)生,要認(rèn)真學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì),奮發(fā)圖強(qiáng),為祖國(guó)的騰飛,為實(shí)現(xiàn)中國(guó)夢(mèng)而努力學(xué)習(xí)!

制造中國(guó)芯,實(shí)現(xiàn)中國(guó)夢(mèng)項(xiàng)目小結(jié)本項(xiàng)目主要介紹了C語(yǔ)言的產(chǎn)生、發(fā)展和特點(diǎn),C程序的實(shí)現(xiàn)過(guò)程和結(jié)構(gòu),VisualC++6.0開(kāi)發(fā)環(huán)境,程序設(shè)計(jì)的思想、方法以及算法以及軟件編程的規(guī)范等。重點(diǎn)掌握在VisualC++6.0開(kāi)發(fā)環(huán)境下,編輯、編譯、連接、運(yùn)行C程序的過(guò)程,認(rèn)識(shí)C程序的基本結(jié)構(gòu),能夠正確的寫出算法。實(shí)踐訓(xùn)練實(shí)踐1安裝MicrosoftVisualC++6.0。1下載MicrosoftVisualC++6.0直接在網(wǎng)絡(luò)中下載MicrosoftVisualC++6.0即可。可以得到壓縮文件,例如。VisualC++6.0的功能特色:(1)可以進(jìn)行便捷靈活的類管理。(2)可自動(dòng)生成程序框架,免去自己敲大量代碼的煩惱!(3)界面交互性很強(qiáng),具有集成交互操作性。(4)提供多種運(yùn)行組件,不再有程序缺少組件而無(wú)法運(yùn)行的煩惱!(5)具有強(qiáng)大的代碼自動(dòng)編寫功能,讓你省心省力!實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(1)解壓縮之后雙擊SETUP.exe,進(jìn)入安裝向?qū)?,點(diǎn)擊下一步繼續(xù),如圖1-19所示。實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(3)此處的姓名和公司名字可以隨意填寫,點(diǎn)擊下一步即可,如圖1-21所示。實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(4)選擇安裝VisualC++6.0中文企業(yè)版,點(diǎn)擊下一步,如圖1-22所示。實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(5)可能出現(xiàn)兼容性問(wèn)題,點(diǎn)擊運(yùn)行程序,如圖1-23所示。實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(6)接下里連續(xù)的三個(gè)窗口點(diǎn)擊【繼續(xù)】→【確定】→【是】,如圖1-24所示。實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(7)點(diǎn)擊“Typical”繼續(xù)安裝,表示安裝同時(shí)還有其他相關(guān)軟件給你安裝進(jìn)去,能夠使電腦更加融洽,如圖1-25所示。實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(8)勾選之后點(diǎn)擊ok即可,如圖1-26所示。實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(9)等待安裝當(dāng)中,過(guò)程緩慢,請(qǐng)稍候,如圖1-27所示。實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(10)點(diǎn)擊確定則VC++6.0成功安裝,如圖1-28所示。實(shí)踐訓(xùn)練2安裝MicrosoftVisualC++6.0(11)菜單中找到此軟件,運(yùn)行程序即可,如圖1-29所示。實(shí)踐訓(xùn)練實(shí)踐2參照本章例題,編寫一個(gè)C程序,輸出以下內(nèi)容。******#include“stdio.h”voidmain(){printf("*\n");printf("**\n");printf("***\n");}參考代碼實(shí)踐訓(xùn)練執(zhí)行結(jié)果謝謝多一點(diǎn)努力,多一點(diǎn)實(shí)踐,多一點(diǎn)點(diǎn)就能創(chuàng)造奇跡!C語(yǔ)言程序設(shè)計(jì)創(chuàng)建第一個(gè)C語(yǔ)言程序項(xiàng)目1“學(xué)生成績(jī)管理系統(tǒng)”中相關(guān)數(shù)據(jù)設(shè)計(jì)及簡(jiǎn)單處理項(xiàng)目2項(xiàng)目中學(xué)生成績(jī)的等級(jí)判定項(xiàng)目3項(xiàng)目中的設(shè)計(jì)數(shù)據(jù)處理及封面與菜單的初步項(xiàng)目4學(xué)生成績(jī)的分組匯總程序項(xiàng)目5利用數(shù)組完善項(xiàng)目中數(shù)據(jù)的處理項(xiàng)目6利用函數(shù)進(jìn)行項(xiàng)目的整體框架設(shè)計(jì)項(xiàng)目7利用結(jié)構(gòu)體實(shí)現(xiàn)項(xiàng)目項(xiàng)目8利用指針優(yōu)化項(xiàng)目項(xiàng)目9利用文件完善項(xiàng)目項(xiàng)目10項(xiàng)目2“學(xué)生成績(jī)管理系統(tǒng)”中相關(guān)數(shù)據(jù)設(shè)計(jì)及簡(jiǎn)單處理目標(biāo)TARGET知識(shí)目標(biāo)了解C語(yǔ)言的基本字符掌握C語(yǔ)言的標(biāo)識(shí)符、關(guān)鍵字理解和掌握數(shù)據(jù)類型、常量和變量掌握運(yùn)算符與表達(dá)式目標(biāo)TARGET技能目標(biāo)學(xué)會(huì)正確的定義變量、使用變量和常量能夠正確的運(yùn)用各種運(yùn)算符和表達(dá)式“學(xué)生成績(jī)管理系統(tǒng)”中的相關(guān)數(shù)據(jù)設(shè)計(jì)任務(wù)2.1學(xué)生成績(jī)總分及平均分的計(jì)算任務(wù)2.2任務(wù)2.1“學(xué)生成績(jī)管理系統(tǒng)”中的相關(guān)數(shù)據(jù)設(shè)計(jì)

任務(wù)描述完成“學(xué)生成績(jī)管理系統(tǒng)”,需要不同數(shù)據(jù)類型的數(shù)據(jù)。假設(shè)該系統(tǒng)需要完成學(xué)生三門課程的總分及平均分,確定該系統(tǒng)中所需數(shù)據(jù)。任務(wù)分析假設(shè)三門課程分別為數(shù)學(xué)、英語(yǔ)、語(yǔ)文,可以將定義為整型數(shù)據(jù),三門課程的總分也為整型數(shù)據(jù),而三門課程的平均分應(yīng)該為實(shí)型。任務(wù)2.1“學(xué)生成績(jī)管理系統(tǒng)”中的相關(guān)數(shù)據(jù)設(shè)計(jì)

算法設(shè)計(jì)(1)定義iMath、iEnglish、iChinese為int型,分別存儲(chǔ)數(shù)學(xué)、英語(yǔ)、語(yǔ)文成績(jī)。(2)定義iSum為int型,存儲(chǔ)三門課程的總分。(3)定義fAverage為float型,存儲(chǔ)三門課程的平均分。任務(wù)2.1“學(xué)生成績(jī)管理系統(tǒng)”中的相關(guān)數(shù)據(jù)設(shè)計(jì)

實(shí)現(xiàn)在線測(cè)試系統(tǒng)主頁(yè)面的布局和美化某班級(jí)需要一個(gè)學(xué)生成績(jī)管理系統(tǒng),該系統(tǒng)應(yīng)具有學(xué)生成績(jī)的添加、刪除、查詢、修改、插入和排序等處理功能,提供數(shù)字按鍵菜單操作方式,如圖0-1所示。程序代碼#include"stdio.h"/*編譯預(yù)處理命令*/voidmain(){intiMath,iEnglish,iChinise;/*定義整型變量iMath、iEnglish、iChinese*/intiSum;/*定義整型變量iSum*/floatfAverage;/*定義單精度實(shí)型變量fAverage*/……}/*main()主函數(shù)結(jié)束*/1基本數(shù)據(jù)及其運(yùn)算Part◎C語(yǔ)言的數(shù)據(jù)類型◎常量和變量◎基本字符、標(biāo)識(shí)符和關(guān)鍵字基本字符、標(biāo)識(shí)符和關(guān)鍵字

1.基本字符C程序可以看作是由C語(yǔ)言的基本字符按一定的規(guī)則組成的一個(gè)序列。C程序中使用的基本字符包括:(1)大小寫英文字母ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz(2)十進(jìn)制阿拉伯?dāng)?shù)字0123456789(3)下面29個(gè)符號(hào)!"#%&'()*+,-./:;<=>?[\]^_{|}~(4)5種空白符空格、水平制表符、垂直制表符、換行、換頁(yè)基本字符、標(biāo)識(shí)符和關(guān)鍵字

1.基本字符(5)基本運(yùn)行字符集還包括四個(gè)不可打印的字符:null字符(用做字符串終止符)、警報(bào)(alert)、退格(backspace)、回車(carriagereturn)為了在字母和字符串中表示這些字符,輸入反斜杠\加對(duì)應(yīng)的轉(zhuǎn)義序列(escapesequence)即可,例如,\0表示null字符(空字符),\a表示警報(bào),\b表示退格,而\r表示回車。不同的C實(shí)現(xiàn)版本中,字符實(shí)際對(duì)應(yīng)的數(shù)值(字符碼)可能不同。C語(yǔ)言本身僅規(guī)定了以下規(guī)則:基本字符集中的每個(gè)字符必須用一個(gè)字節(jié)(byte)表示??兆址且粋€(gè)字節(jié),其所有的位(bit)都是0。0之后的每個(gè)十進(jìn)制數(shù)字,編碼都要依次比前者大1?;咀址?biāo)識(shí)符和關(guān)鍵字

2.標(biāo)識(shí)符和其他高級(jí)語(yǔ)言一樣,我們把用來(lái)標(biāo)識(shí)變量名、函數(shù)名、符號(hào)常量名、數(shù)組名、結(jié)構(gòu)體名等的有效字符序列稱為“標(biāo)識(shí)符”(Identifier),簡(jiǎn)單的講,標(biāo)識(shí)符就是一個(gè)名字。比如,我們?cè)诔绦蛑惺褂昧酥T如a、abc、mn123這樣的名字,它們都是程序員自己起的,一般能夠表達(dá)出變量的作用,這就是標(biāo)識(shí)符。不過(guò),名字也不能隨便起,要遵守規(guī)范。C語(yǔ)言規(guī)定,標(biāo)識(shí)符的命名規(guī)則為:(1)只能由字母(A~Z,a~z)、數(shù)字(0~9)和下劃線(_)組成;(2)只能以字母或下劃線開(kāi)頭;(3)不能使用C語(yǔ)言中的關(guān)鍵字;(4)標(biāo)識(shí)符的有效長(zhǎng)度隨系統(tǒng)而異,但至少前8個(gè)字符有效;如果超長(zhǎng),則超長(zhǎng)部分被舍棄。基本字符、標(biāo)識(shí)符和關(guān)鍵字

根據(jù)C語(yǔ)言中標(biāo)識(shí)符的命名規(guī)則可以做出如下判斷:(1)合法的標(biāo)識(shí)符有:a,x,x3,BOOK_1,sum5,_f23,file_name(2)非法的標(biāo)識(shí)符有:3s,s*T,-3x,bowy-1,int例2-1判斷下面標(biāo)識(shí)符哪些是合法的,哪些是非法的。a,3s,x,x3,BOOK_1,s*T,-3x,sum5,_f23,bowy-1,int,file_name。說(shuō)明:題目中3s以數(shù)字開(kāi)頭,-3x出現(xiàn)非法字符*,-3x不能以減號(hào)(-)開(kāi)頭,bowy-1出現(xiàn)非法字符減號(hào)(-),int是關(guān)鍵字。注意:(1)C語(yǔ)言雖然不限制標(biāo)識(shí)符的長(zhǎng)度,但是它受到不同編譯器的限制,同時(shí)也受到操作系統(tǒng)的限制。例如在某個(gè)編譯器中規(guī)定標(biāo)識(shí)符前128位有效,當(dāng)兩個(gè)標(biāo)識(shí)符前128位相同時(shí),則被認(rèn)為是同一個(gè)標(biāo)識(shí)符。(2)在標(biāo)識(shí)符中,大小寫是有區(qū)別的,例如BOOK和book是兩個(gè)不同的標(biāo)識(shí)符。(3)標(biāo)識(shí)符雖然可由程序員隨意定義,但標(biāo)識(shí)符是用于標(biāo)識(shí)某個(gè)量的符號(hào),因此,命名應(yīng)盡量有相應(yīng)的意義,以便于閱讀和理解,作到“見(jiàn)名知義”。(4)函數(shù)名、變量名一般用小寫,而符號(hào)常量一般為大寫。(5)不要使用函數(shù)中的庫(kù)函數(shù)名、預(yù)處理名等作為自定義的標(biāo)識(shí)符?;咀址?biāo)識(shí)符和關(guān)鍵字

3.關(guān)鍵字關(guān)鍵字(Keywords)是由C語(yǔ)言規(guī)定的具有特定意義的字符串,通常也稱為保留字,例如int、char、long、float、unsigned等。我們定義的標(biāo)識(shí)符不能與關(guān)鍵字相同,否則會(huì)出現(xiàn)錯(cuò)誤。你也可以將關(guān)鍵字理解為具有特殊含義的標(biāo)識(shí)符,它們已經(jīng)被系統(tǒng)使用,我們不能再使用了?;咀址?biāo)識(shí)符和關(guān)鍵字

C語(yǔ)言關(guān)鍵字autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile說(shuō)明:根據(jù)關(guān)鍵字的作用可以將關(guān)鍵字分為數(shù)據(jù)類型關(guān)鍵字、控制語(yǔ)句關(guān)鍵字、存儲(chǔ)類型關(guān)鍵字和其它關(guān)鍵字四類。(1)數(shù)據(jù)類型關(guān)鍵字(11.5個(gè))基本類型:char,int,float,double修飾類型:short,long,signed,unsigned構(gòu)造類型:enum,union,struct其他類型:void(2)控制語(yǔ)句關(guān)鍵字(12個(gè)):循環(huán)語(yǔ)句:for,do,while,break,continue條件語(yǔ)句:if,else,goto開(kāi)關(guān)語(yǔ)句:switch,case,default返回語(yǔ)句:return說(shuō)明:(3)存儲(chǔ)類型關(guān)鍵字(6個(gè)):auto,extern,register,static,const,volatile(4)其它關(guān)鍵字(2.5個(gè)):void,sizeof,typedef減號(hào)(-),int是關(guān)鍵字。C語(yǔ)言的數(shù)據(jù)類型

數(shù)據(jù)類型決定數(shù)據(jù)的存儲(chǔ)空間的大小及表現(xiàn)形式、數(shù)據(jù)的取值范圍和運(yùn)算方式。C語(yǔ)言提供的數(shù)據(jù)類型非常豐富,包括基本數(shù)據(jù)類型、構(gòu)造數(shù)據(jù)類型、指針類型和空類型四大類,具體如圖2-1所示。1.

C語(yǔ)言的數(shù)據(jù)類型分類C語(yǔ)言的數(shù)據(jù)類型

基本數(shù)據(jù)類型是C語(yǔ)言系統(tǒng)本身提供的,結(jié)構(gòu)比較簡(jiǎn)單。構(gòu)造類型是由基本數(shù)據(jù)類型構(gòu)造而成的。指針類型是一種重要的數(shù)據(jù)類型,可以表示復(fù)雜的數(shù)據(jù)類型,使用起來(lái)非常靈活。本節(jié)只介紹基本數(shù)據(jù)類型,其余的數(shù)據(jù)類型在后面的章節(jié)中介紹。short、int、long、char、float、double這六個(gè)關(guān)鍵字代表C語(yǔ)言里的六種基本數(shù)據(jù)類型。在不同的系統(tǒng)上,這些類型占據(jù)的字節(jié)長(zhǎng)度是不同的。在32位的系統(tǒng)上,這六種基本數(shù)據(jù)類型的所占字節(jié)長(zhǎng)度和取值范圍如表2-2所示,具體可以用sizeof測(cè)試一下。1.

C語(yǔ)言的數(shù)據(jù)類型分類C語(yǔ)言的數(shù)據(jù)類型

C語(yǔ)言的數(shù)據(jù)類型的取值范圍名稱標(biāo)識(shí)符占用內(nèi)存取值范圍字符型char1字節(jié)-128~127短整型short2字節(jié)-32768~32767整型int4字節(jié)-2-31~231-1長(zhǎng)整型long4字節(jié)-2-31~231-1單精度型float4字節(jié)3.4*10-38~3.4*1038或者-3.4*1038~-3.4*10-38雙精度型double8字節(jié)1.7*10-308~1.7*10308或者-1.7*10308~-1.7*10-308C語(yǔ)言的數(shù)據(jù)類型

整型數(shù)據(jù)分為整型、短整型和長(zhǎng)整型3大類,其中每一類又分為無(wú)符號(hào)(unsigned)和有符號(hào)(signed)兩種情況。整型數(shù)據(jù)是以二進(jìn)制補(bǔ)碼的形式存儲(chǔ)的。對(duì)有符號(hào)數(shù)據(jù),則存儲(chǔ)單元的最高位為符號(hào)位,1表示負(fù)數(shù),0表示正數(shù)。對(duì)無(wú)符號(hào)數(shù),則沒(méi)有符號(hào)位,所有的存儲(chǔ)單元均為數(shù)據(jù)位。2.整型數(shù)據(jù)說(shuō)明:整數(shù)有原碼、反碼和補(bǔ)碼3種表示方法。一個(gè)正數(shù)的原碼、反碼和補(bǔ)碼與原碼相同。負(fù)數(shù)的原碼就是把符號(hào)位數(shù)值化。負(fù)數(shù)的補(bǔ)碼就是在反碼的末位(最右端)加1。C語(yǔ)言的數(shù)據(jù)類型

實(shí)型數(shù)據(jù)也稱浮點(diǎn)數(shù),指帶有小數(shù)部分的非整數(shù)數(shù)值,在C語(yǔ)言中,實(shí)型數(shù)據(jù)分為單精度和雙精度。實(shí)型數(shù)據(jù)都是有符號(hào)數(shù)據(jù),沒(méi)有無(wú)符號(hào)實(shí)型數(shù)據(jù)。實(shí)型數(shù)據(jù)在計(jì)算機(jī)中是以指數(shù)形式存儲(chǔ)的,把它分為小數(shù)和指數(shù)兩個(gè)部分,其中小數(shù)部分的位數(shù)越多,數(shù)的有效位就越多,數(shù)的精度就越高,指數(shù)部分的位數(shù)越多,數(shù)的表示范圍就越大。實(shí)型數(shù)據(jù)通常在程序中用小數(shù)形式書寫,只是在數(shù)值很大或者很小時(shí),才會(huì)使用指數(shù)形式。在用指數(shù)形式表示時(shí),E前必須要有數(shù)字,E后是整數(shù)。3.實(shí)型數(shù)據(jù)C語(yǔ)言的數(shù)據(jù)類型

在內(nèi)存中,一個(gè)字符型數(shù)據(jù)占用一個(gè)字節(jié)(8bite),以ASCII碼的二進(jìn)制形式存放。比如字符'a'的ASCII碼值是97,則'a'在內(nèi)存中的存放形式如圖2-2所示。4.字符型數(shù)據(jù)注意:常用字符數(shù)據(jù)的ASCII碼值可以參考附錄A“ASCII碼表”,表中列出了標(biāo)準(zhǔn)ASCII字符集128個(gè)字符,其編碼為0到127之間。'A'的ASCII碼值是65,'B'的ASCII碼值是66;'a'的ASCII碼值是97,'b'的ASCII碼值是98;其大小寫的ASCII碼相差32。'0'的ASCII碼值是48,'1'的ASCII碼值是49,只要記住'A'、'a'、'0'的ASCII碼值,就可以推算出其他字母和數(shù)字的ASCII碼值。字符型數(shù)據(jù)有時(shí)可以和整型數(shù)據(jù)通用,具體表現(xiàn)在:一個(gè)字符型變量可以賦以一個(gè)字符常量,也可以賦以一個(gè)整數(shù)。字符型數(shù)據(jù)在輸出時(shí)可以以字符格式輸出,也可以以整數(shù)格式輸出。以整數(shù)格式輸出時(shí),ASCII碼值在1-127之間的字符輸出正數(shù),128-255之間的字符輸出負(fù)數(shù)。字符型數(shù)據(jù)可以進(jìn)行算術(shù)運(yùn)算,運(yùn)算時(shí)以它們的ASCII碼值進(jìn)行運(yùn)算?;咀址?biāo)識(shí)符和關(guān)鍵字

#include"stdio.h"voidmain(){

intc1,c2;

//定義整型變量c1,c2

c1='a';//將字符常量附給變量c1

c2=97;//將97("a"的ASCII碼值)附給變量c2

printf("c1=%c,c2=%c\n",c1,c2);//用字符格式輸出變量c1,c2

printf("c1=%d,c2=%d\n",c1,c2);//用整數(shù)格式輸出變量c1,c2}例2-2字符型數(shù)據(jù)和整型數(shù)據(jù)通用舉例?;咀址?biāo)識(shí)符和關(guān)鍵字

運(yùn)行結(jié)果注意:變量c1、c2在內(nèi)存中的值都是97,輸出什么取決于格式說(shuō)明符是%d還是%c。常量和變量

1.常量在程序的執(zhí)行過(guò)程中,其值不能被改變的量稱為常量。常量一般從其字面形式即可判別,不需要類型說(shuō)明就可以直接使用,這種常量稱為普通常量或字面常量,其類型是由常量本身隱含決定的;常量也可以用標(biāo)識(shí)符來(lái)代表,這種常量稱為符號(hào)常量。在C語(yǔ)言中,常量和變量都是可以用來(lái)存儲(chǔ)和表示數(shù)據(jù)的,常量值在程序執(zhí)行的過(guò)程中是不可變的,而變量是可變的。常量和變量

普通常量在程序的執(zhí)行過(guò)程中,其值不能被改變的量稱為常量。常量一般從其字面形式即可判別,不需要類型普通常量有4類:整型數(shù)值常量、實(shí)型數(shù)值常量、字符常量和字符串常量。(1)整型數(shù)值常量整型數(shù)值常量有三種表示方法:十進(jìn)制(0-9十個(gè)數(shù)字構(gòu)成,逢10進(jìn)1),如:1,200,3500十六進(jìn)制(0-9十個(gè)數(shù)字,A-F六個(gè)字符構(gòu)成,逢16進(jìn)1),以0x或0X開(kāi)頭的數(shù)字序列,如:0x12,0X706A,0xF2B八進(jìn)制(0-7八個(gè)數(shù)字構(gòu)成,逢8進(jìn)1),以0開(kāi)頭的數(shù)字序列,如:025,0706常量和變量

普通常量(2)實(shí)型數(shù)值常量實(shí)型數(shù)據(jù)也稱浮點(diǎn)數(shù),指帶有小數(shù)部分的非整數(shù)數(shù)值,實(shí)型數(shù)值常量有2種表示方法:小數(shù)形式:726.8,97.3,0.529指數(shù)形式:3.23E-5,1.5E2常量和變量

普通常量(3)字符型常量字符型常量有2種表示方法:用單引號(hào)引起來(lái)的單個(gè)字符,如'a','A','$'轉(zhuǎn)義字符表示法,如"\n","\105","\'\n','\105','\X7B'"這里的轉(zhuǎn)義字符是一種特殊的字符常量,通常用來(lái)表示一些比較特殊的字符,比如不可視,或者不能通過(guò)鍵盤輸入的都可以用轉(zhuǎn)義字符表示。轉(zhuǎn)義字符是以"\"開(kāi)頭的字符序列,常用的轉(zhuǎn)義字符如表2-3所示。常量和變量

常用轉(zhuǎn)義字符轉(zhuǎn)義字符意義ASCII碼值(十進(jìn)制)\a響鈴(BEL)007\b退格(BS),將當(dāng)前位置移到前一列008\f換頁(yè)(FF),將當(dāng)前位置移到下頁(yè)開(kāi)頭012\n換行(LF),將當(dāng)前位置移到下一行開(kāi)頭010\r回車(CR),將當(dāng)前位置移到本行開(kāi)頭013\t水平制表(HT)(跳到下一個(gè)TAB位置)009\v垂直制表(VT)011\\代表一個(gè)反斜線字符''\'092\'代表一個(gè)單引號(hào)(撇號(hào))字符039\"代表一個(gè)雙引號(hào)字符034\?代表一個(gè)問(wèn)號(hào)063\0空字符(NUL)000\ooo1到3位八進(jìn)制數(shù)所代表的任意字符\xhh十六進(jìn)制所代表的任意字符說(shuō)明:(1)表2-3中最后2行是用ASCII碼(八進(jìn)制或是十六進(jìn)制)表示一個(gè)字符。如:\101代表ASCII碼為65(十進(jìn)制)的字符'A',\012代表ASCII碼為10(十進(jìn)制)的字符\n,即換行符,字符\000或者\(yùn)0代表ASCII碼為0(十進(jìn)制)的控制符,即空字符。(2)轉(zhuǎn)義字符從書寫上看是一個(gè)字符序列,實(shí)際上是作為1個(gè)字符對(duì)待的,存儲(chǔ)時(shí)只占1個(gè)字節(jié)。常量和變量

普通常量(4)字符串常量字符串常量簡(jiǎn)稱字符串,是用一對(duì)雙引號(hào)括起來(lái)的字符序列。例如"china","1","A","123"等。這里的雙引號(hào)只起定界的作用,它不屬于字符串中的字符。而且C語(yǔ)言會(huì)自動(dòng)在字符串尾部加上一個(gè)轉(zhuǎn)義字符"\0"(空字符,其ASCII碼值為0)作為字符串的結(jié)束標(biāo)記。因此,字符串在內(nèi)存中占用的存儲(chǔ)字節(jié)數(shù)要比字符串長(zhǎng)度多1,即雙引號(hào)之間的字符個(gè)數(shù)加1,才是字符串存儲(chǔ)時(shí)的字節(jié)數(shù)。同時(shí)我們可以通過(guò)"\0"來(lái)判斷字符串是否結(jié)束。以字符串"china"為例,字符串的存儲(chǔ)形式如圖2-3所示。'c''h''i''n''a''\0'常量和變量

符號(hào)常量符號(hào)常量就是用標(biāo)識(shí)符來(lái)表示常量。C語(yǔ)言中,可以用以下兩種方法定義符號(hào)常量。(1)使用編譯預(yù)處理命令define符號(hào)常量可以在文件的開(kāi)始定義,其定義格式如下:#define常量名常量值如:

#definePI3.1415926#defineN100常量和變量

符號(hào)常量2)使用常量說(shuō)明符constconst是C語(yǔ)言中32個(gè)關(guān)鍵字之一,可以用來(lái)定義符號(hào)常量,具體格式如下:const數(shù)據(jù)類型常量名=常量值如:constfloatpi=3.1415926定義了符號(hào)常量后,就可以在程序中用符號(hào)代替常量出現(xiàn),這不僅提高了程序的可讀性,也同時(shí)給程序的修改帶來(lái)了極大的方便。常量和變量

#definePI3.1415926/*定義符號(hào)常量PI代替圓周率*/#include"stdio.h"voidmain(){floatfR,fArea;fR=10;fArea=PI*fR*fR;printf("theareaofthiscircleis%0.2f\n",fArea);}例2-3符號(hào)常量的使用。說(shuō)明:符號(hào)常量一般用大寫字母表示,方便與其他標(biāo)識(shí)符區(qū)分。常量和變量

2.變量—變量的概念在程序執(zhí)行過(guò)程中,其值可以改變的量稱為變量。在C語(yǔ)言中,變量相當(dāng)于存儲(chǔ)數(shù)據(jù)的容器,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,用于存放數(shù)據(jù),即變量值。我們可以使用變量來(lái)保存程序執(zhí)行過(guò)程中的輸入數(shù)據(jù)、中間結(jié)果和最終結(jié)果。每個(gè)變量都要用一個(gè)名字表示,即變量名。這個(gè)名字是由程序設(shè)計(jì)者命名,且一定要遵守標(biāo)識(shí)符的命名規(guī)則。常量和變量

變量的定義變量在程序中負(fù)責(zé)存儲(chǔ)數(shù)據(jù),而數(shù)據(jù)具有整型、實(shí)型、字符型等不同的類型。因此,變量在定義時(shí)一定要有相應(yīng)的類型。變量必須先定義后使用,變量定義時(shí)必須提供兩個(gè)方面的信息:變量名和變量的類型。變量定義語(yǔ)句的一般形式是:類型標(biāo)識(shí)符變量名列表;例如:inta,b;//定義了2個(gè)整型變量a、blongc;//定義了1個(gè)長(zhǎng)整型變量cfloatr,s;//定義了2個(gè)單精度實(shí)型變量r、sdoublex;//定義了1個(gè)雙精度實(shí)型變量xcharch;//定義了1個(gè)字符型變量ch常量和變量

變量的初始化在定義變量的同時(shí)給變量賦一個(gè)初值,稱為變量的初始化。例如:intsum=0;floatf=123.45;charch='A';說(shuō)明:(1)變量必須先定義再使用,否則程序無(wú)法為其分配存儲(chǔ)空間。(2)變量具有三個(gè)要素:變量名、類型和當(dāng)前值。變量的值除了可以通過(guò)賦初值的方式獲取,還可以通過(guò)賦值的方法獲得和改變。首次使用變量時(shí),變量必須要有確定的值,否則會(huì)導(dǎo)致運(yùn)算錯(cuò)誤。常量和變量

intiAge=20,iNum=201; charcSex='m';/*f:female(女),m:male(男)*/ floatfScore; fScore=580.5;例2-4按照問(wèn)題定義適當(dāng)?shù)淖兞俊P律雽W(xué)需要保存學(xué)生數(shù)據(jù),如年齡、學(xué)號(hào)、性別、入學(xué)分?jǐn)?shù)?,F(xiàn)在定義整型變量存放年齡、學(xué)號(hào),定義字符變量存放性別,定義浮點(diǎn)型變量存放入學(xué)分?jǐn)?shù)。問(wèn)題分析可以定義整型變量iAge、iNum分別存放年齡、學(xué)號(hào),定義字符變量cSex存放性別,定義浮點(diǎn)型變量fScore存放入學(xué)分?jǐn)?shù)。程序段任務(wù)2.2學(xué)生成績(jī)總分及平均分的計(jì)算

任務(wù)描述計(jì)算一名學(xué)生數(shù)學(xué)、英語(yǔ)、語(yǔ)文三門課程的總分及平均分。這名學(xué)生三門課程的成績(jī)分別為89、96、82。。任務(wù)分析熟悉VisualC++6.0環(huán)境,能夠正確編輯、鏈接、運(yùn)行C程序已知這名學(xué)生的三門課程的成績(jī),成績(jī)相加即可獲取該學(xué)生的總分,總分除以科目數(shù)即為平均分。任務(wù)2.2學(xué)生成績(jī)總分及平均分的計(jì)算

算法設(shè)計(jì)(1)定義iMath、iEnglish、iChinese和iSum為int型,分別存儲(chǔ)數(shù)學(xué)、英語(yǔ)、語(yǔ)文成績(jī)和總分,其中將iMath、iEnglish、iChinese分別賦值為89、96、82;定義fAverage為float型,存儲(chǔ)三門課程的平均分。(2)計(jì)算總分。(3)計(jì)算平均分。(4)輸出學(xué)生的總分和平均分。任務(wù)2.2學(xué)生成績(jī)總分及平均分的計(jì)算

程序代碼#include"stdio.h"/*編譯預(yù)處理命令*/voidmain(){intiMath=89,iEnglish=96,iChinese=82;/*定義整型變量iMath、iEnglish、iChinese,并分別賦值*/intiSum;/*定義整型變量iSum*/floatfAverage;/*定義單精度實(shí)型變量fAverage*/iSum=iMath+iEnglish+iChinese;fAverage=iSum/3.0;printf("該學(xué)生的總分為:%d,平均分為:%.2f\n",iSum,fAverage);}。任務(wù)2.2學(xué)生成績(jī)總分及平均分的計(jì)算

執(zhí)行結(jié)果2運(yùn)算符和表達(dá)式Part◎賦值運(yùn)算符和賦值表達(dá)式◎算術(shù)運(yùn)算符和算術(shù)表達(dá)式◎逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式◎數(shù)據(jù)間的混合運(yùn)算與類型轉(zhuǎn)換運(yùn)算符和表達(dá)式

C語(yǔ)言運(yùn)算符是說(shuō)明不同運(yùn)算的符號(hào),運(yùn)算符的操作對(duì)象稱為操作數(shù)或者運(yùn)算數(shù)。運(yùn)算符根據(jù)操作對(duì)象的個(gè)數(shù)可以分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。由運(yùn)算符把操作數(shù)連接起來(lái)的一個(gè)有意義的式子叫做表達(dá)式。每種表達(dá)式都按照運(yùn)算符所規(guī)定的運(yùn)算規(guī)則進(jìn)行運(yùn)算,最終會(huì)得到一個(gè)結(jié)果,該結(jié)果被稱為表達(dá)式的值。C語(yǔ)言的運(yùn)算符異常豐富,除了控制語(yǔ)句和輸入輸出以外的幾乎所有的基本操作都為運(yùn)算符處理。運(yùn)算符和表達(dá)式

優(yōu)先級(jí)運(yùn)算符的運(yùn)算優(yōu)先級(jí)共分為15級(jí)。15級(jí)最高,1級(jí)最低。在表達(dá)式中,優(yōu)先級(jí)較高的先于優(yōu)先級(jí)較低的進(jìn)行運(yùn)算。而在一個(gè)運(yùn)算量?jī)蓚?cè)的運(yùn)算符優(yōu)先級(jí)相同時(shí),則按運(yùn)算符的結(jié)合性所規(guī)定的結(jié)合方向處理。本書中附錄B“C語(yǔ)言運(yùn)算符的優(yōu)先級(jí)和結(jié)合性”中的運(yùn)算符表可以看到運(yùn)算符的優(yōu)先級(jí)從1到15,15級(jí)優(yōu)先級(jí)最高,1級(jí)優(yōu)先級(jí)最低,(表中從上到下)依次遞減,最上面具有最高的優(yōu)先級(jí),逗號(hào)操作符具有最低的優(yōu)先級(jí)。

結(jié)合性各運(yùn)算符的結(jié)合性分為兩種,即左結(jié)合性(自左至右)和右結(jié)合性(自右至左)。這種自左至右的結(jié)合方向就稱為“左結(jié)合性”。而自右至左的結(jié)合方向稱為“右結(jié)合性”。算術(shù)運(yùn)算符和算術(shù)表達(dá)式

1.基本算術(shù)運(yùn)算符運(yùn)算符名稱例子運(yùn)算功能+加法運(yùn)算x+y求x與y的和-減法運(yùn)算x-y求x與y的差*乘法運(yùn)算x*y求x與y的積/除法運(yùn)算x/y求x除以y的商%模運(yùn)算x%y求x除以y的余數(shù)說(shuō)明:(1)對(duì)于除法運(yùn)算符(/),如果兩個(gè)操作數(shù)全是整數(shù),結(jié)果為整數(shù);如果其中一個(gè)操作數(shù)為浮點(diǎn)數(shù),結(jié)果為浮點(diǎn)數(shù)。如3/5的值為0,5/3的值為1,3/5.0的值為0.6。(2)對(duì)于模運(yùn)算符(%),兩個(gè)操作數(shù)必須為整數(shù)。如8%5的值是3,10%2的值是0,-14%5的值是-4。算術(shù)運(yùn)算符和算術(shù)表達(dá)式

以上6種基本算術(shù)運(yùn)算符都是雙目運(yùn)算符,也就是需要2個(gè)操作數(shù)。其優(yōu)先級(jí)為13級(jí)和12級(jí),由高到低為:“*、/、%”高于“+、-”。其結(jié)合性為左結(jié)合,即從左向右進(jìn)行計(jì)算。用算術(shù)運(yùn)算符將操作數(shù)連接起來(lái),構(gòu)成算術(shù)表達(dá)式。在算術(shù)表達(dá)式中應(yīng)該先計(jì)算乘除模運(yùn)算,再計(jì)算加減,若遇到同一級(jí)別的,則從左向右依次進(jìn)行計(jì)算。2.算術(shù)表達(dá)式以上6種基本算術(shù)運(yùn)算符都是雙目運(yùn)算符,也就是需要2個(gè)操作數(shù)。其優(yōu)先級(jí)為13級(jí)和12級(jí),由高到低為:“*、/、%”高于“+、-”。其結(jié)合性為左結(jié)合,即從左向右進(jìn)行計(jì)算。用算術(shù)運(yùn)算符將操作數(shù)連接起來(lái),構(gòu)成算術(shù)表達(dá)式。在算術(shù)表達(dá)式中應(yīng)該先計(jì)算乘除模運(yùn)算,再計(jì)算加減,若遇到同一級(jí)別的,則從左向右依次進(jìn)行計(jì)算。算術(shù)運(yùn)算符和算術(shù)表達(dá)式

例2-5從鍵盤輸入一個(gè)3位數(shù),求該數(shù)個(gè)位、十位、百位上的數(shù)的和。問(wèn)題分析首先需要有一個(gè)變量存儲(chǔ)3位數(shù),在通過(guò)算術(shù)運(yùn)算分別計(jì)算出這個(gè)3位數(shù)的個(gè)位、十位、百位,最后計(jì)算它們的和。算術(shù)運(yùn)算符和算術(shù)表達(dá)式

算法設(shè)計(jì)(1)定義1個(gè)整型變量iNum存儲(chǔ)從鍵盤輸入的3位數(shù);(2)定義整型變量i1、i2、i3、iSum分別存儲(chǔ)個(gè)位、十位、百位上的數(shù)字及其和;(3)從鍵盤輸入一個(gè)3位整數(shù)存入變量iNum中;(4)用iNum%10求得個(gè)位上的數(shù)存入i1中;(5)用iNum/10%10求得十位上的數(shù)存入i2中;(6)用iNum/100求得百位上的數(shù)存入i3中;(7)求i1、i2、i3的和存入iSum中;(8)輸出iSum的值。算術(shù)運(yùn)算符和算術(shù)表達(dá)式

#include"stdio.h" voidmain() { intiNum; inti1,i2,i3,iSum; printf("pleaseinputainteger(100-999):"); scanf("%d",&iNum); i1=iNum%10;/*求個(gè)位數(shù)*/ i2=iNum/10%10;/*求十位數(shù)*/ i3=iNum/100;

溫馨提示

  • 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)論