xiaozhipeng副本.docx
- 文档编号:25258623
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:22
- 大小:860KB
xiaozhipeng副本.docx
《xiaozhipeng副本.docx》由会员分享,可在线阅读,更多相关《xiaozhipeng副本.docx(22页珍藏版)》请在冰豆网上搜索。
xiaozhipeng副本
实验报告
课程名称c程序设计实验项目实验4选择结构c程序设计
姓名学号班级专业电管
同组人姓名无指导教师姓名实验日期2011年11月3日
一、实验目的
1、了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
2、学会正确使用逻辑运算符和逻辑表达式。
3、熟练掌握if语句和switch语句。
4、结合程序掌握一些简单的算法。
5、学习调试程序。
二、实验内容和步骤
本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
1、改错题。
给定程序MODI1.C的功能是:
对于如下函数:
用scanf函数输入x的值,求y值。
/*MODI1.C*/
#include
voidmain()
{
intx,y;
/***********found***********/
scanf("%d",x);
if(x<1)
y=x;
/***********found***********/
elseif(1<=x<10)
y=2*x-1;
else
y=3*x-11;
printf("y=%d\n",y);
}
程序中有两处错误,错误都在提示行:
/***********found***********/的下面一行。
请改正程序中的错误,使它能得出正确的结果。
将注意:
不要随意改动程序,不得增行或删行,也不得更改程序的结构!
修改程序后,运行程序,输入x的值(分别为x<1、1≤x<10、x≥10三种情况,如0.5、8、15),检查输出的y值是否正确。
●将修改后的两行代码写在下面:
#include
voidmain()
{
intx,y;
/***********found***********/
scanf("%d",&x);
if(x<1)
y=x;
/***********found***********/
else
{if(x<10)
y=2*x-1;
else
y=3*x-11;
}
printf("y=%d\n",y);
}
●运行结果(直接截取结果图)
2、从键盘输入某学生的考试成绩,要求输出成绩等级A、B、C、D、E。
学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。
要求在输入负数或输入数据大于100时,通知用户“输入数据错”,程序结束。
要求分别用if语句和switch语句实现。
运行程序,并检查结果是否正确。
●程序源代码(注意添加注释)(if语句实现)
#include
voidmain()
{
intx;
scanf("%d",&x);
while(x!
=1000)
{
if(x>100||x<0)
printf("输入数据错误");
else
{
if(x<=60)
printf("等级为E");
else
{
if(x<=70)
printf("等级为D");
{
if(x<=80)
printf("等级为C");
else
{
if(x<=90)
printf("等级为B");
else
{
if(x<=100)
printf("等级为A");
}
}
}
}
}//
scanf("%d",&x);
}//while
}
●运行结果(直接截取结果图)
●程序源代码(注意添加注释)(switch语句实现)
#include
intmain()
{
intx,y;
scanf("%d",&x);
y=x/10;
while(y<11)
{
switch(y)
{
case0:
case1:
case2:
case3:
case4:
case5:
printf("您的等级为E\n");break;
case6:
printf("您的等级为D\n");break;
case7:
printf("您的等级为C\n");break;
case8:
printf("您的等级为B\n");break;
case9:
printf("您的等级为A\n");break;
case10:
printf("您的等级为E\n");break;
default:
printf("输入数据错误\n");break;
}
scanf("%d",&x);
y=x/10;
}
return0;
}
●运行结果(直接截取结果图)
3、给一个不多于3位的正整数,要求:
①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如:
原数据为321,应输出123。
分别用1位正整数、2位正整数、3位正整数作为测试数据进行测试。
除此之外,程序还应当对不合法的输入作必要的处理。
例如:
当输入负数时或输入的数超过3位(如1234)数时。
●程序源代码(注意添加注释)
#include
intmain()
{
intx,a,b,c;
scanf("%d",&x);
a=x/100;
b=(x%100)/10;
c=(x%100)%10;
while(x<10000)
{if(x<0||x>999)printf("输入数据错误");
else{if(x>=100)printf("此数字是三位数\n第一位是%d\n第二位是%d\n第三位是%d\n倒序输出为%d%d%d\n",a,b,c,c,b,a);
else{if(x>=10)printf("此数字是两位数\n第一位是%d\n第二位是%d\n倒序输出是%d%d\n",b,c,c,b);
elseprintf("此数字是一位数\n第一位是%d\n倒序输出是%d\n",c,c);
}}scanf("%d",&x);
a=x/100;
b=(x%100)/10;
c=(x%100)%10;}}
●运行结果(直接截取结果图)
4、输入3个整数,要求按由小到大的顺序输出。
●程序源代码(注意添加注释)
#include
intmain()
{intx,y,z;
scanf("%d,%d,%d",&x,&y,&z);
while(x<9999999999)
{if(x>y&&y>z)printf("%d,%d,%d\n",x,y,z);
else{if(x>z&&z>y)printf("%d,%d,%d\n",x,z,y);
else{if(y>x&&x>z)printf("%d,%d,%d\n",y,x,z);
else{if(y>z&&z>x)printf("%d,%d,%d\n",y,z,x);
else{if(z>y&&y>x)printf("%d,%d,%d\n",z,y,x);
else{if(z>x&&x>y)printf("%d,%d,%d\n",z,x,y);
}}}}
scanf("%d,%d,%d",&x,&y,&z);
}}}
●运行结果(直接截取结果图)
5、根据输入的三角形的三边判断是否能组成三角形(任意两边之和大于第三边),若可以则输出它的面积和三角形的类型(等边、等腰、直角、一般三角形)。
●程序源代码(注意添加注释)
#include
#include
intmain()
{intx,y,z,a,b,c;
scanf("%d,%d,%d",&x,&y,&z);
a=x+y;b=x+z;c=y+z;
while(x>0)
{if(a>z||b>y||c>x)
{if(x==y&&y==z)printf("可以组成等边三角形\n");
else{if((pow(x,2)+pow(y,2))==pow(z,2)||(pow(x,2)+pow(z,2))==pow(y,2)||(pow(y,2)+pow(z,2))==pow(x,2))printf("可以组成直角三角形\n");
else{if(x==y||y==z||x==z)printf("可以组成等腰三角形\n");
else{if(a<=z||b<=y||c<=x)printf("不能组成三角形\n");
elseprintf("可以组成一般的三角形\n");
}
}}
}
scanf("%d,%d,%d",&x,&y,&z);
a=x+y;b=x+z;c=y+z;
}}
●运行结果(直接截取结果图)
6、输入某职工的工资,根据不同档次扣除工资所得税,然后计算实发工资。
扣税标准如下:
(1)若工资低于850元,则不扣税。
(2)若工资在850元至1500之间,则扣税比例为1%。
(3)若工资在1500元至2000之间,则扣税比例为1.5%。
(4)若工资高于2000元,则扣税比例为2%。
●程序源代码(注意添加注释)
#include
#include
intmain()
{
intx,a,b,c;
scanf("%d",&x);
a=x-x*0.02;
b=x-x*0.015;
c=x-x*0.01;
while(x>0)
{if(x>2000)printf("实发工资为%d\n",a);
else{if(x>1500)printf("实发工资为%d\n",b);
else{if(x>850)printf("实发工资为%d\n",c);
elseprintf("恭喜你,不用扣税\n");}}scanf("%d",&x);
a=x-x*0.02;
b=x-x*0.015;
c=x-x*0.01;}}
●运行结果(直接截取结果图)
7、编写一个菜单显示程序,界面如下:
---------------------------------------------------
主菜单
1.添加记录2.显示记录
3.读取记录4.保存记录
----------------------------------------------------
请选择1-4,0退出:
输入1-4可以进行相应的显示,如输入1则显示“你选择了1”,输入2则显示“你选择了2”等,当输入0-4之外的数据时,显示“选择错误!
”。
●程序源代码(注意添加注释)
#include
intmain()
{intx;
printf("------------------------\n主菜单\n1.添加记录2.显示记录\n3.读取记录4.保存记录\n--------------------\n请选择1-4,0退出\n");
scanf("%d",&x);
while(x>=0)
{switch(x)
{
case1:
printf("您选择了1\n");break;
case2:
printf("您选择了2\n");break;
case3:
printf("您选择了3\n");break;
case4:
printf("您选择了4\n");break;
default:
printf("选择错误\n");}
scanf("%d",&x);}}
●运行结果(直接截取结果图)
8、以下给定程序MODI1.C的功能是:
输入一个年份,判断该年是否为闰年。
程序中有两处错误,错误都在提示行:
/***********found***********/的下面一行。
请改正程序中的错误,使它能得出正确的结果。
注意:
程序中的其它地方不要随意改动,不得增行或删行,也不得更改程序的结构!
#include
voidmain()
{intyear,leap;
printf("Pleaseenterayear:
");
scanf("%d",&year);
/*************found**************/
if(year%4==0)leap=0;
elseif(year%100!
=0)leap=1;
elseif(year%400!
=0)leap=0;
elseleap=1;
if(leap)
/*************found**************/
printf("%disaleapyear\n",year)
else
printf("%disnotaleapyear\n",year);
}
●将修改后的两行代码写在下面:
printf("%disaleapyear\n",year);
●运行结果(直接截取结果图)
9、以下给定程序FILL1.C的功能是:
实现2个浮点数的四则运算,如输入:
4.0*5.2,则打印出:
4.0*5.2=20.8
程序有两个空
(1)、
(2)需要补充完整。
请将程序中的____
(1)____和____
(2)____删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。
注意:
不要随意改动程序,不得增行或删行,也不得更改程序的结构!
/*FILL1.C*/
#include
voidmain()
{
floatd1,d2;
charop;
printf(“输入d1opd2”);
scanf(“%f%c%f”,&d1,&op,&d2);
switch(op)
{
floattemp;
case‘+’:
/**************found************/
temp=
(1);
printf(“%f%c%f=%f”,d1,op,d2,temp);
break;
case‘-’:
temp=d1-d2;
printf(“%f%c%f=%f”,d1,op,d2,temp);
break;
case‘*’:
temp=d1*d2;
/************found************/
(2);
break;
case‘/’:
temp=d1/d2;
printf(“%f%c%f=%f”,d1,op,d2,temp);
break;
default:
printf(“错误!
\n”);
}
}
●将两个空的代码写在下面:
d1+d2;
printf(“%f%c%f=%f”,d1,op,d2,temp);
●运行结果(直接截取结果图)
v
三、实验中遇到的问题以及解决方法
无大问题,看书均能解决
四、实验结论与体会
1、结合上课内容,写出程序,并调试程序。
2、添加适当注释,注意书写的层次结构。
3、整理上机步骤,总结经验和体会。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- xiaozhipeng 副本