ImageVerifierCode 换一换
格式:DOC , 页数:32 ,大小:2.19MB ,
资源ID:2517446      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2517446.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(试验参考指导书范本.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

试验参考指导书范本.doc

1、 《C程序设计语言》 实验指引书 信息教研室编 西南科技大学计算机科学与技术学院 8月 实验一 简朴C语言程序 1.1 实验类型:验证型实验 2学时 1.2 实验目 1、熟悉并学习使用C程序编译平台TurboC; 2、掌握如何在编译平台下编辑、编译、连接和运营一种简朴C程序; 3、掌握C语言基本数据类型,熟悉变量定义和赋值办法; 4、学会使用C算术运算符和算术表达式; 1.3 知识

2、点简介 1、C程序构造。 一种程序有各种程序单位构成,每一种程序单位作为一种文献,编译系统分别对每个程序文献分别编译,然后连接起来形成可执行程序。 在一种程序单位中包括如下几某些: 预解决命令 全局声明某些 函数(有函数首部和函数体构成),一种C必要有一种(并且只能有一种)main()函数。 2、C数据类型和表达式 C有各种数据类型,数据类型隐含着该类数据表达、存储及解决规则。 C运算符丰富,使用十分灵活。有运算符和括号将运算对象(操作数)连接起来,构成表达式。表达式中混合运算式要注意运算符优先级和结合性。此外,不同数据类型运算时,存在类型转换(隐式自动转换和强制转换)

3、 3、C程序编写实现 用C语言编写程序——对源程序文献进行编译声称目的文献——对目的文献连接形成可执行程序——运营程序得到成果——分析成果。 1.4 实验内容 题目1 最简朴C程序 按提示操作环节,输入下面程序代码,编译连接并执行。 [实验提示] 按照操作环节创立第一种应用: (1)编辑你第一种C源程序 (2)保存你源文献 (3)编译、连接得到可执行程序 (4)改正源程序中错误 (5)运营你第一种程序 [思考与扩展] 1、如果程序中大小写输入错误如main 写成Main,成果会如何? 2、编译运营通过后,本程序输出了一行字符,如果还想输出一行字符:

4、 "it’s too easy!" 程序代码该如何修改添加? 提示:注意使用换行控制符 ’\n’ 题目2 简朴应用—求圆柱体体积 输入下面程序代码,编译运营。 [实验提示] 按照第一题操作环节文献,输入代码,编译连接,执行程序,输入测试数据分析成果与否对的,如有错误改正后再重新编译连接,直到没有错误为止。 [测试数据] 运营时输入: 5 8 -2 1 [思考与扩展] 1、如果运营时输入 3.8 5 程序输出成果是什么,对的吗?将程序中变量radius,high改为double类型,然后输入上面测试数据,成果怎么

5、样?阐明因素。 2、注意 输入提示和输出提示语句,尝试修改输入数出提示语句。 题目3 温度转换 输入华式温度,规定输出摄式温度。公式C=5/9*(F-32) 输入输出要有文字阐明,取两位小数。 [测试数据] 运营时输入: 30 17 实验二 逻辑构造 2.1 实验类型:验证型实验 2学时 2.2 实验目 1、掌握C程序控制基本构造:选取构造实现; 2、掌握简朴C程序编写和调试 2.3 知识点简介 1 关系运算、逻辑预算,关系表达式和逻辑表达式。 2、选取构造:if语句,switch语句应用。 2.4 实验内容 题目1 计算员工周工

6、资 编写一种程序,输入某雇员每周工作时间(以小时计)和每小时工资数,计算并输出她工资。若雇员周工作小时超过40小时,则超过某些按原工资1.5倍加班工资来计算。若雇员每周工作小时超过60小时,则超过60某些按原工资3 倍加班工资来计算,而40到50小时工资仍按照原工资1.5倍加班工资来计算。 1、规定有输入提示和输出提示,如要输入雇员工作时间和每小时工资值时,可以提示: “Please input employee’s work time and wage_per_hour:” 输出时,提示: “The employee’s wage :”。 2、给你程序加上注释,并注意排版格式,使

7、得其清晰可读。 [实验提示] 1、从本次实验开始,咱们开始编写稍微复杂程序,涉及到某些简朴算法,请务必按实验规定养成良好编程习惯,再次强调: 代码要写整洁,注意排板规范。。 给你变量起个好名字,不要什么变量都用a,b,c…等,变量最佳用英文单词或单词缩写命名,变量名字要体现变量在程序含义和作用。 要有必要注释!!,养成这一良好习惯很重要,请记住,“代码只被书写一次,而它被修改和阅读次数也许是无限” 2、本程序可以使用if语句和switch语句分别实现流程图分别如下: 真(1) 真(1) 假(0) 假(0) Cin>>worktime>>wageph (worktim

8、e <=40) (worktime <=60) Wage= worktime* wageph Wage=( (worktime-40)*1.5+40) *wageph Wage=( (worktime-60)*3.0+ (60-40)*1.5)+ 40) *wageph 输入 cout<>worktime>>wageph if(worktime >60) count=3; else count = worktime/20 Wage= worktime* wageph

