C语言程序设计I实验指导书
实验1 C编译环境(4学时)
第一次:
一、实验目的
1. 了解所用的计算机系统的基本操作方法,学会独立使用该系统。 2. 了解在该系统上如何编辑、编译、连接和运行一个C程序。 3. 通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容和步骤
1. 检查所用的计算机系统是否已安装了C编译系统并确定它所在的子目录。 2. 进入所用的集成环境。
3. 熟悉集成环境的界面和有关菜单的使用方法。 4. 输入并运行一个简单的、正确的程序。
? 观察屏幕上显示的编译信息。如果出现“出错信息”,则应找出原因并改正之,
再进行编译,如果无错,则进行连接。
? 如果编译连接无错误,使程序运行,观察分析运行结果。 5. 输入并编辑一个有错误的C程序。
? 输入以下程序(教材第1章中例1.2,故意漏或打错几个字)
? 进行编译,仔细分析编译信息窗口,可能显示有多个错误,逐个修改,直到不
了现错误。最后请与教材上的程序对照。 ? 使程序运行,分析运行结果。
6. 输入并运行一个需要在运行时输入数据的程序。 7. 运行一个自己编写的程序。
? 输入自己编写的源程序。
? 检查程序有无错误(包括语法错误和逻辑错误),有则改之。
? 编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。 ? 运行程序,输入数据,分析结果。 ? 自己修改程序(例如故意改成错的),分析其编译和运行情况。
三、预习内容
1. 《C程序设计》(第三版)第1章。
2. 本书第二部分中的有关部分(根据所用的C编译环境选择有关章节)。
第二次:
一、实验目的
1. 掌握不同的类型数据之间赋值的规律。
2. 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)
和自减(--)运算符的使用。
3. 进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容和步骤
调通作业3.6 3.7 3.8 3.10
注:在时间上可以把这两次实验统一安排。只要在两次实验中完成内容即可。只写一份实验报告(选做其中两题)。
实验2 顺序结构程序(2学时)
一、实验目的
1. 掌握C语言中使用最多的一种语句——赋值语句的使用方法。
2. 掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
二、实验内容和步骤
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代表“假”,以非0代表“真”)。 2. 学会正确使用逻辑运算符和逻辑表达式。 3. 熟练掌握if语句和switch语句。 4. 结合程序掌握一些简单的算法。 5. 学习调试程序。
二、实验内容和步骤
本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 1. 习题5.5。有一函数:
? 用scanf函数输入x的值,求y值。
? 运行程序,输入x的值(分别为x<1、1~10、x≥10这3种情况),检查输出
的y值是否正确。
2. 给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,81~89
分为B,70~79分为C,60~69分为D,60分以下为E。(本题是教材第5章习题5.6)。 ? 事先编好程序,要求分别用if语句和switch语句来实现。运行程序,并检查
结果是否正确。
? 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出
等级,修改程序,使之能正确处理任何数据,当输入数据大于100和小于0时,通知用户“输入数据错”,程序结束。
3. 输入3个整数,要求按由小到大顺序输出(本题是教材第5章习题5.9)。在得到正
确结果后,修改程序使之按由大到小顺序输出。
三、预习内容
预习教材第5章。
实验4 循环结构程序(4学时)
一、实验目的
1. 熟悉掌握用while语句、do-while语句和for语句实现循环的方法。
2. 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 3. 进一步学习调试程序。
二、实验内容和步骤
编程序并上机调试运行。
1. 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数(本题
是教材第6章习题6.2)。
在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其他字符的个数。
2. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了
一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子(本题是教材第6章习题6.10)。
在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。请修改程序并运行,检查结果是否正确。
三、预习内容
预习教材第6章。
实验5 数组(4学时)
一、实验目的
1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2. 掌握字符数组和字符串函数的使用;
3. 掌握与数组有关的算法(特别是排序算法)。
二、实验内容和步骤
编程序并上机调试运行
1. 用选择法对10个整数排序。10个整数用scanf函数输入(本题是教材第7章习题7.2)。 2. 有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第
几个元素的值。如果该数不在数组中,则输出“无此数”。以15个数用赋初值的方