五《C语言程序设计》
实验四 选择结构程序设计
一、 实验目的
1、掌握分支语句的格式和功能。
2、掌握选择结构的程序设计。
3、掌握分支结构的嵌套。
二、 实验内容与要求
1、编程,计算下列分段函数值:
x2+3x-4,x<0且x≠-4
f(x)= x2-6x+5,0=x<10且x≠1及x≠5
x2-4x-1,其他
要求如下:
(1) 用if语句实现分支。自变量x与函数值均采用双精度类型。
(2) 自变量x值从键盘输入,且输入前要有提示信息。
(3) 数据的输出格式采用以下形式:
x=输入值,f(x)=计算值
(4) 分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。记录结果。
(5) 源程序以sy4_1.c存盘。
2、编程,将一个百分制成绩转换成等级制成绩。具体要求如下:
(1)百分制与等级制的对应关系如下:
百分制 | 90~100 | 80~89 | 70~79 | 60~69 | <60 |
等级制 | 优 | 良 | 中 | 及格 | 不及格 |
(2)用switch语句实现该功能。
(3)用键盘输入百分制成绩,输入前要有提示信息。
(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。
(5)输出结果中应包含百分制成绩和成绩等级。
(6) 分别输入成绩-10,99,60,85,70,101,45,运行该程序。记录结果。
(7) 源程序以sy4_2.c存盘。
三、 思考题
1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?
2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?
实验五 循环结构程序设计(1)
一、实验目的
1、掌握循环的概念。
2、掌握三种常用的循环语句的格式和功能。
3、初步掌握循环结构的编程方法。
二、实验内容与要求
1、编程,分别利用三种循环语句,求1+2+3+…50之和。要求如下:
(1)输出计算结果;数据的输出格式采用以下形式:
1+2+3+…50=计算值
(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。
2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:
(1)输出计算结果;在数据输出之前应有提示信息。
(2)源程序sy5_4.c存盘。
三、思考题
1、实现循环结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?
实验六 循环结构程序设计(2)
一、实验目的
1、进一步掌握循环结构的编程方法。
2、掌握break和continue语句的功能。
二、实验内容与要求
1、编程,用牛顿迭代法计算由键盘输入的自变量x的平方根。要求如下:
(1)迭代公式为:y=(y+x/y)*0.5,计算精度要求为ε=1E-6。
(2)输出迭代次数和计算结果;在数据输入和输出之前应有提示信息。
(3)以2,3,5,7,9,12为自变量,记录计算结果。
(4)源程序sy6_1.c存盘。
2、编程,用公式π≈1-1/3+1/5-1/7+…求π的近似值,具体要求如下:
(1)计算精度要求从键盘输入。
(2)数据输入和输出之前应有提示信息。
(3)以ε=1E-2、1E-3、1E-4、1E-5、1E-6、1E-7进行计算,记录计算结果。
(4)源程序sy6_2.c存盘。
3、打印九九乘法表。要求如下:
(1)用for循环完成该程序。
(2)打印形状为直角三角形。
(3)源程序sy6_3.c存盘。
三、思考题
1、如何设置循环结构中的循环条件?它在程序呈的意义何在?
实验七 数组和字符串
一、实验目的
1、掌握数组的定义、初始化和输入输出方法。
2、掌握字符数组与字符串的关系。
3、掌握字符串函数的使用。
4、加深对数组的理解,培养解决实际问题的能力。
二、实验内容与要求
1、编写一个单科学生成绩处理程序,具体要求如下:
(1)学生个数定义成符号常量。
(2)学生成绩定义成一维数组进行处理,并由键盘逐个输入。
(3)要求统计出平均成绩、各个等级的人数及百分比。
(4)数据输入输出要有提示信息;源程序以sy7_1.c存盘。
(5)以学生个数为16,学生成绩分别为:75,89,92,63,85,71,82,65,52,91,87,78,84,68,83,80调试程序,记录运行结果。
2、修改sy7_1.c,变成多科成绩处理程序,具体要求如下:
(1)学生数和科目数均定义成符号常量。
(2)学生成绩定义成二维数组进行处理,并由键盘按单科成绩逐个输入。
(3)要求能统计出单科平均分、个人平均分、单科成绩等级百分比和个人名次。
(4)数据以二维表格形式输出,输出内容有表头(提示信息)、表体(学号、单科成绩、个人平均、名次)和表尾(单科平均、等级百分比)。
(5)源程序以sy7_2.c存盘。
3、编程,统计从键盘输入的100个字符中英文字母(不区分大小写)、数字(0~9)、常用标点符号(,;”)和其他符号的个数及其百分比。具体要求如下:
(1)利用一维数组进行数据处理。
(2)输入一段文字,进行检验,并记录其结果。
(3)源程序以sy7_3.c存盘。
三、思考题
1、对各题运行结果进行分析。如果程序未能调试通过,应分析出原因。
2、总结各题的编程思路,谈谈本次实验的收获与经验。
实验八 指针
一、实验目的
1、掌握指针的概念以及定义方法,掌握地址、指针和指针变量之间的区别与联系。
2、掌握指针变量与数组的关系,掌握如何使用指针来处理与数组相关的问题。
3、掌握如何使用指针来处理与字符串有关的问题。
二、实验内容与要求
1、编程,有n个整数存放在一维数组中,求这些数中最小的数和它的下标,然后将它与数组最前面的元素交换位置。具体要求如下:
(1)n的值以及一维整数数组从键盘输入。
(2)对题目中的要求,采用指针方法处理。
(3)源程序以sy8_1.c存盘。
2、编程,采用指针方法处理,具体要求如下:
(1)用户从键盘3行4列的float型数组输入数据。
(2)求每行中4个元素的平均值。
(3)求每列中3个元素的平均值。
(4)求数组全部元素的平均值。
(5)求全部元素中的最大元素。
(6)源程序以sy8_2.c存盘。
3、编程,“回文”是一种顺序读和反序读都一样的字符串,例如:“121”,“abcba”,“ABCCBA”编写程序,判断任一字符串是否为回文。采用指针方法处理,具体要求如下:
(1)要判断的字符串从键盘上输入。
(2)经过程序判断是“回文”的请输出提示“YES”,否则输出提示“NO”。
(3)源程序以sy8_3.c存盘。
三、思考题
1、谈谈实验后对指针的理解。
2、对各题运行结果进行分析。如果程序未能调试通过,应分析出原因。
3、总结各题的编程思路,谈谈本次实验的收获与经验。
实验九 函数
一、实验目的
1、掌握C语言函数的定义和调用的形式及规则。
2、掌握实参与形参的对应关系,“值传递”与“地址传递”的方式与区别。
3、掌握函数的嵌套调用和递归调用的设计方法。
4、掌握各种变量的存储属性及其区别。
二、实验内容与要求
1、编程,在屏幕上重复打印指定的字符n次。具体要求如下:
(1)打印操作定义成函数printchar()。
(2)重复打印次数和指定字符在主函数中键盘输入。
(3)源程序以sy9_1.c存盘。
2、修改sy7_2.c源程序,具体要求如下:
(1)将计算单科平均、个人平均成绩分别定义成函数,由主程序调用。
(2)用数组名作为函数的参数,实现参数的“地址传递”。
(3)修改后的源程序以sy9_2.c存盘。
3、编程,求n!的值,具体要求如下:
(1)求值过程采用递归算法,并定义成函数fac(),供主函数调用。
(2)n的值在主函数中从键盘输入,调用fac(),并将计算结果输出。
(3)源程序以sy9_3.c存盘。
4、计算如下数学函数H(x,y)的的值,具体要求如下:
(1)H(x,y)=sin(x+y)/cos(x-y)*cos(x+y)/sin递归函数c语言规则(x-y)
(2)编写一通用函数,其功能是求F(x,y)=f1(x+y)/f2(x-y)。
(3)编写主函数,调用F(x,y)函数,计算H(x,y)函数的值。
(4)自变量x,y由键盘输入,分别以(1.5708,0.7854)、(0.7854,0.5236)、(0.3491,1.4072)、(1.4072,0.6283)为自变量计算并记录其结果。
(5)源程序以sy9_4.c存盘。
三、思考题
1、对各题运行结果进行分析。如果程序未能调试通过,应分析出原因。
2、总结各题的编程思路,谈谈本次实验的收获与经验。
实验十 结构体和链表
一、实验目的
1、掌握结构体变量的定义和引用方式。
2、掌握结构变量与指向结构的指针作为函数参数实现函数的调用。
3、加深了解链表的概念,学会对链表进行操作。
二、实验内容与要求
1、有5个学生,包括学生学号、姓名和3门课程成绩,编程要求如下:
(1)能输出总分最高和最低学生的姓名。
(2)能计算每个学生的总成绩、平均分,并输出。
(3)源程序以sy10_1.c存盘。
(4)以下表为原始数据,进行调试运行,记录其结果。
Num | Name | Subject 1 | Subject 2 | Subject 3 |
97160101 | Yang HongXia | 90 | 92 | 96 |
97160102 | Jian BingHua | 73 | 54 | 80 |
97160103 | Fan ZhiWei | 85 | 79 | 88 |
97160104 | Lu ShongChi | 88 | 85 | 92 |
97160105 | Ling XiaoMiao | 76 | 62 | 70 |
2、建立一通讯录,具体要求如下:
(1)建立如下通讯录结构:name[20](姓名),sex(性别),birthday(出生日期),address[20](联系地址),telephone[20](),其中birthday本身为一结构,由year,month,day三个成员组成。
(2)所有相关数据直接由主函数进行初始化。
(3)编写一函数,完成通讯录按姓名进行的排序(升序)操作。
(4)主函数调用排序函数,能输出指定姓名的相关数据。
(5)任意给出5位同学的相关数据,调试运行。
(6)源程序以sy10_2.c存盘。
3、编程,实现将正数从小到大的次序建立一个排序的链表,并输出。具体要求如下:
(1)从键盘输入任意个正数,以负数结束输入。
(2)源程序以sy10_3.c存盘。
三、思考题
1、对各题运行结果进行分析。如果程序未能调试通过,应分析出原因。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论