C语言试验二全解_第1页
C语言试验二全解_第2页
C语言试验二全解_第3页
C语言试验二全解_第4页
C语言试验二全解_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二、选择结构一、调试程序训练注:本训练中没有必须要完成的任务,但请大家务必掌握这种调试程序的 方法,并在今后的程序调试中积极使用这种方法,因为它对于我们分析程序、 尤其是那些貌似正确(无语法错误)、但执行结果错误的程序,非常有帮助! !Eg2-1:调试训练一一改正下列程序中的错误,输入参数a、b,c,求一元二次 方程ax2+bx+c=0的根。#include #include void main()double a,b,c,d;prmtf(nEntei a.b,c:n);scaiif(%lf%lf%lf&a,&b,&c);d=b*b-4*a*c; /断点 1if (a=0)if(b=O)i

2、f (c=0)pnntf(H参数都为零,方程无意义! iiH);elsepnntf(Ha和b为0, c不为0,方程不成立! ii);elseprintf(nx=%0.2fai,-c/b);elseif (d=0) / 断点 2pi intf(Hx 1 =%0.2fiiM,(-b+sqrt(d)/(2 * a); piintf(,x2=%0.2fii,(-b-sqit(d)/(2 * a);else /断点 3piintf(Hxl=%0.2f+%0.2fiiinb/(2*a),sqit(d)/(2*a);pmitfCx2=%02f-%02fln,b/(2 怙),sqrt(d)/(2*a);说明:

3、断点的作用是使程序执行到断点处暂停,让用户可以观察当前变量微型工具的“电1或表达式的值。设置断点时,先将光标定位到要设置断点的位置,然后单击编译按钮,断点即设置完毕。如果要取消设置的断点,只需要将光标移到要取消的断点处,按钮,该断点即取消。(1) 打开源程序,对程序进行编译和连接,没有出现错误信息。(2) 调试开始,设置三个断点,具体位置见源程序的注释。el(3) 单击Go - 按钮,输入a, b, c的值(2.0 9.0 3.0)后,程序执行 到第一个断点处,在观察窗口输入变量名a, b, c,查看变量a, b, c的值。此时,这些变量的值与输入的值一致。el(4) 继续单击Go 按钮,程序

4、运行到第二个断点处,观察到变量d的 值为57,说明方程有实根。el(5) 再次单击Go按钮,程序运行到最后一个断点处,运行窗口显示xl=-0.36, x2=-4.14,符合题目要求。(6) 单击Stop Debugging 劭 按钮,程序调试结束实验内容一(验证及程序分析)Eg2-2:从键盘输入两个0到127的整数,求两数的平方差并输出其值以 及这两个整数的ASCII码对应的字符。(1)算法分析:标准ASCII码值范围是0到127,所以在此范围内的数 可以以字符形式输出,实现方法是用格式输出函数并用格式符%c控制输出。(2)源程序:#include void main()mt x,y,sub;

5、scanf(”d%d”,x,y); /*变量前一定要加取地址符& ,再次提醒! */ sub=x*x-y*y;/*注意读题意! */prmtf(%c,%c,%dn,x,v,sub);(3)在VC十十编辑环境下编辑源程序。(4)编译并运行。如有错误,则改正至无错。(5)从键盘输入100 50/,运行结果如何?(请将运行结果抓图放入下面框内,并体会字符 型数据的存储机制! !) 运行结果抓图至下方:Eg2-3:输入年份和月份,求该月有多少天。(1) 算法分析:要考虑大月有31天,小月有30天,闰年的二月有29天 以及非闰年的二月有28天这几种情况。(2) 源程序:#include void mai

6、n()nit year?month,days;pnntfC请输入年 月);scaiif(H%d%d,&yeai;&month);switch (month)case 1: case 3: case 5: case 7:case 8: case 10: case 12:/*处理大月 */days=31 ;break;case 4: case 6: case 9: case 11:/*处理小月 */days=30;/*注意跳出处理! */case 2:严处理平”月*/if (year%4=0&year% 100! =01 |year%400=0) days=29; /*如果是闰年,注意体会此判断表

7、达式! */else days=28; /*不是闰年*/break;default: prmtf(,hiput enor! ii); /* 月份输入错误 */ davs=0;J/if (days!=0) pnntf(%d 年(1 月有 %d 天iin,year,month,days);(3)在VC卄编辑环境下编辑源程序。并仔细阅读此程序,理解其编程思 路!(4)编译直到程序没有错误。(5)从键盘输入2008, 9/,运行结果如何?为什么?运行结果:Input enor!原因:原來的程序是年 月,如果输入“,”会被看成字符(6)再输入2010 6/,输出结果:仪 FMES咪fc 凹咪垛93皐00

8、2仪 FMES咪fc 凹2000 2/,输出结果:运 行 结 果 抓 图 至 下 方三、实验内容二(综合及设计类)Eg2-4:输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32)0提示:注意 c=5/9*(f-32)与 c=5.0/9.0*(f-32)的区别请将程序及运行结果粘贴至下面:程序:#includevoid mam()mt c,f;printfC请输入一个华氏温度:”);scanff%d”,&f);c=5.0/9.0*(f-32);printfC%dnn,c);Eg2-5:用if语句编写一个C程序:输入a, b, c三个值,输出其中最大者。 在下面写出源程序:# iii

9、cludevoid mainOmt a,b,c,max;printf(请输入 a,b,c=);scaiif(,%d%d%d,&a,&b,&c);if(a=b)&(a=c)max=a;elseif(c=b)max=c;else max=b;Eg2-5:编程:编写程序,输入奖金数a,计算并输出税率、应缴税款和实得奖金数。奖金税率a 5000.00500a10000.051000a20000.082000a50000.105000a0.15数。提示:3=奖金数 e=税率值 曲=应缴税款piofit=实得奖金计算公式:tax = a* rate , piofit= a - tax程序要求提示语句:“请

10、输入奖金数量:”运行结果显示:“请缴纳税金:和粗*”请用switch语句加以实现。(1)请将源程序粘贴到下面。#includevoid mam()unsigned mt a,b;float rate,tax,profit;pnntf(请输入奖金数量:”); scanf(1l%d,&a);b=a,b=b/500;switch(b)case 0:iate=0.00; tax=a*iate,piofit=a-a*rate; printf(n请缴纳税金:”); printfC%0lfn“,tax); pimtf(nfate=n); prmtf(%1.2fii,rate); pimtf(npiofit=

11、n); prmtf(%0.1fiin,profit); break;case 1:iate=0.05; tax=a*iate,piofit=a-a*rate; printf(n请缴纳税金:”); printfC%0lfn“,tax); pimtf(nfate=n); prmtf(%1.2fii,rate); pimtf(npiofit=n); prmtf(%0.1fiin,profit); break;case 2: case 3:iate=0.08; tax=a*iate,piofit=a-a*rate; printf(n请缴纳税金:”); printfCO.lfiitax);pimtf(u

12、iate=n); prmtf(%1.2fii,rate); piuitf(npiofit=n);prmtf(%O.lfiin,profit);break;case 4: case 5: case 6: case 7: case 8: case 9:iate=0.10; tax=a*iate,piofit=a-a*rate; printf(n请缴纳税金:”); prmtf(%0.1fiin,tax); pimtf(niate=n);prmtf(%0.2fii,rate); piuitf(npiofit=n);prmtf(%0.1fiin,profit);break;default:iate=0.15; tax=a*iate,piofit=a-a*rate; print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论