《实验4 选择结构程序设计实验报告.doc》由会员分享,可在线阅读,更多相关《实验4 选择结构程序设计实验报告.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验4选择结构程序设计一、实验目的1了解语言表示逻辑值的方法。2学会正确使用逻辑运算符和逻辑表达式的方法。3熟悉if语句和switch语句。4结合程序掌握一些简单的算法。5学习调试程序的方法。二、实验内容本实验要求编程解决以下问题,然后上机调试运行程序。1用scanf函数输入x的值,求y的值。其程序为:#includevoid main()int x,y;printf(请输入x:n);scanf(%d,&x);if(x1)y=x;elseif(x10)y=2*x-1;elsey=3*x-11;printf(x=%d,y=%dn,x,y);运行结果为:2给出一个百分制的成绩,要求输出成绩等级A,
2、B,C,D,E,90分及以上为A,80-89为B,70-79为C,60-69为D,60分以下为。要求从键盘输入成绩,然后输出相应等级,分别用if语句和switch语句实现。(1)使用if语句的程序如下:#includevoid main()float score;char grade;printf(请输入学生成绩:n);scanf(%f,&score);if(score=90)grade=A;else if (score=80)grade=B;else if (score=70)grade=C;else if (score=60)grade=D;else grade=E;printf(成绩是%
3、-5.1f,相应的等级是%cn,score,grade);运行结果为: (2)使用switch语句程序如下:#includevoid 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,相应的等级是%cn,sco
4、re,grade);其运行结果与使用if语句运行结果一样。3编程实现:输入一个不多于位的正整数,要求:()输出它是几位数,()分别输出每一位数字,()按逆序输出各位数字,如原数为321,则应输出123。应准备以下测试数据要处理的数为位正整数;要处理的数为位正整数;要处理的数为位正整数;要处理的数为位正整数;要处理的数为位正整数;除此之外,程序还应当对不合法的输出作必要的处理。例如:输入负数;输入的数超过位;其程序为:#include#includeint main()int num,indiv,ten,hundred,thousand,ten_thousand,place;printf(请输入
5、一个整数(0-99999):n);scanf(%d,&num);if(num99999)printf(输入的数超过5位!n);else if(num9999)place=5;else if(num999)place=4;else if(num99)place=3;else if(num9)place=2;elseplace=1;if(num99999|num0)printf(enter num is error!n);printf(位数:%dn,place);printf(每位数字为:);ten_thousand=num/10000;thousand=(int)(num-ten_thousan
6、d*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);switch(place)case 5:printf(%d,%d,%d,%d,%d,ten_thousand,thousand,hundred,ten,indiv); printf(n反序数字为:
7、); printf(%d%d%d%d%d,indiv,ten,hundred,thousand,ten_thousand); break;case 4:printf(%d,%d,%d,%d,thousand,hundred,ten,indiv); printf(n反序数字为:); printf(%d%d%d%d,indiv,ten,hundred,thousand); break;case 3:printf(%d,%d,%d,hundred,ten,indiv); printf(n反序数字为:); printf(%d%d%d,indiv,ten,hundred); break;case 2:p
8、rintf(%d,%d,ten,indiv); printf(n反序数字为:); printf(%d%d,indiv,ten); break;case 1:printf(%d,indiv); printf(n反序数字为:); printf(%d,indiv); break; printf(n);return 0; 4编程实现:输入个整数,要求按由小到大的顺序输出。得到正确结果后,修改程序使之按由大到小的顺序输出。由小到大顺序输出其程序为:#includevoid main()int t,a,b,c,d;printf(请输入四个数:);scanf(%d,%d,%d,%d,%d,&a,&b,&c,
9、&d);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(ad)t=a;a=d;d=t;if(bc)t=b;b=c;c=t;if(bd)t=b;b=d;d=t;if(cd)t=c;c=d;d=t;printf(排序结果为:n);printf(%d %d %d %dn,a,b,c,d);其运行结果为:由大到小顺序输出其程序为:将上面程序第十九行改为:printf(%d %d %d %dn,d,c,b,a);其运行结果为:5已知a=12,b=6,要求输入一个算术运算符(+、-、*、/),对a,b进行算术运算,并输出结果。其程序为:#includeint main()int a=12,b=6,c;char ch;printf(请输入一个四则运算的符号:n);scanf(%c,&ch);printf(The result is:);switch(ch)case+:printf(a+b=%dn,a+b);break;case-:printf(a-b=%dn,a-b);break;case*:printf(a*b=%dn,a*b);break;case/:printf(a/b=%dn,a/b);break;return 0;其运行结果为: