安 徽 工 程 大 学
高级语言程序设计 实 验 报 告
班级 姓名 同组者 / 成绩 日期 2024.09.30 指导教师
实验名称 顺序结构程序设计 一、 实验目的
1. 掌握数据的输入/输出方法,能正确使用有关格式转换符。 2. 掌握顺序结构程序中语句的执行过程。 3. 掌握顺序结构程序的设计方法。
二、 实验内容
1. P47页第一个程序的作用是依次输入2个整数,计算并输出这2个整数之差。 (1)分析程序,若运行时输出:200,160<回车>,预期结果是多少?
(2)上机运行该程序,查看程序运行结果是否符合题目要求。如果不符合,请
分析原因并修改程序,直至符合要求为止。
2. P47页第二个程序用于实现按下列公式计算并输出s1和s2的值:
s1=3/(a+b)2,s2=ab/(a+b)3,其中a,b为整型数据。
(1)根据题意修改上述程序,并进行调试,直到正确为止。
(2)在(1)的基础上,将“scanf(\”改为“scanf(\”后再编译、连接、运行。
3. 分析P47页第三个程序,写出预期结果,然后输入调试,查看运行结果与预
期结果是否一致,并分析其原因。
4. 编程实现下列功能并上机调试运行。
(1)设圆半径为r,求圆周长和面积。要求用scanf函数输入数据,输出时取小数点后两位。
(2)输入一个3位十进制整数,分别输出百位、十位以及个位上的数。 (3)从键盘输入一个带两位小数的实数,将其整数部分和小数部分分离后输出。
第 1 页
(4)用getchar函数读入两个字符,然后分别用putchar和printf函数输出这两个字符。 *思考题:
5. 若实验内容1的程序改为P48页第一个程序段,运行该程序,输入5,3,查看程序运行结果是否与自己预测的结果一致,并分析原因。
6.若实验内容1的程序改为P48页第二个程序段,运行该程序,输入5,3,查看程序运行结果是否与自己预测的结果一致,并分析原因。
7.在实验内容2的基础上若把程序第7行语句“s=3/(a+b)*(a+b)”改为“s=3.0/[(a+b)*(a+b)],”然后编译、连接和运行。查看会出现什么结果,并分析原因。
三、 算法流程图或实验步骤(可根据需要增删、修改)
1.(1)算法流程图: 原程序:
#include
#include
float a, b, c; printf(\scanf(\c=a-b;
第 2 页
float a, b, c; printf(\scanf(\c=a-b;
printf(\
}
printf(\
或者
#include
(2)实验步骤:
Files→New→Files→C++source File→文件名:program2011.c→位置:E:\\123\\→确定→输入代码→Buid→是→有错误→将float更换成int或者将所有的%d都更换成%f→确认0error(s) 0warning(s)后→BuidExecute→查看运行结果
2.(1)算法流程图: 修改后:
#include
第 3 页
int a, b, c;
printf(\scanf(\c=a-b;
printf(\
int a, b; float s1,s2;
scanf(\s1=3/((a+b)*(a+b)); s2=a*b/pow((a+b),3);
printf(\
替换后:
#include
(2)实验步骤:
Files→Close Workspace→Files→New→Files→C++source File→文件名:program2024.c→位置:E:\\123\\→确定→输入代码→Buid→是→有错误→添加#include
3.(1)算法流程图: #include \void main ( ) { }
(2)实验步骤:
Files→Close Workspace→Files→New→Files→C++source File→文件名:program2031.c→位置:E:\\123\\→确定→输入代码→Buid→是→确认0error(s)
第 4 页
int a, b; float s1,s2;
scanf(\s1=3/((a+b)*(a+b)); s2=a*b/pow((a+b),3);
printf(\
short a=-1;
unsigned short b=65534;
printf(\printf(\
0warning(s)后→BuidExecute→查看运行结果
4.(1.1)算法流程图: #include
(1.2)实验步骤:
Files→Close Workspace→Files→New→Files→C++source File→文件名:program2041.c→位置:E:\\123\\→确定→输入代码→Buid→是→确认0error(s) 0warning(s)后→BuidExecute→查看运行结果
(2.1)算法流程图: #include
int a,b,c,S; int r; float s,c; scanf(\s=3.14*r*r; c=2.0*3.14*r;
printf(\
printf(\请输入一个三位数\\n\ scanf(\ a=S/100; b=(S/10); c=S;
printf(\该三位数百位为%d,十位为%d,个位为%d\\n\ return 0;
第 5 页