C C++程序设计实验指导与测试(第4版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-13 06:13:13

点击下载

作者:孙淑霞,肖阳春,等

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

C C++程序设计实验指导与测试(第4版)

C C++程序设计实验指导与测试(第4版)试读:

普通高等教育“十一五”国家级规划教材配套参考书,国家精品课程教材,大学计算机规划教材

C/C++程序设计实验指导与测试(第4版)

CIP号:第301553号

ISBN:978-7-121-22166-8

中图分类:TP312

关键词:C语言-程序设计-高等学校-教学参考资料

北京,2014/01,电子工业出版社

版次:4

印次:1

价格:30.00

印张:12.5

字数:350

开本:787×1092 1/16

语种:中文摘要

本书是普通高等教育“十一五”国家级规划教材《C/C++程序设计教程(第4版)》的配套教材。全书分为5部分,包括实验指导、测试、测试解答、模拟试题及答案、Visual C++6.0实验环境简介。实验指导由10个实验项目组成,测试部分由10章组成。实验指导和测试部分的内容均与《C/C++程序设计教程(第4版)》的各章内容相对应,以便进行实验教学和学生课后练习。对于每道实验题,书中都给出了较详细的提示和帮助性的指导;测试部分的题型主要是针对理论考试题型设置的。书中还给出了2套C语言笔试和上机考试的模拟测试题及答案。附录中提供了C语言常见的编译错误信息、连接和运行中的错误信息。

本书可作为高等院校相关专业本科生、研究生的相关课程的实验教学用书,也可作为计算机专业相关课程的实验教材,还可作为C/C++程序设计自学者的参考书。章海涛 责任编辑雷珍 编著肖阳春 编著孙淑霞 编著章海涛 其他贡献者张玉 其他贡献者徐海燕 封面设计第4版前言

本书是与普通高等教育“十一五”国家级规划教材《C/C++程序设计教程(第4版)》(ISBN 978-7-121-22128-6)配套使用的实验指导与测试用书。在多年的使用中,本书得到不少学校的支持,同时提出了一些宝贵意见。为了更好地满足广大教师和学生的需求,便于教师的教学和学生的学习,我们对其进行了进一步的改进,使本书具有如下特点:(1)在内容的安排上注重理论和实践的结合,读者在学完每章后,都可以通过完成相应的实验和测试习题巩固所学的理论知识。考虑到初学者的困难,实验指导根据题目的难易程度给予了不同程度的提示和帮助,附录中给出了部分实验的参考源代码。测试习题的分析也根据习题的难易程度给予详略程度不同的解释,使读者能够真正掌握所学的知识点。读者可根据学时情况选择实验内容和习题。(2)针对学生的不同基础,实验和习题中都给出了选做题(标注“*”的题目),尽可能地满足每个学生的需求。学生除了在老师指导下完成基本实验外,还可以根据自己的实际情况选做具有设计性和综合性的实验。(3)每个实验后面的测试题由学生独立完成,可作为教师随堂测试学生的测试题,也可以作为学生的自测试题。(4)测试题用于课后学生自测学习,其中的*题可供学有余力的学生课后练习、提高编程能力。

为了帮助读者解决上机调试程序中的错误,附录内容包括:常用的Turbo C库函数,Visual C++6.0常见的编译错误信息和连接错误信息,部分实验参考源代码。

要想学好程序设计课程,需要教师和学生的共同努力。读者需要多动手,多实践,多思考。一分耕耘,一分收获,坚持耕耘定会得到意想不到的收获。

本书第1~3部分由孙淑霞编写,第4部分由肖阳春编写,第5部分由雷珍编写。孙淑霞统编了全书。由于水平有限,书中难免有错误之处,请读者批评指正。

最后要感谢电子工业出版社在本书的出版过程中给予的大力支持。

本书为国家级精品课程《C/C++程序设计教程》的配套教材,开发了配套的资源建设。如果需要书中的有关资源,可以从课程网站上(http://202.115.138.30/ec3.0/c57/zcr-1.htm)或者http://www.hxedu.com.cn直接下载,也可以直接与我们联系(E_mail:ssx@cdut.edu.cn)。

作者第1部分 实验指导实验1 C/C++语言简单程序的编写和调试一、实验目的及要求(1)熟悉Visual C++6.0编译系统的窗口界面,学会在该系统下编辑、编译、连接、运行和调试C程序的基本方法。(2)通过编写简单程序,掌握C程序的基本组成、结构,以及用C程序解决实际问题的步骤。(3)通过编写和调试程序,掌握标识符的正确命名。(4)掌握基本输入、输出函数的正确使用。(5)从课程网站(http://202.115.138.30/ec3.0/c57/zcr-1.htm,下同)下载并解压CSY.rar文件,SY1文件夹中包含本实验中的相关文件:S1-1.c、S1-2.c、S1-3-1.cpp、S1-3-2.cpp、CS1-1.c、CS1-2.c。其中包含了全部调试程序的代码,编写程序题需要根据实验项目要求自己编写。(6)认真总结每个实验所涉及的知识点和技能点,达到举一反三的目标。二、实验项目【实验1.1】调试程序S1-1.c,使其能够运行出正确结果。

指导

完成实验的基本步骤:(1)在Visual C++6.0中打开S1-1.c

双击SY1文件夹中的S1-1.c,系统自动启动Visual C++6.0并打开S1-1.c。(2)编译

选择下面方法之一进行编译:

⊙ 执行“Build|Compile S1-1.c”命令。

⊙ 单击“编译微型条”工具栏中的“Compile(Ctrl+F7)”按钮。

⊙ 按+组合键编译程序S1-1.c。

如果没有建立工程工作区,将弹出如图1.1所示的对话框,询问是否要建立一个默认的工程工作区。图1.1 信息提示对话框

Visual C++必须有工程才能编译,因此单击“是”按钮,开始编译该文件(这时,在保存S1-1.c文件的文件夹中会生成与S1-1.c同名的.dsw和.dsp文件)。编译有错,在主窗口下方的编译输出窗口中显示错误信息:

具体的错误信息显示如下:

错误信息说明了S1-1.c程序中的错误在第11行,错误的性质是语法错,错误的原因是在标识符printf前面少了分号。

修改编译错误时,在编译输出窗口中双击所显示的错误信息行,系统会在该错误信息行前会出现一个指示箭头,用户可以快速找到该行,然后根据错误的原因修改程序,修改后再重新编译,直到没有任何错误为止。(3)连接

执行“Build|Build S1-1.exe”命令或按键,对被编译后的目标文件进行连接。如果连接过程中发现错误,则会发出连接错误的信息,修改程序直到连接没有错误为止。连接该程序将显示如下错误信息:

上面的信息说明有不确定的外部符号“_main”,实际就是“main”写错了,程序中写成了“mian”,修改后再连接就正确了。编译连接成功时,在编译输出窗口中就会显示如下信息:

表明这时生成了可执行文件S1-1.exe。(4)执行

执行“Build|Execute S1-1.exe”命令,或按+组合键,或单击“编译微型条”工具栏中的“Execute Program(Ctrl+F5)”按钮,则S1-1.exe文件被执行,并在另一个输出结果的DOS窗口中显示结果:

其中,“Press any key to continue”是系统给出的提示信息,按任意键后,关闭输出结果窗口,回到源程序窗口。

Visual C++6.0的调试功能很强大,表1.1是最基本的调试命令及其图标、快捷键和说明。在调试程序中适当地使用这些命令可以提高调试程序的效率。表1.1 Visual C++6.0基本调试命令续表

提示:

① 在调试程序的过程中如果出现编译错误,要由上至下一个一个地去修改,每改一处,就要重新编译一次,不要想着一次把所有错误都修改后再编译。因为,有时一个错误会引起下面程序段中与之有关的行也出现错误,改正了这一个错误,其他与之有关行的错误也就随之消失了。

② 有些错误会出现在连接阶段,如把“main”误写成了“mian”,编译程序把“mian”当成是用户自定义函数进行编译,没有语法错误,也就没有报错。但由于C程序必须有一个且只能有一个main()函数,连接程序没有发现main()函数,因此在连接阶段报错。

与之类似的错误有:将“printf”误写为“print”,连接程序也会因为找不到相应的库,在连接阶段给出连接错误的提示信息“Undefined symbel'_print'”,说明“print”是未定义符号。

③ 当调试程序中出现了编译、连接或运行错误,可以查看附录C中提供的常见错误信息。要注意培养自己独立分析问题和解决问题的能力,积累查错的经验,逐渐提高调试程序的能力;千万不要被错误所吓倒,相信自己一定会在调试程序的过程中成长起来。【实验1.2】S1-2.c的功能是计算并输出5个整型数的平均值(要求保留两位小数),调试S1-2.c,使其能够运行出正确结果。

指导

按照实验1.1中所述的调试程序的基本步骤,调试本程序。(1)编译

编译该程序会显示15条错误信息,这时要从第1条信息开始修改,第1条信息为:

错误的原因是:数字后面的后缀是错误的,说明第5行的标识符“5aver”是错误的。根据标识符的正确表示,可以将其改为“_5aver”。

继续编译,显示还有6个错误,第1条信息显示第8行的错误原因与上述相同,将“5aver”修改为“_5aver”。显然,应该将第9行的相同错误也进行修改。

修改后再编译,这时显示:

说明第8行有一条警告错,警告错的原因为:将int型的数据转换为float型,可能会丢失数据。这是因为第8行赋值运算符右端的整除运算将丢掉小数点后面的数,再将其结果赋给一个float型的变量。这时可以将赋值运算符右端的5改为5.0,然后继续编译。

再次编译显示第8行仍然有警告错:

其错误原因是:将double型数据转换为float型可能丢失数据。这是因为Visual C++6.0将5.0作为double型数据,这样赋值运算符的右端运算后的数据就是double类型,而赋值运算符的左端的“_5aver”是float型。在Visual C++6.0中要避免这种错误,只需将该变量定义为double型。(2)连接、运行

连接程序没有错误,运行程序,输出结果为:

这是按%f格式输出的结果,题目要求保留两位小数,只需将格式改为%.2f,这样输出的结果就是:【实验1.3】在Visual C++6.0中练习多文件程序的编译、连接和运行,使程序得到正确结果。

指导(1)创建工程(project)

在Visual C++6.0主窗口中执行“File|New”命令,出现“New”对话框,单击“Projects”标签,然后按以下步骤执行:

① 在列出的工程中选择“Win32 Console Application”,在对话框的“Platforms(平台)”框中出现“Win32”。

② 在右边的“Project name”文本框中输入要建立的工程名(如s1_3)。

③ 在“Location”框中选择工程所在的路径,如图1.2所示,单击“OK”按钮。图1.2“New”对话框

④ 屏幕上出现“Win32 Console Application-Step 1 of 1”对话框,选择“An empty project”单选按钮,再单击“Finish”按钮,弹出“New Project Information”对话框,单击“OK”按钮,返回系统主窗口。这时,空工程s1_3创建结束。(2)向工程中添加文件

在主窗口中执行“Projects|Add File into Project|Files”命令,出现“Insert Files into Project”对话框,在“查找范围”框中选择要添加到当前工程中的文件所在的目录(文件夹),在列表框中选定要添加的所有文件,如图1.3所示,然后单击“OK”按钮。(3)编译连接和运行工程文件

执行“Build|s1_3.exe”命令,系统将对s1_3中的各文件逐个进行编译,然后连接。如果没有错,则生成一个可执行文件,并执行该文件,运行结果显示在MS-DOS窗口中。图1.3“Insert Files into Project”对话框三、测试

TS1.1 调试程序CS1-1.c,使其得到正确结果。

TS1.2 调试程序CS1-2.c,使程序得到正确结果(要求输出结果保留两位小数)。实验2 C语言程序设计基础一、实验目的及要求(1)通过编程进一步理解和掌握运算符的确切含义和功能。(2)理解和掌握运算符与运算对象的关系。例如,单目运算符只对一个运算对象进行操作,双目运算符需要两个运算对象。(3)理解和掌握运算符的优先级和结合方向。(4)通过编写程序,掌握C语言的几种基本数据类型,如整型int、字符型char、实型float、双精度型double,以及由这些基本类型构成的常量和变量的使用方法。(5)掌握基本输入/输出函数的使用方法,包括printf()函数、scanf()函数、getchar()函数和putchar()函数。(6)从课程网站上下载并解压CSY.rar文件,SY2文件夹中包含本实验中的相关文件:S2-1.c、S2-4.c、CS2-1.c、CS2-2.c。其中包含了全部调试程序和改错题的代码,编写程序题需要根据实验项目要求自己编写。(7)认真总结每个实验所涉及的知识点和技能点,达到举一反三的目标。二、实验项目【实验2.1】修改程序S2-1.c,使其可以计算任意两数之和。

指导(1)程序S2-1.c运行结果为:

在S2-1.c中,变量x、y的值由变量初始化得到。该程序只能求x=1与y=1的和,如果要求任意两数之和,变量x、y的值必须在程序运行过程中通过scanf()函数输入。

输入数据前,用户最好能够看到一个提示输入的信息,使用户按照屏幕提示信息进行数据的输入。这种灵活和人性化的程序,只需在输入前用printf()函数输出相关的提示信息。

提示:

通过该程序的修改,读者应该学会用良好的编程风格编写程序。

① 编写程序时要考虑程序的通用性,需要变化的量尽量不要通过赋值的方式给定(如S2-1.c中的x和y),而是通过输入的方式使变量得到当前所需的值。

② 从键盘输入数据时,最好先给出提示信息,提示要输入数据(如S2-1.c中在输入x和y前用printf()函数输出屏幕提示信息)。【实验2.2】编写程序S2-2.c。输入一个学生某学期的M(M=5)门课程的成绩(整型数),计算并输出该学生的平均成绩(保留两位小数)。

指导

算法实现步骤:

① 给5个已定义的整型变量输入5门课程成绩。

② 计算平均成绩,并赋给一个已定义的实型变量。

③ 输出平均成绩。

提示:

计算平均成绩时不要做整除运算,因为整除运算只能得到整数部分,舍弃小数部分。通过该程序进一步认识数据类型,以及不同类型数据的混合运算。【实验2.3】编写程序S2-3.c。在屏幕上输出如下简单菜单:

指导

可以把菜单的每行看成一个字符串,用printf()函数输出每行的字符串即可。注意输出的效果,使菜单美观。【实验2.4】读程序S2-4.c,说出程序运行结果,然后运行程序验证其结果。

指导

程序S2-4.c运行结果如下:

① 对于逻辑表达式++a||++b&&++c,由于a的初值为1,++a为真,所以后面的运算不再进行。运算后a=2,b和c仍然为1。

② 对于表达式 w>x&&y>z,由于w=1,x=2,所以w>x为假,即整个表达式的结果为假,e为0。【实验2.5】编写程序S2-5.c。程序的功能是:输入一个数字字符,将该数字字符转换为整数输出;输入一个0~9的整数,将其转换为对应的数字字符输出。

指导

数字字符可用getchar()函数输入,将其与字符'0'相减就可转换为对应的整数,因此将一个0~9的整数加上字符'0'就可将其转换为对应的数字字符。三、测试

2.1 填空题。程序CS2-1.c的功能是:从键盘上输入一个小写英文字母,将该字母转换成大写字母,并求出它的下一个字母。

请勿改动程序的其他任何内容,仅在方括号[]处填入所编写的若干表达式或语句,并去掉方括号[]及括号中的数字。

源程序CS2-1.c

2.2 改错题。程序CS2-2.c的功能是计算公式t=1+1/2+1/3+1/4+1/5的值。改正程序中的错误,不得增行或删行,也不得更改程序的结构,使程序能得到正确结果2.283333。实验3 控制结构一、实验目的及要求(1)掌握控制结构程序设计的基本方法,熟练运用:① 选择结构,即if语句、switch语句;② 循环结构,即for语句、while语句、do-while语句。(2)掌握控制转移语句的正确使用方法,并在编程中能灵活使用,通过编程掌握在什么情况下使用下列语句:① 限定转向语句,即break语句、continue语句、return语句;② 无条件转向语句,即goto语句。(3)从课程网站下载并解压CSY.rar文件,SY3文件夹中包含本实验中的相关文件:CS3-1.c、CS3-2.c。其中包含了程序填空和改错题的代码,编写程序题需要根据实验项目要求自己编写。(4)认真总结每个实验所涉及的知识点和技能点,达到举一反三的目标。二、实验项目【实验3.1】编写程序S3-1.c,在屏幕上输出如下简单菜单:

根据菜单选择1~3,用多分支语句实现根据不同的选择显示不同的信息:如果选择1,则显示“Enter data...”;如果选择2,则显示“Data processing...”;如果选择3,则显示“The end.”;否则显示“Error”。

指导

算法实现步骤:

① 用printf()函数在屏幕上输出简单菜单。

② 根据菜单提示选择输入1或2或3。

③ 用多分支选择结构if-else嵌套语句或switch语句实现根据输入显示不同的信息。

程序S3-1.c运行实例:【实验3.2】编写程序S3-2.c,用循环实现计算并输出一个学生某学期的M(M=5)门课程的平均成绩(保留两位小数),并且输出大于平均分的成绩。

指导

在S2-2.c中定义了5个变量,利用循环求和就只需要定义1个变量接收输入的成绩。输入1个成绩就累加1个,循环结束后计算平均分。算法流程图如图3.1所示。【实验3.3】编写程序S3-3.c,输出3位数中的所有水仙花数。

说明:如果一个3位数的个位数、十位数和百位数的立方和等于这个3位数,则称该数为水仙花数。

指导

假设g、s、b分别为一个3位数n的个位、十位和百位上的数,那333么,当g+s+b=n时,称n为水仙花数。

3位数包含100~999,要判断其中某个数是否是水仙花数,首先要得到这个数的个、十、百位数上的数。可以用%和/两种运算符计算得到个、十、百位数上的数。例如,n是100~999中的一个数,n%10就得到个位数。

可以用两种方法实现。

第1种方法是变量n从100~999循环,在循环体中分离出n的个位333数g,十位数s,百位数b,然后判断n=g+s+b是否成立,是则输出n,否则不输出。其流程图如图3.2所示。

第2种方法是用3个循环变量g、s、b分别表示个、十、百位数上333的数,b循环从1~9,g和s循环均从0~9;如果g+s+b=b×100+s×10+g,则输出,否则不输出。

程序S3-3.c运行结果如下:

提示:

求余运算符%可以用于取一个数的尾数,如536%10=6;整除运算符/可以用于去掉尾数,如536/10=53。在程序中经常使用这两种运算符来实现一些算法。图3.1 项目3.2算法流程图图3.2 项目3.3算法流程图【实验3.4】编写打印如下的下三角形式的九九乘法表的程序S3-4.c。

指导

计算机在屏幕上输出结果时是按行输出的,先输出第1行,再依次输出第2行……

上面的九九乘法表从第2行开始,其输出结果是有规律可寻的。第2行第2列开始的输出结果是一个下三角形,下三角形就是一个九九乘法表。九九乘法表中的每个数就是它所在的行号(对应第1列上的数)和列号(对应第1行上的数)相乘的结果。

编程时,可以按以下步骤编写程序:

① 输出第1行。先输出“*”,然后循环输出1~9,换行。

② 输出第2行。第2行是一条虚线,可以用循环按字符'-'输出,也可以按字符串输出,然后换行。

③ 用两重循环输出九九乘法表。先输出行号i,再输出该行的i个数,然后换行。该程序段的算法流程图如图3.3所示。

注意:每输出一行都要换行,否则结果就输出在同一行上了。图3.3 输出九九乘法表流【实验3.5】编写程序S3-5.c。该程序的功能是:输入一串字符,按回车键结束输入,分别输出其中英文字母、数字字符和其他字符(字母和数字字符以外的字符)的个数。

指导

可定义3个变量ch_num、dig_num、oth_num,分别用于记录英文字母、数字字符和其他字符的个数。

可用do-while循环实现其算法,在循环体中:① 输入一个字符给ch;② 判断ch是否为英文字母,如果是,ch_num++;否则判断是否为数值字符,如果是,dig_num++,否则其他字符oth_num++。

循环执行①~②,直到回车,循环结束,程序输出结果。程序S3-5.c运行实例:

提示:

① 判断ch是否为字母,可以用语句“if((ch>='A')&&(ch<='Z')||(ch>='a')&&(ch<='z'))”,而不能用“if('A'<=ch<='Z'||'a'<=ch<='z')”。

② 判断ch是否为数字字符,可以用语句“if((ch>='0')&&(ch<='9'))”,而不能用“if('0'<=ch<='9')”。【实验3.6】编写程序S3-6.c,实现用二分法求方程322x-4x+3x-6=0在-10~10之间的根。

指导

二分法求根的算法实现的具体步骤:

① 输入求值区间的两个端点x1、x2。32

② 根据2x-4x+3x-6计算两个端点x1和x2的函数值f1和f2:

③ 计算当前中点x0及其函数值f0:

④ 判断,如果f0*f1<0,即f0和f1异号,说明根在f0和f1之间,则将x2点移到x0点,即x2=x0,f2=f0;否则x1=x0,f1=f0。

⑤ 如果fabs(f0)>=1e-5,转去执行③,否则执行⑥。

⑥ 输出方程的根。*【实验3.7】编写输出如下图所示的数字金字塔程序S3-7.c。

指导

观察图形可知,这是一个左右对称的图形,垂直中心线上的数字恰好是行号,在每行位于图形垂直中心线左方的数字是逐渐增加的,而右方是逐渐减小的。输出每一行的数字时,可以以中间为界,先输出每行前面的空格,再分别用两个循环输出左右两边的数字。*【实验3.8】编写打印如下上三角形的九九乘法表的程序S3-8.c。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载