版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目二順序程序設(shè)計(jì)
項(xiàng)目二順序程序設(shè)計(jì)
第三部分實(shí)驗(yàn)學(xué)習(xí)
3第一部分任務(wù)學(xué)習(xí)
1第二部分項(xiàng)目學(xué)習(xí)
2項(xiàng)目二順序程序設(shè)計(jì)
所謂輸出是指計(jì)算機(jī)向輸出設(shè)備輸出數(shù)據(jù),輸入是指從輸入設(shè)備向計(jì)算機(jī)輸入數(shù)據(jù)。我們編寫程序的目的是為了輸出,沒(méi)有輸出的程序是沒(méi)有任何意思的。同樣如果程序加上輸入程序的靈活性,可用性會(huì)加強(qiáng)許多。進(jìn)行計(jì)算機(jī)程序設(shè)計(jì)時(shí),通常采用三種不同的程序結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。其中順序結(jié)構(gòu)是一種最基本、最簡(jiǎn)單的程序結(jié)構(gòu)。本章從實(shí)例分析著手,介紹C語(yǔ)言的各類語(yǔ)句,包括控制語(yǔ)句、表達(dá)式語(yǔ)句等;對(duì)格式輸出函數(shù)printf和格式項(xiàng)目二順序程序設(shè)計(jì)
輸入函數(shù)scanf等函數(shù)的一般形式和格式進(jìn)行說(shuō)明,以加深對(duì)C語(yǔ)言程序開發(fā)設(shè)計(jì)過(guò)程的感性認(rèn)識(shí),強(qiáng)化培養(yǎng)編程思路,為進(jìn)一步進(jìn)行C語(yǔ)言程序設(shè)計(jì)打下基礎(chǔ)?!緦W(xué)習(xí)目標(biāo)】(1)掌握使用順序結(jié)構(gòu)程序設(shè)計(jì)的方法。
(2)會(huì)畫順序結(jié)構(gòu)的流程圖。
(3)能夠使用輸入輸出函數(shù)編寫一些簡(jiǎn)單的程序。
第一部分任務(wù)學(xué)習(xí)
二、格式輸入輸出語(yǔ)句
一、普通輸出語(yǔ)句
三、格式輸入輸出語(yǔ)句
四、綜合運(yùn)用1
五、綜合運(yùn)用2
六、單個(gè)字符輸入輸出函數(shù)的使用
第一部分任務(wù)學(xué)習(xí)
一、普通輸出語(yǔ)句——設(shè)計(jì)菜單【問(wèn)題提出】
不管在生活當(dāng)中還是在使用計(jì)算機(jī)的過(guò)程中,經(jīng)常會(huì)使用到各種各樣的菜單。例如,利用菜單來(lái)操作各種計(jì)算機(jī)軟件,取錢用到的自動(dòng)取款機(jī)的菜單,在KTV點(diǎn)歌用的菜單等。這些菜單怎樣來(lái)編寫呢?可以借助printf來(lái)實(shí)現(xiàn)簡(jiǎn)單的菜單,在學(xué)習(xí)到后面知識(shí)的時(shí)候再來(lái)編寫一些復(fù)雜的菜單。第一部分任務(wù)學(xué)習(xí)
【工作任務(wù)】
編寫程序,設(shè)計(jì)如圖2-1所示的菜單。在學(xué)到選擇結(jié)構(gòu)程序設(shè)計(jì)之后,大家再把這個(gè)程序進(jìn)行修改。
圖2-1菜單結(jié)構(gòu)第一部分任務(wù)學(xué)習(xí)
【思路指導(dǎo)】
對(duì)于菜單的設(shè)計(jì),需要考慮的最主要問(wèn)題是菜單在顯示屏上位置的組織,應(yīng)該思考如何使菜單的界面整齊,功能齊全,看起來(lái)自然,用起來(lái)方便。第一部分任務(wù)學(xué)習(xí)
【解決方案】#include<stdio.h>voidmain(){
intk;
printf("*******************************\n");
printf("||--------請(qǐng)輸入(0-5)---------||\n");
printf("||1--------信息錄入
||\n");
printf("||2--------成績(jī)計(jì)算
||\n");
printf("||3--------成績(jī)排序
||\n");
printf("||4--------查詢成績(jī)
||\n");
printf("||5--------修改成績(jī)
||\n");
printf("||0--------退出
||\n");
printf("*******************************\n");
scanf("%d",&k);
printf("select%d\n",k);}第一部分任務(wù)學(xué)習(xí)
【運(yùn)行情況】
菜單程序運(yùn)行結(jié)果如圖2-2所示。圖2-2菜單程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
【歸納分析】(1)在C語(yǔ)言中,可以通過(guò)printf函數(shù)輸出信息來(lái)把信息顯示給大家,printf函數(shù)可以原樣輸出雙引號(hào)里面一串字符,其一般格式printf("輸出提示信息");。
(2)在菜單設(shè)計(jì)的過(guò)程中靈活性很大,大家可以根據(jù)自己的需要和喜好自由設(shè)計(jì)?!炯寄苡?xùn)練】
為自己設(shè)計(jì)一個(gè)名片。
第一部分任務(wù)學(xué)習(xí)
程序代碼如下:#include<stdio.h>voidmain(){
printf("*****************************\n");
printf("||周健——客戶經(jīng)理||\n");
printf("||徐州市新世界有限公司||\n");
printf("||電子產(chǎn)品鉆石經(jīng)銷商||\n");
printf("||地址:江蘇徐州市中山南路116號(hào)||\n");
printf("||電話:0516—8357093||\n");
printf("||傳真:0516—8357092||\n");
printf("||手機(jī):139581111111||\n");
printf("*****************************\n");}第一部分任務(wù)學(xué)習(xí)
程序運(yùn)行結(jié)果如圖2-3所示。圖2-3名片程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
二、格式輸入輸出語(yǔ)句——解決一些簡(jiǎn)單的數(shù)學(xué)問(wèn)題【問(wèn)題提出】
沒(méi)有輸出操作的程序毫無(wú)價(jià)值,所以任何一個(gè)程序都應(yīng)有至少一個(gè)輸出操作。沒(méi)有輸入操作的程序缺乏靈活性,因此一般每個(gè)程序都要有輸入操作。另外,為了使輸入和輸出清晰美觀,必須借助于格式的控制?!竟ぷ魅蝿?wù)】
已知矩形的長(zhǎng)和寬,求矩形的周長(zhǎng)和面積。
第一部分任務(wù)學(xué)習(xí)
【思路指導(dǎo)】
輸入數(shù)據(jù):長(zhǎng)、寬。輸出數(shù)據(jù):周長(zhǎng)、面積。常量:計(jì)算周長(zhǎng)算法中的“2”。變量:長(zhǎng)、寬、周長(zhǎng)和面積。變量定義:inta;(一行定義一個(gè)變量)
intb;
intl,s;(一行定義兩個(gè)變量)。算法實(shí)現(xiàn):周長(zhǎng)計(jì)算l=(a+b)*2,面積計(jì)算s=a*b。第一部分任務(wù)學(xué)習(xí)
【解決方案1】#include<stdio.h>voidmain(){
inta; /*定義矩形的長(zhǎng)度變量a*/
intb; /*定義矩形的寬度變量b*/
int
l,s; /*定義矩形的周長(zhǎng)、面積變量l和s*/a=12; /*給長(zhǎng)度賦值12*/b=8; /*給寬度賦值8*/l=(a+b)*2; /*計(jì)算矩形周長(zhǎng)*/s=a*b; /*計(jì)算矩形面積*/}第一部分任務(wù)學(xué)習(xí)
【運(yùn)行情況1】
求矩形的周長(zhǎng)和面積方案1程序運(yùn)行結(jié)果如圖2-4所示。圖2-4求矩形的周長(zhǎng)和面積方案1程序運(yùn)行結(jié)果
第一部分任務(wù)學(xué)習(xí)
【歸納分析】(1)這個(gè)程序?qū)儆陧樞蚪Y(jié)構(gòu),程序按照書寫的順序自上而下一步步執(zhí)行,程序中的每一條語(yǔ)句都被執(zhí)行一次,且僅能被執(zhí)行一次。程序運(yùn)行后沒(méi)有看到結(jié)果,變量l和s中得到了計(jì)算結(jié)果,但沒(méi)有輸出它們的值??梢栽诔绦蛑性黾虞敵稣Z(yǔ)句printf("l=%ds=%d\n",l,s);來(lái)解決這個(gè)問(wèn)題,printf是C語(yǔ)言的庫(kù)函數(shù),它的功能是把程序中變量的值輸出到計(jì)算機(jī)的屏幕上。C語(yǔ)言輸入輸出函數(shù)的處理程序不在C語(yǔ)言本身,因而在運(yùn)行時(shí)要連接的函數(shù)庫(kù)中,但必須在程序第一部分任務(wù)學(xué)習(xí)
中將相應(yīng)的文件頭部加載。在使用printf前,需要在程序頭部加入#include<stdio.h>的語(yǔ)句。
(2)printf函數(shù)(格式輸出函數(shù))。
1)
函數(shù)功能:按用戶指定的格式,把指定的數(shù)據(jù)顯示到顯示器屏幕上。
2)
printf函數(shù)調(diào)用的一般形式:printf("格式控制字符串",輸出表列);。①格式控制字符串可由格式字符串和非格式字符串兩種組成。格式字符串是以%開頭的字符串,在“%”后面跟有第一部分任務(wù)學(xué)習(xí)
各種格式字符,以說(shuō)明輸出數(shù)據(jù)的類型、形式、長(zhǎng)度和小數(shù)位數(shù)等。如“%d”表示按十進(jìn)制整型輸出。②非格式字符串在輸出時(shí)是按原樣輸出的,在顯示中起提示作用,如printf("l=%ds=%d\n",l,s);執(zhí)行之后的結(jié)果就是l=40s=96,“l(fā)=”和“s=”就是非格式字符串,即除了以“%”開頭的字符串,都是普通字符,原樣輸出。③輸出表列中給出了各個(gè)輸出項(xiàng),要注意格式字符串和各輸出項(xiàng)在數(shù)量和類型上應(yīng)該一一對(duì)應(yīng),如果輸出表列中有多個(gè)輸出項(xiàng),各輸出項(xiàng)之間需要用“,”隔開,如圖2-5所第一部分任務(wù)學(xué)習(xí)
示。
圖2-5格式控制字符串和輸出項(xiàng)的對(duì)應(yīng)關(guān)系第一部分任務(wù)學(xué)習(xí)
常用格式說(shuō)明符見(jiàn)表2-1。
表2-1常用格式說(shuō)明符類型格式使用場(chǎng)合整型int型%d輸入輸出基本整型數(shù)據(jù)long型%ld輸入輸出長(zhǎng)整型數(shù)據(jù)實(shí)型float型%f以小數(shù)形式輸入輸出單精度實(shí)型數(shù)據(jù)%e以指數(shù)形式輸入輸出單精度實(shí)型數(shù)據(jù)double型%lf以小數(shù)形式輸入輸出雙精度實(shí)型數(shù)據(jù)%le以指數(shù)形式輸入輸出雙精度實(shí)型數(shù)據(jù)字符型char型%c輸入輸出單個(gè)字符第一部分任務(wù)學(xué)習(xí)
3)
printf函數(shù)調(diào)用時(shí)需要注意以下幾點(diǎn)。①雙引號(hào)中的格式控制字符串,除了格式字符串和轉(zhuǎn)義字符以外的普通字符都會(huì)原樣輸出。②符號(hào)“%”和格式字符之間不能有空格。③除了X、E、G外,符號(hào)“%”后面格式字符都不能用大寫。④在格式控制字符串中可以包含轉(zhuǎn)義字符。第一部分任務(wù)學(xué)習(xí)
【解決方案2】#include<stdio.h>voidmain() {
inta; /*定義矩形的長(zhǎng)度變量a*/
intb; /*定義矩形的寬度變量b*/
int
l,s; /*定義矩形的周長(zhǎng)、面積變量l和s*/a=12; /*給長(zhǎng)度賦值12*/b=8; /*給寬度賦值8*/l=(a+b)*2; /*計(jì)算矩形周長(zhǎng)*/s=a*b; /*計(jì)算矩形面積*/
printf("l=%ds=%d\n",l,s); /*輸出結(jié)果*/}第一部分任務(wù)學(xué)習(xí)
【運(yùn)行情況2】
求矩形的周長(zhǎng)和面積方案2程序運(yùn)行結(jié)果如圖2-6所示。圖2-6求矩形的周長(zhǎng)和面積方案2程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
【歸納分析】(1)矩形長(zhǎng)、寬在程序中是通過(guò)賦值的方式給定的,如果它們的值改變了,須重新編譯、連接,才能計(jì)算。解決方法:在程序中增加輸入數(shù)據(jù)scanf("%d%d",&a,&b);,使用scanf前,需要在程序頭部加入下面的語(yǔ)句#include<stdio.h>。
1)
scanf函數(shù)(格式輸入函數(shù))功能:按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中。
2)
scanf函數(shù)的一般形式:scanf("格式控制字符串",地址表列);。第一部分任務(wù)學(xué)習(xí)
其中,格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串。地址表列中給出各變量的地址。地址是由地址運(yùn)算符“&”后跟變量名組成的。例如,&a,&b分別表示(取)變量a和變量b的地址。
3)變量的地址和變量值的關(guān)系:在賦值表達(dá)式中給變量賦值,如a=12;,則a為變量名,12是變量的值,&a是變量a的地址。
(4)scanf函數(shù)調(diào)用時(shí)需要注意以下幾點(diǎn)。
第一部分任務(wù)學(xué)習(xí)
1)格式控制字符串中的格式符,與printf函數(shù)中的相一致,要求格式控制字符串中的格式符,要與所控制的變量類型匹配。
2)可用十進(jìn)制整數(shù)指定輸入的寬度(即字符數(shù))。例如,scanf(“%5d”,&a);,輸入:12345678,只把12345賦予變量a,其余部分被截去。
3)“*”表示該輸入項(xiàng)讀入后不賦予相應(yīng)的變量,即跳過(guò)該輸入值。如scanf("%d%*d%d",&a,&b);,當(dāng)輸入為:123時(shí),把1賦予a,2被跳過(guò),3賦予b。第一部分任務(wù)學(xué)習(xí)
4)在輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),可用空格、TAB或回車作間隔。
5)如果在格式控制字符串中除了格式說(shuō)明外還有其他字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。如scanf("%d,%d",&a,&b);,格式符之間的符號(hào),在輸入數(shù)據(jù)時(shí),要原樣輸入。
6)輸入數(shù)據(jù)時(shí)不能規(guī)定精度。如scanf("%7.2f",&a);,是不合法的。不能指望使用這種形式通過(guò)輸入1234567獲得a=12345.67。
7)在用“%c”格式輸入字符時(shí),空格字符和轉(zhuǎn)義字符都作為有效字符輸入。第一部分任務(wù)學(xué)習(xí)
【解決方案3】#include<stdio.h>voidmain() /*定義main函數(shù)*/{
inta; /*定義矩形的長(zhǎng)度變量a*/
intb; /*定義矩形的寬度變量b*/
int
l,s; /*定義矩形的周長(zhǎng)、面積變量l和s*/
scanf("%d%d",&a,&b); /*從鍵盤輸入長(zhǎng)、寬*/l=(a+b)*2; /*計(jì)算矩形周長(zhǎng)*/s=a*b; /*計(jì)算矩形面積*/
printf("l=%ds=%d\n",l,s); /*輸出結(jié)果*/}第一部分任務(wù)學(xué)習(xí)
【運(yùn)行情況3】
方案3程序運(yùn)行結(jié)果如圖2-7所示?!炯寄苡?xùn)練】
編寫一個(gè)程序,實(shí)現(xiàn)這樣的功能:要求從鍵盤輸入任一八進(jìn)制數(shù),可以實(shí)現(xiàn)將該數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),例如當(dāng)輸入八進(jìn)制數(shù)4520時(shí),輸出它所對(duì)應(yīng)的十進(jìn)制數(shù)2384。
第一部分任務(wù)學(xué)習(xí)
圖2-7求矩形的周長(zhǎng)和面積方案3程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
程序代碼如下:#include<stdio.h>voidmain(){
int
o_number,d_number,a,b,c,d;
printf("pleaseinputaoctalnumber:\n");
scanf("%d",&o_number);a=o_number/1000;b=o_number%1000/100;c=o_number%100/10;d=o_number%10;d_number=a*8*8*8+b*8*8+c*8+d;
printf("O:%d,D:%d",o_number,d_number);}第一部分任務(wù)學(xué)習(xí)
程序運(yùn)行結(jié)果如圖2-8所示。圖2-8八進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制數(shù)程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
三、格式輸入輸出語(yǔ)句——打印成績(jī)報(bào)表【問(wèn)題提出】
在實(shí)際應(yīng)用過(guò)程中,我們不僅需要格式的輸入輸出,還需要對(duì)各種格式加上參數(shù)對(duì)輸出進(jìn)行排版,使輸出更加美觀整齊?!竟ぷ魅蝿?wù)】
在屏幕上顯示成績(jī)報(bào)表(見(jiàn)表2-2)。說(shuō)明:在設(shè)計(jì)成績(jī)報(bào)表時(shí),根據(jù)現(xiàn)有的知識(shí)進(jìn)行設(shè)計(jì),在以后的學(xué)習(xí)中我們?cè)侔堰@個(gè)報(bào)表進(jìn)行改進(jìn)。第一部分任務(wù)學(xué)習(xí)
【思路指導(dǎo)】
輸出部分:利用格式輸出完成第一行字段的輸出;利用格式輸出完成各個(gè)數(shù)據(jù)的輸出。表2-2成績(jī)報(bào)表學(xué)號(hào)姓名C語(yǔ)言程序設(shè)計(jì)VB程序設(shè)計(jì)1001wx67.778.41002hy74.388.61003zb67.690.4第一部分任務(wù)學(xué)習(xí)
【解決方案】#include<stdio.h>voidmain(){
printf("學(xué)號(hào)\t姓名\tC語(yǔ)言程序設(shè)計(jì)\tVB程序設(shè)計(jì)\n");printf("%s%7s%13.2f%15.2f\n","1001","wx",67.7,78.4);printf("%s%7s%13.2f%15.2f\n","1002","hy",74.3,88.6);printf("%s%7s%13.2f%15.2f\n","1003","zb",67.6,90.4);}第一部分任務(wù)學(xué)習(xí)
【歸納分析】
格式說(shuō)明符中還可以指定寬度及數(shù)據(jù)對(duì)齊方向,見(jiàn)表2-3。
圖2-9成績(jī)報(bào)表程序運(yùn)行結(jié)果【運(yùn)行情況】
成績(jī)報(bào)表程序運(yùn)行結(jié)果如圖2-9所示。
第一部分任務(wù)學(xué)習(xí)
表2-3指定數(shù)據(jù)寬度及對(duì)齊方向舉例輸出結(jié)果說(shuō)明printf("%5d",222);□□222占5位,右對(duì)齊,不足5位左邊補(bǔ)空格printf("%-5d",222);222□□占5位,左對(duì)齊,不足5位右邊補(bǔ)空格printf("%2d",222);222超出指定寬度時(shí)不受寬度限制printf("%5.1f",22.22);□22.2占5位,小數(shù)點(diǎn)后占1位,右對(duì)齊,不足5位,左邊補(bǔ)空格printf("%-5.1f",22.22);22.2□占5位,小數(shù)點(diǎn)后占1位,左對(duì)齊,不足5位,右邊補(bǔ)空格printf("%.1f",22.22);22.2小數(shù)點(diǎn)后占1位printf("%.4s","aoyun");aoyu截去超過(guò)的部分printf("%4s","aoyun");aoyun寬度不夠,按實(shí)際寬度輸出printf("%4.2s","aoyun");□□ao占4位,但只取字符串左邊兩個(gè),右對(duì)齊,不足4位左邊補(bǔ)空格printf("%-4.2s","aoyun");ao□□占4位,但只取字符串左邊兩個(gè),左對(duì)齊,不足4位右邊補(bǔ)空格第一部分任務(wù)學(xué)習(xí)
【技能訓(xùn)練】
數(shù)學(xué)課上,老師在講授完圓柱、圓球的相關(guān)知識(shí)后,給同學(xué)們留了一道家庭作業(yè)題:設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,讓同學(xué)們求一下圓周長(zhǎng)、圓面積、圓球表面積、圓球體積、圓柱體積,要求小數(shù)點(diǎn)后面保留兩位小數(shù)。你能利用計(jì)算機(jī)快速的幫同學(xué)們解決一下這個(gè)問(wèn)題嗎?程序代碼如下:第一部分任務(wù)學(xué)習(xí)
#include<stdio.h>#definePI3.1415926voidmain(){floatr,h,l,s,sq,vq,vz; /*變量定義*/
printf("pleaseinputr,h:\n"); /*輸出提示信息*/
scanf(“%f,%f”,&r,&h); /*從鍵盤輸入圓半徑r、圓柱高h(yuǎn)的值*/l=2*PI*r; /*計(jì)算圓周長(zhǎng)*/s=PI*r*r; /*計(jì)算圓面積*/sq=4*PI*r*r; /*計(jì)算圓球表面積*/
vq=4.0/3.0*PI*r*r*r; /*計(jì)算圓球體積*/
vz=PI*r*r*h; /*計(jì)算圓柱體積*/printf(“%6.2f\n”,l); /*輸出各計(jì)算結(jié)果,小數(shù)點(diǎn)后面保留兩位小數(shù)*/printf("%6.2f\n",s);
第一部分任務(wù)學(xué)習(xí)
printf("%6.2f\n",sq);printf("%6.2f\n",vq);printf("%6.2f\n",vz);}
程序運(yùn)行結(jié)果如圖2-10所示。圖2-10程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
四、綜合運(yùn)用1——交換數(shù)據(jù)【問(wèn)題提出】
在日常生活中,經(jīng)常需要進(jìn)行交換操作,如交換兩杯水,交換兩個(gè)人的位置等。同樣,在C語(yǔ)言中經(jīng)常需要交換兩個(gè)數(shù)據(jù)。例如,為了保證在第一個(gè)變量中能夠存放兩個(gè)變量中較大的數(shù)據(jù),當(dāng)?shù)诙€(gè)變量中的值比第一個(gè)變量中的值大時(shí),需要交換這兩個(gè)變量中的值。第一部分任務(wù)學(xué)習(xí)
【工作任務(wù)】由鍵盤輸入兩個(gè)整數(shù)給變量a和b,然后輸出a和b,在交換a和b中的值后,再輸出a和b,驗(yàn)證兩個(gè)變量中的數(shù)值是否正確地進(jìn)行了交換?!舅悸分笇?dǎo)】
對(duì)于這個(gè)問(wèn)題,下面通過(guò)一個(gè)實(shí)際例子來(lái)理解它的算法。假設(shè)要交換硫酸銅、高錳酸鉀溶液,由于兩個(gè)試管的溶液不能直接交換,因此,解決這一問(wèn)題的關(guān)鍵是需要引入第三個(gè)試管。交換步驟如下:設(shè)標(biāo)有硫酸銅標(biāo)簽的試管為a,標(biāo)有高第一部分任務(wù)學(xué)習(xí)
錳酸鉀標(biāo)簽的試管中,即t→b。
(4)交換結(jié)束?!窘鉀Q方案】#include"stdio.h"voidmain(){inta,b,t;printf("Enteraandb:\n");scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);}第一部分任務(wù)學(xué)習(xí)
【運(yùn)行情況】
交換數(shù)據(jù)程序運(yùn)行結(jié)果如圖2-11所示。圖2-11交換數(shù)據(jù)程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
【歸納分析】
在程序中交換兩個(gè)變量a和b的值,不可以簡(jiǎn)單地用a=b;b=a;兩條語(yǔ)句來(lái)實(shí)現(xiàn)。假設(shè)a和b的值分別為23和78,賦值語(yǔ)句a=b;將使a的值變?yōu)?8,接下來(lái)的b=a;會(huì)使b的值變?yōu)?8,這樣,a和b的值最終都變?yōu)?8。所以在本例中引入了中間變量t,用來(lái)臨時(shí)存放a的值,這樣才能完成變量a和b的正確交換。第一部分任務(wù)學(xué)習(xí)
【技能訓(xùn)練】
從鍵盤上輸入一個(gè)大寫英文字母,要求改用相應(yīng)的小寫字母輸出。
程序代碼如下:#include<stdio.h>voidmain(){
charc1,c2;scanf("%c",&c1);
printf("Theuppercaseis%c.\n",c1);c2=c1+'a'-'A';
printf("Thelowercaseis%c.\n",c2);}
第一部分任務(wù)學(xué)習(xí)
程序運(yùn)行結(jié)果如圖2-12所示。
圖2-12英文大小寫轉(zhuǎn)換程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
五、綜合運(yùn)用2——編寫一個(gè)體重測(cè)量?jī)x【問(wèn)題提出】
進(jìn)行輸入操作的時(shí)候最好做到人機(jī)對(duì)話的形式,給人友好的運(yùn)行環(huán)境。要做到這一點(diǎn)就要在適當(dāng)?shù)臅r(shí)候加上提示語(yǔ)?!竟ぷ魅蝿?wù)】
編寫一個(gè)體重測(cè)量?jī)x:要求從鍵盤輸入身高和體重后,能夠計(jì)算出體重指數(shù)。(體重指數(shù)=體重(kg)/(身高)2)第一部分任務(wù)學(xué)習(xí)
【思路指導(dǎo)】(1)定義3個(gè)變量:floatindex,weight,height;。
(2)輸入體重:scanf("%f",&weight);。
(3)輸入身高:scanf("%f",&height);。
(4)計(jì)算指數(shù):index=weight/(height*height);。
(5)輸出指數(shù):printf("%f",index);。第一部分任務(wù)學(xué)習(xí)
【解決方案1】#include<stdio.h>voidmain(){floatweight,height,index;
scanf("%f",&weight);
scanf("%f",&height);index=weight/(height*height);
printf("%f",index);}第一部分任務(wù)學(xué)習(xí)
【運(yùn)行情況1】
體重測(cè)量?jī)x方案1程序運(yùn)行結(jié)果如圖2-13所示。
圖2-13體重測(cè)量?jī)x方案1程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
【歸納分析】(1)順序結(jié)構(gòu)是最簡(jiǎn)單的一種結(jié)構(gòu),它按照操作執(zhí)行的先后順序來(lái)編寫程序。
(2)編程應(yīng)該遵循的原則:先根據(jù)功能要求設(shè)計(jì)出算法(用自然語(yǔ)言描述或用流程圖描述),然后再根據(jù)算法編寫程序。
(3)程序應(yīng)該結(jié)構(gòu)清晰、界面美觀、容易操作。本程序在運(yùn)行時(shí)出現(xiàn)黑屏幕后等待用戶輸入數(shù)據(jù),但由于沒(méi)有提示信息,其目的不清楚,所以可以把程序做如下改進(jìn)。第一部分任務(wù)學(xué)習(xí)
【解決方案2】#include<stdio.h>voidmain(){floatweight,height,index;
printf("\npleaseinputyourweight:");
scanf("%f",&weight);
printf("\npleaseinputyourheight:");
scanf("%f",&height);index=weight/(height*height);
printf("Theindexofyourweightis:%f",index);}第一部分任務(wù)學(xué)習(xí)
【運(yùn)行情況2】
體重測(cè)量?jī)x方案2程序運(yùn)行結(jié)果如圖2-14所示。
圖2-14體重測(cè)量?jī)x方案2程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
【技能訓(xùn)練】
編程計(jì)算存款利息。設(shè)某銀行存款利率為每月0.0027,如果按利滾利算,那么向該銀行存入m萬(wàn)元,兩個(gè)月后利息是多少?計(jì)算公式為:本息=本金(1+利率)n,n為月數(shù)。輸入部分:利用格式輸入scanf完成從鍵盤輸入本金m(實(shí)型數(shù))、月數(shù)n(整型數(shù))、利率v(實(shí)型數(shù))的值。計(jì)算處理部分:利用公式——本息=本金(1+利率)n,計(jì)算本息s=m(1+v)n和利息t=s-m。注意:程序中可使用C語(yǔ)言提供的冪函數(shù)pow(1+v,n)求第一部分任務(wù)學(xué)習(xí)
(1+v)n的值。輸出部分:利用printf格式輸出利息t的值,可采用%m.nf格式。
第一部分任務(wù)學(xué)習(xí)
程序代碼如下:#include<stdio.h>#include<math.h>voidmain(){floatm,v,t,s;
intn;
printf("pleaseinputm,n,v:\n");scanf("%f,%d,%f",&m,&n,&v);s=m*pow(1+v,n);t=s-m;
printf("t=%6.2f\n",t);}第一部分任務(wù)學(xué)習(xí)
程序運(yùn)行結(jié)果如圖2-15所示。
圖2-15計(jì)算存款利息程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
六、單個(gè)字符輸入輸出函數(shù)的使用【問(wèn)題提出】
用C語(yǔ)言處理實(shí)際問(wèn)題時(shí),需要輸入和輸出單個(gè)字符的場(chǎng)合很多,這時(shí)除了可以使用scanf和printf函數(shù)外,還可以使用形式簡(jiǎn)潔的getchar和putchar函數(shù)?!竟ぷ魅蝿?wù)】
編寫程序,根據(jù)輸入的一個(gè)字母,計(jì)算下一字母并輸出。第一部分任務(wù)學(xué)習(xí)
【思路指導(dǎo)】
用getchar函數(shù)可以給某變量輸入1個(gè)字符,對(duì)字符加1得到其下一個(gè)字符,輸出1個(gè)字符用putchar函數(shù)?!窘鉀Q方案】
#include<stdio.h>voidmain(){charch;
ch=getchar();
ch=ch+1;
putchar(ch);
putchar('\n');}第一部分任務(wù)學(xué)習(xí)
【運(yùn)行情況】
單個(gè)字符輸入輸出程序運(yùn)行結(jié)果如圖2-16所示。
圖2-16單個(gè)字符輸入輸出程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)
【歸納分析】(1)putchar函數(shù)(字符輸出函數(shù))。格式:putchar(字符表達(dá)式);。功能:向終端(顯示器)輸出一個(gè)字符。例如:putchar('y'); /*輸出字符'y'*/putchar(‘\n'); /*輸出一個(gè)換行符,使輸出的當(dāng)前位置移到下一行的開頭*/putchar('\101'); /*輸出字符'A'*/putchar('\''); /*輸出單引號(hào)字符*/第一部分任務(wù)學(xué)習(xí)
(2)getchar函數(shù)(字符輸入函數(shù))。格式:getchar();。功能:從終端(鍵盤)輸入一個(gè)字符,按回車鍵確認(rèn)。函數(shù)的返回值就是從輸入設(shè)備得到的字符。說(shuō)明:
1)注意輸入字符后,必須按回車鍵,字符才送到內(nèi)存。
2)getchar()只能接受一個(gè)字符,輸入數(shù)字也按字符處理,輸入多于一個(gè)字符時(shí),只接收第一個(gè)字符。第一部分任務(wù)學(xué)習(xí)
【技能訓(xùn)練】
從鍵盤上輸入一個(gè)大寫英文字母,要求改用相應(yīng)的小寫字母輸出。
程序代碼如下:#include<stdio.h>voidmain(){charc1,c2;c1=getchar();c2=c1+'a'-'A';putchar(c2);
putchar('\n');}第一部分任務(wù)學(xué)習(xí)
程序運(yùn)行結(jié)果如圖2-17所示。
圖2-17英文大寫換小寫程序運(yùn)行結(jié)果第二部分項(xiàng)
目
學(xué)
習(xí)
項(xiàng)目學(xué)習(xí)四信息錄入和顯示
項(xiàng)目學(xué)習(xí)三菜單設(shè)計(jì)
第二部分項(xiàng)
目
學(xué)
習(xí)
項(xiàng)目學(xué)習(xí)三菜單設(shè)計(jì)【工作任務(wù)】本節(jié)只實(shí)現(xiàn)顯示功能,即顯示成績(jī)管理系統(tǒng)的進(jìn)入界面,用戶可以通過(guò)此界面進(jìn)行菜單選擇,選擇所要進(jìn)入的模塊?!舅悸分笇?dǎo)】菜單設(shè)計(jì)涉及的知識(shí)是順序結(jié)構(gòu)。第二部分項(xiàng)
目
學(xué)
習(xí)
【解決方案】#include<stdio.h>voidmain(){printf("\n\n\t||========================||");printf("\n\n\t||-------------歡迎使用成績(jī)管理系統(tǒng)------------------||");printf("\n\n\t||-----------------welcome------------------------||");printf("\n\n\t||---------------謝謝使用本系統(tǒng)---------------------||");printf("\n\n\t||-------------徐州工業(yè)職業(yè)技術(shù)學(xué)院------------------||");
第二部分項(xiàng)
目
學(xué)
習(xí)
printf("\n\n\t||========================||");printf("\n\n\t||-----------------請(qǐng)選擇(1-6)--------------------||");printf("\n\n\t||------------------------------------------------||");printf("\n\n\t||1.輸出信息
||");printf("\n\n\t||2.計(jì)算結(jié)果
||");printf("\n\n\t||3.排序信息||");printf("\n\n\t||4.查找信息||");printf("\n\n\t||5.修改信息||");printf("\n\n\t||6.退出系統(tǒng)||");
printf("\n\n\t||-----------------------------------------------||");
printf("\n");}第二部分項(xiàng)
目
學(xué)
習(xí)
【運(yùn)行情況】
程序運(yùn)行結(jié)果如圖2-18所示。
圖2-18成績(jī)管理系統(tǒng)進(jìn)入界面第二部分項(xiàng)
目
學(xué)
習(xí)
【歸納分析】一個(gè)實(shí)用的軟件在設(shè)計(jì)時(shí)要考慮良好的人機(jī)界面,簡(jiǎn)單來(lái)說(shuō)就是用戶感覺(jué)軟件界面美觀而不是花俏,操作方便??梢詰?yīng)用屏幕窗口技術(shù)實(shí)現(xiàn)數(shù)據(jù)的顯示,為方便操作,采用交互菜單實(shí)現(xiàn)功能或選項(xiàng)的選擇。要盡可能考慮到用戶的操作習(xí)慣,在軟件操作過(guò)程中,提示信息要盡量豐富、準(zhǔn)確。
第二部分項(xiàng)
目
學(xué)
習(xí)
項(xiàng)目學(xué)習(xí)四信息錄入和顯示【工作任務(wù)】實(shí)現(xiàn)學(xué)生的基本信息的錄入,但是錄入學(xué)生的基本信息只包括學(xué)號(hào)、姓名、班級(jí)和4門課的成績(jī)。輸入和處理過(guò)的信息要能夠按照一定格式顯示出來(lái)?!舅悸分笇?dǎo)】(1)輸入數(shù)據(jù)和輸出數(shù)據(jù)的時(shí)候要注意良好的人機(jī)界面。(2)要注意輸入和輸出時(shí)的數(shù)據(jù)格式。
第二部分項(xiàng)
目
學(xué)
習(xí)
(3)思考以什么樣的版式來(lái)顯示學(xué)生信息,如何應(yīng)用輸出格式的參數(shù),學(xué)習(xí)者可以不斷的調(diào)整參數(shù)來(lái)達(dá)到比較好的效果?!窘鉀Q方案】#include<stdio.h>#defineN1000#defineM4inti,j,sum,b;charc;floataverage;structstudent第二部分項(xiàng)
目
學(xué)
習(xí)
{charnum[6];charname[8];charclas[12];inta;intscore[4];floatavr;}stu[N],temp;voidmain(){intflag=1,i=0,j;while(flag==1){
第二部分項(xiàng)
目
學(xué)
習(xí)
printf("\n是否需要輸入信息(Y/N)?");getchar();c=getchar();if(c=='Y'||c=='y'){printf("\n請(qǐng)輸入學(xué)生信息:\n");printf("學(xué)號(hào):");
scanf("%s",&stu[i].num);printf("姓名:");scanf("%s",&stu[i].name);printf("班級(jí):");scanf("%s",&stu[i].clas);for(j=0;j<M;j++){printf("成績(jī)%d:",j+1);scanf("%d",&stu[i].score[j]);
第二部分項(xiàng)
目
學(xué)
習(xí)
}b=++i;}elseif(c=='N'||c=='n')flag=0;
}
printf("學(xué)生信息:\n");printf("學(xué)號(hào)\t姓名\t班級(jí)\t成績(jī)1\t成績(jī)2\t成績(jī)3\t成績(jī)4\n");
for(i=0;i<b;i++){printf("%5s%5s%10s",stu[i].num,stu[i].name,stu[i].clas);
for(j=0;j<M;j++)printf("%8d",stu[i].score[j]);
printf("\n");
}}第二部分項(xiàng)
目
學(xué)
習(xí)
【運(yùn)行情況】程序運(yùn)行結(jié)果如圖2-19所示。
圖2-19學(xué)生信息程序運(yùn)行結(jié)果第二部分項(xiàng)
目
學(xué)
習(xí)
【歸納分析】
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國(guó)玻璃溫室市場(chǎng)調(diào)查研究報(bào)告
- 2024年03月中國(guó)光大銀行吉安分行招考筆試歷年參考題庫(kù)附帶答案詳解
- 2024年版綜合樓租賃合同3篇
- 2025年度跨境電商交易賠償協(xié)議范本3篇
- 2024年度私人包車帶司機(jī)自駕游全程陪同合同3篇
- 2024年中國(guó)商盟管理軟件市場(chǎng)調(diào)查研究報(bào)告
- 2024年貨車年檢服務(wù)與費(fèi)用合同
- 北京2025年首都醫(yī)科大學(xué)附屬北京佑安醫(yī)院(北京肝病研究所)招聘筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 2024年中國(guó)單機(jī)版圖書/音像管理系統(tǒng)市場(chǎng)調(diào)查研究報(bào)告
- 2024年青少年活動(dòng)中心商鋪?zhàn)赓U中介服務(wù)與項(xiàng)目合作3篇
- 2025-2030年中國(guó)新能源汽車行業(yè)市場(chǎng)分析報(bào)告
- 宜賓天原5萬(wàn)噸氯化法鈦白粉環(huán)評(píng)報(bào)告
- 創(chuàng)意寫作與文學(xué)欣賞
- 糖果行業(yè)大數(shù)據(jù)分析-洞察分析
- 名畫中的瘟疫史知到智慧樹章節(jié)測(cè)試課后答案2024年秋上海健康醫(yī)學(xué)院
- 高空伐樹作業(yè)施工方案
- 新媒體用戶行為研究-洞察分析
- 新建二級(jí)加油站項(xiàng)目投資立項(xiàng)可行性分析報(bào)告
- 湖北省荊門市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)統(tǒng)編版質(zhì)量測(cè)試(上學(xué)期)試卷及答案
- 2025版國(guó)家開放大學(xué)法學(xué)本科《知識(shí)產(chǎn)權(quán)法》期末紙質(zhì)考試總題庫(kù)
- 剪輯師的職業(yè)規(guī)劃
評(píng)論
0/150
提交評(píng)論