9、Wage=( (worktime-40)*1.5+40) *wageph Wage=( (worktime-60)*3.0+ (60-40)*1.5)+ 40) *wageph 输入 cout<

10、于50数据,4)不合理数据例如负数或不不大于7*24数,(注意一周最多只有7*24小时),设计一组你测试数据。 题目2 设计一种计算+、-、*、/程序 程序从原则输入读入表达式: 输入:4+2回车 则输出:4+2=6 输入:4*2回车 则输出:4*2=8 。。。。。。。 实现规定: 1、有输入提示和输出提示,如要输入表达式时,可以提示:   "pealse intput arithmetic expression:"  输出时,提示:  " 4+2=6"。  计算在顾客输入非政策表达式时程序结束并提示输入错误。 2、为你程序加上注释,使得其清晰可读。

11、 3、尝试运用调试程序来修改你程序逻辑错误。 [实验提示] 详细计算可采用switch语句实现 switch(operator)  //判断运算符 { case '+': result = operand1 + operand2; cout<>year>> month>>day; //一方面输入三个数: 年 月 日 while(year!= 0 && month!=0 && month!= 0) { …… //详细计算语句 //本次循环结束前再次输入三个数据(年 月 日),为下次循环计算做准备 cout<< "please enter year month day:" cin>>year>> month>>day; } [测试数据] 1、1年1月1日是星期一 2、2年1月1日是星期二 3

16、用上机日期 4、1月1日是星期六 [思考与扩展] 1、用switch语句实现程序。比较if和switch语句区别。 2、对输入日期和理性检查,例如月份不能不不大于12,非闰年不得有2月29日,小月不得有4月31日   实验四 数组 4. 1 实验类型:验证型实验 2学时 4.2 实验目 1、掌握一维数组和二维数组定义、赋值和输入输出办法; 2、掌握字符数组和字符串使用; 4.3 知识点简介 1、数组是有序数据集合。特点:有序,元素必要是同一种类型,用下标标记每一种元素,数组在内存中占用一块持续存储单元。 2、数组定义:定义时必要给出数组大小

17、即数组元素个数)。数组使用时用下标标记特定元素,注意使用时下标不要越界。 3、经常使用char类型数组来解决字符和字符串。字符数组和字符串数组区别在于字符串数组有一种结束标志‘\0’. 4、惯用排序算法:冒泡法和选取法。 4.4 实验内容 题目1 排序查找 用选取法对15个学生成绩按从大到小顺序排序,15个学生成绩整数用scanf 输入,如果输入成绩不在[0,100]之间,则提示“输入错误”。排序完毕后,输入一种成绩,规定用折半查找法找出该成绩是该组中第几种元素值(即第几名)。如果该成绩不在数组中,则输出“无此成绩”。 [实验提示] 1、本题第一步一方面对15个成绩排序

18、可使用冒泡法或选取法排序(冒泡排序算法见教材)。 选取法排序算法思想: n原数组中选取最小一种元素,把它和位于第一种位置元素互换位置;然后,在剩余n-1个元素中选取最小一种元素,并把它和第一种位置元素互换;不断重复这些过程,直到最后两个元素。 如:设有10个元素a[0]~a[9], 第一轮:将a[0]与a[1]~a[9]比较,若a[0]比a[1]~a[9]都小,则不进行互换,即无任何操作。若a[1]~a[9]中有一种以上比a[0]小,则将其中最小一种(假设为a[i])与a[0]互换,此时a[0]中存储了10个中最小数。 第二轮将a[1]与a[2]~a[9]比较,将剩余8个数中最小者

19、a[i]与a[1]对换,此时a[1]中存储是10个中第二小数。 依此类推,共进行9轮比较,a[0]~a[9]中已按由大到小顺序存储。 2、排序完毕后,这15个成绩按由大到小顺序排列,此时用折半查找法查找某一种成绩效率较高。 折半查找法算法思想:如果有以按由小到大排好序9个数,a[0]~a[8],其值分别为:1 3 5 7 9 11 13 15 17 若想查3与否在此数组中,可以先找出表列中居中数,即a[4],将要找数3与a[4]比较,a[4]值是9,发现a[4]>3,显然3应当在a[0]~a[4]范畴内,而不会在a[5]~a[8]范畴内。这样就可以缩小查找范畴,甩掉

20、a[5]~a[8]这一某些,即将查找范畴缩小为一半。再找a[0]~a[4] 中居中数,即a[2],将要找数与a[2] 比较,a[2]值是5,发现a[2]>3,显然3应当在a[0]~a[2]范畴内。这样又将查找范畴缩小了一半。再将3与a[0]~a[2]范畴内居中数a[1]比较,发现要找数3等于a[1],查找结束。一共比较了3次。 [测试数据] 自己选取15数据输入。查找某一成绩时,分别选用在15个中成绩和没有在15成绩中数据测试。 [思考与扩展] 1、将选取法排序与起泡法比较,分析它们特点和效率。 2、如果采用顺序查找办法,即从第一种元素开始对比始终到找到与之相等元素,和折半查找法相比

21、那个效率高? 3、数组名作为函数参数,形参和实参关系? 题目2 矩阵相乘 将两个给定距阵(3X3)相乘得到另一种距阵并将其打印出来。提示: X = 其中 规定: 1、从键盘输入两个矩阵,并输出成果矩阵。矩阵输入输出规定行列对其。 2、把矩阵相承写成函数形式,在主函数中完毕矩阵输入输出。 [实验提示] 1、定义三个数组a[2][2],b[2][2],c[2][2] 2、注意c数组每一种元素 则应设计一种嵌套循环,一共有三个循环变量:i,j,k for(i=0;i<3;i++;) { for(j=0;j<3;j++;) {

22、 for(k=0;k<3;k++;) { c[i][j] += a[i][k]*b[k][j] } } } [测试数据] 自己选取一组数据输入。 题目3 字符串连接 编一程序,将两个字符串连接起来。成果取代第一种字符串。 规定 1、用字符数组,不用strcat函数; 2、用C原则中strcat函数; [实验提示] 1、采用字符数组办法。算法:定义两个字符数组,第一种数组大小应不不大于两个字符数组有效大小。在串接时要注意字符处结束标志:如下图所示: Str1[20] I L O V

23、 E \0 [实验提示] 1、采用字符数组办法。算法:定义两个字符数组,第一种数组大小应不不大于两个字符数组有效大小。在串接时要注意字符处结束标志:如下图所示: Str1[20] I L O V E \0 Str2[10] C + + \0 串接后:str1[20] I L O V E C + + \0

24、 串接过程: 1)一方面找到第一种字符串结束标志即末尾str1[5]。 2)执行str1[5+i] = str[i] 直到str[i] != ‘\0’ 3)给字符串str1末尾添加‘\0’ 2、函数原形 strcat(char[],const char[])使用时实参只需给出数组名,如 strcat(str1,str2)使用时要保证str1数组不会溢出。 [测试数据] 自己选取一组数据输入。 [思考与扩展] 字符数组和字符串数组有什么联系或区别? 实验五 函数 5.1 实验类型:验证型实验 2学时 5.2 实验目 1、掌握函数声明、定义

25、和用法; 2、掌握函数递归调用办法; 3、掌握全局变量、局部变量、静态局部变量概念和用法; 4、掌握定义头文献办法,学会建立和调试多文献程序; 5、学习函数重载实现; 3.3.3 知识点简介 1、一种函数就是一种功能,在面向过程构造化程序设计中,函数是程序基本模块。 2、函数定义:类型 函数名(参数表){}。 3、函数调用过程:程序先执行函数调用之前语句,流程控制转移到被调函数入口处,同步进行参数传递;执行被调函数种函数体语句;流程返回调用函数下一条指令处,将函数返回值带回;接着执行主调函数中未执行语句。 4、函数嵌套调用:被调函数中又调用另一种函数。 5、函数递归调用:

26、一种函数直接或间接调用自己,在实现递归时,再时间和空间上开销比较大,但递归调用符合人们思维,程序容易理解。 6、变量作用域:全局变量和局部变量 变量生存期:动态存储期,静态存储期 变量存储位置:内存中静态区,内存中动态区。寄存器存储。 3.3.4 实验内容 题目1 分析程序运营成果 输入下列程序,运营它,分析得到成果。 规定: 1、阅读分析程序,给程序加上必要注释 2、分析何以得出运营成果因素 3、区别程序中那些是全局变量、局部变量、局部静态变量?这些变量差别是什么? 4、阐明函数调用时实参和形参相应关系及值传递方式? [实验提示] 运营时在程序中设立断点

27、调试,观测各个变量值变化以及函数调用过程。 1、设立断点调试你程序观测函数调用执行流程。详细做法是在函数调用语句处设立断点,再在该被调函数函数体语句某些设立断点。 2、单步执行程序,观测程序执行流程:函数调用时实参和形参结合状况;程序从main函数转移到被调函数代码执行及返回流程,注意观测形参变量值变化及形参变量生存期。 [测试数据] 变化main( )函数中a值令a = 10,变化func()函数中b值令static int b=10;程序运营成果? [思考与扩展] 1、将函数func()中变量static int b=10;改为 int b,程序运营成果有什么变化。 2、

28、如果将main()函数中定义变量语句 int a,b;移到程序第三行?程序运营成果有无变化,为什么。 题目2 函数递归调用和多文献构造 编写一种函数,求从n个不同数中取r个数所有选取个数。其个数值为: 其中: n!= n*(n-1)*(n-2)*...*1。 1、基本规定: 主程序中设计一种循环,不断从输入接受n和r值,计算成果并输出,当顾客输入0 0时,程序结束; 能检查输入数据合法性,规定n>=1并且n>=r; 2、分别用递归和非递归两种方式完毕程序设计; 3、多文献构造实现 将上面用非递归方式写成程序改成用多文献构造表达。规定将main()函数放在一种文献中,将

29、此外两个函数放在另一种文献中,将函数原型阐明放在一种头文献中。建立一种项目,将这三个文献加到你项目中,编译连接使你程序正常运营。 [测试数据]: 输入:5 3 输入:10 20 输入:-1 4 输入:50 3 输入:0 0 [实验提示] 1、运用一种非递归函数fn(int n)计算n!,运用另一种函数Cnr(int n,int r)计算Cnr,在该函数中调用fn(), 问题:你打算用什么样变量类型来存储n!函数返回值?注意各种数据类型内存字长不同,整数能存储数据范畴有限,你如何解决? 可以用double数据类型来存储函数计算成果 2、运用一种递归函数实现,运

30、用公式实现递归: C(n,r) = C(n,r-1) * (n – r + 1) / r 注意递归结束条件: 如果 r = 0 ,则C(n,r) = 1 如果 r = 1,则C(n,r) = n [思考与扩展] 1、设立断点观测函数递归调用和嵌套调用执行流程。 2、递归函数书写要点是什么? 3、在递归版本中,当n大到什么值时系统将发生栈溢出报错?你觉得递归和非递归函数哪种好些?, 4、多文献构造中头文献作用是什么? 5、将程序划分为各种文献有什么好处? 1、对一种形式测试:分别在有标记符和注释掉程序中标记符定义两种状况下编译运营。 2、对第二种形式测试:分别使表达式

31、值为0和非0两种状况下编译运营。 . 实验六 指针 6.1 实验类型:验证型实验 2学时 6.2 实验目 1、掌握指针概念、学会定义和使用指针变量; 2、掌握引用型变量概念、学会定义和使用引用型变量; 3、学习使用指针数组和指向数组指针; 4、学习使用指向字符串指针变量; 5、学习使用指针和引用给函数传递参数; 6.3 知识点简介 1、指针就是地址,一种变量地址成为给变量指针。指针变量就是用来专门存储另一种变量地址。若果一种指针变量存储另一种变量地址,咱们就说指针变量指向该变量。 2、指针变量类型是其指向变量或常量数据类型,指针变量自身在内

32、存中只占四个字节。 3、指针作为函数参数时不会变化实参指针变量值,但可以变化实参所指向变量值。 4、数组名代表数组首地址,是一种指针常量。可以用一种指针变量指向一种数组,通过该指针可以对数组任意操作。 5 函数指针:函数名代表函数函数入口地址,可以定义指向函数指针变量用来指向函数。指针函数:函数返回值是指针(地址)。 6、指针运算灵活,但容易出错。 7、变量引用就是变量别名。引用作形参不是传值,而是传递别名,即形参是实参别名,并没有为形参分派存储单元。 6.4 实验内容 题目1 程序分析 输入下列程序,运营它,分析得到成果。 规定: 1、给本

33、题代码加上恰当注释,编译调试,分析阐明程序运营成果。 2、如果将swap函数改为如下形式,程序运营成果是什么?分析阐明。 void swappionter(int *p1,int *p2) { int * temp; temp = p1; p1 = p2; p2 = temp; } 3、如果将swap函数改为如下形式,主函数中函数调用改为:swap( iv1,iv2 ); 程序运营成果是什么?分析阐明。 void swap(int &p1,int &p2) { int

34、 temp; temp = p1; p1 = p2; p2 = temp; } [实验提示] 1、注意区别指针定义,指针引用。 2、注意区别指针值和指针指向对象值。 [测试数据] 自己修改程序中某些代码,调试运营。 [思考与扩展] 1 归纳阐明普通变量作形参、指针作形参、引用作函数形参得区别。 题目2 班级课程成绩计算 一种班有5名学生,每个学生修了五门课,1)求每个学生平均成绩,并输出每个学生学号,每门课程成绩及平均直。2)求某门课程平均分; 实现规定: 1、分别编写2个函数实

35、现以上2个规定。 2、第1个函数用数组名作参数。第2个函数用指针用参数,并在函数体内用指针对数组操作。 [实验提示] 1、第一种办法: (1)程序数据构造 定义一种一维数组存储5学生学号:int num[5];定义一种二维数组存储5学生成绩int sco[5][5],再定义一种一维数组存储5个学生平均成绩int avsco[5]; (2)函数编写 求每个学生平均成绩函数:void averscore ( int sco[][5] ,avsco[5] ),函数体中算法是计算sco[][5]每一行平均值赋给avsco[5]相应元素。 求某门课程平均分函数:int averc

36、ourse( int(*psco)[5], n ) ,形参中int(*sco)[5] 是指向5个元素构成一维数组指针变量,n表达要查找第n门课程成绩。如函数调用:avercourse( sco,3),sco是二维数组名,3表达要计算第3门课程平均分。函数体中计算psco所指向二维数组第3列平均值; 2、第二种办法, (1)程序数据构造 由于学号、成绩、平均成绩都是数值型数据,可以定义一种二维数组用来保存学生信息——学号、5门成绩、平均成绩:int stu_info[5][7] 数组有5行7列,5行相应5个学生,7列分别相应学生学号、5门成绩、平均成绩。固然没有计算平均成绩之前最后一

