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

2020-04-03 13:02

华中科技大学

C语言实验与课程设计

实验报告

华中科技大学 目录

C语言实验与课程设计实验报告 CS1408赵晓雁

指导老师:

2

计算机科学与技术学院 华中科技大学 C语言实验与课程设计实验报告 CS1408赵晓雁

1 表达式和标准输入输出实验 ········ 3 2 流程控制实验 ·············· 11 3 函数程序与结构实验 ··········· 20 4 编译预处理实验 ·············5 数组实验 ················ 35 6 指针实验 ················ 42 7 结构与联合实验 ·············8 文件实验 ················ 61

3

28 52 华中科技大学 C语言实验与课程设计实验报告 CS1408赵晓雁

1 表达式和标准输入与输出实验

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的步骤对下面程序进行调试修改,使之能够正确完成指定任务。

程序代码:

#include #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(\

4

华中科技大学 C语言实验与课程设计实验报告 CS1408赵晓雁

scanf(\s = PI * r * r;

printf(\/* for task 3 */

printf(\scanf(\

newint = (p&0xff00)|(k&0xff00)<<8; printf(\

}

【分析及改正】本程序共存在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(\(5)c = 5/9*(f-32) ;

错误原因:5和9是整型常数,相除会截断小数部分,应该将其中任意一个输表示为或转换为浮点数类型

改正:c = 5.0/9*(f-32); (6)scanf(\

错误原因:double类型对应的占位符是%lf 改正:scanf(\

(7)printf(\

错误原因:要输出s的值应该将s作为参数传递给printf,不应传递其地址

改正:printf(\(8)scanf(\

printf(\

错误原因:k,p为short类型,对应十六进制占位符应为%hx 改正:scanf(\

printf(\(9)newint = (p&0xff00)|(k&0xff00)<<8;

错误原因:要求将k的高字节作为结果的低字节,应该将k的高字节

5


华中科技大学C语言实验与课程设计上机实验报告汇总(1~8全部).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:财务案例思考题汇总

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: