《c语言程序设计1实验指导书(20学时)》由会员分享,可在线阅读,更多相关《c语言程序设计1实验指导书(20学时)(5页珍藏版)》请在金锄头文库上搜索。
1、C语言程序设计I实验指导书实验1 C编译环境(4学时)第一次:一、实验目的1. 了解所用的计算机系统的基本操作方法,学会独立使用该系统。2. 了解在该系统上如何编辑、编译、连接和运行一个C程序。3. 通过运行简单的C程序,初步了解C源程序的特点。二、实验内容和步骤1. 检查所用的计算机系统是否已安装了C编译系统并确定它所在的子目录。2. 进入所用的集成环境。3. 熟悉集成环境的界面和有关菜单的使用方法。4. 输入并运行一个简单的、正确的程序。 观察屏幕上显示的编译信息。如果出现“出错信息”,则应找出原因并改正之,再进行编译,如果无错,则进行连接。 如果编译连接无错误,使程序运行,观察分析运行结
2、果。5. 输入并编辑一个有错误的C程序。 输入以下程序(教材第1章中例1.2,故意漏或打错几个字) 进行编译,仔细分析编译信息窗口,可能显示有多个错误,逐个修改,直到不了现错误。最后请与教材上的程序对照。 使程序运行,分析运行结果。6. 输入并运行一个需要在运行时输入数据的程序。7. 运行一个自己编写的程序。 输入自己编写的源程序。 检查程序有无错误(包括语法错误和逻辑错误),有则改之。 编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。 运行程序,输入数据,分析结果。 自己修改程序(例如故意改成错的),分析其编译和运行情况。三、预习内容1. C程序设计(第三版)第1章。2. 本书第二
3、部分中的有关部分(根据所用的C编译环境选择有关章节)。第二次:一、实验目的1. 掌握不同的类型数据之间赋值的规律。2. 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。3. 进一步熟悉C程序的编辑、编译、连接和运行的过程。二、实验内容和步骤调通作业3.6 3.7 3.8 3.10注:在时间上可以把这两次实验统一安排。只要在两次实验中完成内容即可。只写一份实验报告(选做其中两题)。实验2 顺序结构程序(2学时)一、实验目的1. 掌握C语言中使用最多的一种语句赋值语句的使用方法。2. 掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。二、
4、实验内容和步骤1. 调通4.5程序掌握各种格式转换符的正确使用方法。2. 按习题4.8要求编写程序,并上机运行。题目为:设圆半径 r=1 .5,圆柱高h =3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。3. 编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和scanf函数输出这两个字符。4. 上机运行程序,比较用printf和putchar函数输出字符的特点。三、预习内容预习教材第4章。实验3 逻辑结构程序(2学时)一、实验目的1. 了解C语言表示逻辑量的方法(以0代表“假”,
5、以非0代表“真”)。2. 学会正确使用逻辑运算符和逻辑表达式。3. 熟练掌握if语句和switch语句。4. 结合程序掌握一些简单的算法。5. 学习调试程序。二、实验内容和步骤本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。1. 习题5.5。有一函数: 用scanf函数输入x的值,求y值。 运行程序,输入x的值(分别为x1、110、x10这3种情况),检查输出的y值是否正确。2. 给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8189分为B,7079分为C,6069分为D,60分以下为E。(本题是教材第5章习题5.6)。 事先编好程序,要求分别用
6、if语句和switch语句来实现。运行程序,并检查结果是否正确。 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输入数据错”,程序结束。3. 输入3个整数,要求按由小到大顺序输出(本题是教材第5章习题5.9)。在得到正确结果后,修改程序使之按由大到小顺序输出。三、预习内容预习教材第5章。实验4 循环结构程序(4学时)一、实验目的1. 熟悉掌握用while语句、do-while语句和for语句实现循环的方法。2. 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。3.
7、进一步学习调试程序。二、实验内容和步骤编程序并上机调试运行。1. 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数(本题是教材第6章习题6.2)。在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。2. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子(本题是教材第6章习题6.10)。在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。请修改程
8、序并运行,检查结果是否正确。三、预习内容预习教材第6章。实验5 数组(4学时)一、实验目的1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法;2. 掌握字符数组和字符串函数的使用;3. 掌握与数组有关的算法(特别是排序算法)。二、实验内容和步骤编程序并上机调试运行1. 用选择法对10个整数排序。10个整数用scanf函数输入(本题是教材第7章习题7.2)。2. 有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方法在程序中给出。要找的数用scanf函数输入(本题是教材第7章习题7.9)。3.
9、将两个字符串连接起来,不要用strcat函数(本题是教材第7章习题7.13)。4. 找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点(本题是教材第7章习题7.8)。应当至少准备两组测试数据: 二维数组有鞍点,例如: 二维数组没有鞍点,例如:用scanf函数从键盘输入数组各元素的值,检查结果是否正确。题目并未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。因此,从理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量太大,一般来说不需要这样做,只需准备典型的数据即可。如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用
10、scanf函数。请读者修改程序以实现之。三、预习内容预习教材第7章。实验6 函数(4学时)第一次:一、实验目的1. 掌握定义函数的方法;2. 掌握函数实参与形参的对应关系,以及“值传递”的方式;3. 掌握函数的嵌套调用和递归调用的方法;4. 掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法;二、实验内容和步骤编程序并上机调试运行之。1. 写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息(本题是教材第8章习题8.2)。本程序应当准备以下测试数据:17、34、2、1、0。分别运行并检查结果是否正确。2. 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给
11、该函数(本题是教材第8章习题8.10)。3. 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。N的位数不确定,可以是任意的整数(本题是教材第8章习题8.17)。三、预习内容本书第二部分中介绍的以多文件程序进行编译和连接的方法。第二次:一、实验目的1. 学习对多文件的程序的编译和运行。二、实验内容和步骤1. 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数(本题是教材第8章习题8.10)。 把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。 把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。2. 自行编写多文档程序,并应用extern等申明。