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

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

ID:50809920

大小:421.51 KB

页数:65页

时间:2020-03-14

华中科技大学C语言实验与课程设计上机实验报告汇总(18全部).docx_第1页
华中科技大学C语言实验与课程设计上机实验报告汇总(18全部).docx_第2页
华中科技大学C语言实验与课程设计上机实验报告汇总(18全部).docx_第3页
华中科技大学C语言实验与课程设计上机实验报告汇总(18全部).docx_第4页
华中科技大学C语言实验与课程设计上机实验报告汇总(18全部).docx_第5页
资源描述:

《华中科技大学C语言实验与课程设计上机实验报告汇总(18全部).docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、华中科技大学C语言实验与课程设计实验报告计算机科学与技术学院指导老师:目录1表达式和标准输入输出实验········32流程控制实验··············113函数程序与结构实验···········204编译预处理实验·············285数组实验················356指针实验················427结构与联合实验·············528文件实验················611表达式和标准输入与输出实验1.1实验目的(1)熟练掌握各种

2、运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。(2)掌握scanf和printf函数的用法。(3)掌握简单C程序(顺序结构程序)的编写方法。1.2实验内容及结果1.2.1.源程序改错下面给出了一个简单C语言程序例程,用来完成以下工作:(1)输入华氏温度f,将它转换成摄氏温度C后输出;(2)输入圆的半径值r,计算并输出圆的面积s;(3)输入短整数k、p,将k的高字节作为结果的低字节

3、,p的高字节作为结果的高字节,拼成一个新的整数,然后输出;在这个例子程序中存在若干语法和逻辑错误。要求参照2.1.3和2.1.4的步骤对下面程序进行调试修改,使之能够正确完成指定任务。程序代码:#include#definePI3.14159;voidmain(void){intf;shortp,k;doublec,r,s;/*fortask1*/printf(“InputFahrenheit:”);scanf(“%d”,f);c=5/9*(f-32);printf(“%d

4、(F)=%.2f(C)”,f,c);/*fortask2*/printf("inputtheradiusr:");scanf("%f",&r);s=PI*r*r;printf("Theacreageis%.2f",&s);/*fortask3*/printf("inputhexintk,p:");scanf("%x%x",&k,&p);newint=(p&0xff00)

5、(k&0xff00)<<8;printf("newint=%x",newint);}【分析及改正】

6、本程序共存在9处错误,分析如下:(1)#definePI3.14159;错误原因:宏定义在预处理时会将后续程序中的标示符展开为对应全部字符串,而PI不需要分号。改正:去掉其后分号(2)voidmain(void){错误原因:函数返回值与函数名之间应加空格,C90标准建议main函数应返回一个int作为状态值改正:intmain(void){(3)shortp,k;错误原因:后续用到了newint变量但并未声明改正:shortp,k,newint;(4)scanf(“%d”,f);错误原因:应该把

7、要读入的变量的地址传递给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("Theacreageis%.2f",&s);错误原因:要输出s的值应该将s作为参数传递给printf,不

8、应传递其地址改正:printf("Theacreageis%.2f",s);(8)scanf("%x%x",&k,&p);printf("newint=%x",newint);错误原因:k,p为short类型,对应十六进制占位符应为%hx改正:scanf("%hx%hx",&k,&p);printf("newint=%hx",newint);(9)newint=(p&0xff00)

9、(k&0xff00)<<8;错误原因:要求将k的高字节作为结果的低字节,应该将k的高字

10、节提取出后右移至低字节改正:newint=(p&0xff00)

11、(((k&0xff00)>>8)&0x00ff);1.2.2源程序修改替换下面的程序利用常用的中间变量法实现两数交换,请改用不使用第3个变量的方法实现。该程序中t是中间变量,要求将定义语句中的t删除,修改下划线处的语句,使之实现两数对调的操作。程序代码:#includevoidmain(){inta,b,t;printf(“Inputtwointegers:”);scanf(“%d%d”,&a,&b);t=a;a=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。