选择结构与循环结构实验指导书Word格式文档下载.docx
- 文档编号:5224920
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:24
- 大小:114.11KB
选择结构与循环结构实验指导书Word格式文档下载.docx
《选择结构与循环结构实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《选择结构与循环结构实验指导书Word格式文档下载.docx(24页珍藏版)》请在冰点文库上搜索。
flag=0;
这不是一个正数\n"
}
请记录出错信息与出错原因。
3、从键盘输入一个表示年份的数值(十进制数),判断其是否为闰年(闰年的条件是:
能被4整除但不能被100整除,或者能被400整除)
(1)定义变量
(2)从键盘输入年份
(3)如果该年份是闰年
输出“这是一个闰年”
否则
输出“这不是一个闰年”
4、编写程序,求解如下所示的分段函数。
从键盘输入一个x,求解y并在屏幕上输出结果。
3x+5,x>
y=0,x=0
2x-1,x<
5、编写程序,求解如下所示的分段函数。
|x|,x<
y=x2,0≤x<
10
logx,x≥10
6、编写一个简易的计算器程序,在屏幕上输出如图4-1所示字符界面菜单,由用户从键盘输入“+”、“-”、“*”、“/”4种字符之一。
若用户输入“+”,做加法a+b;
若用户输入“-”,做减法a-b;
若用户输入“*”,做乘法a*b;
若用户输入“/”,做除法a/b;
最后输出计算结果。
图4-1计算器主菜单选项功能
7、编写实现实验3任务2的主菜单界面的选择功能的程序。
即能够根据用户的选择做出相应的动作,例如当用户选择1时,能够录入学生成绩,选择2时,能够修改学生成绩,选择3时,能够查询学生成绩等。
由于目前只能实现主菜单选择功能,而不能实现各菜单项的具体功能,因此该程序只能根据用户的选择,输出对应菜单项的信息。
程序运行效果如图4-2所示。
实验3任务2用多个printf函数输出了主菜单界面。
本题要求编写一个选择选项的程序,因此需要使用分支结构,而且这里是一个多分支问题,所以使用break的switch语句来实现,具体流程图如图4-3所示。
图4-2学生成绩管理系统主菜单选项功能
FT
F
T
图4-3学生成绩管理系统主菜单的实现流程图
评分标准:
是否能正确编写C程序予以实现各题要求(50分);
项目报告中,流程图和算法描述(20分),知识点描述(20分),难点及解决办法或体会(10分)。
四、实验要求
1、实验前绘制程序框图,编制源程序、准备测试数据。
2、实验测试数据要求从键盘输入。
应尽力追求程序的完美。
比如要求输入数据,应当显示提示字符串,提示用户输入;
输出时要求有文字说明。
3、在VisualC++6.0下完成程序的编辑、编译、运行,获得程序结果。
如果结果有误,应找出原因,并设法更正之。
4、实验中可以采用VisualC++6.0程序调试基本方法协助查找程序中的逻辑问题。
5、实验步骤、过程
1、编辑、编译、运行程序题1。
2、编辑、编译、运行程序题2。
3、编辑、编译、运行程序题3。
4、第1步:
参照实验1内容2的实现步骤,在当前工作空间“C语言编程”中新建Win32ConsoleApplication工程,取名为4_4。
新建C++SourceFile,添加到工程4_4中,文件名为4_4.c。
第2步:
main函数中的伪代码如下:
main()
1)定义变量
2)输出请用户输入x的提示信息
3)接收用户从键盘输入的x值
4)根据用户输入的x和分段函数进行相应的计算
5)输出计算的结果
第3步:
根据伪代码构造对应的C语句,并将伪代码作为注释保留下来。
本步骤的结果如下:
#include<
stdio.h>
/*定义变量*/
floatx,y;
/*输出请用户输入x的提示信息*/
printf("
请输入x的值:
\n"
/*接收用户从键盘输入的x值*/
%f"
x);
/*根据用户输入的x和分段函数进行相应的计算*/
0)y=3*x+5;
elseif(x==0)y=0;
elsey=2*x-1;
/*输出计算的结果*/
y=%f\n"
y);
}
第4步:
单击编译菜单中的执行选项,该功能快捷键为Ctrl+F5,执行程序,分别输入一个正数和一个负数,执行情况如图4-4及图4-5所示。
图4-4程序4_1.exe运行的结果1
图4-5程序4_4.exe运行的结果2
5、编辑、编译、运行程序题5,分别使用数据-5,0,5,10,100做测试。
人工计算结果分别是。
6、编辑、编译、运行程序题6。
第1步:
参照实验1内容2的实现步骤,在当前工作空间“C语言编程”中新建Win32ConsoleApplication工程,取名为4_6。
新建C++SourceFile,添加到工程4_6中,文件名为4_6.c。
main函数中的伪代码如下:
2)输出计算器主菜单界面
3)输出请用户输入运算符的提示信息
4)接收用户从键盘输入的运算符
5)根据用户输入的某种运算发进行相应的计算
6)输出计算的结果
在main函数中根据伪代码构造对应的C语句,并将伪代码作为注释保留下来。
floata=5.0,b=3.0,result;
charop;
//用于保存用户输入的运算符
/*输出计算器主菜单界面*/
printf("
++++++++++++++++++++++++++++++++++\n"
++:
加法+\n"
+-:
减法+\n"
+*:
乘法+\n"
+/:
除法+\n"
/*输出请用户输入运算符的提示信息*/
请输入运算符(+-*/):
/*接收用户从键盘输入的运算符*/
op=getchar();
/*根据用户输入的某种运算符进行相应的计算并输出计算的结果,有4种不同的运算*/
switch(op)
{case'
+'
:
result=a+b;
break;
case'
-'
result=a-b;
*'
/'
default:
运算符输入错误!
结果是%f\n"
result);
注意:
由于main函数中调用了printf函数,故需要在程序开始处用#include<
来包含头文件stdio.h。
单击组建菜单中的执行选项,该功能快捷键为Ctrl+F5,执行程序,执行情况如图4-6所示。
若从键盘输入字符“+”,则输出加法的结果。
图4-6程序4_3.exe运行的结果
至此,完成了实验任务6。
7、编辑、编译、运行程序题7。
参照实验1内容2的实现步骤,在当前工作空间“C语言编程”中新建Win32ConsoleApplication工程,取名为4_7。
新建C++SourceFile,添加到工程4_7中,文件名为4_7.c。
2)输出学生成绩管理系统主菜单
3)输出请用户输入选项的提示信息
4)接收用户从键盘输入的选项
5)根据用户输入的选项,输出对应菜单项的信息
本步骤产生的代码略。
单击组建菜单中的执行选项,该功能快捷键为Ctrl+F5,程序运行情况如图4-2所示。
若从键盘输入“2”,则输出修改学生成绩的信息。
8、尝试跟踪实验任务2运行。
按下【F10】键或【F11】键单步运行,其中按下【F10】键时,系统会把函数当成一条语句执行,按下【F11】键时,遇到函数的调用,则进入函数内部,继续单步执行;
按下【F9】键设置/取消断点;
按下【F5】键,程序开始执行,当遇到第一个断点时,暂停执行,再次按下【F5】键,程序就从当前断点继续执行,直到遇到下一个断点,再次暂时中断运行。
6、源程序清单、测试数据、结果
1、#include<
{
intn;
请输入一个整数n:
"
scanf("
n);
if(n%2==0)
您输入的是一个偶数!
else
您输入的是一个奇数!
2、#include<
{
flag=1;
{
flag=0;
3、#include<
voidmain()
intyear;
intf1,f2,f3;
/*fl,f2,f3存储年份能否被4、100、400整除的逻辑值*/
请输入一个年份:
year);
f1=((year%4)==0);
/*判断年份是否被4整除,将结果存入fl*/
f2=((year%100)==0);
/*判断年份是否被100整除,将结果存入f2*/
f3=((year%400)==0);
/*判断年份是否被400整除,将结果存入f3*/
if(f1&
&
(!
f2)||f2&
f3)/*判断是否为闰年*/
%d年是闰年。
\n\n"
year);
%d年不是闰年。
4、#include<
/*输出请用户输入x的提示信息*/
5、给定y=f(x)函数,要求输入x的值,求y的值。
#include<
math.h>
if(x<
0)y=fabs(x);
elseif(x<
10)y=x*x;
elsey=log10(x);
%f\n"
y);
测试运行:
-5<
CR>
5.000000
0<
0.000000
5<
25.000000
10<
1.000000
100<
2.000000
6、voidmain()
printf("
{
case'
result=a*b;
result=a/b;
7、编写实验3任务7的主菜单界面的选择功能的程序。
/*******************************
tc4_7.c
学生成绩管理系统主菜单选择
*******************************/
#include"
stdio.h"
stdlib.h"
charMenuItem;
/*定义一个存取用户输入的字符变量*/
/*输出学生成绩管理系统主菜单界面*/
\n\t+++++++++++++++++++++++++++++++++++++++++++++++++++\n"
\n\t+学生成绩管理系统+"
\n\t++"
\n\t+1---录入学生成绩+"
\n\t+2---修改学生成绩+"
\n\t+3---查询学生成绩+"
\n\t+4---删除学生成绩+"
\n\t+5---排序学生成绩+"
\n\t+6---浏览学生成绩+"
\n\t+0---退出系统+"
\n请输入选项(0-6):
fflush(stdin);
/*清空缓冲区*/
%c"
MenuItem);
getchar();
switch(MenuItem)
1'
\n欢迎进入录入学生成绩界面!
\n建设中,敬请期待……\n"
\n请按回车键继续……\n"
getchar();
break;
2'
\n欢迎进入修改学生成绩界面!
3'
\n欢迎进入查询学生成绩界面!
case'
4'
\n欢迎进入删除学生成绩界面!
5'
\n欢迎进入排序学生成绩界面!
6'
\n欢迎进入浏览学生成绩界面!
0'
exit(0);
六、实验出现的问题、实验结果分析
1、求绝对值对于浮点数要使用函数fabs。
使用abs是对整数取绝对值。
2、以10为底的对数,应当使用函数log10。
3、0≤x<10不能表示为0<
=x<
10,否则尽管无语法错误,但是含义不正确。
4、case语句与常量之间应当有空格,否则当做语句标号处理。
如case1:
。
(使用单步跟踪发现)。
实验5:
循环结构程序设计
循环结构程序设计成绩:
1、掌握while,do-while循环的语法结构与应用。
2、掌握while,do-while循环的区别。
3、掌握VisualC++6.0单步执行调试程序的方法。
完成程序题:
1、用while,do-while循环,求100以内奇数的和。
2、用while,do-while循环求i-10的连加和,i由用户输入。
3、有一堆零件(100-200个之间),如果以4个零件为一组进行分组,则多2个零件;
如果以7个零件为一组进行分组,则多3个零件;
如果以9个零件为一组进行分组,则多5个零件。
编程求解这堆零件总数。
用穷举法求解。
即零件总数x从100-200循环试探,如果满足所有几个分组已知条件,那么此时的x就是一个解。
分组后多几个零件这种条件可以用求余运算获得条件表达式。
1、实验前编制源程序、对第2个实验内容需要准备测试数据。
2、在VisualC++6.0下完成程序的编辑、编译、运行。
查看、分析程序结果。
五、实验步骤、过程
2、编辑、编译、运行程序题2,分别使用数据3,15做测试。
六、源程序清单、测试数据、结果
1、用两种循环结构,求1000以内奇数的和。
(1)用while结构实现
longsum;
inti,item;
sum=0,i=0,item=1;
while(item<
1000)
sum=sum+item;
i++;
item=2*i+1;
1+3+5+...999=%ld\n"
sum);
}
(2)用do-while结构实现
{
longsum;
inti,item;
sum=0,i=0,item=1;
do
sum=sum+item;
i++;
item=2*i+1;
}while(item<
1000);
}
运行结果:
1+3+5+...999=250000
(1)用while循环实现
intsum=0,i;
Inputi:
i);
while(i<
=10)
sum+=i;
sum=%d\n"
测试运行结果:
7<
sum=34
15<
sum=0
(2)用do-while循环实现
do
}while(i<
=10);
sum=15
3、穷举法搜索计算零件总数
voidmain()
intx,flag=0;
for(x=100;
x<
=200;
x++)
if(x%4==2&
x%7==3&
x%9==5)
flag=1;
break;
if(flag)printf("
x=%d\n"
x);
elseprintf("
noanswer!
x=122
七、实验出现的问题、实验结果分析
1、对于累加问题,获得的累加值可能超过变量允许的范围,出现溢出错误(逻辑错
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选择 结构 循环 实验 指导书