C语言程序设计实习指导及报告.docx

上传人:b****4 文档编号:4259487 上传时间:2023-05-06 格式:DOCX 页数:36 大小:443.55KB
下载 相关 举报
C语言程序设计实习指导及报告.docx_第1页
第1页 / 共36页
C语言程序设计实习指导及报告.docx_第2页
第2页 / 共36页
C语言程序设计实习指导及报告.docx_第3页
第3页 / 共36页
C语言程序设计实习指导及报告.docx_第4页
第4页 / 共36页
C语言程序设计实习指导及报告.docx_第5页
第5页 / 共36页
C语言程序设计实习指导及报告.docx_第6页
第6页 / 共36页
C语言程序设计实习指导及报告.docx_第7页
第7页 / 共36页
C语言程序设计实习指导及报告.docx_第8页
第8页 / 共36页
C语言程序设计实习指导及报告.docx_第9页
第9页 / 共36页
C语言程序设计实习指导及报告.docx_第10页
第10页 / 共36页
C语言程序设计实习指导及报告.docx_第11页
第11页 / 共36页
C语言程序设计实习指导及报告.docx_第12页
第12页 / 共36页
C语言程序设计实习指导及报告.docx_第13页
第13页 / 共36页
C语言程序设计实习指导及报告.docx_第14页
第14页 / 共36页
C语言程序设计实习指导及报告.docx_第15页
第15页 / 共36页
C语言程序设计实习指导及报告.docx_第16页
第16页 / 共36页
C语言程序设计实习指导及报告.docx_第17页
第17页 / 共36页
C语言程序设计实习指导及报告.docx_第18页
第18页 / 共36页
C语言程序设计实习指导及报告.docx_第19页
第19页 / 共36页
C语言程序设计实习指导及报告.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计实习指导及报告.docx

《C语言程序设计实习指导及报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实习指导及报告.docx(36页珍藏版)》请在冰点文库上搜索。

C语言程序设计实习指导及报告.docx

C语言程序设计实习指导及报告

 

C语言程序设计实习指导

C语言课组编写

 

西北农林科技大学信息工程学院

2010年2月

前言

程序设计是实践性很强的课程,实习的目的是为了巩固所学知识,培养、提高实际动手能力和严肃认真的科学工作态度,而程序设计是创造性的劳动,因此需要编程人员全身心地投入,充分发挥主观能动性,认真做好每一次实习。

每道题没有唯一解,只要掌握了基本的方法和技巧,加上自己创造性的工作,就一定能够编写出各种各样的好程序。

任何程序最终都必须在计算机上运行,以检验程序的正确与否。

因此在学习程序设计中,一定要重视上机实践环节,通过上机加深理解C语言的有关概念,巩固理论知识,另一方面培养调试程序的能力与技巧。

为了加强基础知识和语言主干结构的学习,深刻理解和掌握教材内容,减少实习时的盲目性,特编写本实习指导书。

为方便内容组织,每个实习由实习目的、实习内容及讲解、注意事项等几部分组成。

下面对每次实习提几点具体要求:

(1)实习前应进行充分的准备,做到心中有数。

要弄懂教材中的相关知识和例题,深刻理解教材中涉及到的知识点及程序设计方法,根据实习要求,对题目进行分析,选择适当的算法、事先编写好程序。

上机前一定要仔细检查程序(称为静态调试),直到找不出错误(包括语法错误和逻辑错误)为止。

分析可能遇到的问题及解决的办法。

准备几组测试程序的数据、写出预期的结果,以便发现程序中可能存在的错误。

(2)在实习中,应该对编写好的程序使用预先准备好的测试数据运行程序,观察是否能得到预期的结果(称为动态调试)。

对于实习中出现的问题进行仔细的分析,找出解决办法,调试程序排除各种错误,直到得到正确结果。

对运行结果要做好记录,为写实习报告做好准备。

调试过程中,要充分利用系统提供的各种调试手段和工具,例如:

单步跟踪、设置断点、观察变量值等。

对出现的错误要善于思考,勤于分析,尽量自己动手解决问题,逐渐提高自主分析问题和解决问题的能力。

