实训题目
【 实验一 】
实验名称:认识 C 程序
实验目的:
1 、认识编程环境,熟悉编程界面;
2 、熟悉编程环境的基本操作;
3 、认识 C 程序的结构与 C 程序的运行、调试过程;
实验要求:
1 、在 Turbo C2.0 环境下编辑例题 1.1~1.3 ,运行并查看输出结果。
2 、参照例题,编写一个程序,输出以下信息:
*******************************************
Very good!
*******************************************
【实验二】
实验名称:顺序结构程序设计及输入、输出函数的使用
实验目的:
1、体会C程序自顶向下的编程思路。
2、熟悉输入输出函数的使用方法及用途。
实验要求:
1 、设圆半径 r=1.5 ,圆柱高 h=3 ,编写程序,求圆柱的体积。
2 、用 scanf 函数读入圆的半径和高,求任意圆柱的体积。输出计算结果,输出时要有文字说明,取小数点后 2 位数字。
3 、输入华氏温度,要求输出摄氏温度,公式为: c=5(f-32)/9 。
注意 C 表达式的写法和 C 算术运算的规则。
【 实验三 】
实验名称: if语句使用练习
实验目的:熟悉 if语句的使用格式,会用if语句解决实际问题。
实验要求:
1、有四个圆塔,圆心分别为(2,2),(-2,-2),(2,-2),(-2,2),圆半径为1。这四个塔的高度为10m,塔以外无建筑物。编写程序,输入任一点的坐标,输出该点的建筑高度,(塔外高度为0)。(注意落在塔上这一条件的描述方法)
2 、有一函数 x (x<1)
y = 2x-1 (1 ≤ x < 10)
3x-11 (x ≥ 10)
写一程序,输入 x 值,输出 y 值。
注意: 2x-1 、 3x-11 、 1 ≤ x < 10 的写法。
【 实验四 】
实验名称: switch语句使用练习
实验目的:熟悉 switch语句的使用格式,会用switch语句解决实际问题。
实验要求:
1、给出一百分制成绩,要求输出成绩等级:
90 分以上为 A 等
80~89 分为 B 等
70~79 分为 C 等
60~69 分为 D 等
60 分以下为 E 等
注意分数段的表示方法。
2 、输入年月日,输出该天是该年中的第几天。
例如输入 2003 年 1 月 5 日,则输出是第 5 天。
例如输入 2000 年 3 月 10 日,则输出是第 70 天。
注意二月份天数的计算。
【 实验五 】
实验名称: while语句和do-while语句的使用练习。
实验目的:熟悉 while语句和do-while语句的使用格式,会用这两个语句解决实际问题。掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
实验要求:
1 、输出 200 以内(包含 100 )的所有能同时被 5 和 7 整除,并且各位数字是 5 的自然数。
2 、输入一串字符,以“ # ”结束,只输出其中的字母字符,并统计小写字母的个数。
3 、计算 s=1/2 2 +1/3 2 +1/4 2 + …… +1/n 2 的和,直到 1/n 2 小于 0.00001 为止。
【 实验六 】
实验名称: for语句的使用练习。
实验目的:熟悉 for语句的使用格式,会用for语句解决实际问题。掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
实验要求:
1 、 从键盘任意输入一个数 n,判断它是否为完数(如果一个数恰好等于它的因子之和,则称为完数,如6=1+2+3)
2 、 计算并输出100(包括n)以内能被5或9整除的所有自然数的倒数之和。
3 、 一球从 100m高度落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?
【 实验七 】
实验名称:循环的嵌套练习
实验目的:熟练使用循环语句解决实际问题,掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
实验要求:
1、 输出1~100内的所有完数(如果一个数恰好等于它的因子之和,则称为完数,如6=1+2+3)
2、编写程序,输出上面的图案,
3、编写程序,解决百钱买百鸡问题。
【 实验八 】
实验名称:一维数组的应用
实验目的:
1、掌握一维数组的定义、赋值和输入输出的方法。
2、掌握一维数组的基本操作:运算、插入、删除、逆置、排序和查找等。
3、掌握与一维数组有关的算法(特别是排序算法)。
实验要求:
编写程序并上机调试运行。
1、有一组已按由小到大的顺序排好序的整数,编写程序,从键盘输入一个数,将这个数插入到这组数合适的位置,使这组数仍然有序。
2、编写程序,删除一组数中所有值为x的元素。
3、用选择法对10个整数排序。10个整数用scanf函数输入。
【 实验九 】
实验名称:二维数组的应用
实验目的:
1、掌握二维数组的定义、赋值和输入输出的方法。
2、掌握二维数组的基本操作:运算、转置、取特殊元素等。
实验要求:
编写程序并上机调试运行。
1、求一个3阶方阵A和其转置矩阵的和。
2、求一个4阶方阵的周边元素的和
4、输出一个3行4列的矩阵的最大值及其所在的行号和列号。
【 实验十 】
实验名称:字符数组的应用
实验目的:掌握字符数组的定义、赋值和输入输出的方法及其基本操作。
实验要求:
编写程序并上机调试运行:
1 、 请编写程序。判断字符串是否为回文 ? 若是,则输出: YES ;否则输出 NO 。回文是指顺读和倒读都一样的字符串。例如,字符串 LEVEL 是回文,而字符串 123312 就不是回文。
2 、 请编写一个程序,删除字符串中的数字字符。例如输入字符串:48CTYP9E6,则输出:CTYPE。
3、将一个数字字符串转换为一个整数。
【 实验十一 】
实验名称:认识函数
实验目的:
1、掌握定义、声明和调用函数的方法;
2、掌握函数实参与形参的对应关系,以及“按值传递”的方式。。
实验要求:
1、写一个判断素数的函数。
2、从键盘输入一个偶数,调用上述函数,将该偶数表示成两个素数和的形式。
3、写一函数,逆序输出一个整数的各位数字。
【 实验十二 】
实验名称:数组作为参数的函数
实验目的:
1、掌握数组作为函数参数的方法以。
2、体会数组作为函数参数时,形参与实参的传递方式
实验要求:
1、编写函数,实现数组的输入;
2、编写函数,实现数组的输出;
3、编写函数,求两个数组的和。
4、在主函数中调用以上三个函数,查看运行结果。
5、写一函数,用冒泡法对一组数据进行排序,在主函数中调用该函数,查看运行结果。
【 实验十三 】
实验名称:函数的递归调用与嵌套调用
实验目的:
1、掌握函数的递归调用和嵌套调用
2、掌握各种变量的概念和使用方法
实验要求:
1、用递归法求:
2、求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。
① 用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量
② 不用全局变量,两个整数在主函数中输入,函数中的变量分别定义,在主函数中输出最大公约数和最小公倍数。
【 实验十四 】
实验名称:编译预处理
实验目的:
1、掌握宏定义的方法;
2、掌握文件包含处理方法;
实验要求:
编写程序并上机调试运行
1、定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。
说明:在程序主函数使用宏时只能用两个实参,如: SWAP(a,b),不能用三个实参。
【 实验十五 】
实验名称:认识指针
实验目的:
1、掌握指针的概念,会定义和使用指针变量;
2、学会使用指向一维数组的指针变量。
实验要求:
编写程序,并上机调试运行,完成下面的功能(都要求用指针处理)。
1、编写函数,交换两个数的值,并在主函数中调用该函数,查看运行结果。
2、编写函数,利用指针实现两个一维数组的加法运算。
3、编写函数将一个数组中的n个元素进行排序,以数组的名字做为函数参数。在主函数中调用该函数,分别传入不同的实参,实现:
① 将数组中的所有元素排序
② 只将数组中的从第3个元素开始的5个元素进行排序,其他元素不变。
【 实验十六 】
实验名称:指向二维数组的指针的使用
实验目的:
1、学会使用指向二维数组的指针变量。
2、深入理解行指针与列指针的区别与联系。
实验要求:
编写程序,并上机调试运行,完成下面的功能(都要求用指针处理)。
1、写一个函数实现一个3*3的矩阵的转置。以数组名作为函数参数,在主函数中调用该函数,并在主函数中输出已转置的矩阵。
2、输入一个二维矩阵,用不同的方法来输出其中的某个元素。(至少使用4种方法)
【 实验十七 】
实验名称:指向字符数组的指针及其他类型的指针的使用
实验目的:
1、学会使用指向字符数组的指针变量。
2、熟练使用指针处理字符串
实验要求:
编写程序,并上机调试运行,完成下面的功能(都要求用指针处理)。
1、输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。
2、写一个函数实现两个字符串的比较。
* 3、用指向指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n和各整数在主函数中输入。最后在主函数中输出。
【 实验十八 】
实验名称:结构体和共用体的基本操作
实验目的:
1、掌握结构体和共用体类型变量的定义和使用
2、掌握结构体类型数组的概念和应用
实验要求:
编写程序,并上机调试运行,完成下面的功能:
1、有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩和平均成绩)。
要求用一个 input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据,总平均分以及最高分学生的数据都在主函数中输出。
【 实验十九 】
实验名称:链表的使用
实验目的:
1、掌握链表的概念
2、掌握链表的基本操作:链表的建立、插入、删除等操作。
实验要求:
1、13人围成一圈,从第一个人开始顺时针顺序报号1、2、3,凡报到3者退出圈子,找出最后留在圈子中的人的原来的序号。
2、建立一个含有10个学生数据的链表,每个结点包含学号和年龄。输入一个年龄,删除链表中所有年龄等于该年龄的结点。
【 实验二十 】
实验名称:位运算
实验目的:
1、掌握按位运算的概念和方法,学会使用位运算符;
2、学会通过位运算实现对某些位的操作。
实验要求:
编写程序,并上机调试运行:
1、编写函数,实现逻辑右移运算
2、设计一个函数,使给出一个数的原码,能得到该数的补码,用八进制形式输入和输出。
【 实验二十一 】
实验名称:文件
实验目的:
1、掌握文件以及缓冲文件系统、文件指针的概念
2、学会使用文件打开、关闭、读、写、定位等文件操作函数
3、学会用缓冲文件系统对文件进行简单的操作
实验要求:
编写程序并上机调试运行:
1、有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。
2、将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据村如一