第一篇:C語言程序設計實驗三:順序與選擇結構
C語言程序設計實驗三:順序與選擇結構
1、請根據輸入的x值和以下公式,計算輸出分段函數y的值。
?x?10 ?y?0 ?? ?x?10
(x?0)(0?x?1)(x?1)
2、編寫一個C程序,把整數0,1,..6依次轉換成Sunday,Monday,?Saturday并輸出,整數0,?,6由鍵盤輸入。如果輸入錯誤,輸出“error”。
(提示:此題可以用if語句實現,不需要用循環。)
說明:
(1)請大家按學號來坐,便于考勤和管理。
(2)請珍惜寶貴的實驗時間!不要做與實驗無關的事情,比如聊QQ、上網或打游戲。
(3)直接把C語言代碼粘貼到相應的實驗題目下方,上交實驗報告時只交word文檔。
(4)文檔名稱:班級+學號后2位+姓名+實驗編號,例如12通1班12張山實驗二.doc。
第二篇:大連東軟信息學院C語言實驗三順序及分支結構程序設計
實驗三 順序及分支結構程序設計
一、實驗目的
1.熟悉運算符、表達式,掌握標準輸入輸出函數的適用方法和順序結構程序設計的一般方法
2.掌握if語句的格式與應用,if語句的嵌套格式與應用,條件運算符的作用,Switch語句的格式與應用,Break、continue語句的格式與應用。
二、預習內容
1.C語言的常用的運算符及其使用特點。
2.算術運算符中++,――運算符的應用特點。3.常用的關系運算符及應用特點。4.邏輯運算符的概念及應用特點 5.條件運算符的作用及應用特點。
6.各種運算符的混合運算及不同運算符的優先級別。7.條件分支語句的格式及應用。
8.Switch多分支選擇語句的格式及應用。
三、實驗內容
(一)閱讀調試下列程序,并寫出程序結果。1.#include
void main()
{
char ch=0x31;
printf(“%dn”,ch);/*屏幕顯示___________*/
printf(“%on”,ch);/*屏幕顯示____________*/
printf(“%xn”,ch);/*屏幕顯示____________*/
printf(“%cn”,ch);/*屏幕顯示____________*/
} 運行結果:49 61 31 1 2.#include
void main(){ int a=5,b=5;printf(“value a=%dn”,a++);/*屏幕顯示___________*/ printf(“value b=%dn”,++b);/*屏幕顯示___________*/ printf(“value a=%dn”,--a);/*屏幕顯示___________*/ printf(“value b=%dn”,b--);/*屏幕顯示___________*/ } 運行結果:value a=5 value b=6 value a=5 value b=6 3.輸入兩個實數a,b,然后交換它們的值,最后輸出 #include
{
float a,b,temp;
printf(“請輸入a和b的值:”);
scanf(“%f,%f”,&a,&b);
temp = a;
a=b;
b=temp;
printf(“交換后, a=%f, b=%fn”,a,b);
} 運行結果:Please input a and b’s value:1.0,2.0 When finishing,a=2.000000,b=1.000000
4.完成下面的程序,在空白處填入a,b,c,取a,b,c中最大者賦給max。
A.if(a>b && a>c)
B.if(a>b)
max=________
if(a>c)
else
max=______ if(b>c)
else
max=________
max=______ else
else
max=________
if(b>c)
max=________
else
max=_________ 5.若整數x分別等于95、87、100、43、66、79,則以下程序段運行后屏幕顯示是什么?
#include
int x;
printf(“please input the x value:”);
scanf(“%d”,&x);
switch(x/10)
{
case 6:
case 7:
printf(“Passn”);
break;
case 8:
printf(“Goodn”);
break;
case 9:
case 10:
printf(“VeryGoodn”);
break;
default:
printf(“Failn”);
} }
x等于 95時,程序段運行后屏幕上顯示_VeryGood__
x等于 87時,程序段運行后屏幕上顯示_Good_
x等于100時,程序段運行后屏幕上顯示_Verygood__
x等于 43時,程序段運行后屏幕上顯示__Fail_
x等于 66時,程序段運行后屏幕上顯示__Pass_
x等于 79時,程序段運行后屏幕上顯示__Pass_
(二)編制下列程序
1.以下程序輸入三個整數值給a,b,c,程序把b中的值給a,把c中的值給b,把a中的值給c,然后輸出a,b,c的值
解答:
#include
void main(){ int a,b,c,temp;printf(“Please input a b and c's value:”);scanf(“%i,%i,%i”,&a,&b,&c);temp=a;a=b;b=c;c=temp;printf(“When finishing,a=%i,b=%i,c=%in”,a,b,c);getch();} 2.輸入一個整數,判斷該數的奇偶性。自已寫出程序代碼。(輸出相應的標志even-偶數 odd-奇數,請記住這兩個單詞)
【分析提示】
一個數除2若余數為0,則這個數一定是偶數,否則是奇數。C語言中的求余運算符為“%”,若輸入的數為偶數則輸出“even”,若輸入的數為奇數則輸出“odd”。
解答:
#include
main(){ int number,residue;printf(“Please input your number:n”);scanf(“%d”,&number);residue=number%2;if(residue==0)printf(“It's even.n”);else printf(“It's odd.n”);getch();} 3.給出一個百分制成績,要求輸出成績等級A、B、C、D、E。90分以上為A,81-89分為B,70-79分為C,60-69分為D,60分以下為E。
① 事先編好程序,要求分別用if語句和switch語句實現。運行程序,并檢查結果是否正確。
解答:<1> if形式: #include
main(){ int result;printf(“Please input one result:n”);scanf(“%d”,&result);if(result>=90)printf(“Your result is A.n”);else if((result>=80)&&(result<=89))printf(“Your result is B.n”);else if((result>=70)&&(result<=79))printf(“Your result is C.n”);else if((result>=60)&&(result<=69))printf(“Your result is D.n”);else if(result<=59)printf(“Your result is E.n”);getch();} 經過測試,此程序可按預想正確運行(O(∩_∩)O~)<2> switch 形式: #include
main(){ int result,grade;printf(“Please input one result:n”);scanf(“%d”,&result);grade=result/10;switch(grade){ case 10: case 9: printf(“Your result is A.n”);break;case 8: printf(“Your result is B.n”);break;case 7: printf(“Your result is C.n”);break;case 6: printf(“Your result is D.n”);break;case 5: case 4: case 3: case 2: case 1: case 0: printf(“Your result is E.n”);break;default:printf(“ERRORn”);} getch();} 經過測試,此程序可按預想正確運行(O(∩_∩)O~)
② 再運行一次程序,輸入分數為負值(如-70),這顯然是輸入時出錯,不應給出等級。修改程序,使之能正確處理任何數據。當輸入數據大于100或小于0時,通知用戶“輸入數據錯”,程序結束。
解答:只需將default 后的 打印語句改為(“Your input is error.n”)即可
四、思考題
1.試舉例說明++i與i++應用的區別。答:前者是 先給i加1,然后再取i的值,后者是 先取i的值,然后再給i加1.2.寫出C語言中所有運算符混合運算的優先級別。
答:優先級從上往下依次是:
()[ ]->.!~ ++--+<< >> < <= > >= ==!=
& ^ | && || ? : = +=-= *= /= %= &= ^= |= <<= >>= , 3.試分析比較條件表達式與if語句的使用特點。
答:條件表達式:
1、多路選擇
2、switch語句是多分支選擇語句,可用嵌套的if語句處理,但降低了可讀性。
3、當分支數大于三種時,常采用開關語句簡化程序設計 If:
4.Switch語句結構中加不加break有何區別?在什么情況下可以不加break語句?
答:不加break 會直接執行,直到遇見 break 或 花括號為止。想要執行所有的case 語句 時可以不加 break!
第三篇:C語言程序設計教案 第五章 選擇結構程序設計
第五章 選擇結構程序設計
課題:
教學目的: 教學重點: 教學難點: 第五章 選擇結構程序設計
1、掌握實現選擇結構的兩種語句、一個運算符
2、學會編寫選擇結構的程序
if-else語句、switch語句、條件運算符
嵌套if-else語句中的if與else匹配問題
步驟一 復習引導
上一次課已經介紹了程序基本結構之一,但在大多數情況下都要用到選擇結構。
步驟二 講授新課
? 在C語言中實現選擇結構的控制語句主要有if語句、switch語句
一、條件語句
1、if語句的三種形式
語法1:if(表達式)語句;如:#include
if(ch>?a?&&ch<=?z?)ch+=?A?-?a?;
putchar(ch);}
語法2:if(表達式)語句1;
else
語句2; 如:#include
main()
{ int a,b;
scanf(“%d%d”,&a,&b);
if(a>b)printf(“max=%dn”,a);
else printf(“max=%dn”,b);
}
語法3:if(表達式1)語句1;
else if(表達式2)語句2;
else
if(表達式3)語句3;
??
else 語句n+1;
例如:從鍵盤上輸入字符,判別其分類:控制符、數字、大寫字母、小寫字母、其他字符。#include “stdio.h” main(){ char c;c=getchar();if(c< 32)printf(“This is a control character.n”);
else if(c>=?0?&&c<=?9?)printf(“This if a digit.n”);
else if(c>=?A?&&c<=?Z?)printf(“This is a capital letter.n”);
else if(c>=?a?&&c<=?z?)printf(“This is a small letter.n”);
else
printf(“This is an other charater.n”);說明:
1、三種形式的 if 語句中,if 關鍵字后均為表達式(邏輯表達式、關系表達式、賦值表達式、變量等);
如:if(a=5)語句;
if(b)語句;
2、if 語句中,條件表達式必須用括號括起來,在語句后必須加分號;
滿足條件需執行一組語句時,該組語句必須用{ }括起來; 如:if(a+b>c&&b+c>a&&a+c>b)
{ s=0.5*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“area=%6.2fn”,area);
}
else
printf(“It is not a trilateral.”);
3、if 語句嵌套時,else 總是與它最靠近的if 匹配;
如:有一數學函數:x<0時,y=-1;x=0時,y=0;x>0時,y=1 編寫程序,輸入x的值,輸出相應y的值 main(){ int x,y;
scanf(“%d”,&x);
if(x<0)y=-1;
else if(x= =0)y=0;
else y=1;
printf(“x=%d,y=%dn”,x,y);}
說明:因為if 語句執行時總是簡單地測試其中作為條件的“表達式”的值是0還是非0,便可利用這種特性來簡化程序設計。如對于:
if(expression!=0)
完全可用
if(expression)來代替;
同理:
if(!exp)語句;等價于:if(exp= =0)語句; 二、三目條件運算符及其表達式
1、條件運算符:?:
2、格式:e1?e2:e3
3、語義:判e1的值,為1時計算e2,否則計算e3;
如:max=(a>b)?a:b 等價于 if(a>b)max=a;
else max=b;
4、說明:
1)條件運算符的結合方向自右至左
如:a>b?a:c>d?c:d 等價于 a>b?a:(c>d?c:d)若int a=1,b=2,c=3,d=4;則表達式的值為________ 例:輸入一個正整數i,輸出第i個英文字母,若i大于26則輸出一個?*?。#include
scanf(“%d”,&i);
i=(i<=26)?(i-1+?a?):?*?;
putchar(i);} 2)條件運算符的優先級僅高于逗號運算符與賦值運算符;
3)只有當if語句的真假均只執行一個賦值語句且給同一變量賦值時,才能用條件表達式取代;
如:if(a>b)max=a;
else max=b;思考:int x=1,y=0;x-->(y+x)?5:25>y++??1?:?2?的值是______
三、switch 語句
語法1:switch(表達式)
{ case C1:語句序列1;
case C2:語句序列2;
……
case Cn:語句序列n;
default:語句序列n+1;
} 語法2:switch(表達式)
{ case C1:語句序列1;break;
case C2:語句序列2;break;
……
case Cn:語句序列n;break;
default: 語句序列n+1;break;
} 其中:
? switch后括號中的表達式可以為任何類型;
? C1至Cn 是常量表達式,一般是整數或字符,與switch中表達式的取值對應; ? default可缺省,當表達式e的值不是C1到Cn的情況。
注意兩種語法的執行順序!
例:switch(grade)
{ case ?A?: printf(“85~100n”);break;
case ?B?: printf(“70~84n”);break;
case ?C?: printf(“60~69n”);break;
case ?D?: printf(“<60n”);break;
default: printf(“errorn”);break;
}
? 允許多個case共用一個執行語句 例:switch(ch){ case ?0?: case ?1?: case ?2?: case ?3?: case ?4?: case ?5?: case ?6?: case ?7?: case ?8?:
case ?9?:digit++;break;
case ? ?: case ?t?: case ?n?: white++;break;
default: character++;}
? break語句只能跳出一層,內外層情況常可相同; 如:
int x=1, y=0;switch(x){ case 1: switch(y)
{case 0: printf(“**1**n”);break;
case 1: printf(“**2**n”);break;
}
case 2: printf(“**3**n”);} 運行結果為:**1**
**3**
五、程序舉例
例:求ax2+bx+c=0方程的根。分析:
(1)a=0,不是二次方程。
(2)b2-4ac=0,有兩個相等的實根。(3)b2-4ac>0,有兩個不等的實根。(4)b2-4ac<0,有兩個共軛的復根。N-S圖:P102
步驟三 課堂小結
1、兩種選擇語句:if-else、switch語句,注意選擇條件的描述;
2、在編寫程序過程中,注意分支的作用范圍,及復合語句的運用。
步驟四 布置作業
1、上機作業(第五章課后練習):5.5、5.6
2、書面作業(第五章課后練習)5.3、5.9
第四篇:C語言程序設計實驗四(本站推薦)
C語言程序設計實驗
(四)[實驗1] scanf()、printf()函數的使用。
1.實驗題目
輸入1個學生學號和4門課程成績,輸出這個學生的學號、4門課程成績和平均成績。
2.實驗要求
(1)按表格的形式輸出,以行內輸出一個學生的信息。
(2)學號用長整型,各科成績用單精度型。
3.實驗目標
(1)掌握實現人機對話形式的方法,scanf()輸入。
(2)體會根據需要控制輸出格式的方法,printf()輸出。
4.實驗指導
利用格式的數據寬度控制數據的對位輸出。輸出如下格式:
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 |
|---|
[實驗2] getchar()、putchar()函數的使用
1.實驗題目
用getchar()函數讀入a~v之間的一個字母,用putchar()函數輸出一個5行5列的矩陣,該矩陣第一行為讀入的字母,下一行為緊跟該字母后的字母,依此類推。如輸入a,則輸出的矩陣為:
aaaaa
bbbbb
ccccc
ddddd
eeeee
2.實驗要求
(1)運用getchar()進行字符輸入。
(2)運用putchar()進行字符輸出。
3.實驗目標
(1)體會根據需要控制輸出格式的方法。
[實驗3] 3.6 下面程序運行時在鍵盤上如何輸入?如果a=3,b=4,x=8.5,y=71.82,c1=’A’,c2=’a’,請寫出對應每個scanf函數的輸入情況。
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編一程序,從鍵盤輸入一個圓半徑值,求圓周長、圓面積、圓球表面積、圓球體積。輸出結果時,要求有文字說明,保留2位小數。
提示:設圓半徑為r,則圓周長=2πr,圓面積=πr2,圓球表面積=4πr2,圓球體積= 4πr3/3。
第五篇:C語言程序設計實驗安排
C語言實驗指導
實驗一 順序結構程序設計(2學時)
一、實驗目的熟悉在VC運行環境下,編輯調試C語言程序的一般步驟。掌握順序結構程序設計的基本思想和基本方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴ 程序功能描述。
⑵ 程序版本號、創作日期。
⑶ 作者信息描述:班級、學號、姓名。
⑷ 問題分析描述。
⑸ 算法設計描述。
⑹ 關鍵語句注釋說明。
⑺ 調試運行過程中出現的錯誤及改正方法。
⑻ 輸入數據樣例。
⑼ 輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
你知道淄博到北京的地面距離是多少千米嗎,淄博到紐約的地面距離又是多少千米呢?說不上來了吧。還是讓我們編一個程序來計算一下吧。
1.已知地球的平均半徑為6371千米,假設在地球的同一緯度上,有兩個處于不同經度的城市A、B,編程序求出這兩個城市之間的地面距離。
輸入數據樣例:例如,欲求北緯30度上東經10度到東經50度的距離,輸入格式應為:30 10 50
參考測試數據:
輸入:0 0 180 輸出:20015.08
輸入:30 0 90 輸出:8397.7
2輸入:60 0 45 輸出:2453.20
2.地球的平均半徑為6371千米,已知地球上兩個城市A、B的經度和緯度,編程序求出這兩個城市之間的地面距離。
提示:球面上兩點之間的最短距離,等于過這兩點以球心為圓心的圓上,這兩點之間劣弧的長度。(即這兩點與球心之間的連線構成的夾角所對球面劣弧的長度)。
建議你自己一步步推導出公式,而不要照搬網上的現成公式。
四、常見問題
疑問1:這分明是兩道數學題啊,能否將數學公式提供給我們呢,我們的主要任務不是編寫程序嗎?
答:建立數學模型也是編程序的一部分。學會分析解決現實中遇到的問題,是我們學習的重要目標。
疑問2:這個問題好像屬于球面幾何的范疇,用平面幾何可以求解嗎?
答:這個問題的確涉及到球面幾何,但是也的確可以利用投影以及平面幾何方法來求解。
實驗二 選擇結構程序設計(2學時)
一、實驗目的
掌握選擇結構程序設計的一般方法及選擇結構程序的調試方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
你知道你生日那天是星期幾嗎,還有你知道你爸爸生日那天是星期幾嗎?你可能會說:可以查萬年歷啊。那么,不查萬年歷你能計算出來嗎?
以下兩題,任選其一解答。
1.編程序實現:輸入一個年份y,求出從公元1年1月1日到y年1月1日,總共有多少天,并求出y年的1月1日是星期幾。
2.編程序實現:輸入任意一個日期的年、月、日的值,求出從公元1年1月1日到這一天總共有多少天,并求出這一天是星期幾。
四、常見問題
疑問1:閏年的規律是不是四年一閏?
答:四年一閏是儒略歷(儒略也就是凱撒大帝)的置閏規則。我們現在使用的是格里高利歷,置閏規則是每400年97閏。
疑問2:公元1年1月1日是星期幾呢?
答:星期一。
疑問3:據說從儒略歷改為格里高利歷時,將1582年10月4日的下一天定為格里高利歷的10月15日,中間銷去了10天,這會不會影響星期幾的計算?
答:這個調整是對儒略歷誤差的糾正,并不會影響總天數和星期幾的計算。
疑問4:這里計算總天數,好像要用到循環程序吧?
答:其實根據閏年的置閏規則,不使用循環也可以計算出來總天數。當然,你想使用循環編寫該程序也是可以的。
實驗三 循環結構程序設計(2學時)
一、實驗目的掌握循環結構程序設計的一般方法及循環結構程序的調試方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
1. 海萍夫婦為了徹底告別“蝸居”生活,痛下決心貸款60萬元購買了一套三居室。若貸款月利率為0.5%,還款期限為120個月,還款方式為等額本金還款法(即貸款期限內每期以相等的額度償還貸款本金,貸款利息隨本金逐期遞減)。試求出每個月還款的本金、每個月的利息以及總利息分別是多少元。
2. 若還款方式采用等額本息還款法(即貸款期限內每期以相等的額度償還貸款本息,貸款利息隨本金逐期遞減)。試求出每個月還款的本金、每個月的利息以及總利息分別是多少元。
四、常見問題
疑問1:等額本息還款法每個月的還款額怎么計算,應該有個公式吧,要不然怎么計算出來每個月應還的利息與本金?
答:的確有一個計算公式。當然你可以自己推導出來(這樣你會很有成就感!),要不然就從網上搜索出來。
實驗四 循環程序綜合應用(4學時)
一、實驗目的:
掌握循環結構程序設計的一般方法及循環結構程序的調試方法,能夠綜合運用順序、選擇和循環結構解決一般難度的實際應用問題。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
1.編程序實現如下功能:輸入任意一個年份和月份,按以下格式輸出該月份的公歷日歷。
要求由程序計算出來該月份的1日是星期幾,并用循環控制打印。打印樣例如下:
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.編程序實現如下功能:輸入任意一個年份,按以下格式輸出該年份全年的公歷日歷。要求由程序計算出來每個月份的1日是星期幾,并用循環控制打印。
四、常見問題
疑問1:如何控制某個月1日的打印位置?
答:先由程序計算出來該月份的1日是星期幾,然后控制在打印“1”之前打印相應個數的空格。
疑問2:如何控制每周和每月的打印換行?
答:可以根據當前這一天的打印位置控制每周的打印換行,并根據該月份的天數控制每月的打印換行。
實驗五 字符串處理綜合應用(4學時)
一、實驗目的
掌握字符串處理的一般方法及字符串處理應用程序的調試方法,能夠綜合運用選擇、循環結構和數組、指針解決一般難度的實際應用問題。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容: ⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
1.編程實現,輸入一個整數的小寫金額值(即不考慮角和分),轉化為大寫金額值并輸出。先實現基本功能,如輸入1002300,可以輸出“壹佰零拾零萬貳仟叁佰零拾零元整”。
2.編程實現,輸入一個小寫金額值,轉化為大寫金額值輸出。要求實現相對完善的功能,如輸入1002300.90,應該輸出“壹佰萬貳仟叁佰元零玖角整”。
四、常見問題
疑問1:如何才能分離出整數中的每一位數字?
答:可以利用整數的求余數和除法運算實現數字的分離,同時將分離出的數字存入到一個事先定義好的數組中,每個數組元素只存儲一位數字。
疑問2:若不能確定整數的實際位數,如何控制分離過程?
答:可以通過循環控制數字的分離過程,每循環一次分離出來當前的最末一位,然后去掉最末一位,直至分離出所有的位。
疑問3:如何控制給某位數字添加合適的數量單位,如萬、仟、佰、拾、元?
答:可以根據該數字在原小寫數值中的位置進行控制,如第0位單位為“元”,第1位單位為“拾”,依此類推。
實驗六 文件應用程序設計(2學時)
一、實驗目的掌握文件應用程序設計的一般方法及其調試方法。
二、實驗要求
1. 仔細閱讀下列實驗內容,并編寫出相應的C語言源程序。2. 在VC運行環境下,編輯錄入源程序。
3. 調試運行源程序,注意觀察調試運行過程中發現的錯誤及改正方法。4. 掌握如何根據出錯信息查找語法錯誤。
5.最后提交帶有充分注釋的源程序文件(擴展名為.c)。要求該文件必須能夠正確地編譯及運行,并不得與他人作品雷同。
6.源程序注釋信息可以包括以下幾方面內容:
⑴程序功能描述。
⑵程序版本號、創作日期。
⑶作者信息描述:班級、學號、姓名。
⑷問題分析描述。
⑸算法設計描述。
⑹關鍵語句注釋說明。
⑺調試運行過程中出現的錯誤及改正方法。
⑻輸入數據樣例。
⑼輸出數據樣例。
三、實驗內容
以下兩題,任選其一解答。
1. 海萍夫婦為了徹底告別“蝸居”生活,痛下決心貸款60萬元購買了一套三居室。若貸款月利率為0.5%,還款期限為120個月,還款方式為等額本金還款法(即貸款期限內每期以相等的額度償還貸款本金,貸款利息隨本金逐期遞減)。試求出每個月還款的本金、每個月的利息以及總利息分別是多少元。要求將輸出結果寫入到數據文件中。
2. 若還款方式采用等額本息還款法(即貸款期限內每期以相等的額度償還貸款本息,貸款利息隨本金逐期遞減)。試求出每個月還款的本金、每個月的利息以及總利息分別是多少元。要求將輸出結果寫入到數據文件中。