C语言程序设计基础实验教案

更新时间:2023-11-10 16:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

高级语言程序设计

基础实验

主讲教师:张顺利

2011年10月

实验一 简单的C语言程序

实验目的

1.熟悉VC++开发环境,掌握C语言程序的开发过程。 2.掌握C程序的基本格式与规范,学会编写简单的C程序。

3.掌握利用getchar( )、putchar( )、printf( )和scanf( )等函数进行输入输出。

实验内容

1.输入三角形的三边长,求三角形的面积。

提示:面积公式为s(s?a)(s?b)(s?c),其中s?(a?b?c)/2。

2.将China译成密码,密码规律是:用原来的字母后面第4个字母代替原来的

字母。例如,字母A后面第四个字母是E,用E代替A。编写程序,输入China,对应输出为Glmre。

提示:输入输出用getchar( )和putchar( )。

3.当n为152时,分别求出n的个位数字、十位数字和百位数字。 4.求方程ax2?bx?c?0的根。a、b、c由键盘输入,设b2?4ac?0。 5.从键盘输入一个大写字母,要求改用小写字母输出。

6.求华氏温度100°F对应的摄氏温度。计算公式如下,其中:c表示摄氏温度,

f表示华氏温度。

c?9?(f?32)5

7.当x=3时,计算(sin(x))2.5的值。提示:pow(double x, double y)。

8.输入圆柱体的底面圆半径和高,输出圆柱体的表面积和体积,取小数点后2位数字。

实验二 表达式和语句

实验目的

1.掌握运算符及表达式的使用。 2.掌握选择语句的使用。 3.掌握循环语句的使用。

实验内容

1.计算级数1?x?x22!?x33!???(?1)n?1xnn!,最后一项的绝对值小于10-8为止。

2.一个数如果恰好等于它的因子之和,则称该数为“完数”。如:6的因子为1、

2、3,而6=1+2+3,则6是个“完数”。编程求出1000之内的所有完数。 3.有数列:2/1,3/2,5/3,8/5, 13/8, 21/13,…., 求出数列的前20项和。 4.给定一个在整数m,判断其是否为素数。

5.从键盘上输入10个整数,若是正整数则求和,若是负整数则不进行计算,继续输入数据,若输入0则终止程序。

6.用公式求π的近似值,直到最后一项的绝对值小于10-8为止。

?4?1?13?15?17??。

7. 输出1~200之间不能被3整除的数,要求每行输出10个数。 8.编程求1!+2!+3!+4!+….+15!。

9.编程求100到999之间全部的水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153=1*1*1+5*5*5+3*3*3,153就是一个水仙花数。

10.给一个百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,80?89分为’B’, 70?79为’ C’, 60?69为’ D’,60分以下为’E’。 11.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 12.输入一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字。

13.若口袋中放有12个球,其中3红,3白和6黑,问从中任取8个共有多少种不同的取法?

14.编程实现一个简单的运算器(保留两位小数点),如果由键盘输入10+50,计算机可以输出结果60.00;如果输入8*6,计算机输出48.00;如果输入20/4,计算机输出5.00;如果输入8-6,计算机输出2.00。 15.打印杨辉三角形

1 1 1 1 2 1 1 3 3 1 ….. 1 1 ….. 5 4

10 6 4 ….. 10 5 1 …..1 n =5时

….. ….. 当实验三 函数

实验目的

1.掌握函数的定义和函数值返回的方法; 2.掌握函数的调用方法以及参数的传递方式; 3.掌握递归函数的定义及使用。

实验内容

1.编写一函数,用来实现e的计算。e?1?x?xx

x22!?x33!?x44!??xnn!。

2.编写函数求s=a+aa+aaa+aaaa+aa….a,其中a是一个数字。

3.编程输出斐波那契数列的前n项。如1,1,2,3,5,8,13,21,34……… 4.编写两个函数,输入两个正整数m和n,分别求其最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。

5.编写一函数,输入年份,判断是否为闰年,若是返回1,否则返回0。 6.编写递归调用函数,实现由键盘输入一个正整数(不大于100000000),输出其对应的二进制数(原码表示)。

7.编写一函数,给出年、月、日,计算该日是该年的第几天。

实验四 数 组

实验目的

1.掌握一维数组和二维数组的定义、数组元素的引用、初始化和输入输出方法; 2.掌握字符数组和字符串处理函数的使用; 3.掌握与数组有关的算法(特别是排序算法)。

实验内容

1.从键盘上任意输入n个整数,用冒泡法按从小到大的排序,并在屏幕上显示出来。

2.某班有5个学生,三门课。分别编写3个函数实现以下要求: (1) 求各门课的平均分;

(2) 找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩; (3) 找出三门课平均成绩在85-90分的学生,并输出其学号和姓名。 主程序输入5个学生的成绩,然后调用上述函数输出结果。

3.编程序找出一个 5 × 4 矩阵的鞍点。鞍点即矩阵中的某个元素符合如下条件:在其所在行最大,同时在其所在列是最小,当然一个矩阵可能也没有鞍点。 4.输入5个国家的名称,按字母顺序排列输出。 5.编程实现矩阵(4行4列)的转置。

6.写一通用函数my_strlen(),用来求字符串的长度。 7.编程序,将两个字符串连接起来,不要用strcat函数。

8.由键盘输入两个位数很长的整数(一行一个数,每个数最长不超过80位),试计算并输出这两个数的和。 例如:输入

1234567890123456789↙ 987654321098765↙ 输出

1235555544444555554

实验五 指 针

实验目的

1.掌握指针的概念、定义和运算; 2.掌握用指针访问变量的方法; 3.掌握用指针访问数组的方法; 4.掌握用指针访问字符串的方法; 5.掌握用指针作为函数参数的使用方法。

实验内容

1.编写一个函数swap,用来实现交换两个内存变量a和b的值。要求用指针变量编写程序。

2.将数组中的数进行排序,要求用指针变量编写程序。

3.编写一函数sort,完成对n个字符串的降序排序,然后在main函数中调用sort对“beijing”,“shenzhen”,“nanjing”,“dalian”,“shanghai”和“qingdao”这六个字符串排序,要求用指针数组表示这六个字符串。

4.编写函数实现矩阵(4行4列)的转置。要求函数的实参为数组名,形参为指针形式。

5.写一通用函数用来实现strcmp()的功能。 6.编写程序用来实现任意函数的定积分计算。

实验六 结构体

实验目的

1.掌握结构体类型的定义、结构体变量的初始化及成员的引用; 2.掌握运算符“.”和“->”的应用。

3.掌握链表的常用操作,包括创建、显示、添加等。

实验内容

1.有5个学生,每个学生的数据信息包括学号、姓名、3门课的成绩,从键盘输入5个学生的信息,要求输出3门课程的总的平均成绩,以及最高分的学生的信息。

2.建立一个链表,每个节点包括:学号、姓名、性别、年龄。编写一个insert函数,功能是插入新结点,按学号顺序插入链表。编写一个delete函数,功能是删除一个结点,输入一个学号,删除该学号所对应的学生的信息。 3.有结构体类型定义, struct student

{ long num; /*学号*/

int score; /*成绩*/ struct student *next; /*指针*/ };

编写程序,首先创建一个链表,然后实现链表节点的插入、链表的倒序、链表的合并以及将链表中各结点按学号由小到大进行排序等操作。

4.建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个学号,如果链表中的结点包括该学号,则输出该结点内容后,并将其结点删去。

实验七 文 件

实验目的

1.掌握文件和文件指针的概念以及文件指针的定义方法; 2.掌握文件的打开与关闭。

3.熟悉使用各种文件操作函数对文件进行操作。

实验内容

1.有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

2. 在当前目录中存在文件名为\的文本文件,要求使用fopen 函数命令打开该文件,读出里面的所有字符,遇到大写字母的,将其变为小写字母,其它字符不变,最后将所有字符按顺序在屏幕上输出。

3.从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束。

4.有一磁盘文件“employee”,内存放职工的数据。每个职工的数据包括职工姓名、职工号、姓名、年龄、住址、工资、文化程度。今要求将职工名、工资的信息单独抽出来另建一个简明的职工工资文件。

本文来源:https://www.bwwdw.com/article/0y0v.html

Top