




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、大連理工大學(xué)出版社C語(yǔ)言程序設(shè)計(jì)案例教程項(xiàng)目一 學(xué)生成績(jī)的輸入和輸出 教學(xué)目的:通過(guò)本項(xiàng)目的學(xué)習(xí),要求能理解C程序的基本結(jié)構(gòu),能熟練使用基本輸入和輸出函數(shù)進(jìn)行數(shù)據(jù)操作,掌握C程序的上機(jī)步驟,為后面項(xiàng)目的學(xué)習(xí)奠定基礎(chǔ)。項(xiàng)目一 學(xué)生成績(jī)的輸入和輸出 教學(xué)內(nèi)容 項(xiàng)目一 學(xué)生成績(jī)的輸入和輸出 重點(diǎn)和難點(diǎn)難點(diǎn) : 數(shù)據(jù)的輸入輸出方法。重點(diǎn):任務(wù)1 學(xué)生成績(jī)的輸入/輸出實(shí)現(xiàn):/*功能:學(xué)生成績(jī)的輸入和輸出*/#include void main()問(wèn)題情景: 輔導(dǎo)員張老師在工作中發(fā)現(xiàn)需要對(duì)學(xué)生的成績(jī)進(jìn)行錄入和輸出到電腦屏幕上,故他找來(lái)了學(xué)習(xí)計(jì)算機(jī)編程的小王同學(xué),說(shuō)明了需求,小王根據(jù)張老師的需求,利用自己所
2、學(xué)的C語(yǔ)言編程思想,參考了相關(guān)的資料,設(shè)計(jì)了一個(gè)學(xué)生成績(jī)的輸入和輸出的程序,幫助張老師解決了該問(wèn)題。任務(wù)1 學(xué)生成績(jī)的輸入/輸出float yuwen,shuxue,yingyu;printf(請(qǐng)輸入學(xué)生的語(yǔ)文,數(shù)學(xué),英語(yǔ)的成績(jī):);scanf(“%f%f%f”,&yuwen,&shuxue,&yingyu);printf(該生的語(yǔ)文,數(shù)學(xué),英語(yǔ)的成績(jī)分別是:n); printf(“%f分t%f分t%f分n”,yuwen,shuxue,yingyu);編譯、連接、和運(yùn)行程序。程序運(yùn)行后,屏幕顯示:要完成上面的任務(wù),小王必須要能理解C程序的基本結(jié)構(gòu),能熟練使用基本輸入和輸出函數(shù)進(jìn)行數(shù)據(jù)操作的方法
3、,掌握C程序的上機(jī)步驟,對(duì)設(shè)計(jì)好的程序進(jìn)行調(diào)試。任務(wù)1 學(xué)生成績(jī)的輸入/輸出在日常生活中,我們其實(shí)在不段地編寫程序并執(zhí)行,只不過(guò)人們并沒(méi)有明確地意識(shí)到而已。舉個(gè)例子,我們現(xiàn)在要用全自動(dòng)洗衣機(jī)洗衣服,應(yīng)該怎么做呢?盡管簡(jiǎn)單,我們還是按照一般人的習(xí)慣來(lái)描述一下吧。第一步,就是要把臟衣服扔進(jìn)洗衣機(jī);第二步,打開(kāi)上水的水龍頭并安裝好電源插頭;第三步,放入洗衣粉;第四步,按下洗衣機(jī)的開(kāi)始按鈕;1.1 C程序介紹 1.1.1程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言1.程序第五步,等待洗衣機(jī)洗完衣服(當(dāng)然,不妨去干點(diǎn)什么別的事情)。在洗衣機(jī)提示洗完的蜂鳴聲響了以后,就可以從洗衣機(jī)中拿出干凈衣服去晾曬了。上面所描述的五個(gè)步驟,
4、就是人們洗衣服的“程序”。也許不同的人使用的步驟并不完全一樣,例如將第一步和第二步互換一下,也同樣能將衣服洗干凈,所以干一件事的“程序”可以不惟一,這也是計(jì)算機(jī)程序的一個(gè)特點(diǎn)。對(duì)于計(jì)算機(jī)來(lái)說(shuō),程序就是由計(jì)算機(jī)指令構(gòu)成的序列。計(jì)算機(jī)按照程序中的指令逐條執(zhí)行,就可以完成相應(yīng)的操作。實(shí)際上計(jì)算機(jī)自己不會(huì)做任何工作,它所做的工作都是由人們事先編好的程序來(lái)控制的。程序需要人來(lái)編寫,使用的工具就是程序設(shè)計(jì)語(yǔ)言。1.1 C程序介紹 1.1.1程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言1.1 C程序介紹 1.1.1程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言匯編語(yǔ)言計(jì)算機(jī)語(yǔ)言一般分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言。低級(jí)語(yǔ)言包括機(jī)器語(yǔ)言和匯編語(yǔ)言。機(jī)器語(yǔ)言低級(jí)語(yǔ)言
5、高級(jí)語(yǔ)言計(jì)算機(jī)語(yǔ)言2.程序設(shè)計(jì)語(yǔ)言1.1 C程序介紹 1.1.1程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言機(jī)器語(yǔ)言直接使用二進(jìn)制表示的指令來(lái)編程的語(yǔ)言就是機(jī)器語(yǔ)言。使用機(jī)器語(yǔ)言編寫程序時(shí),必須準(zhǔn)確無(wú)誤地牢記每一條指令的二進(jìn)制編碼,才能編寫程序。如果程序員面對(duì)的是“101110001110100000000011”這樣的編碼序列,能不頭痛嗎?而且,有時(shí)還要求把這些二進(jìn)制編碼再轉(zhuǎn)換成八進(jìn)制或十六進(jìn)制數(shù)才能輸入計(jì)算機(jī),這不但加大了程序員的工作量,而且還增加了程序出錯(cuò)的機(jī)會(huì),將大量的二進(jìn)制編碼序列準(zhǔn)確地轉(zhuǎn)換成八進(jìn)制或十六進(jìn)制數(shù),可不是一件容易的事。機(jī)器語(yǔ)言的優(yōu)點(diǎn)是執(zhí)行速度快,并且可以直接對(duì)硬件進(jìn)行操作,例如主板上的BIO
6、S及一些設(shè)備的驅(qū)動(dòng)程序等。 機(jī)器語(yǔ)言的缺點(diǎn)也是顯而易見(jiàn)的。首先是可讀性差,就是編寫程序語(yǔ)句“101110001110100000000011”的人也未必馬上就能看懂該句表示的是什么命令;其次,是可維護(hù)性差,別的程序員編寫的程序(甚至是程序員自己編寫的)很難看懂,如何談維護(hù)呢?再者,就是可移植性差,因?yàn)椴煌臋C(jī)型有自己的一套機(jī)器指令,與其他機(jī)型的機(jī)器指令不兼容。另外,用機(jī)器語(yǔ)言編寫程序的生產(chǎn)效率低下,并且不能保證程序有好的質(zhì)量。1.1 C程序介紹 1.1.1程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言匯編語(yǔ)言 為了能夠更方便地編寫程序,人們用一些符號(hào)和簡(jiǎn)單的語(yǔ)法來(lái)表示機(jī)器指令,這就是匯編語(yǔ)言。例如,“10111000
7、1110100000000011”用匯編語(yǔ)言表示就是“mov ax,1000”,該指令的功能是“將1000送入寄存器AX中”,是不是清楚多了?但是CPU并不能識(shí)別匯編語(yǔ)言,因此,需要一個(gè)“翻譯”程序?qū)R編語(yǔ)言翻譯成機(jī)器語(yǔ)言,我們把這種將匯編語(yǔ)言翻譯成機(jī)器語(yǔ)言的程序叫做“匯編器”。匯編語(yǔ)言與機(jī)器語(yǔ)言的指令時(shí)一一對(duì)應(yīng)的,所以,除了提高了一些可讀性,匯編語(yǔ)言從根本上并沒(méi)有改變機(jī)器語(yǔ)言的特點(diǎn)??梢哉f(shuō),匯編語(yǔ)言是面向機(jī)器語(yǔ)言的。1.1 C程序介紹 1.1.1程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言高級(jí)語(yǔ)言高級(jí)語(yǔ)言是一種比較接近自然語(yǔ)言和數(shù)學(xué)語(yǔ)言的程序設(shè)計(jì)語(yǔ)言。高級(jí)語(yǔ)言的出現(xiàn)大大提高了程序員的工作效率,降低了程序設(shè)計(jì)的難度
8、,并改善了程序的質(zhì)量。用高級(jí)語(yǔ)言編寫的程序看起來(lái)更像是英語(yǔ),很容易讀懂,不但使程序具備良好的可讀性和可維護(hù)性,而且使更多的人掌握了程序設(shè)計(jì)方法,從而使計(jì)算機(jī)技術(shù)得到迅速的應(yīng)用和普及。另外,用高級(jí)語(yǔ)言編寫的程序還具有很高的可移植性。從高級(jí)語(yǔ)言到機(jī)器語(yǔ)言要經(jīng)過(guò)編譯程序進(jìn)行“翻譯”,而高級(jí)語(yǔ)言幾乎為每一種機(jī)器都創(chuàng)建了各自的編譯程序,從而可以將用高級(jí)語(yǔ)言編寫的程序幾乎不加修改地運(yùn)行在不同的計(jì)算機(jī)平臺(tái)上。1.1 C程序介紹 1.1.1程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言1.1 C程序介紹 1.1.1程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言 例如:語(yǔ)句段if(ab) c=a;else c=b; 表示的是“如果a大于b,則c=a,否則c=
9、b”。是不是很容易理解?當(dāng)然,要注意,這里的“=”與數(shù)學(xué)語(yǔ)言等號(hào)是有根本的區(qū)別的,我們將在介紹C語(yǔ)言的運(yùn)算符時(shí),詳細(xì)地加以討論。編譯程序分為兩種,一種是解釋系統(tǒng),另一種是編譯系統(tǒng)。解釋系統(tǒng)是對(duì)高級(jí)語(yǔ)言編寫的程序翻譯一句執(zhí)行一句;而編譯系統(tǒng)是將高級(jí)語(yǔ)言編寫的程序文件全部翻譯成機(jī)器語(yǔ)言,生成可執(zhí)行文件以后再執(zhí)行。高級(jí)語(yǔ)言幾乎在每一種機(jī)器上都有自己的編譯程序。C語(yǔ)言的編譯程序?qū)儆诰幾g系統(tǒng)。1.1 C程序介紹 1.1.1程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言 【例1.1】一個(gè)簡(jiǎn)單的C程序 /*源文件名:Li1_1.c功能:在屏幕輸出一串字符串*/#include void main()printf(This is a
10、 c program.n);/*打印輸出一行信息*/1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序程序運(yùn)行后,屏幕顯示: This is a c program. 1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序(1) “ /*/”是程序的注釋部分,注釋內(nèi)容是為了增加程序的可讀性,系統(tǒng)不編譯注釋內(nèi)容,自動(dòng)忽略從“/*”到“*/”之間的內(nèi)容。Visual C+ 6.0中以“/”開(kāi)頭直到本行結(jié)束的部分也是注釋。與“/*/”的區(qū)別在于“/”只能注釋一行,不能跨行,這種注釋也稱為行注釋,而“ /*/”注釋可以跨行,稱為塊注釋。在Turbo c2.0中沒(méi)有所謂的行注釋“/”,只能用“ /*/”來(lái)注釋。1.1 C程
11、序介紹 1.1.2簡(jiǎn)單的C程序(2) #include 是一條編譯預(yù)處理命令,聲明該程序要使用stdio.h文件中的內(nèi)容,stdio.h文件中包含了輸入函數(shù)scanf()和輸出函數(shù)printf()的定義。編譯時(shí)系統(tǒng)將頭文件stdio.h中的內(nèi)容嵌入到程序中該命令位置。C中編譯預(yù)處理命令都以“#”開(kāi)頭。C提供了3類編譯預(yù)處理命令:宏定義命令、文件包含命令和條件編譯命令。例1.1中出現(xiàn)的#include 是文件包含命令,其中尖括號(hào)內(nèi)是被包含的文件名。1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序(3) 程序中定義了一個(gè)主函數(shù)main(),其中main是函數(shù)名,void表示該函數(shù)的返回值類型。程序執(zhí)行從
12、主函數(shù)開(kāi)始。一個(gè)C的程序可以包含多個(gè)文件,每個(gè)文件又可以包含多個(gè)函數(shù)。函數(shù)之間是相互平行、相互獨(dú)立的。一個(gè)C程序,必須有一個(gè)且只能有一個(gè)主函數(shù)main()。執(zhí)行程序時(shí),系統(tǒng)先從主函數(shù)開(kāi)始運(yùn)行,其他函數(shù)只能被主函數(shù)調(diào)用或通過(guò)主函數(shù)調(diào)用的函數(shù)所調(diào)用,函數(shù)可以嵌套調(diào)用,即在一個(gè)函數(shù)中調(diào)用另外一個(gè)函數(shù)。主函數(shù)可以帶參數(shù),也可以不帶參數(shù)。函數(shù)在調(diào)用之前,必須先定義好,定義函數(shù)要按照系統(tǒng)規(guī)定的格式進(jìn)行,后面再詳細(xì)介紹。1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序(4) 由“”括起來(lái)的內(nèi)容是主函數(shù)main()的函數(shù)體,期中左大括號(hào)“”表示函數(shù)的開(kāi)始,右大括號(hào)“”表示函數(shù)的結(jié)束。函數(shù)體部分由許多C語(yǔ)句組成,這些
13、語(yǔ)句描述了函數(shù)的功能實(shí)現(xiàn)。(5) 該程序是由函數(shù)組成的,程序中只包含一個(gè)主函數(shù),而且主函數(shù)的函數(shù)體中只有一條語(yǔ)句,用于完成字符串的打印輸出,printf()為屏幕打印輸出函數(shù),指定顯示器為標(biāo)準(zhǔn)輸出設(shè)備,雙引號(hào)中的內(nèi)容要原樣輸出,n表示回車換行,“;”表示語(yǔ)句結(jié)束。C規(guī)定語(yǔ)句必須要以分號(hào)“;”結(jié)尾。 1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序【例1.1】小結(jié): 由以上分析可以看出,一個(gè)C程序的基本結(jié)構(gòu)包括:以“#”開(kāi)頭的若干個(gè)編譯預(yù)處理命令,將程序所需要的頭文件包含進(jìn)來(lái);然后是定義主函數(shù)和其他函數(shù),當(dāng)然函數(shù)也可以在程序的起始部分先利用函數(shù)原型進(jìn)行聲明,以后再進(jìn)行定義;用大括號(hào)“”括起來(lái)的部分是函
14、數(shù)體部分,函數(shù)體部分主要包括各種各樣的語(yǔ)句和注釋信息,這部分是程序的主體部分,占的比重也最大。1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序 【例1.2】求兩數(shù)之和/*源文件名:Li1_2.c功能:求兩個(gè)數(shù)a和b之和sum*/#include void main()int a,b,sum; /*定義三個(gè)整型變量*/a=123; /*給變量a賦值為123*/b=456; /*給變量b賦值為456*/sum=a+b; /*變量a的值加上變量b的值,然后將兩數(shù)的和 賦給變量sum*/printf(sum is %dn,sum);/*輸出變量sum的值*/1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序 【例1
15、.3】求兩數(shù)中較大者。/*源文件名:Li1_3.c功能:從鍵盤輸入兩個(gè)數(shù),通過(guò)比較求得兩個(gè)數(shù)的較大者,并打印輸出*/#include int max(int,int);/*聲明函數(shù)max*/void main()int a,b,c;/*聲明部分,定義變量*/printf(請(qǐng)輸入a和b的值:);/*提示輸入a和b的值*/scanf(%d%d,&a,&b);/*從鍵盤輸入變量a和b的值*/c=max(a,b);/*調(diào)用max函數(shù),將得到的值賦給c*/printf(max= %dn,c);/*輸出c的值*/*定義max函數(shù),函數(shù)值為整型,形式參數(shù)x,y為整型*/int max(int x,int y
16、)int z; /*max函數(shù)中的聲明部分,定義本函數(shù)中用到的變量z為整型*/if(xy)z=x;elsez=y;return (z);/ *將z的值返回,通過(guò)max帶回調(diào)用處*/1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序下面來(lái)分析【例1.3】的程序結(jié)構(gòu):該程序包括兩個(gè)函數(shù),一個(gè)是程序的入口函數(shù)主函數(shù)main(),另一個(gè)是求兩數(shù)之較大者的普通函數(shù)max(),它代表某一種功能。在主函數(shù)main()中調(diào)用了普通函數(shù)max(),如果把做菜比做main()函數(shù),那么在做菜過(guò)程中用了醬油就好比調(diào)用了max()函數(shù),實(shí)現(xiàn)調(diào)味功能。在程序的第二行聲明了max()函數(shù)
17、,就好比在做菜之前要先把醬油準(zhǔn)備好。 1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序由上面幾個(gè)簡(jiǎn)單的C程序可知,在編寫C程序時(shí),要注意書寫格式,盡量遵循以下基本原則:(1) 一般情況下一行只寫一條語(yǔ)句。短語(yǔ)句可以一行寫多條,長(zhǎng)語(yǔ)句可以分成多行來(lái)寫。分行原則是不能將一個(gè)單詞分開(kāi),用雙引號(hào)括起來(lái)的字符串最好也不要分開(kāi),如果一定要分開(kāi),有的編譯系統(tǒng)要求在行尾加上續(xù)行符“”。1.1 C程序介紹 1.1.2簡(jiǎn)單的C程序 (2) C程序書寫時(shí)要盡量提高可讀性。為此,用適當(dāng)?shù)目s進(jìn)格式書寫程序是非常必要的,表示同一類內(nèi)容或同一層次的語(yǔ)句要對(duì)齊。例如,一個(gè)循環(huán)的循環(huán)體中的各語(yǔ)句要對(duì)齊,同一個(gè)if語(yǔ)句中的if體內(nèi)的若
18、干條語(yǔ)句或else體內(nèi)的若干條語(yǔ)句要對(duì)齊。 (3) C程序中大括號(hào)“”使用較多,其書寫方法也較多,建議用戶要養(yǎng)成使用大括號(hào)的固定風(fēng)格。例如,每個(gè)大括號(hào)占一行,并與使用大括號(hào)的語(yǔ)句對(duì)齊,大括號(hào)內(nèi)的語(yǔ)句采用縮進(jìn)4個(gè)字符的格式書寫,如例1.1所示。 1.2 C程序的基本結(jié)構(gòu)函數(shù)是C程序的基本結(jié)構(gòu),一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組成,一個(gè)C函數(shù)由若干條C語(yǔ)句構(gòu)成,一條C語(yǔ)句由若干基本單詞組成。C函數(shù)是完成某個(gè)整體功能的最小單位,是相對(duì)獨(dú)立的模塊。簡(jiǎn)單的C程序可能只有一個(gè)主函數(shù),而復(fù)雜的C程序則可能包含一個(gè)主函數(shù)和任意多個(gè)其他函數(shù)。所有C函數(shù)的結(jié)構(gòu)都包括三部分:函數(shù)名、形式參數(shù)和函數(shù)體。1.2 C程序的基本
19、結(jié)構(gòu)下面給出C程序的一般格式。其中的main為主函數(shù)名,sub1()到subn()為子函數(shù)名。在C程序中,主函數(shù)名是固定的,其他的函數(shù)名則可以根據(jù)標(biāo)識(shí)符的命名方法任意取名。形式參數(shù)是函數(shù)調(diào)用時(shí)進(jìn)行數(shù)據(jù)傳遞的主要途徑,當(dāng)形式參數(shù)表中有多個(gè)參數(shù)時(shí),相互之間用逗號(hào)隔開(kāi),有的函數(shù)可以沒(méi)有形式參數(shù)。大括號(hào)“”括起來(lái)的部分為函數(shù)體,用來(lái)描述函數(shù)的功能,一般函數(shù)體由局部變量定義和完成本函數(shù)功能的語(yǔ)句序列組成。程序在執(zhí)行時(shí),無(wú)論各個(gè)函數(shù)的書寫位置如何,總是先執(zhí)行main()函數(shù),再由main()函數(shù)調(diào)用其他函數(shù),最后終止于main()函數(shù)。1.2 C程序的基本結(jié)構(gòu)包含文件子函數(shù)類型說(shuō)明全局變量定義類型 mai
20、n()局部變量定義語(yǔ)句序列類型 sub1(形式參數(shù)表)局部變量定義語(yǔ)句序列類型 subn(形式參數(shù)表)局部變量定義語(yǔ)句序列1.3 基本輸入和輸出方法輸入是將原始數(shù)據(jù)通過(guò)輸入設(shè)備送入計(jì)算機(jī),輸出是將保存在內(nèi)存中的計(jì)算結(jié)果送到輸出設(shè)備上。C語(yǔ)言本身并不提供輸入輸出語(yǔ)句,有關(guān)輸入輸出操作都是由函數(shù)的調(diào)用來(lái)實(shí)現(xiàn)的。為完成此操作,C語(yǔ)言編譯系統(tǒng)提供了輸入輸出函數(shù)。如字符輸入函數(shù)getchar(),字符輸出函數(shù)putchar(),格式輸出函數(shù)printf()和格式輸入函數(shù)scanf(),這些函數(shù)都是針對(duì)系統(tǒng)特定的輸入輸出函數(shù)(如鍵盤、顯示器等)而言的。格式:getchar()功能:從鍵盤接收輸入的一個(gè)字符
21、。說(shuō)明:getchar()的值可以送給字符型變量,也可以送給整型變量。1.3 基本輸入和輸出方法 1.3.1字符輸入函數(shù)getchar( )1.3 基本輸入和輸出方法 1.3.1字符輸入函數(shù)getchar( ) 【例1.4】從鍵盤輸入字符。/*源文件名:Li1_4.c功能:從鍵盤輸入一個(gè)字符,并將其存入字符型變量c中*/#include void main()char c;c=getchar();/*從鍵盤輸入一個(gè)字符*/printf(c=%c.n,c);數(shù)據(jù)的輸出一般是以終端 (顯示器)為處理對(duì)象。格式:putchar(c)功能:向終端(一般為顯示器)輸出一個(gè)字符。說(shuō)明:c可以是字符型或整型
22、變量,也可以是一個(gè)字符常量或整型常量。1.3 基本輸入和輸出方法1.3.2 字符輸出函數(shù)putchar() 1.3 基本輸入和輸出方法1.3.2 字符輸出函數(shù)putchar() 【例1.5】從鍵盤輸入字符,在屏幕上顯示出來(lái)。/*源文件名:Li1_5.c功能:從鍵盤輸入一個(gè)字符,并用putchar(c)在屏幕上顯示出來(lái)*/#include void main()char c;c=getchar();/*從鍵盤輸入一個(gè)字符*/putchar(c); /*在屏幕上顯示一個(gè)字符printf(n);格式輸出函數(shù)printf()的功能是按指定的格式輸出數(shù)據(jù),其一般的調(diào)用格式為:printf(格式控制字符串
23、,參數(shù)表);其中printf是函數(shù)名,其后括號(hào)中的內(nèi)容為該函數(shù)的參數(shù):格式控制字符串用雙引號(hào)括起來(lái),用來(lái)規(guī)定輸出格式,如%d用來(lái)輸出整數(shù),%f用來(lái)輸出實(shí)數(shù),%c用來(lái)輸出字符;參數(shù)表中包含零個(gè)或多個(gè)輸出項(xiàng),這些輸出項(xiàng)可以是整數(shù)、實(shí)數(shù)、變量或表達(dá)式,多個(gè)輸出項(xiàng)之間用逗號(hào)隔開(kāi)。例如:語(yǔ)句printf(%d%d,a,b);用來(lái)按十進(jìn)制整數(shù)形式輸出變量a和b。1.3 基本輸入和輸出方法1.3.3 格式輸出函數(shù)printf() 1.3 基本輸入和輸出方法1.3.3 格式輸出函數(shù)printf() 【例1.6】打印輸出兩個(gè)整型變量的值。/*源文件名:Li1_6.c功能:在屏幕上打印輸出變量a和變量b的值*/#
24、include void main()int a=8;int b=18;printf(a=%d,b=%dn,a,b); 格式輸入函數(shù)scanf ()的功能是按指定的格式輸入數(shù)據(jù),其一般的調(diào)用格式為: scanf(格式控制字符串,參數(shù)表); 其中scanf是函數(shù)名,其后括號(hào)中的內(nèi)容為該函數(shù)的參數(shù):格式控制字符串用雙引號(hào)括起來(lái),用來(lái)規(guī)定輸入格式,其用法和printf()函數(shù)中的規(guī)定相同;1.3 基本輸入和輸出方法1.3.4 格式輸入函數(shù)scanf() 參數(shù)表中至少包含一個(gè)輸入項(xiàng),且必須是變量的地址,多個(gè)輸入項(xiàng)之間用逗號(hào)隔開(kāi)。例如:語(yǔ)句scanf(“%d%d”,&a,&b);用來(lái)接收從鍵盤輸入的兩個(gè)
25、十進(jìn)制整數(shù),并分別存放在變量a和b。變量地址的表示形式是在變量名前加上一個(gè)“&”。d%d“,a,b);用來(lái)按十進(jìn)制整數(shù)形式輸出變量a和b中。1.3 基本輸入和輸出方法1.3.4 格式輸入函數(shù)scanf() 1.3 基本輸入和輸出方法1.3.4 格式輸入函數(shù)scanf() 【例1.7】從鍵盤輸入兩個(gè)整型變量的值。/*源文件名:Li1_7.c功能:從鍵盤輸入變量a和變量b的值,并打印輸出*/#include void main()int a,b;printf(請(qǐng)輸入變量a和變量b的值:);scanf(“%d%d”,&a,&b);/*從鍵盤輸入變 量a和變量b的值*/printf(a=%d,b=%d
26、n,a,b);1. C程序的上機(jī)步驟C源程序要經(jīng)過(guò)編輯、編譯、連接和運(yùn)行4個(gè)環(huán)節(jié),才能產(chǎn)生輸出結(jié)果。 例:編制一個(gè)名為Ch01_01的程序,其操作流程圖如圖所示。編輯編譯連接運(yùn)行1. C程序的上機(jī)步驟 編輯是在一定的環(huán)境下進(jìn)行程序的輸入和修改的過(guò)程。C程序可以事先在紙上寫好,也可以在編輯環(huán)境下直接輸入到計(jì)算機(jī)中。用某種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言編寫的程序稱為源程序,保存后生成程序文件。C源程序在Turbo c2.0環(huán)境下默認(rèn)文件擴(kuò)展名為“.c”,在Visual C+ 6.0環(huán)境下默認(rèn)文件擴(kuò)展名為“.cpp”。C源程序也可以使用計(jì)算機(jī)所提供的各種編輯器進(jìn)行編輯。 1.編輯1. C程序的上機(jī)步驟 編輯好的
27、源程序不能直接被計(jì)算機(jī)所理解,源程序必須經(jīng)過(guò)編譯,生成計(jì)算機(jī)能夠識(shí)別的機(jī)器代碼。通過(guò)編譯器將C源程序轉(zhuǎn)換成二進(jìn)制機(jī)器代碼的過(guò)程稱為編譯,這些二進(jìn)制機(jī)器代碼稱為目標(biāo)代碼。目標(biāo)代碼保存在以“.obj”為擴(kuò)展名的目標(biāo)文件中。 編譯階段要進(jìn)行詞法分析和語(yǔ)法分析,又稱源程序分析。這一階段主要是分析程序的語(yǔ)法結(jié)構(gòu),檢查C源程序的語(yǔ)法錯(cuò)誤。如果分析過(guò)程中發(fā)現(xiàn)有不符合要求的語(yǔ)法,就會(huì)及時(shí)報(bào)告給用戶,將錯(cuò)誤類型顯示在屏幕上。2.編譯1. C程序的上機(jī)步驟 編譯后生成的目標(biāo)代碼還不能直接在計(jì)算機(jī)上運(yùn)行,其主要原因是編譯器對(duì)每個(gè)源程序文件分別進(jìn)行編譯,如果一個(gè)程序有多個(gè)源程序文件,編譯后這些源程序文件還分布在不同的
28、地方。因此,需要把它們連接在一起,生成可以在計(jì)算機(jī)上運(yùn)行的可執(zhí)行文件。即使源程序僅由一個(gè)源文件構(gòu)成,這個(gè)源文件生成的目標(biāo)程序也還需要系統(tǒng)提供庫(kù)文件中的一些代碼,故也需要連接起來(lái)。3.連接1. C程序的上機(jī)步驟連接工作一般由編譯系統(tǒng)中的連接程序來(lái)完成,連接程序?qū)⒂删幾g器生成的目標(biāo)代碼文件和庫(kù)中的某些文件連接在一起,生成一個(gè)可執(zhí)行文件??蓤?zhí)行文件的默認(rèn)擴(kuò)展名為“.exe”。 一個(gè)C源程序經(jīng)過(guò)編譯和連接后生成了可執(zhí)行文件,可以在Windows環(huán)境下直接雙擊該文件運(yùn)行程序,也可以在Visual C+ 6.0的集成開(kāi)發(fā)環(huán)境下運(yùn)行。 程序運(yùn)行后,將在屏幕上顯示運(yùn)行結(jié)果或提示用戶輸入數(shù)據(jù)的信息。用戶可以根據(jù)
29、運(yùn)行結(jié)果來(lái)判斷程序是否有算法錯(cuò)誤。在生成可執(zhí)行文件之前,一定要保證編譯和連接不出現(xiàn)錯(cuò)誤和警告,這樣才能正常運(yùn)行。因?yàn)槌绦蛑杏行┚骐m然不影響生成可執(zhí)行文件,但有可能導(dǎo)致結(jié)果錯(cuò)誤。1. C程序的上機(jī)步驟4.運(yùn)行實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行一實(shí)訓(xùn)名稱 程序設(shè)計(jì)的基本流程與Visual C+ IDE的基本使用。二實(shí)訓(xùn)目標(biāo) 熟練掌握邏輯編程方法與用自然語(yǔ)言描述。 熟練掌握在Visual C+ 6.0 IDE中創(chuàng)建Win32控制臺(tái)應(yīng)用程序的操作技能。包括:源程序的編輯、編譯、連接和執(zhí)行操作。 熟練掌握項(xiàng)目文件的布局。包括:新建工程、源程序及可執(zhí)行程序的目錄文件結(jié)構(gòu)。 基本掌握C程序的最基本
30、框架結(jié)構(gòu),模仿示范實(shí)例完成程序的編制與運(yùn)行。 基本掌握發(fā)現(xiàn)語(yǔ)法錯(cuò)誤、邏輯錯(cuò)誤的方法以及排除簡(jiǎn)單錯(cuò)誤的操作技能。實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行三實(shí)訓(xùn)內(nèi)容 Visual C+ 6.0 IDE的啟動(dòng)與退出。 1) 啟動(dòng)Visual C+ 6.0 IDE,操作方法如下: 在Windows桌面上,單擊【開(kāi)始】|【程序】|【Microsoft Visual C+ 6.0】|【Microsoft Visual C+ 6.0】菜單命令,啟動(dòng)Visual C+ 6.0 IDE的主窗口,如圖1.3所示。圖1.3 Visual C+ 6.0 IDE的主窗口實(shí)驗(yàn)初
31、識(shí)Visual C+6.0環(huán)境及運(yùn)行 2) 退出Visual C+ 6.0 IDE,操作方法如下: 單擊【文件】|【退出】菜單命令,或單擊窗口的【關(guān)閉】按鈕,退出Visual C+。.新建工程。 在“C:STUDENT”目錄下,新建一個(gè)名為“ch01_01”的工程。新建工程ch01_01的操作方法如下: 1) 啟動(dòng)Visual C+。 2) 在Visual C+主窗口中,單擊【文件】|【新建】,彈出【新建】對(duì)話框。 3) 在【新建】對(duì)話框中,單擊選中【工程】標(biāo)簽下的“Win32 Console Application”(Win32控制臺(tái)應(yīng)用程序)項(xiàng)。實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行圖
32、1.4 新建工程的“新建對(duì)話框”實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行 4) 單擊【確定】按鈕,進(jìn)入“Win32 Console Application 步驟1共1步”,選中【一個(gè)空工程(E)】項(xiàng),如圖1.5所示:然后在【位置:】文本框中指定新建工程的路徑:“C:STUDENTch01_01”。最后在【工程名稱:】文本框中,輸入新建工程的名稱:“ch01_01”,如圖1.4所示。實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行圖1.5 創(chuàng)建Win32控制臺(tái)應(yīng)用程序的第一步 5) 單擊【完成】按鈕,彈出【新建工程信息】對(duì)話框,顯示即將新建的Win32控制臺(tái)應(yīng)用程序的框架說(shuō)明,如圖1.6所示。實(shí)驗(yàn)初
33、識(shí)Visual C+6.0環(huán)境及運(yùn)行圖1.6 新建工程的框架信息 說(shuō)明:“Empty Console application”說(shuō)明將建立的是一個(gè)空的控制臺(tái)應(yīng)用程序。 “No files will be created or added to the project”說(shuō)明即將創(chuàng)建的工程中沒(méi)有任何文件。實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行 6) 在確認(rèn)Win32控制臺(tái)應(yīng)用程序的新建工程信息無(wú)誤后,單擊【確定】按鈕,彈出ch01_01工程編輯窗口,如圖1.7所示:圖1.7 工程編輯窗口 7) 單擊【文件】|【關(guān)閉工作空間】菜單命令,關(guān)閉工程編輯窗口,回到Visual C+主窗口,如圖1. 3所
34、示。實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行 8) 檢查新建工程ch01_01。系統(tǒng)生成了一組相關(guān)的文件夾與文件,打開(kāi)【資源管理器】窗口,單擊“C:STUDENTch01_01”文件夾圖標(biāo),窗口內(nèi)容顯示如圖1.8所示:圖1.8 新建工程文件夾中的文件 說(shuō)明:當(dāng)用Visual C+生成一個(gè)項(xiàng)目時(shí),系統(tǒng)會(huì)產(chǎn)生出很多的文件,對(duì)這些不同類型文件的作用簡(jiǎn)單介紹如下: .dsw文件:稱為工作區(qū)(Workspace)文件,這是Visual C+中級(jí)別最高的文件,可以用它直接打開(kāi)工程。 .dsp文件:項(xiàng)目文件(Project)文件,存放特定的應(yīng)用程序的有關(guān)信息。如果dsw文件沒(méi)有,可以用它直接打開(kāi)工程。實(shí)驗(yàn)
35、初識(shí)Visual C+6.0環(huán)境及運(yùn)行 .opt文件:選項(xiàng)文件,是工程關(guān)于開(kāi)發(fā)環(huán)境的選項(xiàng)設(shè)置。此文件被刪除后會(huì)自動(dòng)建立,若更換了機(jī)器環(huán)境,因開(kāi)發(fā)環(huán)境變了,該文件也會(huì)重建。 .ncb文件:無(wú)編譯瀏覽文件(no compile browser)。使用技巧:當(dāng)自動(dòng)完成功能出問(wèn)題時(shí),可以刪除此文件,build后會(huì)自動(dòng)生成。此時(shí)Debug文件夾下沒(méi)有任何文件。實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行.新建源程序文件。 在“ch01_01”工程中,新建一個(gè)名為“ch1_01.c”的C源程序文件,程序內(nèi)容參考【例1.1】。在工程中新建源程序文件的操作方法如下: 1) 在Visual C+主窗口中,單擊【文
36、件】|【打開(kāi)工作空間】菜單命令,彈出【打開(kāi)工作區(qū)】對(duì)話框,在【查找范圍】下拉列表中選中“C:STUDENTch01_01”文件夾,在列表框中單擊選中名為“ch01_01.dsw”的文件,對(duì)話框顯示如圖1.9所示:實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行圖1.9 “打開(kāi)工作區(qū)”對(duì)話框 2) 單擊【打開(kāi)】按鈕,進(jìn)入如圖1.7所示的ch01_01工程編輯窗口。 3) 單擊【工程】|【添加到工程】|【新建】菜單命令,彈出【新建】對(duì)話框?qū)嶒?yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行 4) 在對(duì)話框中選中【文件】標(biāo)簽,再選中【C+ Source File】項(xiàng)。然后,在【文件名】文本框中輸入“ch01_01.
37、c”,在這里建議大家輸入擴(kuò)展名“.c”,如果不輸入擴(kuò)展名,系統(tǒng)將自動(dòng)添加默認(rèn)擴(kuò)展名“.cpp”如圖1.10所示:圖1.10 工程中的“新建”對(duì)話框?qū)嶒?yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行 說(shuō)明:默認(rèn)的選項(xiàng)卡是【文件】,默認(rèn)文件類型是“Active Server Page”。 5)單擊【確定】按鈕,然后在ch01_01的工程編輯窗口中將出現(xiàn)源程序文件的編輯窗口,如圖1.11所示。標(biāo)題為“ch01_01.c”的子窗口出現(xiàn)字符輸入光標(biāo)閃爍,提示輸入源程序。圖1.11 源程序文件編輯窗口實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行 說(shuō)明:現(xiàn)在窗口中將有兩個(gè)子窗口,一個(gè)是工程編輯窗口(主窗口),另一個(gè)是源程序編輯窗口。6)輸入源程序的全部?jī)?nèi)容。如圖1.12所示。然后,單擊【文件】|【保存】命令,或按工具欄上的【保存】按鈕,將輸入的源程序內(nèi)容保存到文件:“C:STUDENTch01_01ch01_01.c”中。圖1.12 輸源程序內(nèi)容實(shí)驗(yàn)初識(shí)Visual C+6.0環(huán)境及運(yùn)行 說(shuō)明:源程序的內(nèi)容可參考例1.1例1.7.編譯、連接和運(yùn)行程序。 1)單擊【組建】|【編譯ch01_01.c】菜單命令,或按Ctrl+F7健,編譯源
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海售電合同范本
- 兄弟爭(zhēng)房子合同范本
- 農(nóng)村魚塘承包合同范本
- 合作協(xié)議合同范本4人
- 買賣見(jiàn)證合同范本
- 冶煉設(shè)備租賃合同范本
- 代理英國(guó)租房合同范本
- 出租車成本監(jiān)審合同范本
- 醫(yī)療設(shè)備轉(zhuǎn)租合同范本
- 含租房屋銷售合同范例
- 《中外美術(shù)史》課件13外國(guó)美術(shù)史+中世紀(jì)美術(shù)
- 水電站生產(chǎn)準(zhǔn)備工作方案
- 《請(qǐng)給我結(jié)果》讀書心得-PPT課件
- HD7簡(jiǎn)明實(shí)用操作手冊(cè)
- S水電站引水建筑物設(shè)計(jì)
- 110kV軟母線及引連線施工方案
- 鼓譜——海闊天空
- CT報(bào)告單模板
- 足球比賽計(jì)分表(共6頁(yè))
- 軟件概要設(shè)計(jì)說(shuō)明書范例(共21頁(yè))
- 生產(chǎn)一致性控制計(jì)劃
評(píng)論
0/150
提交評(píng)論