(3)实习结束后,要整理实习结果,并应根据问题、解决办法和运行结果,对本次实习及时进行认真分析和总结,撰写出实习报告并提交到电子作业管理系统。

以这种方式提交实习报告书还处于尝试阶段,限于作者水平,其中疏漏在所难免,敬请各位老师和同学批评指正。

联系地址:

Email:

hl@或Email:

cy@。

作者

2010年2月

目录

实习一C语言概述-1-

实习二顺序结构-9-

实习三选择结构错误!

未定义书签。

实习四循环结构程序设计-15-

实习五数组-17-

实习六指针-23-

实习七函数调用-26-

实习八结构体、联合体及位运算-29-

实习九文件操作-31-

实习一C语言编程环境及简单程序设计

一、实习目的

⒈熟悉C语言集成开发环境的使用方法,学会独立使用该系统;

⒉通过编写简单的程序,掌握C语言源程序的编辑、编译、连接、调试和运行过程;

⒊通过编写、运行简单的C语言源程序,学习程序编写方法,了解C源程序的特点;

⒋理解C语言数据的类型、取值范围、定义和使用方法;

⒌掌握各种运算符、表达式的基本概念、使用方法,以及各种运算符的优先级及结合方向;

⒍掌握各种类型数据的输入/输出方法,能正确使用各种格式转换符和控制符。

二、实习要求

⒈实习前认真复习第1、2章内容,尤其是P17的1.4C程序的开发步骤;

⒉对实习内容中给定的题目上机前先进行程序的编写和数据的准备;

⒊学会使用上机环境;

⒋上机编辑、调试、运行程序,保存最终程序到自己的文件夹中。

注意:

当本次作业全部完成后,提交到信息学院作业管理系统中任课教师的名下。

三、VisualC++6.0运行环境介绍

VisualC++6.0是运行于Windows环境下的交互式可视化集成开发环境,有中、英文两种版本,使用方法相同,即可在该环境中编辑程序、也可编译连接运行程序,此处仅介绍中文环境下的使用方法。

⒈安装

使用前必须先在所使用的机器上安装VisualC++6.0运行环境系统。

该系统软件放在一张光盘上,只要根据提示便可以轻松安装,此处不做详细介绍。

实习机房机器上已安装,可供使用。

⒉启动

①一般安装后便在桌面上创建了快捷方式图标。

首次启动VisualC++6.0,只要双击此图标即可;

②也可通过开始菜单→所有程序→MicrosoftVisualStudio6.0→MicrosoftVisualC++6.0启动VisualC++6.0;

③直接双击C语言源程序,即名为.c或.cpp的文件,也可启动VisualC++6.0并显示程序。

⒊运行环境介绍

VisualC++6.0启动后,界面如图1所示。

可见VC(VisualC++6.0的简称)的主界面由标题栏、菜单栏、工具栏、编辑窗口、信息提示窗口、工作区窗口及其切换按钮等组成。

⑴标题栏用于显示应用程序名和当前打开的文件名,在上图中为exam1-1.c创天中文VC++。

若文件名后带有“*”号,表示修改后的内容尚未存盘,提示用户及时保存更新的内容。

⑵菜单栏列出了VC提供的各种命令,用法与Word相同。

其中:

文件用来对文件和项目进行管埋,如创建新文件和项目、打开己有的文件和项目、保存文件和项目;关闭文件和项目等。

其中打开、保存、关闭工作区是一个新的概念,因为VC中为源程序建立了一个工作区,当再次新建一个C程序时,必须要关闭上一个程序已打开的工作区,否则会出错。

编辑对文件进行各种编辑操作,如剪切、粘贴、插入、删除、复制、全部选择、查找、定位等。

查看用于改变窗口和工具栏的显示方式,如建立类向导、全屏幕显示、工作区、输出、激活调试时所用的各个窗口、属性等。

插入创建、添加项目和资源,如新建类、插入新的资源、插入新的ATL对象等。

工程设置与工程相关的源文件、库函数,如添加工程、设置活动工程、来源控制、插入工程到工作区等。

编译对应用程序进行编译、连接和执行,如编译、构件、重建全部、批构件、开始调试等。

