c语言程序设计实验指导.docx
《c语言程序设计实验指导.docx》由会员分享,可在线阅读,更多相关《c语言程序设计实验指导.docx(43页珍藏版)》请在三一办公上搜索。
1、弟游44黎*药旱妥0(田韦点)者群魏雷巨蔡雪爵旱妥3C语言程序设计是计算机科学技术系面向全校理工科开设的一门专业平 台课程。通过这门课程的学习,可以让学生了解程序设计的思想和方法,掌握高 级语言程序设计的基本知识,提高问题求解和程序语言的应用能力。C语言程序设计实验指导书是C语言程序设计的配套指导书。本指 导书本着“厚基础,重实践,以专业为导向”的原则,其中程序设计基础、数组、 函数这三个实验项目是所有学科专业都必须掌握的,其他实验项目根据专业特 点,设计了不同的要求:对于普通专业侧重循环、数组、函数、结构体等,生化 类专业包含数据文件的处理,机械电子类专业包含位运算,数理类专业包含数值 计算
2、等内容。每个实验本着循序渐进的原则,由简到难,逐步深化,另外配有相 应的实验练习,学生可根据自己的情况选择完成。本指导书所有程序代码均在 Visual C+环境下调试通过。本指导书在编写过程中得到了系领导的大力支持,王海燕主任在百忙中多次 参加我们的课程研讨,庄波老师、宫锋老师在大纲编写、指导书任务设计方面给 出了切实可行的意见和建议,在此深表感谢。本指导书由计算机基础教研室语言程序设计课程组全体人员共同编写, 谢玉华老师负责统筹安排,实验一、实验二、实验三、实验七由张志芬老师编写, 实验四、实验六由陈春华、薛红芳老师编写,实验五由陈庆燕老师编写,最后由 张志芬老师统稿,在此一并感谢。由于水平
3、有限,本指导书难免存在疏漏和不足之处,望各位老师在使用过程 中多提宝贵意见,有利于我们进一步改进。C语言程序设计课程组2012年9月实验一基本控制结构的应用11.1熟悉编程环境11.2顺序结构程序设计11.3选择结构程序设计21.4循环结构程序设计4实验二数组的应用72.1 一维数组的应用72.2二维数组的应用102.3字符数组的应用12实验三 函数的应用13实验四位运算的综合应用15实验五数据文件的处理22实验六数值计算25实验七简单学生成绩管理系统30实验一基本控制结构的应用1.1熟悉编程环境一、实验目的1. 了解C语言程序的开发环境,掌握C语言源程序的编辑、编译、连接及运行过 程;2.
4、通过运行简单的C程序,初步了解C语言源程序的特点及基本结构。二、实验内容1. 在TC或VC+环境下,编辑如下所示的简单C语言程序:#include main()printf(hello world!n”);对其进行编译、连接及运行,观察程序的运行结果。2. 编程在显示器上输出如下信息:“*How Are You!“*三、实验练习1. 编程在显示器上输出如下信息:*“ “ “ “ “*2. 求一个三位数的各位上数字之和并输出该和。1.2顺序结构程序设计一、实验目的1. 掌握运算符的使用;2. 正确定义程序中的变量;3. 掌握C语言中数学公式的表示;4. 熟练使用输入、输出语句;5. 能够利用顺序
5、结构进行程序设计。二、实验内容已知三角形的三边长分别为3,4,4,求三角形的面积。三、分析三角形三边边长已知,根据公式:面积=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2即可 求得面积。四、算法描述1. 定义三个边长a,b,c为float型,其初值为3,4,4;2. 计算 s=(a+b+c)/2;3. 计算area=sqrt(s*(s-a)*(s-b)*(s-c),求得三角形的面积并输出。五、程序#include #include main()/*定义变量*/*计算面积*/*输出面积*/六、实验练习:1. 从键盘上输入一个大写字母,将其转换成相应的小写字母并输出。2. 把560
6、分钟换算成小时和分钟表示并输出。3. 求解方程2x2+3x+1=0的解。1.3选择结构程序设计一、实验目的1. 掌握关系运算及逻辑运算;2. 掌握if语句;3. 掌握switch语句;4. 能够利用选择结构进行程序设计。二、实验内容根据输入的三角形的三条边,判断是否能组成三角形,若可以则输出它的面积及 三角形的类型。三、分析1. 首先判断是否能构成三角形,如果满足a,b,c三条边大于0,并且满足 a+bc,b+ca,a+cb则能构成三角形;否则不能构成三角形;2. 若能构成三角形时,计算三角形的面积。再判断三角形的类型,如果三边都相 等时等边三角形;如果任意两边相等则为等腰三角形;如果两边平方
7、之和等于第 三边平方则为直角三角形;其他为一般三角形。四、算法描述1. 定义三个边长a,b,c为float型,从键盘输入三个边长值;2. 判断三边是否能构成三角形,条件是a,b,c三条边大于0,并且 a+bc,b+ca,a+cb,不满足条件则不能构成三角形;3. 如果能构成三角形时,计算三角形的面积(面积= sqrt(s(s-a)(s-b)(s-c),s=(a+b+c)/2);再判断三角形的类型,如果三边都相等时等 边三角形;如果任意两边相等则为等腰三角形;如果两边平方之和等于第三边平 方则为直角三角形;其他为一般三角形。五、程序#include #include main()/*定义变量*/
8、*输入边长*/*判断能否构成三角形,能则计算面积判断类型*/*计算三角形的面积*/*输出三角形的面积*/*判断三角形的类型(等边、等腰、直角或一般三角形)*/elseprintf(“三边不合适,不能构成三角形! n”);六、实验练习1. 编程实现从键盘输入四个整数,把这四个数由小到大输出。2. 编程判断从键盘输入的整数的正负性及奇偶性。3. 根据键盘输入x的值求y值,其公式如下:5x+110=x20sinx+cosx20=x40ex-140=x60ln(x+1)60=xc,b+ca,a+cb则能构成三角形;否则不能构成三角形;2. 若能构成三角形时,计算三角形的面积。再判断三角形的类型,如果三
9、边都相 等时等边三角形;如果任意两边相等则为等腰三角形;如果两边平方之和等于第 三边平方则为直角三角形;其他为一般三角形。当为某一类型,其计数加1,若 有没出现过的类型,再循环输入各边,直到每种类型都出现过。四、算法描述1. 定义三个边长a,b,c为float型,从键盘输入三个边长值;2. 判断三边是否能构成三角形,条件是a,b,c三条边大于0,并且 a+bc,b+ca,a+cb,不满足条件则不能构成三角形;3. 如果能构成三角形时,计算三角形的面积(面积 =sqrt(s(s-a)(s-b)(s-c),s=(a+b+c)/2);再判断三角形的类型,如果三边都相等时等 边三角形;如果任意两边相等
10、则为等腰三角形;如果两边平方之和等于第三边平 方则为直角三角形;其他为一般三角形。4. 当为某一类型的三角形时,其计数加1,若有没出现过的类型,再循环输入各 边,直到每种类型都出现过。其中输入各种类型三角形边长为外循环,输入合适 边长为内循环。五、程序#include #include main()float a,b,c,s,area;int i=0,j=0,k=0,l=0;/*i,j,k,l分别用来统计每种类型的三角形出现的次数*/do/*输入三角形的边长*/while( )/*循环输入三边直到能构成三角形*/ /*计算三角形的面积*/*判断三角形的类型(等边、等腰、直角或一般三角形),并统
11、计各种类型三角形出现的次数*/while(i&j&k&l)=0);六、实验练习1. 鸡兔问题:假设鸡兔共有30只,脚数共有90只,利用循环编写一个程序求出 鸡和兔各有多少只。2. 从键盘输入若干学生某门课程的成绩,计算出平均成绩并输出低于60分的学 生成绩,当输入负数时结束输入。3. 判断从键盘输入的数m是否为素数(素数:只能被1和本身整除的数)。4. 利用循环从键盘输入100个数,找出其中的最小值。5. 编程求 1-1 + 1-1 + -的值。2 3 499 1006. 编程求 s=1+(1+2)+(1+2+3)+(1+2+3+n)的值。7. 输入n个整数,求这n个数之中的偶数平均值,并输出
12、。8. 编程打印一下图形(行n的值由键盘输入)。a、上、上、上、上、上*十十十十十十*十十十十十*9. 输出100-999之间的所有水仙花数,每行输出5个(水仙花数:三位数的各位 数字的立方之和等于这个三位数本身,如153=1*1*1+5*5*5+3*3*3)。10. 编写一个程序,打印如下乘法“九九表”。1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=92*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=183*3=93*4=123*5=153*6=183*7=213*8=243*9=274*4=164*5=204*6
13、=244*7=284*8=324*9=365*5=255*6=305*7=355*8=405*9=456*6=366*7=426*8=486*9=547*7=497*8=567*9=638*8=64 8*9=729*9=8111. 从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。实验二数组的应用2.1 一维数组的应用一、实验目的1. 掌握一维数组的定义及初始化;2. 掌握一维数组元素的引用;3. 掌握几种常见的排序方法;4. 能够利用一维数组进行程序设计。二、实验内容从键盘输入10个学生的一门课程的成绩,从高到低排序后输出每个学生的成绩。方法1:选择排序三、分析选择排序方法通过选择
14、最大值的方法,依次将最大、第2大、第3大的数挑 选出来,顺序调换到数组的第1个、第2个、第3个元素中。四、算法描述1. 定义n个长度的数组用来存放n个元素;2. 第1趟将第1个元素和它后面的元素逐个进行比较,有更大的则与第1个元素 进行交换,再继续和后面的元素比较。经过若干次比较和交换,从n个元素中找 出了最大数并交换到第1个元素中;3. 第2趟用同样的方法,在剩下的n-1个元素中找出第2大的数,并把它调换到 第2个元素中;4. 第i趟再用同样的方法,在剩下的n-i+1个元素中找出第i大的数,并把它调换 到第i个元素中。1不断增加,一趟趟重复此过程,直到i=n-1最后一趟比较完为 止;5. 程
15、序用双重循环实现,外循环用i控制趟数,找第i个元素。内循环让第i个元 素和它后面的元素逐个进行比较,有更大的则交换到第i个元素。五、程序#include #define N 10main()/*定义数组*/*通过循环输入n个成绩,保存在数组中*/*变量i用来控制比较的趟数,需进行N-1趟*/*第i个元素和其后各元素进行N-(i+1)次比较,变量j用来控制其后元素*/*如果逆序则交换*/printf(“排序后的成绩:n”);/*通过循环输出排好序的数组中的元素*/方法2:插入排序三、分析插入排序方法通过将要插入的元素从有序数组的最后元素开始逐个进行比较,如 果逆序则后移数组元素,直到找到合适为止
16、插入。如正序则直接插入。四、算法描述1. 定义n个长度的数组用来存放n个元素;2. 第1个数直接存在数组第1个位置,再输入新数m;3. 从数组最后一个元素开始,逐个将数组元素与数m进行比较,如果逆序则将数 组元素后移一个单元,直到找到合适正序位置并插入;如果第一次比较正序,则 将数m插入到数组最后。再输入新数m;4. 重复第3步,直到n个数全部有序插入。五、程序#include #define N 6main()/*定义数组*/*先输入一个数*/*就一个数时必是有序的,直接存到数组第零个元素中*/*通过循环利用i控制输入的元素个数*/*再输入一个新数,和数组中已有元素进行比较*/*利用循环从现
17、有数组的最后一个元素开始往前逐个比较*/*如果逆序,则把数组中元素逐个后移*/*如果正序,则退出循环*/*把该数放在数组中第j个元素之后*/printf(排序后的成绩:n);/*通过循环输出排好序的数组中的元素*/方法3:冒泡排序三、分析冒泡排序方法每趟顺序比较相邻的两个数,如果两数逆序,则交换两数,最多进 行n-1趟,即完成n个数由高到低顺序排列。四、算法描述1. 定义n个长度的数组用来存放n个元素;2. 第1趟比较第1个和第2个元素,逆序则交换,再依次比较第2个和第3个、 第3个和第4个,每次比较中若是逆序则交换。经过这趟比较和交换,最小 的数到最后一个元素中;3. 第2趟用同样的方法,在
18、前面n-1个元素中依次进行比较和交换,第2小的数 到倒数第2个元素中;4. 第i趟再用同样的方法,在剩下的n-i+1个元素中依次进行比较和交换,第i 小的数到倒数第i个元素中。一趟趟重复此过程,直到i=n-1最后一趟比较完为 止;5. 程序用双重循环实现,外循环用i控制趟数,找第i个元素。内循环j比较两个 相邻元素,若逆序则交换。五、程序#include #define N 10main()/*定义数组*/*通过循环输入n个成绩,保存在数组中*/*变量i用来控制比较的趟数*/*依次比较相邻的两个数,共比较n-i个*/*如果逆序则交换*/printf(“排序后的成绩:n”);/*通过循环输出排好
19、序的数组中的元素*/六、实验练习1. 从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩。2. 从键盘输入n个数到数组中,统计其中的正数个数,并计算它们的和。3. 将整型数组中的所有元素镜像对调(第一个与最后一个对调,第二个与倒数第 二个对调),按对调后的结果输出。2.2二维数组的应用一、实验目的1. 掌握二维数组的定义及初始化;2. 掌握二维数组元素的引用;3. 能够利用二维数组进行程序设计。二、实验内容从键盘输入10个学生的三门课程的成绩,求每个学生各门课程的平均分,并按 平均分从高到低的顺序输出每个学生各门课程的成绩和平均成绩。三、分析要存储10个学生三门课程的成绩需要定义
20、二维数组,要存储10个学生的平均成 绩需要定义一维数组,利用循环输入成绩、计算平均分,再利用循环选用一种排 序方法按平均成绩进行排序,最后利用循环按要求输出。四、算法描述1. 定义数组int sN3存储N=10个学生三门课程的成绩,数组float aN存储10 个学生的平均成绩;2. 用for循环从键盘按行输入每个学生三门课的成绩;3. 用for循环计算出每个学生的平均成绩并存入数组a中;4. 按照平均成绩从高到底的顺序排序(可选用选择排序、冒泡排序、插入排序、快速排序等多种排序方法用选择排序);5. 按要求输出。五、程序#include #include #define N 10main()
21、/*定义二维数组用来保存n个学生的3门成绩*/*定义一维数组用来保存n个学生的平均成绩*/*通过循环输入n学生的三门课成绩*/*通过循环计算n个学生的平均成绩*/for(i=0;iN-1;i+)for(j=i+1;jN;j+)/*比较平均成绩,高则平均成绩高者进行交换*/*通过循环交换三门课的成绩*/*交换平均成绩*/printf(按平均分排序后的成绩为:n);printf(课程一课程二课程三平均分n,i+1);/*通过循环输出排好序的n个学生的三门课成绩及平均成绩*/六、实验练习1. 从键盘输入矩阵A的值,将A的转置矩阵存入矩阵B,输出矩阵B。2. 找出6*6矩阵每列绝对值最大的元素,并与同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 指导

链接地址:https://www.31ppt.com/p-4883848.html