您好,欢迎访问三七文档
实验一C语言程序的编辑和运行一、实验目的1.熟悉C语言的系统环境,学习编辑运行C语言程序的基本方法。2.进一步认识程序的两种错误类型对程序结果的影响,加深对程序测试重要性的认识。3.认识C语言程序的结构特点,学习程序的基本编写方法二、实验内容1.TurboC2.0集成环境的使用。使用TurboC2.0集成环境,编辑运行实现乘法运算的程序。乘法运算的源程序如下:#includestdio.hmain(){inta,b;a=251;/*使a具有值251*/b=8;/*使b具有值8*/printf(%d\n,a*b);/*计算并输出表达式a*b*/}2.标识符和程序的逻辑错误。修改上面的程序,观察运行结果。⑴将程序中的表达式“a*b”的“a”改为“A”,然后运行程序。⑵将程序中的表达式“a*b”修改为“a-b”,然后运行程序。3.编辑并运行能够对任意两个整数进行乘法运算的程序。下面是源程序清单:#includestdio.hmain(){inta,b;printf(Inputa,b:);/*在屏幕显示提示信息Inputa,b:*/scanf(%d,%d,&a,&b);/*该语句的作用是实现数据的键盘输入*/printf(a*b=%d\n,a*b);/*输出乘法运算的结果*/}三、实验指导1.TurboC2.0集成环境的使用。在主教材的第1单元,我们介绍了使用TC2.0上机实现一个C语言程序的一般步骤。按照所述步骤,操作如下:⑴启动TC2.0。⑵使用“File→New”命令或直接使用“Edit”命令,使TC2.0进入编辑状态,录入编辑上面的源程序。⑶源程序录入完毕后,使用“Comple→CompiletoOBJ”对源程序进行编译,如果源程序存在语法错误,这时编译系统会把程序中的错误指示出来。发现错误后,需要立即修改源程序,然后重新编译。⑷编译无误后,使用“Comple→LinkEXEfile”连接目标代码,生成可执行文件,这个文件将由运行命令“Run”运行。上面的⑶、⑷两个步骤,也可以使用“Comple→Buildall”或“F9”功能键一步完成。⑸连接完成后,使用“Run”命令,或者使用“Ctrl+F9”组合键运行程序。程序运行过程瞬间结束,要察看程序运行结果,需要切换到运行屏幕,用组合健“Alt+F5”实现。按Alt+F5后,将看到屏幕显示如下结果:2008按任意键,屏幕返回程序状态。对一个未经编译和连接的源程序,TC2.0也可以直接运行它,因此,运行一个C语言程序时,编译和连接的操作步骤可以省略,即编辑好一个源程序后,直接使用Run命令运行它。此时,并非编译、连接过程不存在了,而是“Run”命令运行程序时,因找不到当前程序的可执行文件,而自动启动编译命令和连接命令。只有当编译、连接正常进行后,程序才会被运行。因此,上面的过程可以简化为两个操作步骤:⑴启动TC2.0,录入编辑源程序。⑵按“Ctrl+F9”组合键运行程序。特别提示:⑴保存源程序是一个重要的操作环节。在编辑源程序的过程中或源程序编辑完成后,及时保存源程序是十分必要的,但初学者往往忽视这一环节。操作步骤如下:①按“F2”功能键,出现图1-1所示屏幕。白色背景窗口显示了系统为当前程序设定的默认存储位置(D:\TC,该存储位置因系统而异,可以改变)和默认文件名NONAME.C。图1-1修改文件名窗口②输入新的文件名。为了操作方便,可以使用默认存储位置,指定文件名为mult.c。操作时只需将NONAME.C改写为mult.c后回车确认即可。⑵使用Windows的记事本程序提高源程序编辑效率。尤其是编辑较大的程序时,这种方法更有效。下面是Windows的记事本程序和TC2.0相结合,编辑运行以上乘法程序的步骤。①启动Windows的记事本程序,录入编辑乘法源程序。②保存程序,如图1-2所示。选择合适的存储位置,如上面使用的TC2.0的默认程序目录D:\TC;输入指定的文件名,如mult.c;选择保存类型为“所有文件”。图1-2记事本程序文件存盘窗口③激活TC2.0,按“F3”功能键,屏幕窗口如图1-3所示。在“LoadFileName”框中键入步骤②使用的文件名mult.c,回车确认后将源程序调入TC2.0系统,然后按组合键“Ctrl+F9”运行程序。图1-3文件装载窗口2.标识符和程序的逻辑错误。第一项内容用于验证C语言中标识符的特性,当用“A”取代“a”后,程序将不能运行,说明作为标识符“A”和“a”是不等价的。请读者自己进行类似的替换,然后察看程序的运行结果。如,将程序中的“printf”改为“PRINTF”,然后运行程序看结果。第二项实验内容说明了程序的逻辑错误情况。若把“a*b”误写为“a-b”,程序会顺利编译运行,但显然不是乘法运算的结果。3.编辑并运行能够对任意两个整数进行乘法运算的程序。编辑该程序前,首先使用“File→New”命令使TC2.0进入新程序编辑状态,然后编辑运行该程序。程序运行后,屏幕将显示下面的提示信息:Inputa,b:此时,应从键盘输入两个整数数据,然后回车确认。下面是一个输入实例:20,35下面是程序的输出结果:a*b=700特别提示:程序的输入数据往往有格式规定,只有按照正确的格式输入数据,一个正确的程序才会得到正确的结果。运行上面的程序时,输入的两个数据必须以“,”分隔,否则将得不到正确的结果。这是程序要求的数据输入格式。请读者再次运行程序,对输入的两个数据以空格分隔,察看执行结果。例如:Inputa,b:2035再次运行程序,然后输入两个很大的整数,察看运行结果。例如:Inputa,b:20000,35000显然,上面两次运行的结果都是不正确的。这说明,既没有语法错误,也没有逻辑错误的程序,运行后也会得不到正确的结果。第一种情况出错,是因为输入数据时数据之间的分隔形式不符合程序的要求。第二种情况,输入数据的格式没有问题,但输入的数据超出了程序能够允许的整数范围。这项实验内容提醒读者,在上机实现一个C语言程序时,各种错误的情况都可能出现。即便是一个看上去很好的程序,仍然会有许多需要改进之处。从算法的角度理解,就是任何算法,都可能存在进一步完善的空间。四、思考题1.选择一种较熟悉的C语言环境,编辑运行主教材1.3节的自然数累加程序。2.进一步熟悉TC2.0集成环境的功能。实验二顺序结构程序设计一、实验目的1.掌握printf()、scanf()、putchar()、getchar()等基本输出、输入函数的格式及其主要用法。2.熟练掌握顺序结构的程序设计。二、实验内容1.基本输入输出函数的用法。编辑运行下面的程序,并根据执行结果分析程序中各个语句的作用。#includemain(){inta,b;floatd,e;charc1,c2;doublef,g;longm,n;unsignedintp,q;a=61;b=62;c1='a';c2='b';d=5.67;e=-6.78;f=1234.56789;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf(a=%d,b=%d\nc1=%c,c2=%c\n,a,b,c1,c2);printf(d=%6.2f,e=%6.2f\n,d,e);printf(f=%15.6f,g=%15.10f\n,f,g);printf(m=%ld,n=%ld\np=%u,q=%u\n,m,n,p,q);}2.顺序结构程序设计。⑴已知圆柱体横截面圆半径r,圆柱高h。编写程序,计算圆周长l、圆面积s和圆柱体体积v,并输出计算结果。⑵编写一个程序,根据本金a、存款年数n和年利率p计算到期利息。计算公式如下:到期利息公式为a*(1+p)n–aab的计算公式为exp(b*ln(a))三、实验指导1.基本输入输出函数的用法。⑴运行所给出的源程序,对照结果分析各语句的作用。⑵将程序中的第二、第三个printf语句修改为如下形式,然后运行程序,察看结果。printf(d=%-6.2f,e=%-6.2f\n,d,e);printf(f=%-15.6f,g=%-15.10f\n,f,g);⑶将上述两个printf语句进一步修改为如下形式,然后运行程序,察看结果。printf(d=%-6.2f\te=%-6.2f\n,d,e);printf(f=%-15.6f\tg=%-15.10f\n,f,g);⑷将程序的第10-15行修改为如下语句:a=61;b=62;c1='a';c2='b';f=1234.56789;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,并分析结果。⑸修改⑴中的程序,不使用赋值语句,而用下面的scanf语句为a、b、c1、c2、d、e输入数据:scanf(%d%d%c%c%f%f,&a,&b,&c1,&c2,&d,&e);①请按照程序原来中的数据,选用正确的数据输入格式,为上述变量提供数据。②使用如下数据输入格式,为什么得不到正确的结果?输入数据:6162ab5.67-6.78⑹进一步修改⑸中使用的程序,使f和g的值用scanf()函数输入。⑺进一步修改上面的程序,使其他所有变量的值都改用scanf()函数输入。①参考程序#includevoidmain(){inta,b;floatd,e;charc1,c2;doublef,g;longm,n;unsignedintp,q;printf(Input(a,b,c1,c2,d):);scanf(%d%d%c%c%f%f,&a,&b,&c1,&c2,&d,&e);printf(Input(f,g):);scanf(%lf%lf,&f,&g);printf(Input(m,n,p,q):);scanf(%ld%ld%u%u,&m,&n,&p,&q);printf(a=%d,b=%d\nc1=%c,c2=%c\n,a,b,c1,c2);printf(d=%-6.2f,e=%-6.2f\n,d,e);printf(f=%-15.6f,g=%-15.10f\n,f,g);printf(m=%ld,n=%ld\np=%u,q=%u\n,m,n,p,q);}②数据输入格式Input(a,b,c1,c2,d):6162ab5.67-6.78Input(f,g):1234.5678900.1234567890Input(m,n,p,q):50000-600003267840000⑻修改⑺中的程序,使c1、c2的数据用getchar()函数输入,用putchar()函数输出。①可按照如下方法修改程序:将程序中的“scanf(%d%d%c%c%f%f,&a,&b,&c1,&c2,&d,&e);”语句用以下四个语句替换:scanf(%d%d%,&a,&b);c1=getchar();c2=getchar();scanf(%f%f,&d,&e);②使用与⑺相同的数据输入格式输入数据。③请分析:使用如下格式为a、b、c1、c2输入数据时会出现什么结果?运行程序验证所分析的结论。输入数据格式:6162ab2.顺序结构程序设计。⑴参考程序/*计算圆周长、面积及圆柱体体积的程序*/#include#definePI3.14159main(){floatr,h,l,s,v;printf(r,h=);scanf(%f,%f,&r,&h);l=2*PI*r;s=PI*r*r;v=s*h;printf(L=%f\tS=%f\tV=%f\n,l,s,v);}程序调试时要注意如下几点:①输入数据的格式要与程序中要求的格式一致。如上述程序要用“,”分隔数据。②根据程序运行情况,调整输入、输出数据的格式,使数据的输入输出格式更符合使用习惯。③运行程序,输入负数数据,察看程序的执行结果。⑵参考程序/*计算存款利息的程序*/#include#includemain(){intn;floata,p,acc;printf(a,n,p=);scanf(%f,%d,%f,&a,&n,&p);acc=a*e
本文标题:c语言实验指导书
链接地址:https://www.777doc.com/doc-2908159 .html