华中科技大学C语言实验及课程设计上机实验报告汇总(1~8全部).docx

华中科技大学C语言实验及课程设计上机实验报告汇总(1~8全部).docx

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档