- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华中科技大学C语言实验与课程设计实验报告计算机科学与技术学院指导老师:目录1 表达式和标准输入输出实验········ 32 流程控制实验 ·············· 113 函数程序与结构实验 ··········· 204 编译预处理实验 ············· 285 数组实验 ················ 356 指针实验 ················ 427 结构与联合实验 ············· 528 文件实验 ················ 611 表达式和标准输入与输出实验1.1 实验目的(1) 熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。(2)掌握scanf 和printf 函数的用法。(3)掌握简单C程序(顺序结构程序)的编写方法。1.2 实验内容及结果1.2.1.源程序改错下面给出了一个简单C语言程序例程,用来完成以下工作:(1)输入华氏温度f,将它转换成摄氏温度C后输出;(2)输入圆的半径值r,计算并输出圆的面积s;(3)输入短整数k、p,将k的高字节作为结果的低字节,p的高字节作为结果的高字节,拼成一个新的整数,然后输出;在这个例子程序中存在若干语法和逻辑错误。要求参照2.1.3和2.1.4的步骤对下面程序进行调试修改,使之能够正确完成指定任务。程序代码:#includestdio.h#define PI 3.14159;voidmain( void ){ int f ; short p, k ; double c , r , s ;/* for task 1 */ printf(“Input Fahrenheit:” ) ; scanf(“%d”, f ) ; c = 5/9*(f-32) ; printf( “ \n %d (F) = %.2f (C)\n\n ”, f, c ) ;/* for task 2 */printf(input the radius r:);scanf(%f, r);s = PI * r * r;printf(\nThe acreage is %.2f\n\n,s);/* for task 3 */printf(input hex int k, p :);scanf(%x %x, k, p );newint = (p0xff00)|(k0xff00)8;printf(new int = %x\n\n,newint);}【分析及改正】本程序共存在9处错误,分析如下:(1)#define PI 3.14159;错误原因:宏定义在预处理时会将后续程序中的标示符展开为对应全部字符串,而PI不需要分号。改正:去掉其后分号(2)voidmain(void) { 错误原因:函数返回值与函数名之间应加空格,C90标准建议main函数应返回一个int作为状态值改正:int main(void) {(3)short p,k;错误原因:后续用到了newint变量但并未声明改正:short p,k,newint;(4)scanf(“%d”, f );错误原因:应该把要读入的变量的地址传递给scanf才能正确写入改正:scanf(%d,f);(5)c = 5/9*(f-32) ;错误原因:5和9是整型常数,相除会截断小数部分,应该将其中任意一个输表示为或转换为浮点数类型改正:c = 5.0/9*(f-32);(6)scanf(%f, r);错误原因:double类型对应的占位符是%lf改正:scanf(%lf,r);(7)printf(\nThe acreage is %.2f\n\n,s);错误原因:要输出s的值应该将s作为参数传递给printf,不应传递其地址改正:printf(\nThe acreage is %.2f\n\n,s);(8)scanf(%x %x, k, p );printf(new int = %x\n\n,newint);错误原因:k,p为short类型,对应十六进制占位符应为%hx改正:scanf(%hx %hx,k,p);printf(new int = %hx\n\n,newint);(9)newint = (p0xff00)|(k0xff00)8;错误原因:要求将k的高字节作为结果的低字节,应该将k的高字节提取出后右移至低字节改正:newint=(p0xff00)|(((k0xff00)8)0x00ff);1.2.2 源程序修改替换下面的程序利用常用的中间变量法实现两数交换,请改用不使用第3个变量的方法实现。该程序中t
您可能关注的文档
- 七年级下地理7.4俄罗斯第二课时.pptx
- 2016新北师大三年级数学下分桃子.pptx
- 05电机拖动_第四章_异步电机一2.ppt
- 自建一套家用太阳能发电系统的流程和注意事项.pdf
- 1哈佛大学名言胡凤芩中华讲师网.ppt
- 1.4速度变化快慢描述--加速度.ppt
- 01_常用运算符和优先级.ppt
- 众与股份:2009年度内部控制自我评价报告 2010-02-27.pdf
- 【优化探究】2015届高考化学苏教版一轮复习配套课件:选修5-1认识有机物 烃.ppt
- 【数据机构C语言描述】第七章 图.ppt
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)