工具选择或制定开发环境中的一些实用工具,以激活各个调试窗口,改变各个窗口的显示模式等。

窗口对窗口进行各种设置。

帮助显示各种帮助信息。

⑶工具栏

提供常用工具,方便编辑、保存、编译运行程序。

分为以下三个部分。

①常用工具栏

剪切选定内容

在指

定的

多个

文件

中查

找字

符串

指定要查找的字符串,按Enter键进行查找

在当

前文

件中

查找

指定

的字

符串

②编译运行工具栏

编译

编译及连接

中断编译连接

运行

调试运行

设置取消断点

③WizardBar工具栏

包含一些快速使用ClassWizard的工具,此处从略。

⑷工作区窗口

用目录树的方式显示工程文件的组织结构形式。

与Windows的资源管理器类似,可以通过点击“+”或“-”号,来展开或折叠下级结构。

通过点击切换工作区按钮,可改变显示方式。

①ClassView标签用于显示当前打开的项目所包含的类、函数和变量定义等信息。

②FileView标签用于显示当前打开的项目所包含的各种文件信息,包括:

源文件、头文件、资源文件等。

⑸编辑窗口

为用户提供的编辑源文件的区域,用法与Word完全相同,此处不再赘述。

⑹信息提示窗口

用于显示编译、连接、运行时,系统产生的各种提示信息,包括当前状态信息、各种错误信息、警告信息等;调试信息和查找的结果也在此处显示。

阅读这些信息可帮助用户查找错误。

⑺状态栏

用于显示当前操作的状态、注释、光标所的行和列的在位置。

⒋编辑、编译、连接和运行程序

此工作当VC启动完成,在主界面中即可开始进行。

⑴直接建立源文件

①选菜单“文件”→“新建”,弹出图2所示界面;

②选“文件”标签→“C++SourceFile”;

③在文件框中输入要建立的文件的名字,如图2中的exam1-1.c;

④在目录框中选择所建文件存放的位置,如图中的D:

\2009-2010-2\C。

该目录必须已存在,否则会有提示信息;

⑤单击“确定”按钮,在弹出的图1所示界面的编辑窗口中,即可进行源文件的编辑。

⑵打开已存在的C源程序文件

①选菜单“文件”→“打开”,或单击快捷按钮,弹出图3所示打开文件界面;

②用与在Windows中相同的方法,打开自己选定的文件到图1所示的VC环境中,然后进行编辑、修改;

③当编辑、修改完毕后,就可以原名保存或另存为其它名字的文件了。

⑶保存/另存文件

①输入或修改完毕,单击菜单“文件”→“保存”,或单击快捷按钮,即可以前面确定的位置、文件名或原文件名保存文件;

②若想改变文件名或文件的存放位置,则应选文件→另存为,根据提示另保存文件。

⑷编译、连接C程序

①编译

进行编译的方法有三种:

方法一:

按Ctrl+F7组合键

方法二:

单击工具栏的按钮

方法三:

选择菜单“编译”→

执行编译后,信息提示窗口中显示出编译的结果信息,指出源程序中是否存在语法错误,如图4所示。

如:

*.obj-×error(s),×warning(s)

其中:

“*.obj”是所产生的目标文件名,“*”代表具体的文件名,如图4中的exam1-1;

“×error(s)”指明发现的致命语法错误,“×”是错误具体个数。

若无错误即为0;

“×warning(s)”对可能的潜在性错误发出警告,“×”是具体个数。

若无即为0。

如果有错误,还会在该窗口中逐一显示出具体的错误类型及位置,只要双击某错误行,便可直接指向编辑窗口中错误所在行,以方便查看和改正错误。

然后再编译。

直到源程序中没有任何语法错误,即error型错误,表示编译成功,已正确生成目标文件,即.obj文件,接着就可以进行连接了。

建议:

对有多个错误的情况,要分析错误提示,根据前后语句找出出错原因,再进行修改,且最好从第一个错误开始修改,因为前面的错误可能会连带后面也出错;最好每改正一个错误,就编译一次,这样能够有效地消除连带错误。

②连接

目标文件生成后,就要把目标程序与系统中的库函数连接起来,生成可执行文件,即.exe文件。

