程序设计基础实验-01
实验1 结构化程序设计
实验A: 简单的C程序设计、数据类型、运算符与表达式
一、实验目的及要求
1. 了解在集成开发环境下程序的编辑、编译、连接、运行与调试;
2. 掌握C语言的基本数据类型、算术运算符、赋值运算符和逗号运算符及表达式;
3. 输入并编译C++程序。
二、实验设备与平台
1. 实验设备:计算机;
2. 平台:Windows 2000操作系统,Visual C++ 6.0或Microsoft Visual Studio 2005/2008/2010/2012/2013。
三、实验内容与步骤
1. 启动Visual C++ 6.0,认识开发环境界面(Microsoft Visual C++ 6.0)
[Microsoft Visual Studio 2005开发环境界面参考教材P333页附录A]
(1)启动Win2000操作系统后,选择“开始” “程序” “Microsoft Visual Studio 6.0” “Microsoft Visual C++ 6.0”,即可启动并进入集成开发环境;
(2)使用Visual C + + 6.0 的 Win32 Console Application方式新建一个工程,具体步骤如下: 第一步:打开VC++6.0 → File → New (如图1_1);
图1_1
第二步:Projects →Win32 Console Application →修改Location: → 修改Project name (如图1_2);
图1_2
第三步:A simple application → Finish (如图1_3);
图1_3
第四步:OK 如图1_4;
图1_4
第五步:展开test classes →展开Globals →双击main( … ) →输入/修改程序 →!(编译、连接、运行)如图1_5;
图1_5
(3)开发环境界面由标题栏、菜单栏、项目工作区窗口、编辑窗口、输出窗口和状态栏等组成。标题栏用于显示应用程序名和打开的文件名;菜单栏包含了开发环境中几乎所有的命令;一些常用的命令被置于工具栏上,使用户的操作简单便捷;项目工作区窗口用于组织文件、项目和项目配置,包含用户项目的一些信息,如类(Class View页面)、项目文件(FileView页面)和资源(ResourceView页面)等,通过单击右键,可以弹出相应的快捷菜单;状态栏用来显示当前操作状态、注释等。如图1_6所示。
图1_6
2. 利用向导,试新建“Hello,World”程序并运行。
3. 输入并运行以下程序,分析其运行结果。
//sy1_1.cpp
#include
using namespace std;
int main( )
{ char c1,c2;
c1=97;c2=98;
cout
return 0;
}
(运行上面程序)
4 .输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转
换。然后输出最后得到的字符,上机编写并通过程序。
5 .输入3个a,b,c,求出最大数,上机编写并通过程序。
思考问题:#include “filename”与#include 的区别?
实验相关知识
(增加修改程序说明)
1. 程序的编辑、编译、连接、运行
(1)程序的编辑
要开始一个新程序的开发,必须先建立一个新的工程:选择“文件” “新建” 在“新建”对话框,选择“工程”标签 在列表框选择“Win32 console Application” 输入控制台应用程序项目名称及文件的位置 按确定后,显示Win32应用程序向导对话框 选择“An empty project”,按“确定”后 系统会显示新工程的有关信息。
要在创建好的空工程中添加新的文件,有两种方法:一、:选择“文件” “新建” 在“新建”对话框,选择“文件”标签 在列表框选择“C++ Source File” 输入文件名即可;二、:选择“工程”菜单 选择“在工程中增加新文件” 其它同上。
(2) 程序的编译、连接、运行
在“编译”菜单中,“Compile”命令可对源程序进行编译,编译通过则生成扩展名为.obj的目标文件;“Build”命令可对目标文件连接生成“可执行文件”,此命令也可将源程序进行编译再连接生成“可执行文件”;“Execute”命令可运行“可执行文件”显示结果,此命令也可将源程序进行编译再连接生成“可执行文件”并运行显示结果。编译或连接时的信息都会显示在输出窗口,若出现错误,则标识出错文件名,发生错误的行号及错误的原因等。错误信息中的警告信息不妨碍可执行文件的形成,但最好进行修改。
2. 程序的调试
在Visual C++ 6.0环境下集成了调试器,可以利用Build菜单Debug级联菜单中的命令或快捷键来控制调试器中程序的运行情况。通过设置断点,观察断点的各种信息,单步跟踪有疑问的程序段,进而修改源程序。
Developer Studio中的工程可以产生两种可执行代码,分别称为调试版本和发布版本。调试版本是在开发过程中使用的,用于检测程序中的错误;发布版本是面向用户的。高度版本体积较大,而且速度通常要比发布版本慢,发布版本不能用调试器进行调试。
实验B 顺序结构和选择结构设计程序设计
一、实验目的及要求:
1. 学会正确使用逻辑运算符和逻辑表达式;
2. 熟练掌握if语句和switch语句;
3. 掌握在程序设计中灵活使用顺序结构和选择结构。
二、实验设备与平台
1. 实验设备:计算机;
2. 平台:Windows 2000操作系统,Visual C++ 6.0或或Microsoft Visual Studio 2005。
三、实验内容及步骤:
先画程序流程图,再编写程序,解下列问题,然后上机调试运行程序。
1. 有一个函数
x x
Y= 5x-10 1
10x-20 x>=10
用scanf函数输入x的值(分别为x=10),输出y的值 。
说明:这个题目主要是练习学生对if…eles语句的使用。
2. 给出一个不多于5位的正整数,要求:
实验2_1: 求出它是几位数;
实验2_2: 分别输出每一位数;
实验2_3: 按逆序输出各位数字,例如原数为5631,应输出为1365。
说明:这个题目主要是练习学生对if…elsef if嵌套语句,switch…case语句的使用。
思考:如果不使用switch…case语句,完全使用if…else if来实现,那程序应该怎么改动呢?
3.输入四个整数,要求按大小顺序输出。
上机编写并通过程序。
说明:这个题目主要是练习学生对两个数的交换以及多个数的排序处理。
思考:程序中需要两个数的比较是多少次,如果有5个数,那比较的次数又是多少次呢?
实验C 循环结构程序设计
一、实验目的及要求
1.掌握while、for、do…while 循环结构的使用方法以及循环条件的使用;
2.能够使用三种循环结构设计程序、分析程序并解决实际问题;
3.掌握三种循环结构的差异和不同,能灵活地实现三种结构间的转换;
4.正确编写具有循环结构的C语言程序。
二、实验设备与平台
1. 实验设备:计算机;
2. 平台:Windows 2000操作系统,Visual C++ 6.0或Microsoft Visual Studio 2005。
三、实验内容及步骤
1.程序实验验证
(1)求 n = 1+2+···+100 之和,上机验证程序运算结果。 ∑n=1100方法一(实验3_1):用while语句编程。
方法二(实验3_2):用do-while语句,求1到100的和。
方法三(实验3_3):用for语句编程。
上机编写并通过程序,并分析三种编程方法的特点。
几种循环结构的比较分析:
for语句适合于循环次数是预先知道的,且步长固定;而while和do语句的循环次数则依赖于循环体的动作。
for和while语句是先判断后执行,所以循环体可能一次也不执行; do语句是先执行后判断,所以循环体至少执行一次。
循环体可以是空语句,也是几个语句复合。
三种循环语句可以相互转化,但一般来说,while语句的适应性最广,应首先考虑。但在特别的问题中,选择for语句和do语句会更自然、更方便。
(2) 实验3_4:编写程序找出3位数中(100—200间)各位数之和能被5整除的所有数,每行按5个数据显示在屏幕上。
编写程序代码并上机验证程序运行结果。
(3)编程求水仙花数。水仙花数是满足这样条件的3位数:3位数中各位数的立方和等于
该3位数,上机运行程序并验证程序运行结果。
2.程序实验分析
(1)实验3_5:根据程序代码,分析下列程序所完成功能和相应输出结果,并思考下列问题。
//sy3_5.cpp分析下列程序的运行结果
行号 程序代码
1 #include
2 void main( )
3 {
4
5
6
7
8
9 int i,sum; sum=0; i=10; while (i) { sum=sum+i; i=i-1;
} 10 11
12 } std::cout
思考问题1:运行程序,分析程序的运行结果(sum=55),根据程序运行结果,思考程序中第7行的语句while(i)中的表达含义。
思考问题2:试着将第7行中的语句修改为
while(x!=0)
再运行修改后的程序,并对运行结果与原程序运行结果进行比较分析。
思考问题3:试着将第7行中的语句修改为
while(!x = =0)
再运行修改后的程序,并对运行结果与上面两次运行结果进行比较分析。
(2)分析下面程序:如果用下列语句来实现 s=1+2+3+4+5 的累加功能,请你分析、运行程序,找出程序中存在的错误并进行修改。
行号 程序代码
1 #include
2 void main( )
3 {
4 int i , s=0; //累加变量初始化为0
5 for (i=1, i
6 s = s+i;
7 std::cout
8 }
问题拓展:
1)如果将原程序修改为用while 语句来实现,请分析程序中存在的错误。 行号 程序代码
1 #include
2 void main( )
3 {
4 int i , s = 0; //累加变量初始化为0
5 while (i
6 {
7 s =s +i ;
8 }
9 std::cout
10 }
2)如果将原程序修改为用do…while 语句来实现,请分析程序中存在的错误。 行号 程序代码
1 #include
2 void main( )
3 {
4 int i = 1, s = 0 ;
5 do
6 {
7 s = s+i ;
8 i++;
9 } while (++i
10 std::cout