高级程序设计I(C语言)实验指导书.doc

上传人:飞****2 文档编号:66762805 上传时间:2022-12-21 格式:DOC 页数:102 大小:395.50KB
返回 下载 相关 举报
高级程序设计I(C语言)实验指导书.doc_第1页
第1页 / 共102页
高级程序设计I(C语言)实验指导书.doc_第2页
第2页 / 共102页
点击查看更多>>
资源描述

《高级程序设计I(C语言)实验指导书.doc》由会员分享,可在线阅读,更多相关《高级程序设计I(C语言)实验指导书.doc(102页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、高级语言程序设计I(C语言)实验指导书四川大学计算机学院计算机工程系C语言教学组 编写洪枚 审定计算机学院20067高级程序设计I(C语言)实验指导书目 录使用说明4实验一 C语言程序初步9实验二 数据类型11实验三 运行符与表达式12实验四 输入与输出13实验五 选择结构15实验六 条件型循环结构17实验七 计数型循环结构18实验八 函数的定义及调用20实验九 数组21实验十 指 针 (一)24实验十一 指针(二)26实验十二 结构体和共用体29实验十三 位运算30实验十四 文件31实验十五 综合应用举例(一)32实验十六 综合应用举例(二)37附录一: Turbo C 程序设计上机指导42

2、Turbo C 程序设计初步42Turbo C 常用的编辑命令44Turbo C 程序的调试46Turbo C编译、连接和运行时的常见错误48附录二:C语言程序设计调试技术51C语言程序设计调试技术(一) 运行错误的判断与调试51C语言程序设计调试技术(二)基本调试手段51C语言调试技术(三) -Turbo C 集成环境的调试功能52C语言调试技术(四)-图形程序运行的条件53附录三:四川大学计算机学院C语言考试系统样题55选择题55改错题58编程题59附录四: 全国计算机等级考试试题选编60二级C语言上机试题(1999年秋季1,2,3)套60第一套60第二套62第三套64二级C语言笔试试题(

3、1,2,3)套66(第一套)1997年9月全国计算机等级考试笔试试卷66(第二套)2001年4月二级C笔试试题70(第三套)2001年9月二级C笔试试题85附录五: C语言课程教学大纲99一、本课程的地位与任务99二、本课程的基本要求与基本内容99三、本课程的教学要求:100四、学时分配101五、教材和参考书101电地暖 使用说明本实验指导书为开设高级语言程序设计I(C语言)课程的专业使用,各专业根据本专业的教学计划和实验任务书,选做规定的实验项目。全院各专业所做的实验项目具体说明和要求如下:必须完成本指导书的实验一、二、三、五、六、八、九、十、十二、十四,共十个实验项目的内容。(2005年级

4、开绐执行)计算机学院2006-7一、Visual C实验环境介绍1、Visual C简介Visual C+是Microsoft公司的Visual Studio开发工具箱中的一个C+程序开发包。VisualStudio提供了一整套开发Internet和Windows应用程序的工具,包括VisualC+, Visual Basic, Visual Foxpro, Visual InterDev, Visual J+以及其他辅助工具,如代码管理工具Visual SourceSafe和联机帮助系统MSDN。Visual C+包中除包括C+编译器外,还包括所有的库、例子和为创建Windows应用程序所需

5、要的文档。 从最早期的1.0版本,发展到最新的6.0版本,Visual C+已经有了很大的变化,在界面、功能、库支持方面都有许多的增强。最新的6.0版本在编译器、MFC类库、编辑器以及联机帮助系统等方面都比以前的版本做了较大改进。 Visual C+一般分为三个版本:学习版、专业版和企业版,不同的版本适合于不同类型的应用开发。实验中可以使用这三个版本的任意一种。 Visual C+集成开发环境(IDE) 集成开发环境(IDE)是一个将程序编辑器、编译器、调试工具和其他建立应用程序的工具集成在一起的用于开发应用程序的软件系统。Visual C+软件包中的Developer Studio就是一个集

6、成开发环境,它集成了各种开发工具和VC编译器。程序员可以在不离开该环境的情况下编辑、编译、调试和运行一个应用程序。IDE中还提供大量在线帮助信息协助程序员做好开发工作。Developer Studio中除了程序编辑器、资源编辑器、编译器、调试器外,还有各种工具和向导(如AppWizard和ClassWizard),以及MFC类库,这些都可以帮助程序员快速而正确地开发出应用程序。 向导(Wizard) 向导是一个通过一步步的帮助引导你工作的工具。Developer Studio中包含三个向导,用来帮助程序员开发简单的Windows程序,它们是: AppWizard:用来创建一个Windows程序

7、的基本框架结构。AppWizard向导会一步步向程序员提出问题,询问他所创建的项目的特征,然后AppWizard会根据这些特征自动生成一个可以执行的程序框架,程序员然后可以在这个框架下进一步填充内容。AppWizard支持三类程序:基于视图/文档结构的单文档应用、基于视图/文档结构的多文档应用程序和基于对话框的应用程序。也可以利用AppWizard生成最简单的控制台应用程序(类似于DOS下用字符输入输出的程序)。 ClassWizard:用来定义AppWizard所创建的程序中的类。可以利用ClassWizard在项目中增加类、为类增加处理消息的函数等。ClassWizard也可以管理包含在对

8、话框中的控件,它可以将MFC对象或者类的成员变量与对话框中的控件联系起来。 ActiveX Control Wizard:用于创建一个ActiveX控件的基本框架结构。ActiveX控件是用户自定义的控件,它支持一系列定义的接口,可以作为一个可再利用的组件。 MFC库 库(library)是可以重复使用的源代码和目标代码的集合。MFC(Microsoft Fundamental Casses)是Visual C+开发环境所带的类库,在该类库中提供了大量的类,可以帮助开发人员快速建立应用程序。这些类可以提供程序框架、进行文件和数据库操作、建立网络连接、进行绘图和打印等各种通用的应用程序操作。使用

9、MFC库开发应用程序可以减少很多工作量。2、项目开发过程在一个集成的开发环境中开发项目非常容易。一个用C+开发的项目的通用开发过程可以用左图表示。建立一个项目的第一步是利用编辑器建立程序代码文件,包括头文件、代码文件、资源文件等。然后,启动编译程序,编译程序首先调用预处理程序处理程序中的预处理命令(如#include,#define等),经过预处理程序处理的代码将作为编译程序的输入。编译对用户程序进行词法和语法分析,建立目标文件,文件中包括机器代码、连接指令、外部引用以及从该源文件中产生的函数和数据名。此后,连接程序将所有的目标代码和用到的静态连接库的代码连接起来,为所有的外部变量和函数找到其

10、提供地点,最后产生一个可执行文件。一般有一个makefile文件来协调各个部分产生可执行文件。 可执行文件分为两种版本:Debug和Release。Debug版本用于程序的开发过程,该版本产生的可执行程序带有大量的调试信息,可以供调试程序使用,而Release版本作为最终的发行版本,没有调试信息,并且带有某种形式的优化。学员在上机实习过程中可以采用Debug版本,这样便于调试。 选择是产生Debug版本还是Release版本的方法是:在Developer Studio中选择菜单Build|Set Active Configuration,在弹出的对话框中,选择所要的类型,然后选择OK关闭对话框

11、。 Visual C+ 集成开发环境中集成了编辑器、编译器、连接器以及调试程序,覆盖了的开发应用程序的整个过程,程序员不需要脱离这个开发环境就可以开发出完整的应用程序。 3、集成开发环境进入Developer Studio 如果你使用的是Visual C+ 6.0,则要进入Developer Studio,需要单击任务栏中开始后选择程序,找到Microsoft Visual Studio 6.0文件夹后,单击其中的Microsoft Visual C+6.0图标,则可以启动Developer Studio。 如果你使用的是Visual C+ 5.0,则要进入Developer Studio,需

12、要单击任务栏中开始后选择程序,找到Microsoft Visual C+ 5.0文件夹后,单击其中的Microsoft Visual C+5.0图标,则可以启动Developer Studio。 Developer Studio的界面 Developer Studio用户界面是一个由窗口、工具条、菜单、工具及其他部分组成的一个集成界面。通过这个界面,用户可以在同一环境下创建、测试、调试应用程序。 VC5和VC6的Developer Studio的初始化界面有一些小的差异,VC5的界面如下: 工具条和菜单,用于提供用户操作的命令接口。菜单以文字和层次化的方式提供命令接口,工具条由一系列按钮组成。

13、这些按钮用一系列小的位图标志。工具条以图标方式提供快速的命令选择。菜单和工具条在开发的不同进程有不同显示内容。当第一次打开Developer Studio时,标准的工具条和菜单就会显示出来,随着开发的不同步骤,不同的工具条就会自动显示出来,菜单也会有所变化。工具条有很多种,你可以显示任意多的工具条,只要屏幕空间允许。工具条可以任意移动,也可以放大缩小。工具条和菜单条功能基本相同,唯一的区别是:菜单条总占据一行,并且一般不能隐藏。 工作区窗口,这个窗口包含关于正在开发的这个项目的有关信息。在没有开发任何项目时,该窗口显示系统的帮助目录。当打开一个项目以后,工作区窗口将会显示关于当前项目的文件信息

14、和类的信息。下图是打开一个项目hello以后的工作区窗口(假设该项目由两个文件cpp1.cpp, cpp2.cpp组成)。文档窗口区,这个区域可以显示各种类型的文档,如源代码文件、头文件、资源文件等。可以同时打开多个文档。 输出窗口,输出窗口用来显示几种信息,可以通过选择不同的标签显示不同的信息。这些信息包括:编译连接结果信息(Build标签)、调试信息(Debug标签)、查找结果信息(Find in Files标签)。其中查找结果信息有两个标签,可以显示两次在文件中查找指定内容的结果 VC6因为在联机帮助系统上比VC5做了很大改进,所以在工作区窗口中没有VC5的InfoView,初始化界面的

15、其他部分都与VC5相似。Deleveloper Studio使用Microsoft Developer Network(MSDN)库作为它的联机帮助系统。其界面如下:总的来说,窗口和命令接口(包括工具条和菜单条)是构成界面的最主要组成部分。通常有两种窗口:文档窗口和可附着(docking)窗口。文档窗口显示在文档窗口区,用于显示和编辑文档,其的大小和位置可以随其所处的Developer Studio窗口的改变而改变,可以最大化和最小化。可附着窗口可以附着于应用程序窗口的边界,也可以浮在屏幕上的任何位置。可附着窗口有:工作区(workspace)窗口,输出(output)窗口,调试窗口(包括va

16、riable, watch, local等窗口)等。 文档窗口的位置、大小及是否可见和它所在的项目有关,docking窗口的位置、大小及是否可见则与项目进行的状态以及各种编辑和调试的操作有关。 各种窗口和各种工具条以及菜单构成了界面的布局。一旦用户决定了一种界面布局,系统就会为一直为用户保持这种布局,直到用户下一次改变该布局为止。 获得帮助信息 大多数时候,你可以通过按F1得到上下文帮助。如在编辑文件时按F1可以得到有关编辑的帮助,在编译连接错误信息上按F1可以得到关于该错误的帮助信息。如果想系统地获得帮助,在VC5中可以单击工作区窗口的InfoView标签,从其中选择要想了解的内容。要想查找

17、关于某个话题的帮助,可以选择菜单Help|Search,在查询对话框中进行查找。VC6中,可以通过选择菜单Help|Contents来启动MSDN查阅器,MSDN查阅器是一个功能强大的程序,可以方便地浏览、查找信息,要想知道具体如何使用MSDN查阅器,可以在MSDN查阅器中选菜单Help下的命令。 Visual C+的编辑器 Developer Studio包含一个功能强大的编辑器,可以编辑将被编译成Windows程序的Visual C+源文件。这个编辑器有点象字处理器,但是没有字处理器具备的复杂的排版、文本格式等功能,它注重的是如何帮助程序员快速高效地编制程序。它具有以下特点: 自动语法。用

18、高亮度和不同颜色的字来显示不同的语法成分,如注释、关键字和一般代码用不同的颜色显示 自动缩进。帮助你排列源代码,使其可读性更强 参数帮助。在编辑时用到预定义的windows函数时,可以自动为你显示函数参数 集成的关键字帮助。能够使你快速得到任何关键字、MFC类或Windows函数的帮助信息(按F1即可) 拖放编辑。能够用鼠标选择文本并自由拖动到任意位置 自动错误定位。能自动将光标移动到有编译错误的源代码处。 当你打开一个源代码文件时,就可以利用编辑器对其进行编辑。源代码文件在文档显示区显示,每个文件有独立的显示窗口。如果你选择用其他编辑器编辑源文件,必须将它以纯文本的方式保存。VC的编译器不能

19、处理其中有特别格式字符的文件。4、常用功能健及其意义为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些常用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令来控制操作。下面是一些最常用的功能键,希望学员在实验中逐步掌握。 操作类型功能键对应菜单含义文件操作Ctrl+NFile|New创建新的文件、项目等Ctrl+OFile|Open打开项目、文件等Ctrl+SFile|Save保存当前文件编辑操作Ctrl+XEdit|Cut剪切Ctrl+CEdit|Copy复制Ctrl+VEdit|Paste粘贴Ctrl+ZEdit|Undo撤消上一个操作C

20、trl+YEdit|Redo重复上一个操作Ctrl+AEdit|Select All 全选DelEdit|Del删除光标后面的一个字符建立程序操作Ctrl+F7Build| Compiler current file 编译当前源文件Ctrl+F5Build|Run exe 运行当前项目 F7Build|Build exe建立可执行程序F5Build|Start Debugging启动调试程序调试F5Debug|Go继续运行F11Debug|Step into 进入函数体内部shift+F11Debug|Step out从函数体内部运行出来F10Debug|Step over执行一行语句F9设置

21、/清除断点Ctrl+F10Debug|Run to cursor运行到光标所在位置shift+F9Debug|QuickWatch快速查看变量或表达式的值Shift + F5Debug|Stop debugging停止调试实验一 C语言程序初步一、目的和要求1、 熟悉C语言运行环境。2、 掌握语言程序的书写格式和语言程序的结构。3、 掌握C语言上机步骤,了解运行一个C程序的方法。4、 本实验可在学习完教材第一章后进行。二、实验内容1、 C语言上机步骤:(A)、在四川大学计算机基础教育实验中心上机,启动后请选择进入Windows 2000系统。(B)、常用命令编辑切换(F6),编译(F9),运行

22、(CTRL+F9),显示结果(ALT+F5)其它常用命令见“附录一”。2、有下面的程序,目的是想计算由键盘输入的任意两个整数的积。exl.c#include (stdio.h);main()scanf(“%x,%y”,&x,%y)p=prodct(x,t)printf(“The product is :”,p)int prodct(int a ,int b )int c c=a*breturn c请调试上述程序。三、实验步骤、静态地检查上述程序,改正程序中的错误。、在编辑状态下照原样键入上述程序。、编译并运行上述程序,记下所给出的出错信息。、按照事先静态检查后所改正的情况,进行纠错。、再编译执

23、行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。、下面给出组测试用例,你认为哪几组较好?为什么?()0, ()0, (),(),(),(),要测试出上述程序中所有错误,你认为应当用几组测试用例?四、分析与讨论、记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因。、总结程序的结构和书写规则。实验二 数据类型一、目的和要求、了解语言中数据类型的意义。、本实验可在学习了教材第.3节后进行。二、实验内容和步骤、下面的程序试图计算由键盘输入的任意两个整数的平均值:include main()int x,y,a;scanf(“%x,%y,&x,&y);a=

24、(x+y)/2;printf(“The average is :”a);调试无语法错误后,分别使用下列测试用例对上述程序进行测试:(),(), (),(),(),(),(),(),(),(),1、分析上述哪几组测试用例较好?通过测试,你发现程序有什么错误了吗?若有错误,请指出错误原因。、 操作符sizeof用以测试一个数据或类型所占用的存储空间的字节数。请编写一个程序,测试各基本数据类型所占用的存储空间大小。三、分析与讨论如何正确地选用数据类型?(提示:给合前面做过的两个实验及书本进行讨论总结)实验三 运行符与表达式一、目的和要求、理解常用运行符的意义。、掌握语言表达式的运行规则。、本实验可在

25、学习了教材第2.3节后进行。二、实验内容和步骤、编写一个语言程序,测试下列各表达式i , ji + 1,j + 1i + + ,j + + + i, + + ji + + + + + j+ + i + + + + + j + +要求在各表达式中i 和j都分别有相同的初值。在实验中注意下列问题:() 哪些表达式是错误的?为什么?() 理解,i,i的意义和优先级别。、编写一个程序,测试常用的十个运算符的优先顺序。四、分析与讨论分析总结运算符的优先级。实验四 输入与输出一、目的和要求、掌握语言程序输入、输出的方法和格式。、本实验可在学习教材第二章后进行。二、实验内容与步骤、输入并编辑下面的程序mai

26、n()int a,b;float c,d;long e,f;unsigned int u,v;char c1,c2;scanf(“%d,%d”,a,b);scanf(“%f,%f”,c,d);scanf(“%ld,%ld”,e,f);scanf(“%o,%o”,u,v);scanf(“%c,%c”,c1,c2);printf(“n”);printf(“a=%7d,b=%7dn”,&a,&b);printf(“c=%10.2f,d=%10.2fn”,&c,&d);printf(“e=17ld,f=%17ldn”,&e,&f);printf(“u=%o,d=%on”,&u,&v);printf(“

27、c1=%c,d=%cn”,&c1,&c2);这个程序有语法错误吗?为什么?、调试上述程序无语法错误后,用下面的测试数据,对程序进行测试:a=123,b=456,c=17.6,d=71837.65,e=70000,f=,u=62000,v=58765,c1=a,c2=b分析运行结果。特别注意输入c1,c2的值是什么?什么原因?、将输入e和f的语句改为:scanf(“%d,%d”,&e,&f);再用上述测试数据测试并分析结果。、将输入u、v的语句改为:scanf(“%d,%d”,&u,&v);再用上述测试数据测试并分析结果。、将输出e,f的语句改为:printf(“e=%17d,f=%17dn”,

28、e,f);再用上述测试数据测试并分析结果。、将输出u、v的语句改为:printf(“u=%u,v=%un”,u,v);或printf(“u=%d,v=%dn”,u,v);再用上述测试数据测试并分析结果。、请读者自己修改程序和改变数据输入的形式,分析各种情况下的输入与输出。、在scanf(“%c,%c”,&c1,&c2);语句之前加一个语句:getchar();、验证转义字符n 与 r的意义有何不同。三、分析与讨论、总结在printf函数中可以使用的各种格式指定符,并给出样例。、总结在printf函数中可以使用的各转义字符及其功能。实验五 选择结构一、实验目的、了解条件与程序流程的关系、了解用不

29、同的数据使程序的流程覆盖不同的语句、分支和路径。、本实验应在学习教材第3.2节后进行。二、实验内容和步骤、题目有如下程序段:if (a1&b= =0) x=x/a;if(a=2|x1) x=x+1;为了更容易明白程序的逻辑结构,我们用图5.1所示流程图来加以描述。a1&b= =0x=x/aa= =2|x1x=x+1 y n y n 要求增加一些输入语句和输出语句,以便使上述程序能在不同的a,b和x值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。、实验步骤记下分别使用下列各组数据运行时的操作流程。() a=1,b=1,x=1;() a=1,b=1,x=2;() a=3,b

30、=0,x=1;() a=2,b=1,x=4;() a=2,b=1,x=1;() a=1,b=0,x=2;() a=2,b=1,x=1;() a=3,b=0,x=2。三、分析讨论(1) 用哪一组数据就可使程序中的每个处理语句都执行一次?为了找出程序中各条处理语句中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。(2) 用哪两组数据就可以使程序段中的每个分支都运行一次?这种情形与上面的讨论有何不同?如果为了找出程序中积压分支中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。(3) 用哪两组数据就可以把判定框中的每个条件运算都进行一次?如果为了测试出判定条件中的错

31、误,应使用哪些数据对程序进行测试?请上机验证自己的结论。(4) 用哪四组数据才可以把各种条件的组合都检测一遍? 如果为了测试各种条件的组合的情形,应该使用什么样的测试数据?请上机验证自己的结论。(5) 用哪四组数据才可以把起始到终止的各条路径都覆盖一次?如果为了测试出程序在不同路径下的错误,应该使用什么样的测试数据?请上机验证自己的结论。四、进一步的实验1 题目从键盘上输入三个数,让它们代表三条线段的长度,请写一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序。2 请分别设计下列数据对自己的程序进行测试:(1) 找出各条语句中的错误。(2) 找出积压分支中

32、的错误。(3) 找出各条件中的错误。(4) 找出各种条件组合中的错误。(5) 找出各条路径中的错误。实验六 条件型循环结构一、目的和要求1、掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。2、了解条件型循环结构的基本测试方法。3、本实验可在学习教材3.3节后进行。二、实验内容与步骤1、下面是一个计算e的近似值(使误差小于给定的)的程序。main()double e=1.0,x=1.0,y,detax;int i=1;printf(“n please input enter a error:”);scanf(“%lf”,&detax);y=1/x;while(y=

33、detax)x=x*I;y=1/x;e=e+y;+i;printf(“%12.10lf”,e);2、实验步骤(1)、阅读上面的程序,写出程序所依据的计算公式。(2)、当输入的detax各是什么值时,能分别使程序按下面的要求运行:.不进入循环;.只循环一次;.只循环两次;.进入死循环(程序将永远循环下去)。为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?(3)、原程序中while语句中的y=detax,分别换成ydetax,y=detax,ydetax,y=detax,观察程序运行将会有什么变化。假如不知道机器内的程序中的各语句实际上是什么,分别输入什么样的detax来测试出whi

34、le语句的循环条件写错了。(4)、把原程序中while语句之前的y=1/x语句去掉,观察程序的运行将会发生什么样的变化。假如不知道机器内的程序实际上是怎么写的,输入什么样的detax就能测试出少了上述这条语句。(5)、若把原程序中的+i换成i+,观察程序的运行发生了什么变化?假如不知道这条语句到底是怎么写的,输入什么样的detax就能测试出这条语句写错了.(6)、把原程序中的while结构改写成dowhile结构,再分别按上述的(2)、(3)两步进行实验。三、分析讨论总结一下测试条件循环结构的一般方法。实验七 计数型循环结构一、 目的和要求1、 掌握如何正确地控制计数型循环结构的次数2、 了解

35、对计数型循环结构进行测试的基本方法3、 了解在嵌套循环结构中,提高程序效率的方法4、 本实验应在学习了教材第3.3.4进行二、 实验内容与步骤1、 实验题目下面是一个用以计算的C程序。main()int i ,j;long sum=0;for(i=1,i=20,i+) for(j=1;j=3;j+) sum=sum+(i+1)*(i+1)*(j+2)printf(“sum is :%dn”,sum);2、 实验步骤(1) 将上述程序中的和分别做什么样修改,能使程序按如下要求运行:.不循环;.外循环1次,不进入内循环;.外循环,内循环各1次;.外循环1次,内循环2次; .外循环 2次, 内循环1

36、次;.外循环19次,内循环3次;.外循环20次,内循环2次;.外循环21次,内循环3次。(2) 试修改程序,以便能知道控制表达式 i=1;j=20;i+和j=1;j3;j+=各执行了多少次?(3)内循环与外循环的控制表达式进行对换,观察程序的执行结果有无变化,并且观察对换后的外循环与内循环控制表达式执行的总次数有无变化?(4)将(3)中程序写为main()int i,j,k;long sum=0;for (j=1.j=3.j+)k=j+2;for(i=1;i=20;i+)sum=sum+(i+1)*(i+1)*k; printf(“sum is :%dn”,sum);观察程序的执行结果有无变化

37、?(5)将(3)中程序改写为main() int I,j,m,n; long sum=0; for(j=1;j=3;j+) m=j+2; for(I=1;j=20;I+) n=I+1; sum=sum+m*m*k; printf(“sum is :%dn”,sum);观察程序的执行结果有无变化?(6)在(5)的程序中,若将外循环控制表达式分别做如下修改:.j=1;j=3;j+.j=1;j3;j+.j=1;j3;j-.j=1;j3;j+.j=0;j=3;j+=.j=0;j3;j+j=1;j=3;j+j=1;j3;+j观察程序的执行结果有无变化?三、 分析讨论(1) 如何测试计数型循环结构的控制表

38、达式中的错误?(2) 从实验中你得到了哪些提高嵌套循环程序效率的启示?实验八 函数的定义及调用一、 目的与要求1、 掌握C语言函数定义及调用的规则。2、 理解参数传递的过程。3、 本实验可在学习了教材第4.1节后进行。二、 实验内容与步骤1、 上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。main() int,y; printf(“%dn”,sum(x+y); int sum(a,b) int a,b;return(a+b);2、 编写并调试一个求(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。三、 分析讨论1、 针对以上实验内容写出相应的参数传递过

39、程并分析结果。2、 讨论参数的传递的几种形式。实验九 数组一、目的和要求1、掌握数组定义的规则。2、掌握C语言数组的基本用法。3、本实验可在学习教材第5.2节后进行。二、实验内容与步骤1、编写程序,测试下列数组的定义方式是否正确(1) main()int n;scanf(“%d”,&n);int an;(2) main() const int n=10;int an;(3) #include #define M 10 main() int aM;(4) main() int a2+2*4;(5) #include #define M 2#define N 8 main() int aM+N;

40、通过这一实验,可以说明什么问题?2、运行下面的C程序,根据运行结果,可以说明什么?main( ) int num5=1,2,3,4,5; inti i; for(i=0;i=5;i+) printf(“%d”,numi); 3、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。4、为一个起泡排序程序设计测试用例,并测试之。5、1983年,在ACM图林奖颁奖大会上,杰出的计算机科学家,UNIX的鼻祖,C语言的创始人之一,图林大奖得主,Ken Thompson 上台的第一句

41、话是:“我是一个程序员,在我的1040表上,我自豪地写上了我的职业。作为一个程序员,我的工作就是写程序,今天我将向大家提供一个我曾经写过的最精练的程序。”这个程序如下: char s = t, 0, n, ,;,n,n,/,*,n,/* (213 lines deleted)*/0 ;/* The string is a* representation of the body* of this program from 0* to the end */main( ) int i; printf(“char ts=” ;for (i=0;si;i+)printf(“t%d,n”,si);printf(“%s”,s);请上机运行这个程序,指出它的功能和运行结果。三、分析讨论通过实验,分析定义与引用数组的区别。实验十 指 针 (一)一、目的和要求1. 熟悉指针的正确用法。2. 本实验可在学习了教材第6.3节之后运行。二、实验内容和步骤1、指出下面程序错误的原因。main( )int x=10,y=5,*px,*py;px=py;px=&x;py=&y;printf(“*px=%d,*py=%d,*

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