进行连接的方法也有三种:

方法一:

按F7键

方法二:

单击工具栏的按钮

方法三:

选择菜单“编译”→

与编译类似,连接的结果也会在信息提示窗口中显示,如图5所示。

若有错误提示,必须改正后重新再进行编译、连接,直到生成没有错误的可执行文件。

错误多一般是因为函数名不正确,或包含命令不对,如头文件的位置不正确等。

③编译+连接

编译和连接操作也可一次完成。

如果尚未进行编译就直接选择执行连接,系统将会先进行编译,若成功后再自动进行连接。

⑸运行

运行可执行文件的方法也有三种:

方法一:

按Ctrl+F5组合键

方法二:

单击工具栏的按钮

方法三:

选择菜单“编译”→

若程序能够正常运行,系统会在VC界面上弹出一个命令行方式的用户窗口,如果需要的话用户可以通过这个窗口给程序输入数据,而程序运行的结果也是显示在这个界面上的。

如对图1中所示的程序,运行的结果如图6所示。

其中的“Pressanykeytocontinue”是系统提示信息,只要根据该提示按任意键,便可返回编辑界面。

⑹关闭程序工作区

当一个程序调试、运行完毕后,必须先关闭当前程序的工作区,才可进行下一个程序的工作,否则可能会出现意想不到的错误。

关闭工作区可选菜单“文件”→“关闭工作区”来实现。

⑺退出VC系统环境

可选菜单“文件”→“退出”,其它退出方法与Windows其它应用程序相同。

四、实习内容

⒈创建文件夹

在自己实习机器的C上盘以自己的姓名创建一个文件夹,以便将实习内容保存在自己的文件夹中,你建立的文件夹名为:

⒉学习VC++6.0集成开发环境的使用方法,掌握建立、打开、保存、运行一个C源程序的操作方法,注意完成以下内容

⑴输入教材P3【例1-1】的源代码后,以文件名exam1-1.c保存。

⑵通过资源管理器查看你自己的文件夹,此时其中有1个文件。

⑶编译源代码(快捷键为CTRL+F7)后,通过资源管理器查看你的文件夹,发现除源程序文件外,多了3个文件和1个文件夹,多出的文件夹名为:

Debug。

⑷连接程序(快捷键为F7),结束后查看新增加的文件夹中在第(3)步的基础上又多出了3个文件。

其中最重要的是结果文件,其扩展名为EXE。

⑸选菜单“文件”→“关闭工作区”命令结束当程序,为新建下一个C源程序做准备。

⒊实习中的有关约定

为便于管理,本实习中特作以下有关约定。

⑴电子实习报告的命名

凡提交的电子实习报告,均以姓名+实习号命名。

如张三同学提交实习一的电子实习报告,则命名为:

张三1,依此类推实习五的即为:

张三5

⑵提交作业题的命名

①例题验证以exam+章号+题号命名。

如第一章的例1,则写为:

exam1-1.c

②作业题以zy+章号+题号命名。

如对P18第一章的作业程序设计题1中的第2题,则写为:

zy1-2.c

③作业题一题多解则以zy+章号+题号+序号命名。

如第一章的P18的程序设计题1中的第2题的第2种解法,则写为:

zy1-2-2.c

④附加题则以fj+章号+题号命名。

如第一章的第1个附加题,则写为:

fj1-1.c

⑤附加题一题有多解则以fj+章号+题号+序号命名。

如第一章的第1个附加题的第2种解法,则写为:

fj1-1-2.c

⒋按要求完成P18程序设计题1中的第2、第5题

⑴对第2题的提示

该题要求在屏幕上输出“HappyNewYear!

”,仿照教材P3【例1-1】即可完成。

⑵对第5题的分析

①该题要求从键盘输入任意两个数。

由教材可知,在C程序中数据要存在变量中,以后才可以多次使用。

又因未限定数据类型,为扩大适用范围,此处定义两个实型变量a和b来接受从键盘输入的数据,可用语句:

floata,b;

②要求保存计算的和、差、积、商,可设定四个变量来存放。

为扩大适用范围此处定义四个实型变量h、c、j和s来保存计算的结果,可用语句:

doubleh,c,j,s;

