新颖版C语言重新设计基础实验实验二周信东输入输出方法及分支结构程序设计.docx
《新颖版C语言重新设计基础实验实验二周信东输入输出方法及分支结构程序设计.docx》由会员分享,可在线阅读,更多相关《新颖版C语言重新设计基础实验实验二周信东输入输出方法及分支结构程序设计.docx(11页珍藏版)》请在冰豆网上搜索。
新颖版C语言重新设计基础实验实验二周信东输入输出方法及分支结构程序设计
实验2输入/输出方法、分支结构程序设计
学号:
姓名:
实验日期:
一、实验目的和要求
(1)掌握C语言各数据类型的概念,变量定义及赋值方法。
(2)掌握整型、字符型、实型等数据的输入输出方法,能正确使用各种格式控制符。
(3)掌握C语言的各种运算符,特别是自加(++)和自减(--)运算符,能正确使用这些运算符构成的表达式。
(4)掌握C语言逻辑量的表示方法,能够正确使用逻辑运算符和逻辑表达式或关系表达式。
(5)熟练掌握if语句和switch语句,掌握条件表达式构成的选择结构。
(6)理解程序设计的顺序结构基本思想,掌握顺序结构语句特点;能够编写简单的程序解决具体问题。
(7)掌握简单的跟踪调试程序的方法,并学会基本调试程序方法。
二、实验内容
完成实验指导书中实验二的“基础部分”及实验三的“基础部分”和“增强部分”
三、实验步骤及结果
(一)实验题目完成情况
*【说明】实验题号的编写格式为:
类型+第几个实验+实验题目序号+小题序号,其中,“类型”分为基础题(用Ex表示)、增强题和提高题(用Eh表示)、课外题(用sup表示)。
如:
ex2-1-3表示实验二基础题第1题的第3小题,eh4-2表示实验四增强题第2题,等等。
后不赘述。
实验二部分:
●Ex2-1-1题的运行结果及其分析。
【请填空。
截图的操作方法:
先点击欲截取的窗口使之置于屏幕最前方,并作适当的缩放,再按快捷键+将窗口截取到内存中,然后打开word将光标移到欲插入图片的位置上进行粘贴即可。
也可对图片进行适当剪切,裁剪掉多余部分。
注意:
截图上必须有你自己的学号或姓名等信息,否则视为抄袭。
】
Ex2-1-分析:
S值的计算是先算a除以5取余的值,再算其
乘于(x-y)除以2取余的整型数,得到的值除以二,再加上x。
●Ex2-1-2请在下面插入该程序的运行结果及其分析。
请在此框内插入本程序运行成功时的截图
分析:
第一个p的值先调用后自加,第一个q则是先自加后调用
第二个P直接调用第一个p的值加上3,第二个q则是先加1后加上4.
●Ex2-2-1请在下面分别插入改正错误后的源程序代码及运行成功时的画面:
源程序代码:
请在此框内粘贴修改后正确的程序代码。
方法:
先在VC中将全部源代码选定并复制,再粘贴到此处即可。
#include
intmain()
{
inta,b,c,sum;
doublever;
printf("输入三个数:
");
scanf("%d%d%d",&a,&b,&c);
sum=a+b+c;
ver=sum/3.0;
printf("和:
%d\n",sum);
printf("平均值:
%lf\n",ver);
return0;
}
运行结果:
请在此框内插入本程序运行成功时的截图
●Ex2-2-2请在下面分别插入改正错误后的源程序代码及运行成功时的画面:
源程序代码:
请在此框内粘贴修改后正确的程序代码。
#include
voidmain()
{
inti,j,p,m,n;
scanf("%d,%d,%d",&i,&j,&p);
m=i+j+p;
n=(int)m/3;
printf("%d,%d\n",m,n);
}
运行结果:
请在此框内插入本程序运行成功时的截图
实验三部分:
●Ex3-1请在下面分别插入改正错误后的源程序代码及运行成功时的画面:
源程序代码:
请在此粘贴修改后正确的程序代码。
#include
voidmain()
{
doublex,y;
printf("enterx:
\n");
scanf("%lf",&x);
if(x=10)
y=1/x;
else
(x!
=10);
y=x;
printf("f(%0.1lf)=%lf\n",x,y);
}
运行结果:
请在此粘贴本程序运行成功时的截图
●Ex3-2请在下面分别插入改正错误后的源程序代码及运行成功时的画面:
源程序代码:
请在此粘贴修改后正确的程序代码。
#include
voidmain()
{
intscore;
printf("enterscore=");
scanf("%d",&score);
switch(score/10)
{
case10:
case9:
printf("A\n");
case8:
printf("B\n");
case7:
printf("C\n");
case6:
printf("D\n");
default:
printf("E\n");
}
}
运行结果:
请在此粘贴本程序运行成功时的截图
●Eh3-1请在下面分别插入完整填空后的源程序代码及运行成功时的画面:
源程序代码:
请在此粘贴填空后正确的程序代码。
#include
voidmain()
{
intc,t,m;
printf("intputthenumberofcoatandtrousersyourwantbuy:
\n");
scanf("%d,%d",&c,&t);
if(t==c)
if(c>>50)
m=c*80;
else
m=m*90;
else
if(c>t)
if(t>=50)
m=t*80+(c-t)*60;
else
m=t*90+(c-t)*60;
else
if(t>=50)
m=c*80+(t-c)*45;
else
m=c*90+(t-c)*45;
printf("%d",m)
}
运行结果:
请在此粘贴本程序运行成功时的截图
●Eh3-2请在下面分别插入完整的源程序代码及运行成功时的画面:
源程序代码:
请在此粘贴正确的程序代码。
#include
#include
voidmain()
{
floata,b,c,i;
scanf("%a,%b,%c",&a,&b,&c);
if(a==0)
printf("不是一元二次方程error:
\n");
else
if((b*b-4*a*c)==0)
printf("x1=x2=%f",(-b)/(2*a));
else
if((b*b-4*a*c)>0)
{
printf("x1=%f\n",(-b)/(2*b)+sqrt(b*b-4*a*c)/(2*a));
printf("x2=%f\n",(-b)/(2*b)-sqrt(b*b-4*a*c)/(2*a));
}
else
{
printf("x1=%f\n",(-b)/(2*b)+i*(sqrt(b*b-4*a*c)/(2*a)));
printf("x2=%f\n",(-b)/(2*b)-i*(sqrt(b*b-4*a*c)/(2*a)));
}
}
运行结果:
请在此粘贴本程序运行成功时的截图
(二)程序调试方法
1、语法错误和逻辑错误的区别何在?
在此回答问题
语法错误通不过编译器的编译,逻辑错误则能通过。
语法错误的违背了此种语言的基本规则,逻辑错误指算法上的错误。
比如循环语句的结束条件没有写,语句能通过编译,但运行后会发生死循环无法跳出的现象。
2、如何启动单步调试?
在此回答问题
鼠标点在需要停下的那一行设置断点按F9
单步运行按F10
进入函数按F11
进入调试按F5
或者
单击菜单栏“组建”下的“开始调试”,单击“STEPINTO”,也可以按快捷键F11,使每条语句单独执行。
3、要使程序运行到“ss=(k…”这一行暂停下来,该如何操作?
在此回答问题
点到那个“ss=(k…”语句,按F9,设置一个断点,F5运行后,如果执行到那句,就会停在那,然后再按F10即可单步运行下去。
4、怎样终止调试状态(程序复位)?
在此回答问题
利用Run菜单下的Programreset命令或快捷键Ctrl+F2可以终止当前程序的运行
5、单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第2种,不跟踪到自定义函数内部):
在此回答问题
1.单击调试菜单中的Stepinto进入到自定义函数内部。
2.单击调试菜单中的stepover不跟踪到自定义函数内部
6、在运行ex2-1-2.c时,假如要在运行语句“p=i++;q=--j;”后,尚未执行语句“printf("%d,%d,%d,%d\n",i,j,p,q);”时,先观察变量i,j,p,q的值,操作方法为:
在此回答问题
鼠标点在“printf("%d,%d,%d,%d\n",i,j,p,q);”停下的设置断点按F9
请把观察这些变量时的画面粘贴到下面:
请在此框内插入观察到变量值的截图
7、C程序在什么情况下运行需要输入数据才能得出运行结果?
输入的测试数据需要注意哪些事项?
在此回答问题
在调试与调试完成后的运行中,
类型要对,格式要正确,数据范围要在规定范围内
8、在运行Eh3-1.c时,至少需要输入几组测试数据才能对程序进行完整的测试?
如何进行输入多组数据的测试?
在此回答问题
6组
循环按照格式读入每组数据即可。
四、选作实验题目完成情况
若你选作了课堂布置之外的题目,请按照上述格式依次编写你所作各题目的题号、源程序代码、运行结果截图及其结果情况分析。
五、实验总结
总结你在实验中易犯的错误及其解决方法,或总结本次实验中你学到的经验或技能等。
注意,不要说空话。
编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解题了。
在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好