实验一熟悉C程序开发环境.docx

上传人:b****5 文档编号:10165098 上传时间:2023-02-09 格式:DOCX 页数:11 大小:520.80KB
下载 相关 举报
实验一熟悉C程序开发环境.docx_第1页
第1页 / 共11页
实验一熟悉C程序开发环境.docx_第2页
第2页 / 共11页
实验一熟悉C程序开发环境.docx_第3页
第3页 / 共11页
实验一熟悉C程序开发环境.docx_第4页
第4页 / 共11页
实验一熟悉C程序开发环境.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验一熟悉C程序开发环境.docx

《实验一熟悉C程序开发环境.docx》由会员分享,可在线阅读,更多相关《实验一熟悉C程序开发环境.docx(11页珍藏版)》请在冰豆网上搜索。

实验一熟悉C程序开发环境.docx

实验一熟悉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是一个预编译命令,表示要加入stdio.h文件(标准输入输出函数头文件),要在程序中使用printf函数必须使用该命令。

(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

注意:

输出的“空格”,“换行”的方法。

源程序清单:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1