③接受从键盘输入的实型数据,可用语句:

scanf("%f%f",&a,&b);

④计算可用四个赋值语句完成:

h=a+b;c=a-b;j=a*b;s=a/b;

⑤最后结果的输出可用输出语句:

printf("和=%f,差=%f,积=%f,商=%f\n",h,c,j,s);

其实,本题可以参考P11代码1-5(b)来完成。

⒌按要求完成P52程序设计题2中的第1、第3、第4题

⑴对第1题的分析

①根据题意需要定义存放梯形上底、下底、高和面积的实型变量为:

floatsd,xd,h,area;

②求梯形面积的公式为:

面积=(上底+下底)×高/2,即area=(sd+xd)*h/2;

③为使程序具有通用性,可先从键盘输入上底、下底和高的值,然后再计算面积;

④计算出的面积值一定要输出,才能看到计算结果。

⑵对第3题的分析

①输入任意一个字符,需定义一个字符变量:

charc;

②在C语言中,字符型变量的值即可用字符形式也可以整数形式输出。

当以字符形式输出时输出的是原字符,而以整数形式输出时输出的就是该字符的ASCII码值了。

所以使用的输出语句可为:

printf("字符为:

%c,ASCII码值为:

%d\n",c,c);输出字符也可用putchar(c);

⑶对第4题的分析

①仔细阅读教材P36的2.4.8节的内容;

②可通过逐个输出sizeof函数的值完成该题。

如:

printf("整型占%d字节\n",sizeof(int));

五、注意事项

1.上机实习前一定要认真阅读教材相关内容,结合实习步骤整理出实习涉及的内容。

从本次实习开始大家应该明白,上机实习的目的有两个,其一是加深对知识点的理解;其二是验证自己学习过程中的一些疑问。

对于教材中的内容、例题,如果已经理解的可以跳过,对于有疑问的才需要上机调试验证。

2.对程序的可靠性要进行多方面的测试,有时要和别的程序对比运行结果,甚至要用手算。

3.C语言程序编写及上机调试步骤:

⑴先根据题意决定算法,并用笔在纸上画出程序流程图;

⑵根据流程图编写源程序代码,经人工检查无误后才能上机。

对自己有疑问的地方,应事先作好标记,以便上机时给予注意。

初学时切忌不编程序或抄袭别人的程序,应养成良好的习惯和严谨的科学作风;

⑶准备好测试数据,写出预期结果(必要时应准备多组测试数据);

⑷将源程序代码输入计算机;

⑸再次检查程序有无错误(包括语法错误和逻辑错误);

⑹运行和调试。

进行编译和连接,仔细分析编译信息,如有错误应找出原因并记录,然后改正、再进行编译和连接……,直到输出结果正确为止。

对出现的问题应仔细分析,一般应尽量独立处理,尤其是对“出错信息”,应学会自己分析判断,不要轻易问他人,这是学会调试程序的良方;

⑺程序调试过程中,应记录出现的各种状况、解决的方法,为撰写实习报告作好准备。

程序运行通过后,应将结果与事先的预期结果进行对比分析;

⑻对于教材上的例题输入运行后,自己可以再修改、调试,例如:

故意改成错的,然后分析其编译和运行情况;

⑼将每次实习的所有内容调试好后,仅保留扩展名为“.c”和“.exe”的文件,将其它文件全部删除,经压缩后保存在自己的邮箱中或提交给老师。

实习二分支结构程序设计

一、

实习目的

1.掌握C语言的六种关系运算符和三种逻辑运算符的使用方法;

2.了解C语言表示逻辑量的方法(以“0”代表“假”,以1或非“0”代表“真”);

3.深刻理解选择结构,熟练掌握和应用if语句的三种基本形式和嵌套形式;

4.掌握switch语句的规则、功能与特点,能准确构造表达式;

5.通过上机,理解选择结构程序中常见的语法及逻辑错误,掌握基本的程序调试技术。

二、程序调试方法介绍

程序编译、连接通过,即可执行,这说明程序无语法错误,但不能确定程序执行的结果是否正确。

若程序执行结果与要求不符,则说明程序存在算法上的问题,这类错误称为逻辑错误。

逻辑错误的判断、定位、修改,往往要比通过编译检查语法错误困难得多,不仅依赖于程序设计者对算法的理解以及编程的经验,还需借助于必要的手段,这一点对于初学者显得尤为重要。

C语言的环境都或多或少地提供了必要的调试工具,在此简单介绍几种常用的调试方法和手段。

⒈添加输出语句

输出语句的作用是输出程序的最终结果,对于中间的执行结果是不必输出的,但是在程序的调试过程中,输出一些中间结果对于错误的判断是十分有益的。

因此可以在程序执行的中间增加一些输出语句,以检测程序执行过程中的问题,这也是调试的重要手段。

下面通过例题,说明其基本使用方法。

[例1-1]求1-5的累加和,即S=1+2+3+4+5。

若程序代码如下:

#include

voidmain(void)

{inti,s;

for(i=1;i<=5;i++)/*循环取五个数*/

{

s=s+i;/*五个数累加*/

}

printf("1+2+3+4+5=%d\n",s);/*输出累加结果*/

}

在VC++6.0环境下,输入源程序,编译连接无语法错误,经执行后其结果如图7所示。

从图7可以看出,虽然程序没有语法错误,但执行结果明显是错误的,5个正数的累加和绝对不可能为负数。

问题出在哪里?

为了定位错误,可以在循环的累加过程中加入输出语句,输出每次累加前变量s的值,则可将代码改为:

#include

voidmain(void)

{inti,s;

for(i=1;i<=5;i++)/*循环取五个数*/

{printf("s=%d\n",s);/*输出每次累加前变量s的值*/

s=s+i;/*五个数累加*/

}

printf("1+2+3+4+5=%d\n",s);/*输出累加结果*/

}

执行结果如图8所示。

可见,在循环中s的值按i的变化递增,即累加是正确的。

但第一次没有累加之前s的值就是-858993460而不是0,这就意味着产生错误的原因是在循环之前,没有为s赋初值0。

因此,将s=0;语句加在for循环前,然后注释或删除掉增加的输出语句后的程序如下。

再次编译、执行程序,结果如图9所示,正确无误。

#include

voidmain(void)

{inti,s;

s=0;/*为s赋初值*/

for(i=1;i<=5;i++)/*循环取五个数*/

{

s=s+i;/*五个数累加*/

}

printf("1+2+3+4+5=%d\n",s);/*输出累加结果*/

}

建议:

①在程序代码的适当位置增加输出语旬,可以暴露程序存在的问题。

②分支中必须设计多组测试数据,对临界值以及每一种分支的情况进行测试,以发现漏洞。

③循环中必须设计多组测试数据,对循环的边界状态进行测试,以发现漏洞。

⒉单步执行

单步执行是编程环境常备的一种调试工具,它是指每执行一条语句后即暂时停止,以方便用户观察程序的执行情况,然后再启动执行下一条语旬,如此一步一步地执行程序。

这样可以观察程序中每条语句的执行过程和执行结果,便于在调试中发现问题。

下面通过例题,说明VC++6.0下单步执行的基本使用方法。

[例1-2]求级数。

若程序代码如下:

#include

voidmain(void)

{floats;

inti;

s=0;/*为s赋初值*/

for(i=1;i<=5;i++)/*循环取五个数*/

{

s=s+1/i;/*五个数累加*/

}

printf("1+1/2+1/3+1/4+1/5=%7.2f\n",s);/*输出累加结果*/

}

编译连接无语法错误,经执行其结果如图10所示,输出结果为1.00,显然是错误的。

由于s有初值、i在每次循环中也能取得正确的值,可计算结果却有误,原因可能是累加的过程产生了错误。

下面通过单步执行功能观察执行中的具体情况。

⑴进入单步执行状态

按F11(选菜单“编译”→“开始调试”→“StepInto”)或按F10键如图11所示,进入单步执行状态,如图12所示。

其中Debug菜单提供了三种调试方式,含义及说明见表1。

表1单步执行时的快捷按钮、快捷键及单步方式,退出方法

单步执行方式

快捷按钮

快捷键

执行方式含义

StepInto

F11

将进入调用的函数中单步执

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2