实验一熟悉C程序开发环境.docx
- 文档编号:10165098
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:11
- 大小:520.80KB
实验一熟悉C程序开发环境.docx
《实验一熟悉C程序开发环境.docx》由会员分享,可在线阅读,更多相关《实验一熟悉C程序开发环境.docx(11页珍藏版)》请在冰豆网上搜索。
实验一熟悉C程序开发环境
实验一熟悉C程序开发环境
实验目的
(1)掌握在VC2010的集成开发环境编辑、编译、运行程序的主要操作。
(2)学习通过查看VC2012的错误信息提示定位错误。
实验范例
1.创建第一个C程序
(1)创建
步骤如下:
(1)VC2010按[解决方案]-[项目]-[文件]的层次结构组织程序,创建一个C程序需要先创建一个工程和解决方案。
在打开的VC2010开发环境中,单击菜单“文件”-“新建”-“项目”,弹出“新建项目”对话框如图1-1所示。
在“已安装的模板”列表中选择“空项目”选项单;在下方文本框“名称”中输入新建项目名称,此处为“EX1_1”;文本框“位置”可输入或单击其后的按钮在“选择目录”指定新建文件存放的位置,此处为“D:
\C语言程序设计\C2012\CPP\”,解决方案名称默认与项目名称相同。
按“确定”后VC2010自动创建EX1_1解决方案的结构和相应文件,文件结构如图1-2所示。
图1-1新建空项目
图1-2生成的解决方案
(2)在“解决方案资源管理器”视图中选择“源文件”文件夹,单击“项目”-“添加新项”,弹出“添加新项”对话框,选择“C++文件”选项,在下方文本框“文件名”中输入新建项目名称,此处为“EX1_1”,按添加生成EX1_1.cpp文件。
图1-3添加C++文件
(3)按“确定”后进入编辑界面,在编辑区编辑第一个C程序—EX1_1.cpp,程序内容如图1-4所示
图1-4编辑C程序
(1)保存编辑好的C源程序,可以直接按工具栏上的“保存”按钮,也可以执行菜单命令“文件”-“保存”。
(2)编译
菜单命令“生成”-“生成解决方案”,将执行编译连接,生成exe文件,输出窗口中会给出是否成功的信息,如出现
1>生成成功。
1>
1>已用时间00:
00:
04.14
==========生成:
成功1个,失败0个,最新0个,跳过0个==========
说明EX1_1.exe生成成功,可进行下一步操作;否则在输出窗口中显示出错信息,需要改正错误后重新组建。
(3)执行
编译完成可以启动调试,单击工具栏上
按钮,执行程序,会在控制台窗口中显示执行的结果,如图1-5所示。
图1-5在控制台窗口中显示结果
(4)关闭解决方案
当一个程序完成,要开始编写另一个程序时,一定要关闭活动解决方案,执行菜单命令“文件”—“关闭解决方案”。
否则新创建或打开的其它文件将不能正常的编译,因为活动工作记录的文件始终是创建活动空间时关联的那个文件。
2.解读第一个C程序
(1)生成的文件解读
打开保存C源程序的文件夹,可以发现除源文件之外,还生成了如表1-2所示的文件和一个Debug文件夹。
表1生成C程序VC产生的文件类型
后缀名
解释
cpp
源程序文件
sln
解决方案文件
vcxproj
项目文件
Filters
VC++ProjectFiltersFile
User
StudioProjectUserOptionsfile
除CPP文件之外,其它文件都是由开发环境在“生成解决方案”时自动产生,所以保存C程序只需要保存CPP文件。
Debug文件夹中存放着生成的obj文件,exe文件及其它一些中间文件。
(2)程序语法解读
Hello程序是常见的入门程序,它的功能从执行结果可以看出,是输出一行字符串“HelloCWorld!
”。
#include
voidmain(void)
{
printf("HelloCWorld\n");
getchar();
}
对此程序简单解读如下:
(1)C程序必须由一个main函数构成,系统自动执行main函数。
(2)程序的执行从main函数开始,顺序执行每一条语句,到main函数右括号结束
(3)printf是标准输出函数,输出的字符串在一对西文双引号之间,例如"HelloCWorld\n"。
(4)C语句以分号结束。
(5)控制台输出时,系统会紧跟着自动输出“pressanykeytocontinue”,等待按任意键关闭控制台窗口。
(6)’\n’是一个转义字符,转义字符是一些键盘不能输入的控制字符,此处表示“换行”
(7)#include
(8)getchar()函数的作用是等待输入一个字符,在此起“按任意键继续。
。
。
”的作用。
(3)思考:
如果要输出两行问候语句
HelloCWorld!
HelloCWorld!
下面几组语句哪些是正确的,哪些是错误的
(A)printf("HelloCWorld");
printf("HelloCWorld");
(B)printf("HelloCWorld\n");
printf("HelloCWorld");
(C)printf("HelloCWorld\nHelloCWorld");
3.认识程序错误
程序错误区分为语法错误和逻辑错误,语法错误包括编译错误和连接错误,逻辑错误又包含运行错误。
(1)语法错误
编译错误,是指不符合高级语言定义的语法书写规则,编译或解释程序能自动检查出语法错误,只需根据错误提示进行修改。
例如,双引号是每个字符串的标志,字符串前后没有加双引号或双引号不完整就是语法错误。
要打开实验文件error1-1.cpp。
首先需要创建一个空项目error1-1(步骤参见项目EX1_1的创建),在“解决方案资源管理器”视图中选择“源文件”文件夹,单击“项目”-“添加现有项”,选择实验文件error1-1.cpp。
要注意的是:
确保其它解决方案已关闭。
编译该程序文件啊。
发生语法错误的程序,编译通不过,编译器会在输出窗口中给出错误信息如下图1-6所示。
图1-6编译错误示例
向上拖动输出窗口的滚动条可以看到编译错误,
C语言的错误信息的形式 :
文 行号 错误编号 错误信息
↓ ↓ ↓ ↓
error1-1.cpp(4):
errorC2001:
常量中有换行符
双击输出窗口中的错误信息可自动定位到相应错误行,要注意的是
(1)错误信息往往只能起提示作用,不是特别精确反映错误产生的原因,更不会告诉你如何修改。
例如上图所示,产生错误的原因是缺少右双引号,但出现的提示都没有提及双引号。
根据提示能快速反应错误产生的原因需要经验的积累。
(2)一条语句错误可能会产生若干条错误信息,只要修改了这条错误,其他错误会随之消失。
特别提示:
一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即重新编译程序,如果还有很多错误,再一个一个地修改,即,每修改一处错误要重新编译一次程序。
(2)连接错误
连接错误,是编译成功后,连接器连接外部程序的时候产生的错误。
例如,打开程序文件error1-2.cpp,当main函数名写错了,连接器不认识该字符串,连接器在输出窗口中给出错误信息如下图1-7所示,提示的错误是找不到入口点
1>------已启动生成:
项目:
error1_2,配置:
DebugWin32------
1>生成启动时间为2012/9/611:
14:
55。
1>PrepareForBuild:
1>正在创建目录“D:
\C语言程序设计\C2012\CPP\error1_2\Debug\”。
1>InitializeBuildStatus:
1>正在创建“Debug\error1_2.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1>ClCompile:
1>error1-2.cpp
1>LINK:
fatalerrorLNK1561:
必须定义入口点
1>
1>生成失败。
1>
1>已用时间00:
00:
01.01
==========生成:
成功0个,失败1个,最新0个,跳过0个==========
图1-7连接错误示例
连接错误不提示出错行数,但小程序的定位也比较简单,一般是函数和外部变量的名称出错,只需根据错误提示的字符串去寻找可能出现的位置。
(3)逻辑错误
逻辑错误则是程序设计上或逻辑上的错误,指程序已生成可执行文件,但运行出错或不能得到正确的结果,这可能是由于算法中问题说明不足,解法不完整或不正确所造成的。
逻辑错误的测试需要事先准备好测试数据,测试数据是指一组输入及对应的正确输出。
测试数据的设计直接关系到能不能测试出程序可能包含的错误。
例如打开文件error1-3.cpp以下程序会产生一个逻辑错误。
程序的功能是如果输入一个整数1,则输出“true”,输入其它整数则输出“false”。
#include
voidmain(void)
{
intx;
scanf("%d",&x);
if(x=1)
printf("true");
else
printf("false");
}
这个程序的测试用例可设计如下:
测试用例一:
输入:
1
输出:
true
测试用例二:
输入:
0
输出:
false
测试用例三:
输入:
10
输出:
false
但在测试过程中,只有测试用例一的执行是正确的,其它二个测试用例的执行是错误的。
说明该程序出现逻辑错误。
该程序的逻辑错误在于“x==1”写成了“x=1”,修改后三个测试用例均能正确。
程序运行时输入测试数据,如果程序没有产生预先设计的正确结果,程序员必须查找程序的错误,修改错误,再重新测试程序。
逻辑错误出错位置需要程序员对程序代码进行分析,一般会借助一些调试手段,如单步执行,设断点,watch窗口观测等等,以后陆续介绍。
(4)运行错误
运行错误是指程序经编译连接生成可执行文件后,在运行的过程中系统报错,没有运行结果。
常见的运行错误有:
除数为0;死循环;浮点指针出错等等。
运行错误往往是逻辑错误引起的。
逻辑错误除了运行错误还包括的情况是能得到运行结果,但那运行结果不正确,必须用测试用例来判断程序的正确性。
例如,当下面程序文件error1-4.cpp运行时执行以下测试用例会产生运行错误。
#include
voidmain(void)
{
intx,y,z;
printf("请输入x:
");
scanf("%d",&x);
printf("请输入y:
");
scanf("%d",&y);
z=x/y;
printf("z=%d",z);
}
测试用例:
x=8,y=0;z无效
程序的错误在于对y的值没有检查,一旦y的输入值为0,就会引起异常。
可修改如下
#include
voidmain(void)
{
intx,y,z;
printf("请输入x:
");
scanf("%d",&x);
printf("请输入y:
");
scanf("%d",&y);
if(y==0)
z=0;
else
z=x/y;
printf("z=%d",z);
}
实验内容
任务一:
改错
1.打开程序文件error1-5.cpp
intmian(void)
{
printf("*************\n");
printf("Welcome\n")
printf("*************\n);
return0;
}
2.程序的功能是输出三行文本,请根据VC2010的compile和link错误信息改正错误,并作记录
任务二:
编写程序,输出下面图案:
ex1_2.cpp
注意:
输出的“空格”,“换行”的方法。
源程序清单:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 熟悉 程序 开发 环境