安徽工程大学高级语言程序设计实验报告班级姓名同组者/ 成绩日期2019.10.10 指导教师实验名称选择结构程序设计一、实验目的1.学会正确使用关系运算符和关系表达式。
2.学会正确使用逻辑运算符、逻辑表达式以及关系表达式等。
3.熟悉掌握if语句和switch语句的用法。
4.熟悉选择结构程序中的语句执行过程,掌握选择结构程序设计的方法。
二、实验内容1.编写程序,判断从键盘上输入的一个字符类型,并按下列要求输出。
(1)若该字符是数字,输出字符串“0~9”。
(2)若该字符是大写或者小写字母,输出字符串“A~z”。
(3)若该字符是其他字母,输出“!,@,……”。
完善P56页第一个源程序,对源程序进行编译、连接并运行,完成调试报告。
2.编程并上机调试。
(1)给出一个不多于4位的正整数,求它是几位数。
(2)给出一个百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。
90分以上为'A',80~90分为'B'70~79分为'C',60~69分为'D',60分以下为'E'。
用switch语句来实现。
(3)输入4个整数,要求按从小到大的顺序输出。
(4)输入3个整数,将最大数与最小数输出。
(5)输入一个字符,如果是数字字符,把它转换成相应的数字输出;如果不是,则以十进制整数形式输出其ASCⅠⅠ码值。
*思考题3.若在实验内容1的程序第8行的语句else if (_)后多输入了一个分号,即“elseif (_);”,分析程序,写出预期结果,然后输入调试,查看运行结果与预期结果是否一致并分析原因。
4.若在实验内容1的程序第8行的语句else if(_)法人括号内输入c>='A'&&c<='z'后,判断在调试时是否能得到正确结果,并分析原因。
三、算法流程图或实验步骤(可根据需要增删、修改)1.(1)算法流程图#include<stdio.h>void main( ){char c;scanf("%c",&c);if(c>='0'&&c<='9')printf("0~9\n");else if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))printf("A~z\n");elseprintf("!,@,……\n");}(2)实验步骤Files→New→Files→C++source File→文件名:program3011.c→位置:E:\123\→确定→完善源程序→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看运行结果2.(1)算法流程图:#include<stdio.h>void main ( ){int a,b;scanf("%d",&a);b=a/10;if (b==0)printf("该数是一位数");else if (b>=1&&b<=9)printf("该数是两位数");else if (b>=10&&b<=99)printf("该数是三位数");elseprintf("该数是四位数");}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program3021.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果(2)算法流程图:#include <stdio.h>void main(){int a,b;scanf("%d",&a);b=a/10;switch(b){case(10):printf("A\n");break;case(9):printf("A\n");break;case(8):printf("B\n");break;case(7):printf("C\n");break;case(6):printf("D\n");break;default:printf("E\n");break;}}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program3022.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果(3)算法流程图:#include<stdio.h>void main ( ){int a,b,c,d,t;scanf("%d,%d,%d,%d",&a,&b,&c,&d);if (a>b){t=a;a=b;b=t;}else if (a>c){t=a;a=c;c=t;}else if (a>d){t=a;a=d;d=t;}else if (b>c){t=b;b=c;c=t;}else if (b>d){t=b;b=d;d=t;}else if (c>d){t=c;c=d;d=t;}printf("%d,%d,%d,%d",a,b,c,d);return 0;}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program3023.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果(4)算法流程图:#include<stdio.h>void main ( ){int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c);if (a>b){t=a;a=b;b=t;}else if (a>c){t=a;a=c;c=t;}else if (b>c){t=b;b=c;c=t;}printf("min is %d,max is %d",a,c);}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program3024.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果(5)算法流程图:#include<stdio.h>void main ( ){char a;scanf("%c",&a);if (a>='0'&&a<='9')printf("%c",a);elseprintf("%d",a);}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program3025.c→位置:E:\123\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果*思考题:3.算法流程图:#include<stdio.h>void main( ){char c;scanf("%c",&c);if(c>='0'&&c<='9')printf("0~9\n");else if((c>='a'&&c<='z')||(c>='A'&&c<='Z'));printf("A~z\n");elseprintf("!,@,……\n");}实验步骤:Files→Close Workspace→Files→New→Files→C++source File→文件名:program3031.c→位置:E:\123\→确定→修改代码→Buid→是4.算法流程图:#include<stdio.h>void main( ){char c;scanf("%c",&c);if(c>='0'&&c<='9')printf("0~9\n");else if(c>='A'&&c<='z')printf("A~z\n");elseprintf("!,@,……\n");}实验流程:Files→Close Workspace→Files→New→Files→C++source File→文件名:program3041.c→位置:E:\123\→确定→修改代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看并验证运行结果四、实验结果及分析1.2.程序见第三项算法流程图。
*思考题3.编译时产生错误(illegal else without matching),与预期结果一致4.A至z间的ASCⅠⅠ码值不连续(一些特殊符号的ASCⅠⅠ码值存在于A~z的范围内)五、实验体会、问题讨论1.if ()后不加;2.在排列一组数的大小时,可以引入新的变量充当变换“容器”;3.A~z间的ASCⅠⅠ码值不连续教师签字:批改日期:说明:1、对于每一个实验项目,实验报告(含预习)一般应包含以下内容:第一部分——预习后的书面汇报。