- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验报告 实验4 选择结构程序设计实验报告
实验4 选择结构程序设计
一、实验目的
1.了解C语言表示逻辑值的方法。
2.学会正确使用逻辑运算符和逻辑表达式的方法。
3.熟悉if语句和switch语句。
4.结合程序掌握一些简单的算法。
5.学习调试程序的方法。
二、实验内容
本实验要求编程解决以下问题,然后上机调试运行程序。
x?1?x?1?x?101.y??2x?1
?3x?11x?10?
用scanf函数输入x的值,求y的值。
其程序为:
#includelt;stdio.hgt;
void main()
{
int x,y;
printf(请输入x:\n);
scanf(%d,x);
if(xlt;1)
y=x;
else
if(xlt;10)
y=2*x-1;
else
y=3*x-11;
printf(x=%d,y=%d\n,x,y);
}
运行结果为:
2.给出一个百分制的成绩,要求输出成绩等级A,B,C,D,E,90分及以上为A,80-89为B,70-79为C,60-69为D,60分以下为E。要求从键盘输入成绩,然后输出相应等级,分别用if语句和switch语句实现。
(1)使用if语句的程序如下:
#includelt;stdio.hgt;
void main()
{
float score;
char grade;
printf(请输入学生成绩:\n);
scanf(%f,score);
if(scoregt;=90)
grade=A;
else if (scoregt;=80)
grade=B;
else if (scoregt;=70)
grade=C;
else if (scoregt;=60)
grade=D;
else
grade=E;
printf(成绩是%-5.1f,相应的等级是%c\n,score,grade);
}
运行结果为:
(2)使用switch语句程序如下:
#includelt;stdio.hgt;
void main()
{
float score;
char grade;
printf(请输入学生成绩:\n);
scanf(%f,score);
switch(int(score/10))
{
case 10:
case 9: grade=A;break;
case 8: grade=B;break;
case 7: grade=C;break;
case 6: grade=D;break;
default: grade=E;break;
}
printf(成绩是%-5.1f,相应的等级是%c\n,score,grade);
}
其运行结果与使用if语句运行结果一样。
3.编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)分别输出每一位数字,(3)按逆序输出各位数字,如原数为321,则应输出123。
应准备以下测试数据
要处理的数为1位正整数;
要处理的数为2位正整数;
要处理的数为3位正整数;
要处理的数为4位正整数;
要处理的数为5位正整数;
除此之外,程序还应当对不合法的输出作必要的处理。例如:
输入负数;
输入的数超过5位;
其程序为:
#includelt;stdio.hgt;
#includelt;math.hgt;
int main()
{
int num,indiv,ten,hundred,thousand,ten_thousand,place;
printf(请输入一个整数(0-99999):\n);
scanf(%d,num);
if(numgt;99999)
printf(输入的数超过5位!\n);
else if(numlt;0)
printf(输入的数是一个负数!\n);
else
{
if(numgt;9999)
place=5;
else if(numgt;999)
place=4;
else if(numgt;99)
place=3;
else if(numgt;9)
place=2;
else
place=1;
if(numgt;99999||numlt;0)
printf(enter num is error!\n);
printf(位数:%d\n,place);
printf(每位数字为:);
ten_thousand=num/10000;
thousand=(int)(num-ten_thousand*10000)/1000;
hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;
ten=(int)(num-ten_thousand*10000-thousand*1000-
您可能关注的文档
最近下载
- 跨越架搭设施工合同.docx
- 2023年二季度医疗质量管理委员会会议记录.docx VIP
- 北师大版(2019)必修第一册 Sports and Fitness Writing Workshop A True Story 课件(共23张PPT)).pptx VIP
- 6MW屋顶分布式光伏电站项目可研报告.docx
- 2024年学校食堂食品安全风险隐患排查整治记录表.docx
- 叶是光合作用的主要器官.ppt
- 活动一 影子变变变(课件)蒙沪版二年级上册综合实践活动.pptx
- 2024-2025学年初中综合实践活动九年级第二学期沪科版(贵州专用)教学设计合集.docx
- 统编版小学语文六年级上册质量检测卷.pdf
- 人民医院高额病例异常住院费用病例核查方案.docx
文档评论(0)