C语言实验报告(16)
- 格式:doc
- 大小:194.50 KB
- 文档页数:49
《C语言》实验报告专业_____________年级_____________学号_____________学生姓名_____________指导老师_____________华中师范大学信息管理系编I 实习目的和意义C语言程序设计实验的目的是培养学生具有初步的C语言程序设计、编程、调试和排除C语言程序语法、逻辑错误的能力。
通过实验使学生进一步熟悉并掌握C语言程序的调试运行环境、程序设计过程、程序的基本结构以及程序设计的基本方法。
通过实验,使学生将程序设计的理论知识与实践相结合,为学生学习其他计算机编程语言打下基础。
在每一次的实验过程中,学生要认真复习基本概念,独立编写程序,并上机调试运行,培养自己发现程序中的错误、改正错误以使程序能正确运行的能力。
经验丰富的人,当编译时出现“出错信息”时,能很快地判断出错误所在,并改正之。
而缺乏经验的人即使在系统给出明确出错提示信息下也往往找不出错误而求救于别人。
对于学生来说,不仅要了解和熟悉有关理论和方法,还要求自己动手实现,要求会编写程序并上机调试通过。
因此调试程序本身是程序设计课程的一个重要内容和基本要求,应给予充分的重视。
调试程序的经验固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来积累,而且有些经验是只能“意会”难以“言传”。
调试程序的能力,是学完《C语言程序设计》之后,每个学生应当掌握的一项基本功。
因此,在实习时千万不要在程序通过后就认为完成任务了,而应当在已通过的程序基础上作一些改动(例如修改一些参数、增加程序一些功能、改变输入数据的方法等,甚至于“自设障碍”,即把正确的程序改为有错的,如用scanf函数输入变量时,漏写“&”符号,使数组下标越界,使整数溢出等),观察和分析所出现的情况,并认真、及时总结。
这样的学习是灵活主动的学习而不是呆板被动的学习,才会有真正的收获。
II实验要求1.每次实验中有若干习题,每个学生至少应该完成其中的三道习题。
2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率,严禁一边上机一边编写。
3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。
4.上机结束后,应整理出实验报告。
书写实验报告时,重点放在调试过程和小结部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力之目的。
III 实验内容实验一 VC++6.0开发平台环境及应用【实验目的】1.熟悉VC++6.0的运行环境。
2.了解在VC++6.0上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点,初步掌握查错和排错的技能.【上机实习指导】1.通过阅读上机操作指南,在VC中练习输入、编译、运行一个C语言程序的全过程。
以下程序是计算函数y=3x2+2x-4(假设x=2)。
# include “stdio.h”void main( ){int x=2,y;y=3*x*x+2*x-4;printf(“\ny=%d”,y);}程序运行正确后,可以尝试改变x的值和输出格式“%d”、“%u”、”%o”、”%x”等,观察运行结果的变化。
2.分析下面的程序输出的结果。
# include <stdio.h>int main( ){char c='1';int i=-1;long n=2147483647;float f=-0.12345;putchar(c);putchar(';');printf("%3c;%d\n",c,c);printf("%d%d;%3d%3d;%u\n",i,i,i,i,i);printf("%-11ld;%9d\n",n,n);printf("%lx;%012o\n",n,n);printf("%.2f;%10.4f\n",f,f);printf("%e;%11.2e\n",f,f);printf("%s;%.3s\n","student","student");return 0;}【自编程序上机】1.编程实现在屏幕输出下面图形** * ** * * * ** * **2.编程实现:从键盘上输入半径,输出园的周长及面积。
【实验报告】实验二简单程序设计【实验目的】1.进一步熟悉VC++6.0的运行环境。
2.掌握三种标准类型和部分运算符的使用。
3.熟练掌握格式输入与格式输出函数的使用。
【上机实习指导】1.基本数据类型表示范围练习假设有如下程序:# include <stdio.h>void main ( ){char ch1, ch2, ch;unsigned char c;int a;ch1 = 80;ch2 = 60;ch = ch1 + ch2;c = ch1 + ch2;a = ch1 + ch2;printf (“ch1 + ch2 = %d\n”, ch1 + ch2);printf(“ch = %d\n”, ch);printf(“c = %d\n”, c);printf(“a = %d\n”, a);}问题1 :运行该程序,写出输出结果。
并说明为什么存在输出结果的差异?问题2 :如果要求四行输出的结果均为140,在不改变变量的数据类型的基础上,则应修改程序中的哪条语句?怎样修改?问题3 :编一程序,要求两个负整数相加,输出的结果为一正整数。
【自编程序上机】1.键盘输入与屏幕输出练习用下面的scanf函数输入数据,使a = 3, b = 7, x = 8.5, y = 71.82, c1 = ‘A’, c2 = ‘a’,问在键盘上如何输入?要求把下列程序补充完整。
#include <stdio.h>void main ( ){int a, b;float x, y;char c1, c2;scanf (“a = %d b = %d”, &a, &b);scanf(“x = %f y = %e”, &x, &y);scanf(“c1 = %c c2 = %c”, &c1, &c2);}提示:在“格式控制”字符串中除了格式说明以外还有其它字符,在输入数据时应输入与这些字符相同的字符。
为了验证输入格式的正确与否,应在程序中补充调用标准的输出函数printf。
2.按输出结果要求编写程序若a = 3, b = 4, c = 5, x = 1.2, y = 2.4, z = -3.6, u = 51274, n = 128765. c1 = ‘a’, c2 = ‘b’,想得到以下输出格式和结果,请写出完整的程序。
要求输出结果如下:(*表示空格)a = 3***b=4***c=5x = 1.20000, y = 2.400000, z = -3.600000x+y = *3.60**y+z = -1.20**z+x = -2.40u = 51274***n = ***128765c1 = ‘a’*or*97(ASCII)c2 = ‘b’*or*98(ASCII)提示:根据题目中变量的值定义合适的变量类型。
正确定义和使用printf函数中的格式控制字符串。
3.计算定期存款本利之和设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后本利之和deposit。
要求定期存款的年利率rate、存款期间n和存款本金capital均由键盘输入。
4. 求一个四整数的各位数字之和,并在屏幕上输出结果。
5.编程实现:用1分、5分、10分、25分的硬币凑成任何给定的钱数x,要求硬币的数目最少。
【实验报告】实验三选择结构程序设计【实验目的】1.熟练掌握上机运行一个C程序的操作过程。
2.学会正确使用逻辑运算符和逻辑表达式,进一步掌握各种表达式的使用。
3.利用if语句实现选择结构程序设计。
4.利用switch语句实现多分支选择结构程序设计。
5.进一步练习调试与修改程序。
【上机实习指导】1.输入并运行习题3.10。
即:# include “stdio.h”void main( ){ int i,j,n,m;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);}分别作以下改变并运行:①将程序第四行改为:m=i++;n=++j;②程序改为:# include “stdio.h”void main( ){ int i,j;i=8;j=10;printf(“%d,%d”,i++,j++);}③在②的基础上,将语句改为:printf(“%d,%d”,i++,j++);④再将语句改为:printf(“%d,%d,%d,%d”,i,j,i++,j++);⑤程序改为:# include “stdio.h”void main( ){ int i,j,n=0,m=0;i=8;j=10;m+=i++;n-=- -j;printf(“%d,%d,%d,%d”,i,j,m,n);}2.计算下列分段函数值:具体要求如下:①用if语句实现分支。
自变量x与函数值均用单精度类型。
②自变量x用scanf函数输入,且输入前要有提示。
结果的输出采用以下形式:x=具体值,f(x)=具体值③分别输入x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0,运行该程序。
3.先静态分析以下程序的运行结果,然后上机验证。
# include “stdio.h”void main( ){ int a=3,b=4,c=5,x,y,z;x=c>b>a;y=!a+b<c&&(b!=c);z=c/b+((float)a/b&&(float)(a/c));printf(“\n x=%d,y=%d,z=%d”,x,y,z);x=a||b--;y=a---3&&b;printf(“\n %d,%d,%d,%d,%d,%d”,a,b,c,x,y,z);}上机运行的结果与你分析的结果是否一致?不一致的原因何在?请在程序的最后一个花括号前加上语句:getchar();后重新运行程序,注意事项加上这一语句后,程序的运行进程有何不同?getchar()是一个函数调用,其作用是等待接收你从键盘输入的一个字符,在你未按键之前一直处于等待状态。
在这里可以起到暂停的作用。
当你看清结果并按任意键后,立即退出程序并切换回TC主屏幕。
用这一方法可以减少屏幕切换操作。