好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

2023年华中科技大学计算机学院C语言与程序设计实验报告含源代码.doc

133页
  • 卖家[上传人]:ni****g
  • 文档编号:401558784
  • 上传时间:2023-08-13
  • 文档格式:DOC
  • 文档大小:1.16MB
  • / 133 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 课 程 实 验 报 告课程名称: C语言程序设计实验 专业班级: 计算机1709班 学 号: U 姓 名: 指导教师: 甘早斌 报告日期: 2023/1/10 计算机科学与技术学院目录1 表达式和标准输入输出实验 21.1 实验目的 21.2 实验内容 21.3 实验小结 112 流程控制实验 122.1 实验目的 122.2 实验内容 122.3 实验小结 253 函数与程序结构实验 263.1 实验目的 263.2 实验内容 263.3 实验小结 374 编译预解决实验 384.1 实验目的 384.2 实验内容 384.3 实验小结 465 数组实验 475.1 实验目的 475.2 实验内容 475.3 实验小结 606 指针实验 616.1 实验目的 616.2 实验内容 616.3 实验小结 777 结构与联合实验 787.1 实验目的 787.2 实验内容 787.3 实验小结 1118 文献实验 1128.1 实验目的 1128.2 实验内容 1128.3 实验小结 117参考文献 1181 表达式和标准输入与输出实验1.1 实验目的(1)纯熟掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。

      2)掌握getchar, putchar, scanf 和printf 函数的用法3)掌握简朴C程序(顺序结构程序)的编写方法1.2 实验内容1.2.1 源程序改错 下面给出了一个简朴C语言程序例程,用来完毕以下工作:(1)输入华氏温度f,将它转换成摄氏温度c后输出;(2)输入圆的半径值r,计算并输出圆的面积s;(3)输入短整数k、p,将k的高字节作为结果的低字节,p的高字节作为结果的高字节,拼成一个新的整数,然后输出;在这个例子程序中存在若干语法和逻辑错误规定参照1.3和1.4的环节对下面程序进行调试修改,使之可以对的完毕指定任务 1 #include 2 #define PI 3.14159; 3 voidmain( void )4 {5 int f ;6 short p, k ;7 double c , r , s ;8 /* for task 1 */9 printf(“Input Fahrenheit:” ) ;10 scanf(“%d”, f ) ;11 c = 5/9*(f-32) ;12 printf( “ \n %d (F) = %.2f (C)\n\n ”, f, c ) ; 13 /* for task 2 */14 printf("input the radius r:");15 scanf("%f", &r);16 s = PI * r * r;17 printf("\nThe acreage is %.2f\n\n",&s);18 /* for task 3 */19 printf("input hex int k, p :");20 scanf("%x %x", &k, &p );21 newint = (p&0xff00)|(k&0xff00)<<8;22 printf("new int = %x\n\n",newint);}解答: (1)错误修改:1) 第2行的符号常量定义后不能有分号,对的形式为:#define PI 3.141592) 第3行的voidmain( void )的返回类型和函数名应分开,对的形式为:int main(void)3)第10行的scanf("%d",f);在输入内容时指向地址应使用&,对的形式为: scanf("%d", &f ) ;4) 第11行的c = 5/9*(f-32) ;由于f是int型,在运算时右侧表达式会被截去小数部分,对的形式为:c = 5.0/9*(f-32) ; 5)第12行的printf( “ \n %d (F) = %.2f (C)\n\n ”, f, c ) ;由于c是双精度浮点型变量应使用占位符%lf,对的形式为: printf(" \n %d (F) = %.2lf (C)\n\n ", f, c ) ; 6)第15行的scanf("%f", &r);由于r是双精度浮点型变量应使用占位符%lf,对的形式为:scanf("%lf", &r); 7)第17行的printf("\nThe acreage is %.2f\n\n",&s);变量s为长浮点型,且输出不需要取址符,对的形式为:printf("\nThe acreage is %.2lf\n\n",s); 8)第21行newint变量未声明,且数学表达式错误,对的形式为: short newint; newint=(p&0xff00)|((k&0xff00)>>8);9)第20行、第22行的变量为短整型,%x应为%hx,对的形式为:20 scanf("%hx %hx", &k, &p );22 printf("new int = %hx\n\n",newint); (2)错误修改后运营结果:1.2.2 源程序修改替换下面的程序运用常用的中间变量法实现两数互换,请改用不使用第3个变量的方法实现。

      该程序中t是中间变量,规定将定义语句中的t删除,修改下划线处的语句,使之实现两数对调的操作includevoid main( ){ int a, b, t; printf(“Input two integers:”); scanf(“%d %d”,&a,&b); t=a ;a=b;b=t; prinf(“\na=%d,b=%d”,a,b);}解答: 替换后的程序如下所示:#includevoid main( ){ int a, b; printf(“Input two integers:”); scanf(“%d %d”,&a,&b); a=a+b ;b=a-b;a=a-b; printf(“\na=%d,b=%d”,a,b);}1.2.3 程序设计(1)编写一个程序,输入字符c,假如c是大写字母,则将c转换成相应的小写,否则c的值不变,最后输出c解答:1) 算法流程如图1.1所示开始图1.1结束N (a) 测试数据:表1-1 编程题1的测试数据测试用例程 序 输 入理 论 结 果运 行 结 果用例1Eee用例2eee用例3111NY输出字符cc=c-('A'-'a')c<='Z'&&c>="A"输入字符c2)程序清单#includeint main( ){ int c; printf("输入字符,假如它是大写字母,则将它转换成相应的小写,否则原样输出:"); c=getchar (); //通过getchar()来获得字符相应的ASCII码 if (c<='Z'&&c>='A') //判断字符c是否为大写字母 c=c-('A'-'a'); //将大写字母变为小写 printf ("解决结果是: %c",c); return 0;} 3)测试(a)测试数据: 表1-1 编程题1的测试数据测试用例程序输入理论值运营结果用例1Bbb用例2bbb用例3111(b)用例1的运营结果如图1.2所示图1.2用例2的运营结果如图1.2所示图1.3用例3的运营结果如图1.2所示图1.4运营结果与理论分析结果一致,验证了程序的对的性。

      2)编写一个程序,输入无符号短整数x,m,n(0 ≤m≤ 15, 1 ≤ n≤ 16-m),取出x从第m位开始向左的n位(m从右至左编号为0~15),并使其向左端(第15位)靠齐1)解题思绪:A.输入x,m ,nB.假如输入合理,转a,否则转Ca 准备使用位运算,先准备逻辑尺b 为运用按位与计算,将非预变换位变为0c 使用生成的逻辑尺与预变换数进行按位与运算,达成取出所需部分的目的d 将取出的部分向左靠齐e 输出结果C.提醒输入错误D.结束2)程序清单 #includeint main(){ unsigned short x, m, n, i; printf("输入x(10进制)、m(0~15)和n(1~16-m):"); scanf("%hu%hu%hu", &x, &m, &n); if(m>=0&&m<=15&&n>=1&&n<=16-m) //判断输入是否合理 { i = 0xffff; //准备位运算所需逻辑尺 i >>= m; //拟定变换起始位置 i <<= 16 - n; //拟定变换作用长度 i >>= 16 - m - n; //进入变换位置 x &= i; x <<= 16 - m - n; //左移 printf("通过变换得到: %hu", x); } else printf("输入错误,请检查您的输入"); //提醒输入不合理 return 0;}3)测试 (a) 测试数据: (b)相应测试测试用例1的运营结果如图2-2所示。

      图2-2 编程题2的测试用例一的运营结果 相应测试测试用例2的运营结果如图2-3所示图2-3 编程题2的测试用例二的运营结果 相应测试测试用例3的运营结果如图2-4所示 图2-4 编程题2的测试用例三的运营结果 运营结果与理论分析结果一致,验证了程序的对的性3)IP地址通常是4个用句点分隔的小整数(即点分十进制),如32.55.1.102这些地址在机器中用无符号长整形表达编写一个程序,以机器存储的形式读入一个互联网IP地址,对其译码,然后用常见的句点分隔的4部分的形式输出 解答:1) 解题思绪: A.输入变为整型数的IP B为4个byte准备4个逻辑尺,C.用这4个逻辑尺分别取。

      点击阅读更多内容
      相关文档
      三年级数学加减法口算专项练习题(每日一练共21份).docx 三年级数学加减法口算专项练习题(每日一练共33份).docx 三年级数学加减法口算专项练习题(每日一练共35份).docx 三年级数学加减法口算专项练习题(每日一练共34份).docx 三年级数学加减法口算专项练习题(每日一练共28份).docx 三年级数学加减法口算专项练习题(每日一练共30份).docx 三年级数学加减法口算专项练习题(每日一练共25份).docx 三年级数学加减法口算专项练习题(每日一练共26份).docx 三年级数学加减法口算专项练习题(每日一练共27份).docx 三年级数学加减法口算专项练习题(每日一练共17份).docx 三年级数学加减法口算专项练习题(每日一练共32份).docx 三年级数学加减法口算专项练习题(每日一练共24份).docx 三年级数学加减法口算专项练习题(每日一练共31份).docx 三年级数学加减法口算专项练习题(每日一练共20份).docx 三年级数学加减法口算专项练习题(每日一练共18份).docx 三年级数学加减法口算专项练习题(每日一练共22份).docx 三年级数学加减法口算专项练习题(每日一练共19份).docx 三年级数学加减法口算专项练习题(每日一练共23份).docx 三年级数学加减法口算专项练习题(每日一练共29份).docx 三年级数学加减法口算专项练习题(每日一练共15份).docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.