37、列数据是0; (2)函数编写 求每个学生平均成绩函数:void averscore ( int stu_info[5][7] ),函数体中算法是计算stu_info[5][7]]每一行第1到5列元素平均值赋给第6列元素(第0列是序号)。 求某门课程平均分函数:int avercourse( int(*psco)[7], n ) ,形参中int(*sco)[7] 是指向7个元素构成一维数组指针变量,n表达要查找第n门课程成绩。如函数调用:avercourse( sco,3),sco是二维数组名,3表达要计算第3门课程平均分。函数体中计算psco所指向二维数组第3+1列平均值(第一列是学

38、号); [测试数据] 自己选取一组数据输入。 [思考与扩展] 1、二维数组作为函数形参int avercourse( int(*psco)[5], n )中为什么要指定第二维大小? 2、在函数体中用指针操作二维数组例如:*(*(psco +i)+j)就代表数组第i行j列元素即psco[i][j]。 题目3 排序查找(选做) 用选取法对15个整数安从大到小顺序排序。15个整数用scanf 输入。 排序完毕后输入一种数,规定用折半查找法找出该数是数组中第几种元素值。如果该数不在数组中,则输出“无此数”。 规定: 1、把排序算法写成函数形式,用指针变量作为排序函数参数,在

39、排序算法中用指针法访问数组元素。 2、把查找算法写成函数形式,用指针变量作为查找函数参数,在查找算法中用指针法访问数组元素。 [实验提示] 排序算法和折半查找法见实验4。 [测试数据] 自己选取一组数据输入。 [思考与扩展] 1、在调用函数时实参为什么只需给出数组名? 2、指针函数和函数指针有什么区别? 实验七 构造体 7.1 实验类型:验证型实验 2学时 7.2 实验目 1、掌握构造体变量定义和使用; 2、掌握构造体数组定义和使用; 3、理解链表概念,学习使用指针构造和操作简朴链表; 4、理解堆内存分派技术; 7.3 知识点

40、简介 1、C提供了丰富基本数据类型,为理解决复杂实际问题,C容许顾客自定义数据类型:构造体类型、共用体类型、枚举类型 2、构造体类型:包括若干个不同数据类型数据项。构造体类型定义(规定)了一组数据项信息组织构造,相称于一种模型,系统并没有为其分派存储单元,只有在定义了构造体变量时,系统才按照该构造类型数据项信息组织构造分派相应存储单元。 3、构造体变量可以向其她数据类型同样使用。可以定义构造体类型数组,可以定义构造类型指针,也可以定义构造体类型引用。 4、malloc和free:动态分派和撤销内存。malloc出来内存空间必要用一种指针来向它,使用完毕之后必要用free撤销掉,否则会导

41、致内存泄露。 5、共用体类型:不同几种数据项占用同一块内存。使用共用体变量目是但愿同一段内存存储几种不同类型数据,但每一瞬间只能存储一种,而不是同步存储。 7.4 实验内容 题目1 日期计算 定义一种构造体变量(涉及年、月、日),编程序,规定输入年月日,程序能计算并输出该日在本年中第几天。注意闰年问题。 [实验提示] 算法提示见第三次实验计算生日时星期几 [测试数据] 1、1年1月1日是星期一 2、2年1月1日是星期二 3、用上机日期 5、1月1日是星期六。 [思考与扩展] 1、修改程序,在程序中用指针办法访问构造体变量成员。 2、构造体变量占用存储单元字节数

42、是多少,能不能用sizeof()求构造体变量字节数? 题目2 学生成绩管理 有5个学生,每个学生数据涉及学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,规定打印出每个学生三门课平均成绩,以及平均分最高分学生数据(涉及学号、班级、姓名、三门课成绩,平均分)。 规定: 1、定义学生构造体。 2、用一种函数实现5个学生数据输入,用另一种函数负责求每个学生三门课程平均成绩,再用一种函数求出平均分最高学生并输出该学生数据。规定平均分和平均分最高学生数据都在主函数种输出。 3、用多文献程序构造实现。 [实验提示] 1、构造体定义 struct Student

43、 { int num; //学号 char name[20]; //班级注意字节长度 char classname[20]; //班级 float score[3]; //三门课程成绩 float aver_score; //平均分 } 2、数据组织提示: 在主函数中定义一种构造体数组。 Student stu[20] //定义有20个变量元素构造体数组(依照需要/

44、/拟定数组大小)。 3、构造体数组使用 (1)循环输入学生信息: int stu_number = 0 ; //学生个数 printf("please enter student number:"); scanf(stu_number) for( int i = 0;i<=stu_number;i++) { cout<< "please enter NO. "<< i << " student info :num name class score1 score2 score3"; cin >> stu[i]. num >> stu[i]. name >

45、> stu[i]. classname; cin>> stu[i].score[0] >> stu[i].score[1] >> stu[i].score[2]; } (2)平均分计算函数 ,以数组名作参数 void averagescore(student stu[],int number) { for( int i = 0;i<= number;i++) { Stu[i] = (stu[i].score[0]+ stu[i].score[1]+stu[i].score[2])/3.0 } } (3)求平均分最高学生 int averagescore(s

46、tudent stu[],int number) { int k = 0; //查找最高平均分并记录在数组中下标值 for( int i = 0;i<= number;i++) { ……… } return k; //返回最高平均分数组元素下标 } [测试数据] 自己设计一组测试数据 [思考与扩展] 如果这样定义构造体 typedef struct Student { int num; //学号 char name[20]; //姓名 注意字节长度

47、 char classname[20]; //班级 float score[3]; //三门课程成绩 float aver_score; //平均分 } STU,* pSTU; 阐明如下三条语句含义: student stu1; STU stu2; pSTU pstu; 实验 八 文献操作 8.1 实验类型:验证型实验 2学时 8.2 实验目 1、理解文本文献和二进制文献格式区别; 2、掌握对文本文献I/O操作; 3、掌握对文本文献

48、I/O操作; 8.3 知识点简介 ASCII文献和二进制文献区别 1)对于字符信息,在内存中是以ASCII代码形式存储,因而,无论用ASCII文献输出还是用二进制文献输出,其数据形式是同样。 2)但是对于数值数据,两者是不同。例如有一种长整数100000,在内存中占4个字节,如果按内部格式直接输出,在磁盘文献中占4个字节,如果将它转换为ASCII码形式输出,则要占6个字节。 8.4 实验内容 题目1 二进制文献操作 从键盘输入字符串并保存成文献。 规定: 1、输入字符串中涉及:大小写字母、空格、数字等字符,以“#”作为字符串输入结束条件; 2、对输入字符进行加密并

49、保存,以二进制文献方式保存,顾客可以输入保存途径,如:C:\file.txt ; 3、打开文献时,对加密文献进行解密并显示在屏幕上。 [实验提示] 1、使用scanf获取输入字符时,遇到空格时终结读取字符,为了避免这种状况,不能简朴使用scanf来获取输入字符; 2、加密方式: 将字母A变成E,a变成e,即将字母变成其后第4个字母,W变A,X变成B,Y变成C,Z变成D,w变a,x变成b,y变成c,z变成d。 解密方式:即加密方式逆过程。 [测试数据] 自己设计测试数据,进行测试; 在实验报告中,列出自己设计测试数据。 [思考与扩展] 题目2 学生信息管理 有5个学生,每个学生数据涉及学号、班级、姓名、三门课成绩。从键盘输入5个学生数据。 规定: 1计算出每个学生三门课平均成绩,将原有数据和计算出数据存储在磁盘文献stud中 2从文献stud中得到数据,并按平均成绩高低进行排序,将排序学生数据放在新文献stud_sort中。 [测试数据] 自己设计测试数据,进行测试; 在实验报告中,列出自己设计测试数据。 [思考与扩展]

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服