第一篇:C语言程序设计实验三:顺序与选择结构
C语言程序设计实验三:顺序与选择结构
1、请根据输入的x值和以下公式,计算输出分段函数y的值。
x10 y0 x10
(x0)(0x1)(x1)
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. 若还款方式采用等额本息还款法(即贷款期限内每期以相等的额度偿还贷款本息,贷款利息随本金逐期递减)。试求出每个月还款的本金、每个月的利息以及总利息分别是多少元。要求将输出结果写入到数据文件中。