C语言程序设计A--实验指导书_第1页
C语言程序设计A--实验指导书_第2页
C语言程序设计A--实验指导书_第3页
C语言程序设计A--实验指导书_第4页
C语言程序设计A--实验指导书_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 。 1欢迎下载 C 语语 言言 程程 序序 设设 计计 指指 导导 书书 (电类专业使用)(电类专业使用) 电气与信息工程学院 计算机系 2009-12-24 精品文档 。 2欢迎下载 目目 录录 前言前言.3 3 实验一实验一 C C 语言环境实验语言环境实验 .4 4 实验二实验二 简单程序设计简单程序设计.1919 实验三实验三 分支结构程序设计分支结构程序设计.2424 实验四实验四 循环结构程序设计循环结构程序设计.2929 实验五实验五 函数程序设计函数程序设计.3434 实验六实验六 数组程序设计数组程序设计.4040 实验七实验七 指针程序设计指针程序设计.4747 实验八实验八 结构程序设计结构程序设计.5252 实验九实验九 文件结构程序设计文件结构程序设计.5757 实验十实验十 综合程序设计综合程序设计.6161 实验十一实验十一 综合程序设计综合程序设计.6464 附录附录 1 1 C C 语言程序的上机步骤语言程序的上机步骤.6565 附录附录 2 2 程序调试的方法程序调试的方法 .6767 精品文档 。 3欢迎下载 前前 言言 一、本课程实验教学的地位和作用一、本课程实验教学的地位和作用 C 语言程序设计课程是一门重要的公共基础课。其主要任务是使学生掌握 C 语言 的基本概念与结构化程序设计方法等方面的知识。实验课是本课程重要的教学环节,通过 本课程的学习使学生加深对讲授内容的理解,熟悉所用计算机系统的操作方法,学会上机 调试程序基本操作,能够运用 C 语言程序解决本专业某些实际问题,并养成严谨的科学态 度和科学的思维方法,从而提高分析和解决问题的能力,为后续课程的学习和在毕业设计 时使用计算机解决实际问题打下良好的基础。 二、本课程应讲授的基本实验理论二、本课程应讲授的基本实验理论 1、掌握所用 VC+6.0 系统的基本操作方法,学会独立使用该系统;了解在该系统上如 何编辑、编译、连接和运行 C 程序; 2、掌握结构化程序设计方法。 三、本课程实验教学应达到的能力要求三、本课程实验教学应达到的能力要求 1、掌握赋值语句的使用方法及各种类型数据的输入输出方法; 2、掌握实现选择和循环的编程方法,学习调试程序; 3、掌握数组的定义、赋值和输入输出方法,掌握字符数组和字符串函数的使用等; 4、掌握定义函数及调用函数的方法; 5、通过实验进一步掌握指针的概念,学会定义和使用指针变量,能正确使用指向数组 的指针变量,能正确使用指向字符串的指针变量; 6、掌握结构体类型变量的定义和使用; 7、掌握文件以及文件指针的概念,初步学会文件的操作函数。 四、本课程实验教学目的与要求四、本课程实验教学目的与要求 学生在实验过程中注意自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程 习惯。应独立完成所布置的上机作业,为保证尽量在统一安排的上机时间内编译运行通过 程序,在每次实验前应事先预习,按照要求写好预习报告,编写好程序。课后撰写实验报 告。 1、了解所用的计算机系统(包括编译系统)的性能和使用方法。 2、复习和掌握与本实验有关的教学内容。 3、准备好上机所需的程序,在上机实验时必须完成预习要求中规定的任务,切忌不编 程或抄别人的程序去上机。 4、对程序中出现的问题应事先估计,对程序中自己有疑问的地方应先作上记号,以便 上机时给予注意。 5、准备好调试程序和运行程序所需的数据。 6、在实验中,学生根据实验指导中的内容进行验证与总结,然后再去完成实验内容中 安排的任务。 五、本课程实验教学考核办法五、本课程实验教学考核办法 实验课成绩占本课程总成绩的 20%。对于没有按照预习要求预习的,视本次实验无效。 对无故缺实验者,本门课程实验成绩以零分计。 精品文档 。 4欢迎下载 实验一实验一 C C 语言环境实验语言环境实验 【实验目的实验目的】 1、熟悉 C 语言的集成环境,了解菜单的使用方法。 2、通过运行简单的程序,了解 C 语言程序的结构。 【实验性质实验性质】验证性 【实验要求实验要求】 1、认真本实验的实验内容,熟悉 VC 环境使用过程 2、会使用 VC 编写最简单的程序 【预习要求预习要求】 1、仔细阅读实验内容中关于 VC 环境使用的步骤 2、有条件的话可以在电脑上按照实验内容实际操作 3、在预习报告中回答问题 【实验内容实验内容】 ( (一一) )、VCVC 环境介绍环境介绍 Visual C+是微软公司开发的,面向Windows 编程的C+语言工具。它不仅支持C+语 言的编程,也兼容C 语言的编程。由于VC+被广泛地用于各种编程,使用面很广,本课程 采用Visual C+作为开发环境。下面介绍如何在VC+下开发、运行C 语言程序。 1 1、启动、启动VC+VC+ VC+是一个庞大的语言集成工具,经安装后将占用几百兆磁盘空间。点击“开始”- “程序”-“Microsoft Visual Studio 6.0”-“Microsoft Visual C+ 6.0”,可启 动VC+环境,如下图所示。 启动VC+环境 启动VC后,屏幕上将显示如下图所示的窗口。 精品文档 。 5欢迎下载 VC+启动后界面 2 2、创建工程、创建工程 在启动VC环境后,需要为C程序创建一个工程,如下图所示,点击“文件”菜单下 的“新建”菜单项。 新建C工程1 精品文档 。 6欢迎下载 选择 选择 输入工程的名字 工程所有文件的位置 新建工程2 如上图所示,在“工程”一栏中选择“Win32 Console Application”类型,在“工程” 输入框中输入你为工程起的名称,点击“C位置”后面的 “”按钮,显示如下界面。 先选择需要保存在哪个盘 再选择需要保存该盘的哪个文件夹 选择保存位置 在上图中选择需要保存的文件夹的位置,点击“确定”按钮。显示如下界面。 精品文档 。 7欢迎下载 选择工程类型 在上图中,选择“An empty project”选项,点击“完成”按钮,弹出如下界面。 完成工程新建 点击“确定”按钮,新建一个空工程。如下图所示。 精品文档 。 8欢迎下载 新建工程后界面 新建完工程后,点击“文件”菜单。如下图所示。 新建C源程序文件1 点击“新建”子菜单,弹出如下图的界面,新建C源程序文件。 精品文档 。 9欢迎下载 选择 选择 输入新建C程序的文件名 新建C源程序文件2 选择“文件”下的“C+ Source File”选项,在“文件”输入框中输入C源程序的文 件名(注意需要加.C表示是C源程序文件,假如不指定扩展名.C,VC+会把扩展名定义为. CPP,即C+程序。如果程序没有错误) 。点击“确定”按钮。进入编辑C程序界面。 3 3、编写代码、编写代码 如下图所示。 代码区,编写程序 工程区,查看工程 菜单栏,提供功能操作 工具栏,提供快捷操作 信息区,提供编译信息,如果编译错误,需要在此查看 VC版面介绍 精品文档 。 10欢迎下载 在上图所示的代码区中输入需要编写的C程序代码。 如果需要查看已经编写的C程序文件,点击工程区中的“File View” ,展开“Source Files” ,下面包含的文件即为所创建的C源程序文件,点击可以打开。 选择 展开,C1-1.C即为所创建的C程序,双 击可以打开 查看C程序文件 输入程序的代码,如下图。 注释,编写程序时,请养成 给代码注释的好习惯 一行一条语句 代码采用锯齿形式,有利于代码的阅读 定义变量时不要偷懒,需要将变量名做到见名知义 编写C程序文件 在编写代码时请注意养成一些好习惯: 1)行编写一条语句,代码采用锯齿形式,有利于代码的阅读; 2)定义名需要做到见名知义; 3)编写程序时,请养成给代码注释的好习惯,方便代码阅读; 4 4、编译运行、编译运行 在代码编写完成后,点击“编译”菜单下的“编译”子菜单,将C程序编译成.Obj文件。 如下图所示。 精品文档 。 11欢迎下载 编译C程序 如果编译成功,在信息区中,会出现“0 error(s)”的提示信息,如果编译不成功, 则会在在信息区中提示出错信息,如下图所示。 请注意,该程序中,出现了以下错误: 第五行 prinf()语句后少了一个分号”;” 第六行scanf()函数中,没有”符号和“配对 第七行value2写成了value 由于源程序错误,在编译代码时,提示出错信息,共有三个错误 (注意由于编译器不能完全智能化,提示的信息可能和实际错误有些出入) 出错位置信息 错误详细信息 编译 C 程序的错误信息 在编译出错后,请仔细根据错误信息,双击某行出错信息,程序窗口中会指示对应出 错位置,根据信息窗口的提示分别予以纠正。 在编译程序时,请注意“工具栏”上的“保存”按钮,将程序保存,以免造成不必要 的损失,如果出现VC环境“死了”的情况(程序点击不动),关闭VC环境出现如下图 这时,请按“Ctrl+ALT+Del”键,选择“VC+”点击“结束任务”,将VC强制关闭, 重新启动即可,如下图所示。 精品文档 。 12欢迎下载 任务管理器 点击“编译”菜单下的“构建”子菜单,将.Obj 文件连接成.EXE 文件。如下图所示。 构建 C 程序 构建成功后,点击“编译”菜单下的“执行”子菜单,可以运行程序,如下图。 精品文档 。 13欢迎下载 执行 C 程序 当运行C 程序后,VC+将自动弹出数据输入输出窗口,在其中输入数据,完成程序执 行,显示结果,如下图所示。按任意键将关闭该窗口。 C 程序运行界面 对于编译连接执行操作,VC+还提供了一组工具按钮,如图下图所示。 工具栏上的编译、执行按钮 5 5、关闭程序工作区、关闭程序工作区 当一个程序编译连接后,VC+系统自动产生相应的工作区,以完成程序的运行和调 试。若想执行第二个程序时,必须关闭前一个程序的工作区,然后通过新的编译连接,产 精品文档 。 14欢迎下载 生第二个程序的工作区。否则的话运行的将一直是前一个程序。 “文件”菜单提供关闭程序工作区功能,如下图右,执行“关闭工作区”菜单功能,会弹 出询问是否保存的对话框,如下图左。如果选择“是”,将同时关闭源程序窗口。 关闭工作区 6 6、程序调试、程序调试 调试程序是编写代码的一个非常重要的步骤,当程序编译成功,需要查看程序执行过 程以及其变量值的情况,需要启动调试。VC+是一个完全基于Windows 的系统,它的调试 过程通过鼠标比较容易进行。 (1) 程序执行到中途暂停以便观察阶段性结果: 方法一:使程序执行到光标所在的那一行暂停。 在需暂停的行上单击鼠标,定位光标; 如图A-17 所示,分别点击菜单“编译”“开始调试”“Run to Cursor”, 或按【Ctrl】+【F10】,程序将执行到光标所在行会暂停。如果把光标移动到后面的某个 位置,再按【Ctrl】+【F10】,程序将从当前的暂停点继续执行到新的光标位置,第二次 暂停。 程序执行到光标所在行暂停 方法二:在需暂停的行上设置断点; 在需设置断点的行上单击鼠标,定位光标; 按“编译微型条”中最右面的按钮,如图A-18 所示,或按【F9】。 精品文档 。 15欢迎下载 调试 被设置了断点的行前面会有一个红色圆点标志。与TC 一样,不管是通过光标位置还是 断点设置,其所在的程序行必须是程序执行的必经之路,亦即不应该是分支结构中的语句, 因为该语句在程序执行中受到条件判断的限制,有可能因条件的不满足而不被执行。这时 程序将一直执行到结束或下一个断点为止。 (2) 设置需观察的结果变量 按照上面的操作,使程序执行到指定位置时暂停,目的是为了查看有关的中间结果。 在如图A-19 中,左下角窗口中系统自动显示了有关变量的值,其中value1 和value2 的值 分别是3、4,而变量i、sum 的值是不正确的,因为他们还未被赋值。图中左侧的箭头表 示当前程序暂停的位置。如果还想增加观察变量,可在图中右下角的“Name”框中填入相 应变量名。 观察结果变量 (3) 单步执行 当程序执行到某个位置时发现结果已经不正确了,说明在此之前肯定有错误存在。如 果能确定一小段程序可能有错,先按上面步骤暂停在该小段程序的头一行,再输入若干个 查看变量,然后单步执行,即一次执行一行语句,逐行检查下来,看看到底是哪一行造成 结果出现错误,从而能确定错误的语句并予以纠正。 单步执行按“调试条”中“Step Over”按钮或【F8】,如图A-20 所示。如果遇到 自定义函数调用,想进入函数进行单步执行,可按“Step Into”按钮 或【F11】。当 想结束函数的单步执行,可按“Step Out”按钮或【Shift】+【F11】。对不是函数调 用的 语句来说,【F11】与【F8】作用相同。但一般对系统函数不要使用【F11】。 精品文档 。 16欢迎下载 单步调试 (4) 断点的使用 使用断点也可以使程序暂停。但一旦设置了断点,不管你是否还需要调试程序,每次 执行程序都会在断点上暂停。因此调试结束后应取消所定义的断点。方法是先把光标定位 在断点所在行,再按“编译微型条”中最右面的按钮或【F9】,该操作是一个开关,按 一次是设置,按二次是取消设置。如果有多个断点想全部取消,可执行“编辑”菜单中的 “断点”菜单项,屏幕上会显示“Breakpoints”窗口,如图A-21 所示,窗口下方列出了 所有断点,按“Remove All”按钮,将取消所有断点。断点通常用于调试较长的程序,可 以避免使用“Run to Cursor”(运行程序到光标处暂停)或【Ctrl】+【F10】功能时,经 常要把光标定位到不同的地方。而对于长度为上百行的程序,要寻找某位置并不太方便。 如果一个程序设置了多个断点,按一次执行键【Ctrl】+【F5】会暂停在第一个断点,再按 一次【Ctrl】+【F5】会继续执行到第二个断点暂停,依次执行下去。 取消所有断点 (5) 停止调试 使用“Debug”菜单的“Stop Debugging”菜单项,或【Shift】+【F5】键可以结束调 试,从而回到正常的运行状态。 上面只介绍了VC+中主要的功能,对于其他的操作可以自己试验或参考有关VC+手册。 ( (二二) )、程序练习、程序练习 1 1、请将下面程序在、请将下面程序在VCVC环境中输入,并运行观察结果环境中输入,并运行观察结果 1) #include void main() printf(我爱学C语言!n); printf(告诉你学好C语言的秘笈:n); printf(编程!编程!再编程!n); 2) #include void main() int price,weight,value; price=10;weight=20; 精品文档 。 17欢迎下载 value=price*weight; printf(价格为%d,重量为%d货物,价值为%dn,price,weight,value); price=5;weight=8; printf(价格为%d,重量为%d货物,价值为%dn,price,weight,value); value=price*weight; printf(价格为%d,重量为%d货物,价值为%dn,price,weight,value); 3) #include void main() float r,s; FILE *fp; r=12.4; s=r*r*3.14; fp=fopen(c:data.txt,w); fprintf(fp,半径为%f的圆,其面积为%f,r,s); printf(计算成功!,具体请看C盘下的data.txt文件); fclose(fp); 2 2、依照、依照1-31-3中函数的写法,编写一程序,求高为中函数的写法,编写一程序,求高为5.45.4,半径为,半径为2.32.3的圆柱体的体积的圆柱体的体积 精品文档 。 18欢迎下载 【实验报告实验报告】 【思考题思考题】 1、使用 VC 编程时,应先创建的工程是什么类型? 2、如何运行一个 C 程序? 精品文档 。 19欢迎下载 精品文档 。 20欢迎下载 实验二实验二 简单程序设计简单程序设计 【实验目的实验目的】 1、掌握 scanf、printf 函数语句的使用 2、掌握算术表达式和赋值表达式的使用 3、能够编程实现简单的数据处理 【实验性质实验性质】 验证性 【实验要求实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在上机前,需要预习,在程序改错题旁将程序中存在的错误修改过来,将编程题的 代码和流程图写在预习报告中 3、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在 VC 环境中编写出来 4、在 VC 中将编写的程序编译、调试,能正确运行结果,各题目的具体要求请看题目 下的要求 5、将正确程序上传 FTP 服务器 6、争取完成选作题 【实验内容实验内容】 1、程序改错 1) 下面程序需要从键盘输入三个数,计算其平均值在屏幕上显示输出。要求平均值 需要保留两位小数。源代码如下,程序中存在错误,请将其改正写在旁边,并注明为 什么错误。 include stdio.h Main() int x,y,z,float ave; /*定义变量*/ printf(请输入三个数:n);/*输入提示*/ scanf(%d,%d,%d,x,y,z);/*从键盘输入*/ ave=x+y+z/3;/*计算*/ printf(平均值是:ave=%f,AVE); 2、编程题 1)编写程序,在计算机屏幕上显示如下信息。 精品文档 。 21欢迎下载 【要求】 (1)使用 printf 函数输出字符 2) 设一个正圆台的上底半径 r1,下底半径 r2,高 h。请设计一程序,从键盘输入 r1,r2,r3;计算并在显示器上输出该圆台的上底面积 s 1,下底面积 s 2,圆台的体积 V。 【要求】 (1)r1,r2,h 用 scanf 函数输入,且在输入前要有提示; (2)在输出结果时要有文字说明,每个输出值占一行,且小数点后取 2 位数字。 【思路点拔】 (1)圆面积计算公式为 s=r2。其中 r 为圆半径。 (2)圆台体积计算公式为 V=3/)r1r2r2r1(h 22 3) 鸡兔同笼,已知鸡兔总头数为 h,总脚数为 f,求鸡兔各有多少只? 【要求】 (1)用 scanf 函数输入 h 和 f,且在输入前要有提示; (2)在输出结果时要有文字说明。 【思路点拔】 设有 x 只鸡,有 y 只兔,则有: 求出 x 和 y 的公式: 从而可以计算出 x 和 y 。 3 选作题 1)编程求 ax2+bx+c=0 的解 【思路点拔】用求根公式 x1,2=(-bb2-4ac)/2a) 2)编程求 y=sin()+ln(a+x). 要求 a 和 x 从键盘输入ax 精品文档 。 22欢迎下载 【思路点拔】使用数学函数计算 【预习报告预习报告】 1 流程图代码 2 流程图代码 精品文档 。 23欢迎下载 3 流程图代码 【实验报告实验报告】 精品文档 。 24欢迎下载 【思考题思考题】 1、变量在程序中有什么作用,如何从键盘中输入多个变量的值 2、用#define 定义的常量与变量有什么区别,什么时候应该使用#define 定义 符号常量 3、程序中有哪几种流程结构,具体在程序中用什么体现 精品文档 。 25欢迎下载 精品文档 。 26欢迎下载 实验三实验三 分支结构程序设计分支结构程序设计 【实验目的实验目的】 1、掌握关系表达式和逻辑表达式的使用 2、掌握使用 if 语句实现分支结构程序设计 3、了解 switch 语句 【实验性质实验性质】 验证性 【实验要求实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在上机前,需要预习,在程序改错题旁将程序中存在的错误修改过来,将编程题的 代码和流程图写在预习报告中 3、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在 VC 环境中编写出来 4、在 VC 中将编写的程序编译、调试,能正确运行结果,各题目的具体要求请看题目 下的要求 5、将正确程序上传 FTP 服务器 6、争取完成选作题 【实验内容实验内容】 1、程序改错 1) 下面程序需要从键盘输入一个数,判断其是奇数还是偶数。源代码如下,程序中 存在错误,请将其改正写在旁边,并注明为什么错误。 #include stdio.h main() int x; printf(请输入一个数:/n);/*提示输入*/ scanf(%d, if(x=2*n); /*判断*/ printf(x 是偶数); printf(x 是奇数); 2、编程题 1) 编写一程序,从键盘输入三角形的三条边,如果能构成一个三角形判断其是否 是等腰三角形(等边三角形是等腰三角形的特例) ; 【要求】 (1)用 scanf 函数输入三角形的三条边 a,b,c,且在输入前要有提示; (2)使用 if 语句判断,对每种情况都需要有提示 精品文档 。 27欢迎下载 2) 在商场购物时,若所购物品的总价值 x(由键盘输入)在某一范围时,付款 y 按 对应折扣支付,即 x x1000 y= 0.9x 1000 x2000 0.8x 2000 xy,两个值互换,保证第一个参数为小值*/ x=y; y=x; acd=acd(int m1,int m2);/*调用函数求最大公约数*/ amd=(x*y)/acd;/*求最小公倍数*/ printf(最大公约数=%d,最小公倍数=%d,acd,amc); /* 函数功能:使用辗转相除法求两个数的最大公约数 参数 m1:两个数中较小者 参数 m2:两个数中较大者 返回值:m1 和 m2 的最大公约数 精品文档 。 38欢迎下载 */ int acd(int m1,int m2); int r; while (m1=0)/*使用辗转相除法求最大公约数*/ r=m2%m1; m1=r; m2=m1; return r;/*返回最大公约数*/ 2、编程题 1) 若正整数 A 的所有因子(包括 1 但不包括自身,下同)之和为 B,而 B 的因子之和为 A,则称 A 和 B 为一对亲密数。例如,6 的因子之和为 1+2+3=6,因此 6 与 6 为一对亲密数 (即 6 自身构成一对亲密数);又如,220 的因子之和为 l+2+4+5+10+11+20+22+44+55+110=284,而 284 的因子之和为 1+2+4+71+142=220,因此, 220 与 284 为一对亲密数。 编写程序,求 500 以内的所有亲密数对。 【要求】 (1)编制 facsum(n) 函数,返回 n 的所有因子(包括 1 但不包括自身)之和。 (2)在 main 函数中调用 facsum(),寻找并输出 500 以内的所有亲密数对。 (3)输出要有文字说明。并且小数在前、大数在后,去掉重复的数对。 (4)采用程序改错题的的编码风格对源代码做注释 2) 计算并输出 !n)!nm( !m 【要求】 (1)编制一个函数 pq(n),返回 n!值。 (2)在 main 函数中,从键盘输入 m 与 n,调用函数 pq 计算。 (3)在 main 函数中,输入 m 与 n 之前要有提示,并检查输入数据的合理性(mnO),对 于不合理的输入,应输出出错信息,不再进行计算。 (4)采用程序改错题的的编码风格对源代码做注释 3)使用函数的方法求 1000 之内的自守数,自守数是指一个数的平方的尾数等于该数自身 的自然数。例如:252=625 ;762=5776;93762=87909376 (1)编制一个函数 isAutomorphic (n),判断 n 是否为自守数数,如果是返回 1,如果不 是返回 0。 (2)在 main 函数中,使用 for 循环,调用函数 isAutomorphic 判断 n 是否为自守数。 (3) 打印的数字占 8 个字符宽,每行显示 5 个自守数。 (4)采用程序改错题的的编码风格对源代码做注释 精品文档 。 39欢迎下载 3 选作题 1)已知,编写一程序,从键盘输入 x,求 s(x)的 ! 37! 25! 13 )( 753 xxx xxs 值(计算后面的 20 项的和) 。 2)用递归方法,计算13+23+33+43+n3的值,n的值由键盘输入。 【编程点拨】假设用f(n)表示13+23+33+43+n3,则可用以下公式表示: 1 当n=1时 f(n)= n3 +f(n-1) 当n1时 根据上述的递归关系式,编写函数 f()。 【预习报告预习报告】 1 流程图代码 精品文档 。 40欢迎下载 2 流程图代码 3 流程图代码 精品文档 。 41欢迎下载 【实验报告实验报告】 精品文档 。 42欢迎下载 【思考题思考题】 1、函数调用时,参数是如何传递的 2、如果在函数中有多条 return 语句,程序执行会如何处理,如果想返回多个值,应该 怎么办? 3、如果函数在执行时,需要得到上一次该函数调用时变量的值该怎么办,如果函数想使 用别的函数中的变量的值该怎么办 精品文档 。 43欢迎下载 精品文档 。 44欢迎下载 实验六实验六 数组程序设计数组程序设计 【实验目的实验目的】 1、掌握使用一维数组编程方法 2、掌握使用字符数组处理字符串的方法 2、了解二维数组 【实验性质实验性质】 验证性 【实验要求实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在程序改错题旁,将程序中存在的错误修改过来 3、将编程题的代码在预习报告中写出来 4、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在 VC 环境中编写出来 5、在 VC 中将编写的程序编译、调试,能正确运行结果 6、将正确程序上传 FTP 服务器 7、争取完成选作题 【实验内容实验内容】 1、程序改错 1) 下面程序的功能,是从键盘输入一个数组(数组长度为 10) ,查找数组中正数的 个数。源代码如下,程序中存在错误,请将其改正写在旁边。 #include stdio.h main() int a(10);/*定义数组*/ int count,i;/* i 循环变量 count 正数个数*/ for(i=0;i=10;i+)/*循环输入*/ scanf(%d,ai); count=1; for(i=0;i0) count+; printf(数组中正数有:%d 个,count); 2、编程题 1) 从键盘输入一个字符串,将其中的大写字母变小写字母,小写字母变大写字母, 精品文档 。 45欢迎下载 并输出 。 【要求】 (1)用字符数组表示存储字符串(字符串最大为 100) 。 (2)使用 scanf 函数逐个输入字符保存在字符数组中 (3)使用 printf 函数逐个输出字符数组中的字符 2) 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 【要求】 (1)数组长度定义为 10 (2)输出数组时每个元素占 8 个宽度,每行 5 个 3) 编程序按下列公式计算 s 的值(其中 x1、x2、xn由键盘输入): (其中 x0是 x1、x2、xn的平均值) 2 0 1 )(xxs n i i 【要求】 (1)用数组保存 x1、x2、xn的值。 (2)n 的值从键盘输入 3 选作题 1)求从一个字符串中删除所有指定字符的其余字符串。如字符串为“abcaca” ,删 除字符“a”后,为“bcc” 。 【编程点拨】 (1)使用字符数组保存字符串,从字符串数组的第一个元素开始遍历 (2)如果当前的元素与需要删除的元素相等,则删除。 (3)删除是指将该元素前移到需要拷贝的位置 精品文档 。 46欢迎下载 2)使用二维数组打印如下图形 【编程点拨】 (1)注意数组中元素和下标的关系,根据其规律给数组的元素赋值 (2)然收再输出二维数组即可 【预习报告预习报告】 1 流程图代码 0 0 0 10 0 0 9 8 0 7 6 5 4 3 2 1 精品文档 。 47欢迎下载 2 流程图代码 3 流程图代码 精品文档 。 48欢迎下载 【实验报告实验报告】 精品文档 。 49欢迎下载 【思考题思考题】 1、数组在程序设计时有什么作用?如果程序在设计时,不知道数组中保存数据的个数, 应该怎么办 2、二维数组在内存中是如何存储的,二维数组中元素的下标与其在内存中排列的位置有 精品文档 。 50欢迎下载 什么关系? 3、如何将一个元素插入数组中,如何将一个元素从数组中删除 精品文档 。 51欢迎下载 实验七实验七 指针程序设计指针程序设计 【实验目的实验目的】 1、理解指针、地址和变量的关系 2、掌握通过指针操作数组元素的方法 3、掌握数组名、指针作为函数参数的编程方式 4、掌握通过指针操作字符串的方法 【实验性质实验性质】 验证性 【实验要求实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在程序改错题旁,将程序中存在的错误修改过来 3、将编程题的代码在预习报告中写出来 4、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在 VC 环境中编写出来 5、在 VC 中将编写的程序编译、调试,能正确运行结果 6、将正确程序上传 FTP 服务器 7、争取完成选作题 【实验内容实验内容】 1、程序改错 1) 下面程序想使指针变量 pt1 指向 a 和 b 中的大者,pt2 指向小者,源代码如下,程 序中存在错误,请将其改正写在旁边。 #include stdio.h swap(int *p1,int *p2) int *p; p=p1;p1=p2;p2=p; main() int a,b; scanf(%d,%d, pt1=pt2= if( printf(%d,%dn,*pt1,*pt2); 2、编程题 1) 使用指针的方法求 100 的素数 【要求】 (1)先在数组中保存 1-100 的所有整数 (2)使用指针的方式对数组中非素数剔除 精品文档 。 52欢迎下载 2) 判断一个数是否为回文数 【要求】 (1)定义一个函数 separate(int * data,int n),该函数将 n 的各个位上的数分离 保存在 data 所指向的数组中。 (2)定义一个函数 judge(int * data,int len),判断 data 所指向的数组是否为回 文。 (3)main 函数中调用上述的函数,完成程序的功能。 3) 从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置(第一个字 符串的首字母在第二个字符串中的位置,如“abc”在“bbbacccabcddaw3”的位置为 7) 【要求】 (1)使用指针的方法遍历数组。 3、选作题 1)使用指针的方式,从一个字符串中删除所有指定字符的其余字符串。如字符串为 “abcaca” ,删除字符“a”后,为“bcc” 。 【编程点拨】 (1) 注意指针的使用,参考实验六的编程方法 2)有 20 个数,编写一程序,使其右循环移 m 个位置(m 的值可以从键盘输入) ,并 输出移到后的 20 个数。 【编程点拨】 (1)20 个数使用数组保存。 (2)使用指针的方法遍历数组。 【预习报告预习报告】 1 流程图代码 精品文档 。 53欢迎下载 2 流程图代码 3 流程图代码 精品文档 。 54欢迎下载 【实验报告实验报告】 精品文档 。 55欢迎下载 【思考题思考题】 1、指针在程序设计中有什么作用 精品文档 。 56欢迎下载 2、一维数组名、二维数组名有什么区别 精品文档 。 57欢迎下载 实验八实验八 结构程序设计结构程序设计 【实验目的实验目的】 1、掌握结构变量的基本使用方法 2、掌握结构数组的基本使用方法 3、掌握结构指针的概念 4、掌握链表的概念和基本操作 【实验性质实验性质】 验证性 【实验要求实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在程序改错题旁,将程序中存在的错误修改过来 3、将编程题的代码在预习报告中写出来 4、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在 VC 环境中编写出来 5、在 VC 中将编写的程序编译、调试,能正确运行结果 6、将正确程序上传 FTP 服务器 7、争取完成选作题 【实验内容实验内容】 1、程序改错 1)下面程序使用结构体的方法实现两个复数的相加,源代码如下,程序中存在错误, 请将其改正写在旁边。 #include stdio.h /*定义结构体*/ struct plural int a;/*实部*/ int b;/*虚部*/ main() plural p1,p2,p3;/*定义结构体变量*/ printf(请输入复数 1 的实部和虚部,中间用逗号隔开n); scanf(%d,%d,p1);/*输入*/ printf(请输入复数 2 的实部和虚部,中间用逗号隔开n); scanf(%d,%d,p2); p3=p2+p1/*两复数相加*/ printf(复数 1 和复数 2 的和为%d+%din,p3); 精品文档 。 58欢迎下载 2、编程题 1) 要求编写程序:有 4 名学生,每个学生的数据包括学号、姓名、成绩,要求找出 成绩最高者的姓名和成绩。 【要求】 (1)定义结构体类型 (2)使用结构体数组,保存学生的信息 2) 已知一个职工的信息为:职工号、工资,从键盘输入 n 个职工的信息,并将其显 示出来。 【要求】 (1)使用链表实现。 (2)n 可以从键盘输入。 (3)定义 create 函数实现链表的创建 (4)定义 list 函数实现链表的显示。 3、选作题 1)在上题基础上,写一函数 insert 来插入新的职工信息,插入位置可由参数指定。 2)在上面的基础上,写一函数 delete,根据职工号来删除一个结点。 【预习报告预习报告】 1 流程图代码 精品文档 。 59欢迎下载 2 流程图代码 3 流程图代码 精品文档 。 60欢迎下载 【实验报告实验报告】 精品文档 。 61欢迎下载 【思考题思考题】 1、结构体在什么情况下需要用到 2、使用结构体的一般步骤是什么 3、结构数组和链表在保存数据时各有什么优点和缺点 精品文档 。 62欢迎下载 实验九实验九 文件结构程序设计文件结构程序设计 【实验目的实验目的】 1、掌握文件的基本概念 2、掌握文本文件的打开和关闭操作 3、掌握文本文件的顺序读、写方法 【实验性质实验性质】 验证性 【实验要求实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在程序改错题旁,将程序中存在的错误修改过来 3、将编程题的代码在预习报告中写出来 4、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在 VC 环境中编写出来 5、在 VC 中将编写的程序编译、调试,能正确运行结果 6、将正确程序上传 FTP 服务器 7、争取完成选作题 【实验内容实验内容】 1、程序改错 1) 下面程序产生所有的水仙花内数,并将其保存在 C:/data.txt 文件中,源代码 如下,程序中存在错误,请将其改正写在旁边。 #include void main() file fp;/*定义文件指针*/ int i,a,b,c; fp=open(C:data.txt,w);/*打开文件*/ for(i=100;i1000;i+)/*查找水仙花*/ a=i/100; b=i%

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论