第一篇:《C語(yǔ)言程序設(shè)計(jì)》(江寶釧著)實(shí)驗(yàn)三答案
3.5 實(shí)驗(yàn)三 選擇結(jié)構(gòu)程序設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康呐c要求
1.理解C語(yǔ)言表示邏輯量的方法,學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式。
2.掌握利用if結(jié)構(gòu)實(shí)現(xiàn)選擇結(jié)構(gòu)的方法。
3.掌握利用switch結(jié)構(gòu)實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。
4. 結(jié)合程序掌握一些簡(jiǎn)單的算法,學(xué)習(xí)調(diào)試程序
5. 實(shí)驗(yàn)4學(xué)時(shí)
二、實(shí)驗(yàn)內(nèi)容
1.程序改錯(cuò)題
改正下面程序中的錯(cuò)誤。輸入實(shí)數(shù)x,計(jì)算并輸出下列分段函數(shù)f(x)的值(保留1位小數(shù))。1
x(x?100)
y?f(x)?
x(x?100)輸入輸出示例1(改正后程序的運(yùn)行結(jié)果)
Enter x:f(100.00)= 0.1
輸入輸出示例2(改正后程序的運(yùn)行結(jié)果)
Enter x:f(23.00)= 23.0
源程序(有錯(cuò)誤的程序)
#include
#include
void main(void)
{
double x;
printf(“Enterx: n”);
scanf(“=%f”, x);
if(x = 100){
y = 1/sqrt(x)
}
else(x!= 100){
y = x;
}
printf(“f(%.2f)= %.1fn”,x,y);
}
答:
#include
#include
void main(void)
{
double x,y;
printf(“Enterx:n”);
scanf(“%lf”,&x);
if(x=100)
y = 1/sqrt(x);
else
y= x;
printf(“f(%.2lf)=%.1lfn”,x,y);
}
2.一般編程題
編程題1
輸入任意三個(gè)整數(shù)a,b,c,求3個(gè)數(shù)中的最大值和最小值。
答:
#include
void main()
{
int a,b,c;
printf(“請(qǐng)輸入三個(gè)整數(shù):”);
scanf(“%d %d %d”,&a,&b,&c);
if(a>=b)
t=a,a=b,b=t;
if(a>=c)
t=a,a=c,c=t;
if(b>=c)
t=b,b=c,c=t;
printf(“最小值為:%dn”,a);
printf(“最大值為:%dn”,c);
}
編程題2
輸入x,計(jì)算并輸出下面分段函數(shù)f(x)的值(保留2位小數(shù))。請(qǐng)調(diào)用sqrt函數(shù)求平方根,調(diào)用pow函數(shù)求冪。
2(x?1)?2x?1
x(x?0)
f(x)?
x(x?0)
輸入輸出示例(共運(yùn)行3次)
Enter x:f(10.00)=3.16
Enter xf(-0.50)=-2.75
Enter x:f(0.00)=0.00
成本
答:
#include
#include
void main()
{
編程題3 double x,y;printf(“Enterx:n”);scanf(“%lf”,&x);if(x<0)y=pow(1+x,2)+2*x+1/x;else y=sqrt(x);printf(“f(%.2f)=%.2fn”,x,y);}
有一函數(shù):
x(-5 y=x-1(x=0) x+1(0 編寫(xiě)程序,要求用scanf函數(shù)輸入x的值,輸出y的值。 具體要求如下: (1)用if語(yǔ)句實(shí)現(xiàn)分支,自變量和函數(shù)值均用實(shí)數(shù)類(lèi)型。 (2)自變量用scanf函數(shù)輸入,給一些輸入提示。 (3)運(yùn)行程序,輸入x的值(分別為-5 答: #include #include void main() { double x,y; printf(“Enterx:n”); scanf(“%lf”,&x); if(x>0&&x<10) y=x+1; else if(x==0) y=x-1; else if(x>-5&&x<0) y=x; printf(“f(%.2f)=%.2fn”,x,y); } 編程題4 某服裝店經(jīng)營(yíng)成套服裝的買(mǎi)賣(mài),同時(shí)也允許單件銷(xiāo)售。若一次購(gòu)買(mǎi)不少于70套,則每套90元;若不足70套,則每套110元;只買(mǎi)上衣每件70元;只買(mǎi)褲子每條60元。請(qǐng)編寫(xiě)程序假設(shè)用戶買(mǎi)入x件上衣和y條褲子,請(qǐng)編寫(xiě)程序計(jì)算相應(yīng)的應(yīng)付款是多少? 答: #include #include void main() { double x,y,z; printf(“輸入上衣x件,褲子y件:n”); scanf(“%lf%lf”,&x,&y); if(x>=y&&y>=70) z=90*y+70*(x-y); else if(y>=x&&x>=70) z=90*x+60*(y-x); else if(x>y&&y<70) z=110*y+70*(x-y); else if(y>x&&x<70) z=110*x+60*y-x; printf(“應(yīng)付:%.3f(元)n”,z); } 編程題5 編寫(xiě)程序?qū)崿F(xiàn):輸入一個(gè)整數(shù),判斷它能否被3、5、7整除,同時(shí)輸出如下信息。 (1)能同時(shí)被3、5、7整除; (2)能同時(shí)被其中的哪二個(gè)數(shù)整除; (3)能被其中的哪一個(gè)數(shù)整除; (4)不能被3、5、7任一個(gè)數(shù)整除。 答: #include void main() { int x,a,b,c,d; scanf(“%d”,&x); a=x%3; } a=a/a*100;b=x%5;b=b/b*10;c=x%7;d=a+b+c;switch(d){ case 100:printf(“能被5,7整除n”);case 10 :printf(“能被3,7整除n”);case 1:printf(“能被3,5整除n”);case 110:printf(“能被7整除n”);case 101:printf(“能被5整除n”);case 11 :printf(“能被3整除n”);case 111:printf(“不能被3,5,7整除n”);case 0:printf(“能被3,5,7整除n”);} 3.較難編程題 編程題1 請(qǐng)用switch語(yǔ)句編程計(jì)算員工每月的薪水。(exph3_1.cpp) 已知某公司員工的保底薪水為500,某月所接工程的利潤(rùn)profit(整數(shù))與提成的關(guān)系如下(計(jì)量單位:元): profit≤1000沒(méi)有提成; 1000<profit≤2000提成10%; 2000<profit≤5000提成15%; 5000<profit≤10000提成20%; 10000<profit提成25%。 分析:為使用switch語(yǔ)句,必須將利潤(rùn)profit與提成的關(guān)系,轉(zhuǎn)換成某些整數(shù)與提成的關(guān)系。分析本題可知,提成的變化點(diǎn)都是1000的整數(shù)倍(1000、2000、5000、……),如果將利潤(rùn)profit整除1000,則相鄰兩個(gè)區(qū)間的重疊。為解決相鄰兩個(gè)區(qū)間的重疊問(wèn)題,最簡(jiǎn)單的方法就是:利潤(rùn)profit先減1(最小增量),然后再整除1000即可: profit≤1000對(duì)應(yīng)0 1000<profit≤2000對(duì)應(yīng)1 2000<profit≤5000對(duì)應(yīng)2、3、4 5000<profit≤10000對(duì)應(yīng)5、6、7、8、9 10000<profit對(duì)應(yīng)10、11、12、…… 答: #include void main() { double p,m,t,q; int n; printf(“某月所接工程利潤(rùn)為:”);printf(“nn”);scanf(“%lf”,&p);m=p-1;n=(int)m/1000;switch(n){ case 0 :printf(“n薪水為:500n”);break;case 1 :q=500+p*0.1;printf(“n薪水為:%.2lfn”,q);break;case 2 : case 3 : case 4 :q=500+p*0.15;printf(“n薪水為:%.2lfn”,q);break;case 5 : case 6 : case 7 : case 8 : case 9 :q=500+p*0.2;printf(“n薪水為:%.2lfn”,q);break;default:q=500+p*0.25;printf(“n薪水為:%.2lfn”,q); } } 編程題2 編寫(xiě)程序?qū)崿F(xiàn)如下功能:輸入二個(gè)運(yùn)算數(shù)(exp1,exp2)和一個(gè)運(yùn)算符(op),計(jì)算表達(dá)式exp1 op exp2的值,其中OP可以為+、-、*、/、%五個(gè)符號(hào)中的任一種(提示:用switch語(yǔ)句實(shí)現(xiàn))。 答: #include void main() { float exp1,exp2,x; char op; printf(“輸入:”); scanf(“%f%c%f”,&exp1,&op,&exp2); switch(op) { case '+':x=exp1+exp2;break; case '-':x=exp1-exp2;break; case '*':x=exp1*exp2;break; case '/':x=exp1/exp2;break; } printf(“nnn%5.2f%c%5.2f=%5.2fnnn”,exp1,op,exp2,x);} + C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn) (四)[實(shí)驗(yàn)1] scanf()、printf()函數(shù)的使用。 1.實(shí)驗(yàn)題目 輸入1個(gè)學(xué)生學(xué)號(hào)和4門(mén)課程成績(jī),輸出這個(gè)學(xué)生的學(xué)號(hào)、4門(mén)課程成績(jī)和平均成績(jī)。 2.實(shí)驗(yàn)要求 (1)按表格的形式輸出,以行內(nèi)輸出一個(gè)學(xué)生的信息。 (2)學(xué)號(hào)用長(zhǎng)整型,各科成績(jī)用單精度型。 3.實(shí)驗(yàn)?zāi)繕?biāo) (1)掌握實(shí)現(xiàn)人機(jī)對(duì)話形式的方法,scanf()輸入。 (2)體會(huì)根據(jù)需要控制輸出格式的方法,printf()輸出。 4.實(shí)驗(yàn)指導(dǎo) 利用格式的數(shù)據(jù)寬度控制數(shù)據(jù)的對(duì)位輸出。輸出如下格式: The number and score of a student is: |---| |number | score1 | score2 | score3 | sco re4 | average | |---| |10011| 67.5|88.0 |93.5 |78.0|81.75 | |---| [實(shí)驗(yàn)2] getchar()、putchar()函數(shù)的使用 1.實(shí)驗(yàn)題目 用getchar()函數(shù)讀入a~v之間的一個(gè)字母,用putchar()函數(shù)輸出一個(gè)5行5列的矩陣,該矩陣第一行為讀入的字母,下一行為緊跟該字母后的字母,依此類(lèi)推。如輸入a,則輸出的矩陣為: aaaaa bbbbb ccccc ddddd eeeee 2.實(shí)驗(yàn)要求 (1)運(yùn)用getchar()進(jìn)行字符輸入。 (2)運(yùn)用putchar()進(jìn)行字符輸出。 3.實(shí)驗(yàn)?zāi)繕?biāo) (1)體會(huì)根據(jù)需要控制輸出格式的方法。 [實(shí)驗(yàn)3] 3.6 下面程序運(yùn)行時(shí)在鍵盤(pán)上如何輸入?如果a=3,b=4,x=8.5,y=71.82,c1=’A’,c2=’a’,請(qǐng)寫(xiě)出對(duì)應(yīng)每個(gè)scanf函數(shù)的輸入情況。 main() { int a,b;float x,y;char c1,c2; scanf(“a=%d□b=%d”,&a,&b); scanf(“□%f %e”,&x,&y); scanf(“□%c %c”,&c1,&c2); } 3.7編一程序,從鍵盤(pán)輸入一個(gè)圓半徑值,求圓周長(zhǎng)、圓面積、圓球表面積、圓球體積。輸出結(jié)果時(shí),要求有文字說(shuō)明,保留2位小數(shù)。 提示:設(shè)圓半徑為r,則圓周長(zhǎng)=2πr,圓面積=πr2,圓球表面積=4πr2,圓球體積= 4πr3/3。 C語(yǔ)言實(shí)驗(yàn)指導(dǎo) 實(shí)驗(yàn)一 順序結(jié)構(gòu)程序設(shè)計(jì)(2學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康氖煜ぴ赩C運(yùn)行環(huán)境下,編輯調(diào)試C語(yǔ)言程序的一般步驟。掌握順序結(jié)構(gòu)程序設(shè)計(jì)的基本思想和基本方法。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫(xiě)出相應(yīng)的C語(yǔ)言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過(guò)程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語(yǔ)法錯(cuò)誤。 5.最后提交帶有注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴ 程序功能描述。 ⑵ 程序版本號(hào)、創(chuàng)作日期。 ⑶ 作者信息描述:班級(jí)、學(xué)號(hào)、姓名。 ⑷ 問(wèn)題分析描述。 ⑸ 算法設(shè)計(jì)描述。 ⑹ 關(guān)鍵語(yǔ)句注釋說(shuō)明。 ⑺ 調(diào)試運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻ 輸入數(shù)據(jù)樣例。 ⑼ 輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 你知道淄博到北京的地面距離是多少千米嗎,淄博到紐約的地面距離又是多少千米呢?說(shuō)不上來(lái)了吧。還是讓我們編一個(gè)程序來(lái)計(jì)算一下吧。 1.已知地球的平均半徑為6371千米,假設(shè)在地球的同一緯度上,有兩個(gè)處于不同經(jīng)度的城市A、B,編程序求出這兩個(gè)城市之間的地面距離。 輸入數(shù)據(jù)樣例:例如,欲求北緯30度上東經(jīng)10度到東經(jīng)50度的距離,輸入格式應(yīng)為:30 10 50 參考測(cè)試數(shù)據(jù): 輸入:0 0 180 輸出:20015.08 輸入:30 0 90 輸出:8397.7 2輸入:60 0 45 輸出:2453.20 2.地球的平均半徑為6371千米,已知地球上兩個(gè)城市A、B的經(jīng)度和緯度,編程序求出這兩個(gè)城市之間的地面距離。 提示:球面上兩點(diǎn)之間的最短距離,等于過(guò)這兩點(diǎn)以球心為圓心的圓上,這兩點(diǎn)之間劣弧的長(zhǎng)度。(即這兩點(diǎn)與球心之間的連線構(gòu)成的夾角所對(duì)球面劣弧的長(zhǎng)度)。 建議你自己一步步推導(dǎo)出公式,而不要照搬網(wǎng)上的現(xiàn)成公式。 四、常見(jiàn)問(wèn)題 疑問(wèn)1:這分明是兩道數(shù)學(xué)題啊,能否將數(shù)學(xué)公式提供給我們呢,我們的主要任務(wù)不是編寫(xiě)程序嗎? 答:建立數(shù)學(xué)模型也是編程序的一部分。學(xué)會(huì)分析解決現(xiàn)實(shí)中遇到的問(wèn)題,是我們學(xué)習(xí)的重要目標(biāo)。 疑問(wèn)2:這個(gè)問(wèn)題好像屬于球面幾何的范疇,用平面幾何可以求解嗎? 答:這個(gè)問(wèn)題的確涉及到球面幾何,但是也的確可以利用投影以及平面幾何方法來(lái)求解。 實(shí)驗(yàn)二 選擇結(jié)構(gòu)程序設(shè)計(jì)(2學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康?/p> 掌握選擇結(jié)構(gòu)程序設(shè)計(jì)的一般方法及選擇結(jié)構(gòu)程序的調(diào)試方法。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫(xiě)出相應(yīng)的C語(yǔ)言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過(guò)程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語(yǔ)法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號(hào)、創(chuàng)作日期。 ⑶作者信息描述:班級(jí)、學(xué)號(hào)、姓名。 ⑷問(wèn)題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語(yǔ)句注釋說(shuō)明。 ⑺調(diào)試運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 你知道你生日那天是星期幾嗎,還有你知道你爸爸生日那天是星期幾嗎?你可能會(huì)說(shuō):可以查萬(wàn)年歷啊。那么,不查萬(wàn)年歷你能計(jì)算出來(lái)嗎? 以下兩題,任選其一解答。 1.編程序?qū)崿F(xiàn):輸入一個(gè)年份y,求出從公元1年1月1日到y(tǒng)年1月1日,總共有多少天,并求出y年的1月1日是星期幾。 2.編程序?qū)崿F(xiàn):輸入任意一個(gè)日期的年、月、日的值,求出從公元1年1月1日到這一天總共有多少天,并求出這一天是星期幾。 四、常見(jiàn)問(wèn)題 疑問(wèn)1:閏年的規(guī)律是不是四年一閏? 答:四年一閏是儒略歷(儒略也就是凱撒大帝)的置閏規(guī)則。我們現(xiàn)在使用的是格里高利歷,置閏規(guī)則是每400年97閏。 疑問(wèn)2:公元1年1月1日是星期幾呢? 答:星期一。 疑問(wèn)3:據(jù)說(shuō)從儒略歷改為格里高利歷時(shí),將1582年10月4日的下一天定為格里高利歷的10月15日,中間銷(xiāo)去了10天,這會(huì)不會(huì)影響星期幾的計(jì)算? 答:這個(gè)調(diào)整是對(duì)儒略歷誤差的糾正,并不會(huì)影響總天數(shù)和星期幾的計(jì)算。 疑問(wèn)4:這里計(jì)算總天數(shù),好像要用到循環(huán)程序吧? 答:其實(shí)根據(jù)閏年的置閏規(guī)則,不使用循環(huán)也可以計(jì)算出來(lái)總天數(shù)。當(dāng)然,你想使用循環(huán)編寫(xiě)該程序也是可以的。 實(shí)驗(yàn)三 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(2學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康恼莆昭h(huán)結(jié)構(gòu)程序設(shè)計(jì)的一般方法及循環(huán)結(jié)構(gòu)程序的調(diào)試方法。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫(xiě)出相應(yīng)的C語(yǔ)言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過(guò)程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語(yǔ)法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號(hào)、創(chuàng)作日期。 ⑶作者信息描述:班級(jí)、學(xué)號(hào)、姓名。 ⑷問(wèn)題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語(yǔ)句注釋說(shuō)明。 ⑺調(diào)試運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 1. 海萍夫婦為了徹底告別“蝸居”生活,痛下決心貸款60萬(wàn)元購(gòu)買(mǎi)了一套三居室。若貸款月利率為0.5%,還款期限為120個(gè)月,還款方式為等額本金還款法(即貸款期限內(nèi)每期以相等的額度償還貸款本金,貸款利息隨本金逐期遞減)。試求出每個(gè)月還款的本金、每個(gè)月的利息以及總利息分別是多少元。 2. 若還款方式采用等額本息還款法(即貸款期限內(nèi)每期以相等的額度償還貸款本息,貸款利息隨本金逐期遞減)。試求出每個(gè)月還款的本金、每個(gè)月的利息以及總利息分別是多少元。 四、常見(jiàn)問(wèn)題 疑問(wèn)1:等額本息還款法每個(gè)月的還款額怎么計(jì)算,應(yīng)該有個(gè)公式吧,要不然怎么計(jì)算出來(lái)每個(gè)月應(yīng)還的利息與本金? 答:的確有一個(gè)計(jì)算公式。當(dāng)然你可以自己推導(dǎo)出來(lái)(這樣你會(huì)很有成就感?。?,要不然就從網(wǎng)上搜索出來(lái)。 實(shí)驗(yàn)四 循環(huán)程序綜合應(yīng)用(4學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康模?/p> 掌握循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的一般方法及循環(huán)結(jié)構(gòu)程序的調(diào)試方法,能夠綜合運(yùn)用順序、選擇和循環(huán)結(jié)構(gòu)解決一般難度的實(shí)際應(yīng)用問(wèn)題。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫(xiě)出相應(yīng)的C語(yǔ)言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過(guò)程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語(yǔ)法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號(hào)、創(chuàng)作日期。 ⑶作者信息描述:班級(jí)、學(xué)號(hào)、姓名。 ⑷問(wèn)題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語(yǔ)句注釋說(shuō)明。 ⑺調(diào)試運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 1.編程序?qū)崿F(xiàn)如下功能:輸入任意一個(gè)年份和月份,按以下格式輸出該月份的公歷日歷。 要求由程序計(jì)算出來(lái)該月份的1日是星期幾,并用循環(huán)控制打印。打印樣例如下: 2012年日歷 ========== 9月 ---------日 一 二 三 四 五 六2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30------------------------- 2.編程序?qū)崿F(xiàn)如下功能:輸入任意一個(gè)年份,按以下格式輸出該年份全年的公歷日歷。要求由程序計(jì)算出來(lái)每個(gè)月份的1日是星期幾,并用循環(huán)控制打印。 四、常見(jiàn)問(wèn)題 疑問(wèn)1:如何控制某個(gè)月1日的打印位置? 答:先由程序計(jì)算出來(lái)該月份的1日是星期幾,然后控制在打印“1”之前打印相應(yīng)個(gè)數(shù)的空格。 疑問(wèn)2:如何控制每周和每月的打印換行? 答:可以根據(jù)當(dāng)前這一天的打印位置控制每周的打印換行,并根據(jù)該月份的天數(shù)控制每月的打印換行。 實(shí)驗(yàn)五 字符串處理綜合應(yīng)用(4學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康?/p> 掌握字符串處理的一般方法及字符串處理應(yīng)用程序的調(diào)試方法,能夠綜合運(yùn)用選擇、循環(huán)結(jié)構(gòu)和數(shù)組、指針解決一般難度的實(shí)際應(yīng)用問(wèn)題。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫(xiě)出相應(yīng)的C語(yǔ)言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過(guò)程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語(yǔ)法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號(hào)、創(chuàng)作日期。 ⑶作者信息描述:班級(jí)、學(xué)號(hào)、姓名。 ⑷問(wèn)題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語(yǔ)句注釋說(shuō)明。 ⑺調(diào)試運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 1.編程實(shí)現(xiàn),輸入一個(gè)整數(shù)的小寫(xiě)金額值(即不考慮角和分),轉(zhuǎn)化為大寫(xiě)金額值并輸出。先實(shí)現(xiàn)基本功能,如輸入1002300,可以輸出“壹佰零拾零萬(wàn)貳仟叁佰零拾零元整”。 2.編程實(shí)現(xiàn),輸入一個(gè)小寫(xiě)金額值,轉(zhuǎn)化為大寫(xiě)金額值輸出。要求實(shí)現(xiàn)相對(duì)完善的功能,如輸入1002300.90,應(yīng)該輸出“壹佰萬(wàn)貳仟叁佰元零玖角整”。 四、常見(jiàn)問(wèn)題 疑問(wèn)1:如何才能分離出整數(shù)中的每一位數(shù)字? 答:可以利用整數(shù)的求余數(shù)和除法運(yùn)算實(shí)現(xiàn)數(shù)字的分離,同時(shí)將分離出的數(shù)字存入到一個(gè)事先定義好的數(shù)組中,每個(gè)數(shù)組元素只存儲(chǔ)一位數(shù)字。 疑問(wèn)2:若不能確定整數(shù)的實(shí)際位數(shù),如何控制分離過(guò)程? 答:可以通過(guò)循環(huán)控制數(shù)字的分離過(guò)程,每循環(huán)一次分離出來(lái)當(dāng)前的最末一位,然后去掉最末一位,直至分離出所有的位。 疑問(wèn)3:如何控制給某位數(shù)字添加合適的數(shù)量單位,如萬(wàn)、仟、佰、拾、元? 答:可以根據(jù)該數(shù)字在原小寫(xiě)數(shù)值中的位置進(jìn)行控制,如第0位單位為“元”,第1位單位為“拾”,依此類(lèi)推。 實(shí)驗(yàn)六 文件應(yīng)用程序設(shè)計(jì)(2學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康恼莆瘴募?yīng)用程序設(shè)計(jì)的一般方法及其調(diào)試方法。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫(xiě)出相應(yīng)的C語(yǔ)言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過(guò)程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語(yǔ)法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號(hào)、創(chuàng)作日期。 ⑶作者信息描述:班級(jí)、學(xué)號(hào)、姓名。 ⑷問(wèn)題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語(yǔ)句注釋說(shuō)明。 ⑺調(diào)試運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 1. 海萍夫婦為了徹底告別“蝸居”生活,痛下決心貸款60萬(wàn)元購(gòu)買(mǎi)了一套三居室。若貸款月利率為0.5%,還款期限為120個(gè)月,還款方式為等額本金還款法(即貸款期限內(nèi)每期以相等的額度償還貸款本金,貸款利息隨本金逐期遞減)。試求出每個(gè)月還款的本金、每個(gè)月的利息以及總利息分別是多少元。要求將輸出結(jié)果寫(xiě)入到數(shù)據(jù)文件中。 2. 若還款方式采用等額本息還款法(即貸款期限內(nèi)每期以相等的額度償還貸款本息,貸款利息隨本金逐期遞減)。試求出每個(gè)月還款的本金、每個(gè)月的利息以及總利息分別是多少元。要求將輸出結(jié)果寫(xiě)入到數(shù)據(jù)文件中。 電子科技大學(xué) 計(jì)算機(jī) 學(xué)院 標(biāo) 準(zhǔn) 實(shí) 驗(yàn) 報(bào) 告 (實(shí)驗(yàn))課程名稱 C語(yǔ)言程序設(shè)計(jì) 電子科技大學(xué)教務(wù)處制表 電 子 科 技 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告 四 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師:劉 勇 實(shí)驗(yàn)地點(diǎn): 計(jì)算機(jī)學(xué)院軟件306室 實(shí)驗(yàn)日期: ****年**月**日 一、實(shí)驗(yàn)室名稱: 軟件實(shí)驗(yàn)室 二、實(shí)驗(yàn)項(xiàng)目名稱:函數(shù)的應(yīng)用及預(yù)處理 三、實(shí)驗(yàn)學(xué)時(shí):2 四、實(shí)驗(yàn)原理: 使用Turbo C軟件(簡(jiǎn)稱TC),在微型計(jì)算機(jī)上,對(duì)其程序進(jìn)行編輯、編譯、連接與運(yùn)行。Turbo C是一個(gè)集成環(huán)境,它具有方便、直觀、易用的界面和豐富的庫(kù)函數(shù)。通過(guò)上機(jī)練習(xí)掌握在TC環(huán)境下編輯、編譯、連接、和運(yùn)行C程序的方法和過(guò)程。 五、實(shí)驗(yàn)?zāi)康?/p> 1. 掌握C語(yǔ)言中定義函數(shù)的方法; 2. 掌握函數(shù)傳值調(diào)用的方法; 3. 掌握函數(shù)傳址調(diào)用的方法; 4. 掌握遞歸函數(shù)的設(shè)計(jì)方法; 5. 掌握命令行參數(shù)的使用方法; 6. 掌握函數(shù)在不同文件中的編譯、鏈接方法。 六、實(shí)驗(yàn)內(nèi)容 編程實(shí)驗(yàn),完成以下上機(jī)內(nèi)容,調(diào)試運(yùn)行程序并完成報(bào)告 1)、教材第七章習(xí)題7.4; 2)、編寫(xiě)一個(gè)實(shí)現(xiàn)冒泡法排序的函數(shù),并在主函數(shù)中從鍵盤(pán)上輸入6個(gè)數(shù)后進(jìn)行排序輸出; 3)、教材第七章習(xí)題7.11; 4)、教材第七章習(xí)題7.15; 5)、教材第七章習(xí)題7.24; 6)、求解漢渃塔(tower of Hanoi)問(wèn)題。在一塊平板上立有3根立柱,從左到右分別標(biāo)記為A,B,C。最初在A柱上放有6個(gè)大小不等的圓盤(pán),并且大盤(pán)在下面,小盤(pán)在上面。要求將這些盤(pán)從A移到C(可以借助B柱)。條件是:每次只能移動(dòng)一個(gè)盤(pán),并且不允許把大盤(pán)放在小盤(pán)的上面。(提示:利用函數(shù)的遞歸調(diào)用); 七、實(shí)驗(yàn)器材(設(shè)備、元器件): pc硬件要求:CPU PII 以上,64M 內(nèi)存,1OOM 硬盤(pán)空間即可。 軟件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。 八、實(shí)驗(yàn)步驟: 實(shí)驗(yàn)編程與運(yùn)行結(jié)果 ⑴ 編寫(xiě)一個(gè)求兩個(gè)整數(shù)的最小公倍數(shù)的函數(shù),兩個(gè)整數(shù)由鍵盤(pán)輸入,用主函數(shù)調(diào)用這個(gè)函數(shù),并輸出結(jié)果。 程序文件名為7_4.c,源程序清單如下: #include 運(yùn)行結(jié)果: ⑵ 編寫(xiě)一個(gè)實(shí)現(xiàn)冒泡法排序的函數(shù),并在主函數(shù)中從鍵盤(pán)上輸入6個(gè)數(shù)后進(jìn)行排序輸出。 程序文件名為testf3.c,源程序清單如下: main(){ int i,j,a[7];int temp;clrscr();for(i=1;i<7;i++){ printf(“nInput a[%d]=”,i);scanf(“%d”,&a[i]);} for(i=1;i<6;i++)for(j=1;j<7;j++){ if(a[j] temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } for(i=1;i<7;i++){ printf(“n%5d”,a[i]);} }_ 運(yùn)行結(jié)果: ⑶ 編寫(xiě)一個(gè)通過(guò)函數(shù)調(diào)用把輸入的小寫(xiě)字符串變?yōu)榇髮?xiě)字符串的程序。 程序文件名為7_11.c,源程序清單如下: #include第二篇:C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)四(本站推薦)
第三篇:C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)安排
第四篇:《C語(yǔ)言程序設(shè)計(jì)》實(shí)驗(yàn)四