实验4:选择结构程序设计
实验名称:选择结构结构程序设计成绩:
实验日期:年月日实验报告日期:年月日
一、实验目的
1、掌握关系运算符、逻辑运算符及其表达式的正确使用。
2、掌握if语句和switch语句的使用。
3、了解程序调试的基本方法。
二、实验环境
安装了Visual C++ 6.0的计算机系统
三、实验内容(或实验任务)
在Visual C++ 6.0下完成程序题:
1、从键盘输入一个整数,如果该数是奇数,则输出“您输入的是一个奇数!”;否则,输出“您输入的是一个偶数!”。程序正确编写后,参照实验1内容2
中介绍的单步调试的方法,对本程序进行单步调试,仔细观察程序的执行过程,理解二分支的程序结构。
提示:这是一个典型的二分支结构,用if…else语句实现。
2、新建设一个工程,名字为4_2,在工程中创建一个文件,名为myerror1.c。在文件中输入以下内容,并进行编译,尝试解释编译后显示的结果信息,找到出错的原因,并记录在下面。
void main()
{
int x, flag;
scanf("%d", &x );
if(x>0)
flag=1;
printf("这是一个正数\n");
else
flag=0;
printf("这不是一个正数\n");
}
请记录出错信息与出错原因。
3、从键盘输入一个表示年份的数值(十进制数),判断其是否为闰年(闰年的条件是:能被4整除但不能被100整除,或者能被400整除)
提示:
(1)定义变量
(2)从键盘输入年份
(3)如果该年份是闰年
输出“这是一个闰年”
否则
输出“这不是一个闰年”
4、编写程序,求解如下所示的分段函数。从键盘输入一个x,求解y并在屏幕上输出结果。
3x+5,x>0
y= 0,x=0
2x-1,x<0
5、编写程序,求解如下所示的分段函数。从键盘输入一个x,求解y并在屏幕上输出结果。
|x|,x<0
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 学生成绩管理系统主菜单选择功能
F T
F
T
F
T
F
T
F
T
F
T
F
T F
图4-3 学生成绩管理系统主菜单的实现流程图
评分标准:
是否能正确编写C程序以实现各题要求(50分);
项目报告中,流程图和算法描述(20分),知识点描述(20分),难点及解决办法或体会(10分)。
四、实验要求
1、实验前绘制程序框图,编制源程序、准备测试数据。
2、实验测试数据要求从键盘输入。应尽力追求程序的完美。比如要求输入数据,应当显示提示字符串,提示用户输入;输出时要求有文字说明。
3、在Visual C++ 6.0下完成程序的编辑、编译、运行,获得程序结果。如果结果有误,应找出原因,并设法更正之。
4、实验中可以采用Visual C++ 6.0程序调试基本方法协助查找程序中的逻辑问题。
五、实验步骤、过程
1、编辑、编译、运行程序题1。
2、编辑、编译、运行程序题2。
3、编辑、编译、运行程序题3。
4、第一步:参照实验1内容2的实现步骤,在当前工作空间“C语言编程”中新建Win32 Console Application工程,取名为4_4。新建C++ Source File,添加到工程4_4中,文件名为4_4.c。
第二步:main函数中的伪代码如下:
main()
{ 1)定义变量
2)输出请用户输入x的提示信息
3)接收用户从键盘输入的x值
4)根据用户输入的x和分段函数进行相应的计算
5)输出计算的结果
}
第三步:根据伪代码构造对应的C语句,并将伪代码作为注释保留下来。本步骤的结果如下:
#include
void main()
{
/* 定义变量*/
float x, y;
/* 输出请用户输入x的提示信息*/
printf("请输入x的值:\n");
/* 接收用户从键盘输入的x值*/
scanf("%f", &x);
/* 根据用户输入的x值和分段函数进行相应的计算*/
if(x>0) y=3*x+5;
else if(x==0) y=0;
else y=2*x-1;
/* 输出计算的结果*/
printf("y=%f\n",y);
}
第四步:单击编译菜单中的执行选项,该功能快捷键为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内容2的实现步骤,在当前工作空间“C语言编程”中新建Win32 Console Application工程,取名为4_6。新建C++ Source File,添加到工程4_6中,文件名为4_6.c。
第二步:main函数中的伪代码如下:
void main()
{
1)定义变量
2)输出计算器主菜单界面
3)输出请用户输入运算符的提示信息
4)接收用户从键盘输入的运算符
5)根据用户输入的某种运算符进行相应的计算
6)输出计算的结果
}
第三步:在main函数中根据伪代码构造对应的C语句,并将伪代码作为注释保留下来。本步骤的结果如下:
void main()
{
/* 定义变量*/
float a=5.0, b=3.0, result;
char op; //用于保存用户输入的运算符
/* 输出计算器主菜单界面*/
printf("++++++++++++++++++++++++++++++++++\n");
printf("+ +: 加法+\n");
printf("+ -: 减法+\n");
printf("+ *: 乘法+\n");
printf("+ /: 除法+\n");
printf("++++++++++++++++++++++++++++++++++\n");
/* 输出请用户输入运算符的提示信息*/
printf("请输入运算符(+ - * /):\n");
/* 接收用户从键盘输入的运算符*/
op=getchar();
/* 根据输入的某种运算符进行相应的计算并输出计算结果,有4种不同运算*/
switch(op)
{
case '+': result=a+b;break;
case '-': result=a-b;break;
case '*': result=a+b;break;
case '/': result=a+b;break;
default: printf("运算符输入错误!\n");
}
/* 输出计算的结果*/
printf("结果是%f\n",result);
}
注意:由于main函数中调用了printf函数,故需要在程序开始处用#include
第四步:单击组建菜单中的执行选项,该功能快捷键为Ctrl+F5,执行程序,执行情况如图4-6所示。若从键盘输入字符“+”,则输出加法运算的结果。
图4-6 程序4_3.exe运行的结果
至此,完成了实验任务6。
7、编辑、编译、运行程序题7。
第一步:参照实验1内容2的实现步骤,在当前工作空间“C语言编程”中新建Win32 Console Application工程,取名为4_7。新建C++ Source File,添加到工程4_7中,文件名为4_7.c。
第二步:main函数中的伪代码如下:
main()
{
1)定义变量
2)输出学生成绩管理系统主菜单界面
3)输出请用户输入选项的提示信息
4)接收用户从键盘输入的选项
5)根据用户输入的选项,输出对应菜单项的信息
}
第三步:根据伪代码构造对应的C语句,并将伪代码作为注释保留下来。本步骤产生的代码略。
第四步:单击组建菜单中的执行选项,该功能快捷键为Ctrl+F5,程序运行情况如图4-2所示。例如,若从键盘输入“2”,则输出修改学生成绩的信息。
8、尝试跟踪实验任务2运行。按下【F10】键或【F11】键单步运行,其中按下【F10】键时,系统会把函数当成一条语句执行,按下【F11】键时,遇到函数的调用,则进入函数内部,继续单步执行;按下【F9】键设置/取消断点;按下【F5】键,程序开始执行,当遇到第一个断点时,暂停执行,再次按下【F5】键,程序就从当前断点继续执行,直到遇到下一个断点,再次暂时中断运行。
六、源程序清单、测试数据、结果
1、#include
void main()
{
int n;
printf("请输入一个整数n:");
scanf("%d", &n);
if(n%2==0)
printf("您输入的是一个偶数!\n");
else
printf("您输入的是一个奇数!\n");
}
测试运行:
请输入一个整数n:100
您输入的是一个偶数!
请输入一个整数n:99
您输入的是一个奇数!
2、修改错误之后的正确程序如下:
#include
void main()
{
int x, flag;
scanf("%d", &x );
if(x>0)
{
flag=1;
printf("这是一个正数\n");
}
else
{ flag=0;
printf("这不是一个正数\n");
}
}
3、#include
void main()
{
int year;
int f1,f2,f3; /* fl,f2,f3存储年份能否被4、100、400整除的逻辑值*/
printf("请输入一个年份:");
scanf("%d", &year);
f1=((year%4)==0); /* 判断年份是否被4整除,将结果存入fl */
f2=((year%100)==0); /* 判断年份是否被100整除,将结果存入f2 */ f3=((year%400)==0); /* 判断年份是否被400整除,将结果存入f3 */ if(f1&&(!f2)||f2&&f3) /* 判断是否为闰年*/
printf("%d年是闰年。\n\n",year);
else
printf("%d年不是闰年。\n\n",year);
}
测试运行:
请输入一个年份:2000
2000年是闰年。
请输入一个年份:2004
2004年是闰年。
请输入一个年份:2100
2010年不是闰年。
4、#include
void main()
{
/* 定义变量*/
float x, y;
/* 输出请用户输入x的提示信息*/
printf("请输入x的值:\n");
/* 接收用户从键盘输入的x值*/
scanf("%f", &x);
/* 根据用户输入的x和分段函数进行相应的计算*/
if(x>0) y=3*x+5;
else if(x==0) y=0;
else y=2*x-1;
/* 输出计算的结果*/
printf("y=%f\n",y);
}
测试运行:
-5
y=-11.000000
0
y=0.000000
5
y=20.000000
5、给定y=f(x)函数,要求输入x的值,求y的值。
#include
void main()
{
float x, y;
printf("请输入x的值:\n");
scanf("%f", &x);
if(x<0) y=fabs(x);
else if(x<10) y=x*x;
else y=log10(x);
printf("y=%f\n", y);
}
测试运行:
-5
y=5.000000
0
y=0.000000
5
y=25.000000
10
y=1.000000
100
y=2.000000
6、void main()
{
/* 定义变量*/
float a=5.0, b=3.0, result;
char op; //用于保存用户输入的运算符
/* 输出计算器主菜单界面*/
printf("++++++++++++++++++++++++++++++++++\n");
printf("+ +: 加法+\n");
printf("+ -: 减法+\n");
printf("+ *: 乘法+\n");
printf("+ /: 除法+\n");
printf("++++++++++++++++++++++++++++++++++\n");
/* 输出请用户输入运算符的提示信息*/
printf("请输入运算符(+ - * /):\n");
/* 接收用户从键盘输入的运算符*/
scanf("%c", &op);
/* 根据输入的某种运算符进行相应计算并输出计算结果,有4种不同运算*/
switch(op)
{
case '+': result=a+b;break;
case '-': result=a-b;break;
case '*': result=a*b;break;
case '/': result=a/b;break;
default: printf("运算符输入错误!\n");
}
/* 输出计算的结果*/
printf("结果是%f\n",result);
}
测试运行:
请输入运算符(+ - * /):
+
结果是8.000000
请输入运算符(+ - * /):
-
结果是2.000000
请输入运算符(+ - * /):
*
结果是15.000000
请输入运算符(+ - * /):
/
结果是1.666667
7、编写实验3任务7的主菜单界面的选择功能的程序。
#include "stdio.h"
#include "stdlib.h"
void main()
{
char MenuItem; /* 定义一个存取用户输入的字符变量*/
/*输出学生成绩管理系统主菜单界面*/
printf("\n");
printf("\n\t+++++++++++++++++++++++++++++++++++++++++++++++++++\n") ;
printf("\n\t+ 学生成绩管理系统
+");
printf("\n\t+
+");
printf("\n\t+ 1 --- 录入学生成绩
+");
printf("\n\t+ 2 --- 修改学生成绩
+");
printf("\n\t+ 3 --- 查询学生成绩
+");
printf("\n\t+ 4 --- 删除学生成绩
+");
printf("\n\t+ 5 --- 排序学生成绩
+");
printf("\n\t+ 6 --- 浏览学生成绩
+");
printf("\n\t+ 0 --- 退出系统
+");
printf("\n\t+
+");
printf("\n\t+++++++++++++++++++++++++++++++++++++++++++++++++++\n") ;
printf("\n 请输入选项(0-6):");
fflush(stdin); /*清空缓冲区*/
scanf("%c", &MenuItem);
getchar();
switch(MenuItem)
{
case '1':
printf("\n 欢迎进入录入学生成绩界面!\n");
printf("\n 建设中,敬请期待……\n");
printf("\n 请按回车键继续……\n");
getchar();
break;
case '2':
printf("\n 欢迎进入修改学生成绩界面!\n");
printf("\n 建设中,敬请期待……\n");
printf("\n 请按回车键继续……\n");
getchar();
break;
case '3':
printf("\n 欢迎进入查询学生成绩界面!\n");
printf("\n 建设中,敬请期待……\n");
printf("\n 请按回车键继续……\n");
getchar();
break;
case '4':
printf("\n 欢迎进入删除学生成绩界面!\n");
printf("\n 建设中,敬请期待……\n");
printf("\n 请按回车键继续……\n");
getchar();
break;
case '5':
printf("\n 欢迎进入排序学生成绩界面!\n");
printf("\n 建设中,敬请期待……\n");
printf("\n 请按回车键继续……\n");
getchar();
break;
case '6':
printf("\n 欢迎进入浏览学生成绩界面!\n");
printf("\n 建设中,敬请期待……\n");
printf("\n 请按回车键继续……\n");
getchar();
break;
case '0':
exit(0); break;
}
}
测试运行:
请输入选项(0-6):
1
欢迎进入录入学生成绩界面!
建设中,敬请期待……
请按回车键继续……
七、实验出现的问题、实验结果分析
1、求绝对值对于浮点数要使用函数fabs。使用abs是对整数取绝对值。
2、以10为底的对数,应当使用函数log10。
3、0≤x<10不能表示为0<=x<10,否则尽管无语法错误,但是含义不正确。
4、case语句与常量之间应当有空格,否则当做语句标号处理。如case 1:(使用单步跟踪发现)。
第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x
信息技术教案:选择结构程序设计 各位读友大家好,此文档由网络收集而来,欢迎您下载,谢谢 [1]教学目的: 、让学生了解选择结构程序 2、掌握逻辑量的概念 3、掌握关系表达式和逻辑表达式 4、了解IF语句 [2]教学重点:选择结构程序和关系表达及逻辑表达式 [3]教学难点:选择结构程序的掌握 [4]教学方法:引入法 [5]教学工具: [6]教学内容: 当结构为真时是-1,结果是假时为0 IFX>0THENPRINTX 关系:即运算量的关系。六种。>= 关系表达式:即用关系运算符把运算量联接起来的式子。 例:A>B,X>=y,mN等。例:X=Z
如:A>B为真时,则NoTA等于假 程序: A=3 B=4 PRINTA,B,NoTA>B,NoTABTHEN PRINTA IFNoTA>BTHENPRINTB END 2)AND相当于数学里的交集,即两个运算量取交集 如:A={1,2,3,4,5,6,7} B={1,2,66,54,34,5,3} A交B={1,2,3,5} 即AANDB=-1如AANDB没有值则为0 例:IFAANDBTHENPRINTA 3)oR相当于数学里的并集集 A={1,2,3,4,5,6,7} B={1,2,66,54,34,5,3} AUB={1,2,3,4,5,6,7,66,54,34} 逻辑运算符的运算规则为真值表:
真值表为(略) 逻辑表达式:用逻辑运算符联接起来的式子。 例1:AANDBoRcoRNoTA A>BNoTA等。 4、IF语句的格式: IF逻辑表达式THEN语句1ELSE语句2 学生写出程序运行的值: 小结: 略 教效果 教后感选择结构程序设 各位读友大家好,此文档由网络收集而来,欢迎您下载,谢谢
实验三:C程序的选择结构 一、实验目的和要求 (1)了解 C 语言表示逻辑量的方法(以0 代表“假”,以非0 代表“真”)。 (2)学会正确使用逻辑运算符和逻辑表达式。 (3)熟练掌握if 语句的使用(包括if 语句的嵌套)。 (4)熟练掌握多分支选择语句—switch 语句。 (5)结合程序掌握一些简单的算法。 (6)进一步学习调试程序的方法。 二、、实验软硬件配置 1.硬件配置 电脑 2.软件配置 Windows xp Visual C++6.0 三、实验内容及过程描述 实验步骤: ①进入Visual C++ 6.0 集成环境。 ②输入自己编好的程序。 ③检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时 改正。 ④进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提 示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正 确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容: 本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 x x 1 (1)有一函数:y 2x 1 1 x 10 3x 11 x 10 写程序,输入x 的值,输出y 相应的值。用scanf 函数输入x 的值,求y 的值。程序如下:#include
第四节选择结构程序设计 4.1选择程序设计举例 在编写程序中,往往要求根据某个指定的条件是否满足来决定执行的内 容?例如,购物在1000元以下的打九五折,1000元及以上的打九折? C++ 提供if语句来实现这种条件选择?如 if amount<1000 tax=0.95; //amount 代表购物总额,tax 代表折扣 else tax=0.9; 〃若amount<1000,条件满足,tax=0.95,否则tax=0.9 pay二amount*tax; //pay 为实付款 流程可以用图4.1表示? lax=0.95 lax=0,9 pay= amount* lax J~ 图4.1 4.2选择结构和if语句 if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假) 决定执行给出的两种操作之一? 4.2.1 if语句的3种形式 1. if (表达式)语句
例如: if(x>y) coutvvxvve ndl; 这种if语句的执行过程见图4.2(a)? 2. if (表达式)语句1 else语句2 例如: if (x>y) cout?x; else coutvvy; 见图 4.2(b)? 语句 rr (a) (b) 图4.2 3. if(表达式1)语句1 else if (表达式2)语句2 elseif(表达式3)语句3 else if (表达式m)语句m else语句n流程图见图4.3? 例如: if (n umber>500) cost=0.15; else if(number>300) cost=0.10;
else if( number>100) cost=0.075; else if( nu mber>50) cost=0.05; 说明: (1)从图4.2和图4.3可以看到:3种形式的if语句都是由一个入口进来,经过对表达式”的判断,分别执行相应的语句,最后归到一个共同的出口?这种形式的程序结构称为选择结构?在C++中if语句是实现选择结构主要的语句? (2)3种形式的if语句中在if后面都有一个用括号括起来的表达式,它 是程序编写者要求程序判断的条件” 一般是逻辑表达式或关系表达式? (3)第2?第3种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号? ⑷ 在if和else后面可以只含一个内嵌的操作语句(如上例),也可以有 多个操作语句,此时用花括号“{} 将”几个语句括起来成为一个复合语
选择结构程序设计 一、实验目的 1.熟练掌握关系表达式和逻辑表达式的使用。 2.熟练掌握嵌套的if语句和switch语句实现多分支结构程序设计。 3.掌握选择结构程序设计的方法。 4.继续熟悉跟踪调试程序的方法和过程。 二、实验内容及步骤 1.分析程序并上机运行验证结果。 #include
《VB选择结构程序设计》教学设计 山东省临清市第二中学吴焕英 【案例背景】 高中信息技术新课程的实施,其课程目标定位于全面提升学生的信息素养,其课程的设置从知识与技能、过程与方法、情感态度与价值观三个方面实施这个课程目标。然而,众多的老师实施新课程后发现:教学内容的范围比以前更广泛了、课时远远不够、教学软硬件资源缺乏等诸多问题。因此,如何更有效地开展新课程教学,成为老师们迫切需要解决的问题。本教学案例从学生的实际情况出发,根据现有的数学、英语基础,结合简单的生活实例,引导学生进行探索式学习,问题从简单的英语口语入手,过渡到课题的研究学习。原本枯燥无味的VB程序设计,在简单、形象的生活实例下,激发了学生的思考与探索思维。这样的教学案例,值得我们反思研究、总结与完善。 【教材分析】 算法与程序设计是普通高中信息技术课程中选修模块之一,本模块旨在使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。 “选择结构”是教育科学出版社出版的高级中学课程标准实验教科书、算法与程序设计第二章第三节的内容,共分三课时,本课为第二课时。主要内容是用选择结构编写简单的程序解决具体问题。用选择结构编写简单的程序解决具体问题是在学生已经掌握了程序设计数据的表示与处理的基础上,理解了顺序结构的前提后提出的。 通过本课的学习,可以促进学生对问题解决方法和思想的理解与掌握,从而提升学生的问题解决能力,让学生在按照一定的流程解决问题的过程中,去体会和理解程序设计的思想,而且也为多分支选择结构的学习打下基础。 【学生分析】 高一的学生在数学课中已经有了算法和程序设计的基础,学生对事物的分析、综合能力及独立思考能力、分析解决问题的能力都有了一定的水平,在教师的有效引导下,有能力进行自我探究,如果用一种学生比较感兴趣的,能够贴近学生日常生活的例子来分析选择结构的话,那么学生会比较感兴趣。 【教学目标分析】 通过教师引导学生去探究、发现技术背后所蕴含的技术价值和技术思想,使其获得知识与技能的同时,理解和掌握过程与方法,这样才能够学会认知,学会做事,乃至学会生活,提高终生学习的能力、分析解决问题的能力,满足其终身发展的需要,成为适应信息社会的公民。 因此本节课的目标有以下几项:
实验4 选择结构程序设计 一、实验目的 1.掌握C语言中逻辑量的表示和使用方法。 2.掌握if语句及switch语句的使用。 3.熟悉各种表达式作为if语句及switch语句的条件。 4.了解Turbo C程序的基本调试方法。 二、实验内容 1.验证性实验 (1)分析程序的运行结果。 ①运行下列程序,输入1-7之间的任意数字,观察程序的运行结果。 #include
第四章择路而行---选择结构程序设计 第一节路口诀择----条件语句 一、教学目标 1、掌握选择结构程序中常用的Qbasic语句。 2、掌握选择结构程序设计方法。 3、能利用选择结构程序设计解决简单的实际问题。 二、教学重点: 1.选择结构的语句及功能 2.选择结构中程序设计方法。 三、教学方法:讲授法,对比法,分组讨论法。 四、教学时间:2课时 五、教学教程: (一)引入新课:前面我们学习了顺序结构程序设计,利用顺序结构只能设计一些较简单的程序,如果要处理复杂的问题,就需要采用另外两种基本结构:选择结构和循环结构。选择结构,是一种常用的主要基本结构,是计算机科学用来描述自然界和社会生活中分支现象的重要手段。其特性是:无论分支多寡,必择其一;纵然分支众多,仅选其一。 (二)讲述新课 l 单行条件选择语句IF 1、单行结构条件语句IF…THEN…ELSE 格式:IF <条件> THEN <语句1> [ELSE <语句2>] 功能:最简单的条件选择语句,用来进行条件判断,使语句有条件的执行。 说明: 1)当<条件>为真(非零数)时,则执行<语句1>。 2)ELSE语句可以省略。 3)当<条件>为假(零)时,而且语句中有ELSE语句则执行<语句2>。 4)IF、THEN、ELSE必须在同一行上。 2、示例A、输入x的值,计算y的值。 REM 程序名为:eg1.bas INPUT “请输入x的值:”,x IF x>=0 THEN Y=1+X ELSE Y=1-2*X PRINT "Y=";Y END 例:求一元二次方程Ax2+Bx+C=0(A<>0)的实数根。 分析:写写出程序的流程图,参考流程图来写程序。 程序清单如下: INPUT A,B,C D=B*B-4*A*C IF D<0 THEN then X1=(-B+SQR(D))/(2*A) X2=(-B-SQR(D))/(2*A) PRINT “X1=”;X1, “X2=”;X2 ELSE PRINT “此方程无实根” END
实验4 Matlab 程序设计1 实验目的: 1、 掌握建立和执行M 文件的方法; 2、 掌握实现选择结构的方法; 3、 掌握实现循环结构的方法。 实验内容: 1. 从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然 后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。 2. 求分段函数的值。 ,x x x x y x x x x x x x ?+- <≠-?=-+ ≤<≠≠??-- ?2226035605231且且及其他 用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。 3. 输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E ,其中90~100分为A ,80~89 分为B ,70~79分为C ,60~69分为D ,60分以下为E 。 要求: (1) 分别用if 语句和swich 语句实现。 (2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 4. 硅谷公司员工的工资计算方法如下: (1) 工作时数超过120小时者,超过部分加发15%; (2) 工作时数低于60小时者,扣发700元; (3) 其余按每小时84元计发。
试编程按输入的工号和该号员工的工时数,计算应发工资。 5.设计程序,完成两位数的加、减、乘、除四则运算。即:输入两个两位随机整数,再输 入一个运算符号,做相应的运算,并显示相应的结果。 6.建立5×6矩阵,要求输出矩阵的第n行元素。当n值超过矩阵的行数时,自动转为输 出矩阵的最后一行元素,并给出出错信息。 7.产生20个两位随机整数,输出其中小于平均数的偶数。 实验代码及实验结果 1. >> a=input('请输入一个四位整数:'); 请输入一个四位整数:9988 >> a1=fix(a/1000); >> a2=rem(fix(a/100),10); >> a3=rem(fix(a/10),10); >> a4=rem(a,10); >> a1=rem(a1+7,10); >> a2=rem(a2+7,10); >> a3=rem(a3+7,10); >> a4=rem(a4+7,10); >> b=a1;a1=a3;a3=b; >> b=a2;a2=a4;a4=b; >> c=a1*1000+a2*100+a3*10+a4; >> disp(c)
实验四选择结构程序设计答案 实验时间:年月日 【实验步骤】 一、程序调试练习 1、写出下列程序的运行结果: (1)ex4_1.c #include ②从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。 ③从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。 程序运行结果: ①z=2 ②z=3 ③z=0 (3)ex4_3.c #include 第4章选择结构程序设计 习题(P111) 4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。 4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2 解:该题在求解过程中注意: 一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低; 二、逻辑表达式的求值规则。(P94) 所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1 4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。 分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。 参考程序如下: main() { int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf("\ninput the value of a,b,c:"); /*提示输入*/ scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/ if(a>b) max=a; else max=b; if(max 实验四-答案--选择结构程序设计 实验四选择结构程序设计答案 实验时间:年月日【实验步骤】 一、程序调试练习 1、写出下列程序的运行结果: (1)ex4_1.c #include ①从键盘上给x、y、z分别输入2,-1,2,分析程序运行的结果。 ②从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。 ③从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。 程序运行结果: ①z=2 ②z=3 ③z=0 (3)ex4_3.c #include 选择结构程序设计练习题 1.逻辑运算符两侧运算对象的数据类型( ) A.只能是0和1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 2.下列运算符中优先级最高的是( ) A.< B.+ C.&& D.!= 3.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是( ) A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210) 4.表示图中坐标轴上阴影部分的正确表达式是( ) A.(x<=a)&&(x>=b)&&(x<=c) B.(x<=a)||(b<=x<=c) C.(x<=a)||(x>=b)&&(x<=c) D.(x<=a)&&(b<=x<=c 5.判断char型量ch是否为大写字母的正确表达式是() A.‘A’<=ch<=‘Z’ B.(ch>=‘A’)&(ch<=‘Z’) C.(ch>=‘A’)&&(ch<=‘Z’) D.(‘A’<=ch)AND(‘Z’>=ch) 6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 () A.‘x’&&‘y’ B.x<=y C.x||y+z&&!y D.!(x 7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是() A.0 B.语法错误 C.1 D.“假” 8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是() A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2 9.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为() A.1 B.2 C.3 D.4 10.下列运算符中优先级最低的是( )优先级最高的是( ) A.? B.&& C.+ D.!= 程序的选择结构 教案编写教师:付虹杨 实际授课教师: ___________________ 实际授课日期: Then End if Else The n Then Else Else End if 教学过程教师活动学生活动设计意图格式2:又叫块If I f 条件Then Else 2> End I 语句组1> 语句组说明: 新课讲授 (1)条件可以是算术表达式、关系表达式或逻辑表达式等。表达式都会 得到两种可能:非真即假,True或False。 (2)格式2中的if与end if 必须成对出现,缺一不可。 (3)在书写时,格式1中的<语句组>可以有多条语句,如 果有多条语句则必须写在一行,而且语句之间用冒号“:” 分隔开。格式2中的<语句组>中的多条语句,则需分行书写。 (4)将If、Else和End If 语句左对齐,而<语句组1>和<语 句组2>向右缩进若干空格,以使程序结构更加清楚,便 于阅读和查错。 4、条件语句的执行过程 当条件成立时,执行Then后面的语句组1, 否则执行语句组2 选择结构的流程图如下所示: 5、下面我们共同运用选择结构来解决问题:例1、选择题 将鼠标价钱大竞猜的程序补充完整。 Dim a As Si ngle a=I nputBox(“请输入您猜的价钱”) ____ a=20_Print"猜对了"__Print “猜错了” 学生边看课 件,边听教师 讲解选择结构 的基本格式。 注意事项,及 程序的执行过 程。 学生运用选择 结构将鼠标价 钱大竞猜程序 补充完整。 进一步理解 选择结构的 用法、格式、 功能。 让学生熟练 掌握双分支 选择结构的 两种基本格 式及相互转 换。 实验2 选择结构程序设计 一.实验目的: 1.掌握选择控制语句的使用方法; 2.了解C程序语句的执行过程。 二.实验内容: 1.编写程序:输入一个整数,判断该数的奇偶性。(输出相应的标志even-偶数odd-奇数,请记住这两个单词)。 2.从键盘输入的正整数,判断是否能被5和7同时整除,若是,则输出Yes;否则输出No。 3.输入一个字符,如果是大写字母改变为小写字母;如果是小写字母,则把它变为大写字母;若是其它字符则不变。 4.编写程序,对于给定的一个百分比制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为’E’(用if…else…与switch 语句两种方法实现)。 5. 企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万元到40万元之间时,高于20万元的部分,可提5%;40万元到60万元之间时,高于40万元的部分,可提成3%;60万元到100万元之间时,高于60万元的部分,可提成1.5%;高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求发放奖金总数。 6. 输入某年某月某日,判断这一天是这一年的第几天。 7. 输入一个字符,请判断是字母、数字还是特殊字符。 8. 身高预测: 男性成人身高=(父亲身高+母亲身高)*0.54cm 女性成人身高=(父亲身高*0.923+母亲身高)/2cm 如果喜爱体育锻炼,那么身高可增加2%;如果有良好的饮食习惯,可增加身高1.5%。键盘输入性别、父母身高、是否爱好体育锻炼、是否有良好的饮食习惯,利用给定身高预测方法对你的身高进行预测。 9. 要求用switch语句编程设计一个简单的计算器程序。要求根据用户从键盘输入的表达式。 操作数1 运算符op 操作数2 计算表达式的值。指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。 在此基础上,增加如下要求: (1)如果要求程序能进行浮点数运算,程序应该如何修改?如何比较实型变量和常数0是否相等? (2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符,那么程序如何修改? (3)如果要求连续多次算术运算,每次运算结束后,程序都给出提示: Do you want to continue(Y/N y/n)? 如果用户输入Y或y时,程序继续进行其它算术运算,否则程序才退出运行状态。那么程序如何进行修改? 第4章选择结构程序设计 通过本章实验作业应达目标 1.练习并熟练掌握if、switch语句使用,实现二路与多路选择结构; 本章必须上交作业 程序4_2.c、4_3.c、4_4.c、4_5.c上传至http://121.251.227.27:8080/c 实验一大小写转换 【实验目的】 熟悉关系与逻辑运算,了解if-else的顺序与嵌套层次关系。 【实验内容】 下面程序希望完成大小写字母转换功能。若输入一个大写字母,则转化为小写输出;若输入小写字母则转化为大写输出;对其他字母则原样不变输出。程序以4_1.c命名,运行程序,分别输入一次大写、一次小写字母、一次‘#’进行验证。如果程序有错,请改正。 #include 求3的平方根: 【实验提示】 本程序需要从键盘接收一个表达式,根据表达式中的运算符号实现相应的运算并将结果保存下来并输出。 C语言本身是没有乘方运算符的,可以调用数学函数pow(x,y)求x的y次方。注意一定要包含 仲恺农业工程学院实验报告纸 计算机科学与工程(院)计算机科学与技术专业计111班1 组C语言程序设计课 实验4 选择结构程序设计 一、实验目的 一.实验目的 (1)了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 (2)学会正确使用逻辑运算符和逻辑表达式。 (3)熟练掌握if语句的使用(包括if语句的嵌套)。 (4)熟练掌握多分支选择语句——switch语句。 (5)结合程序掌握一些简单的算法。 (6)进一步学习调试程序的方法。 二、实验内容和步骤 程序1 写程序,输入x值,输出相应y值 程序:#include { y=3*x-11; } printf ("x=%d,y=%d\n",x,y); return 0; 结果: } 程序2 程序: #include int i,k; printf("please input:",M); scanf("%d",&i); while (i>M) { printf("warning!\n",M); scanf("%d",&i); } k=sqrt(i); printf("the answer is%d\n",k); return 0; } 结果: 程序3 #include 一、教学思想(包括教学背景、教学目标) 1、关于“C语言” 计算机的本质是“程序的机器”,程序和指令的思想是计算机系统中最基本的概念,只有懂得程序设才能懂得计算机,真正了解计算机是怎样工作的;通过学习程序设计可以使我们进一步了解计算机的工作原理,更好地理解个应用计算机,学会用计算机处理问题的方法。C语言作为一种高级程序设计语言,相比其他高级程序设计语言有着公认的一些特点,比如语言本身简介,生成的代码质量高,使用灵活等。它既可以编写计算机系统软件又可以编写各类应用软件。C语言作为一种简洁高校并且支持结构化编程的程序设计语言,在讲究效率的时代,对于帮助学习者掌握程序设计的基本思想和方法,进而更好地理解计算机的工作,会有极大的帮助。 2、关于选择结构程序设计 选择结构程序设计是结构化程序设计的3种基本结构之一,是程序设计中常用的结构。前面介绍的顺序结构里,程序中的所有语句按照书写顺序依次执行。而在日常生活中,处理事情的顺序并不都是按部就班的顺序进行,有时会根据某些条件进行选择。比如在进行周末活动安排时,我们可以说:“如果天气好,我们就去郊游,否则我们就去体育馆打球。”在这样安排中,可以看到,“郊游”和“打球”哪个动作实际执行依赖于“天气好”这个条件是否满足。 在程序设计中,上述安排就要用选择结构来实现。选择结构的作用是根据所给条件的真假,决定程序的运行途径。在上述实例中,“天气好?”是控制条件,它的作用是决定程序的流程,如果天气确实好,则条件为真,进行“郊游”这个活动,如果天气不好,则条件为假,进行“打球”这个活动。 “郊游”和“打球“两个活动只进行一个,该选择结构结束后,再执行下面的语句。 3、教学目标 知识与技能目标:掌握关系运算、逻辑运算和C语言条件语句的使用。 过程与方法目标:通过课程举例,程序的比较和运行和程序流程图的使用,让学生加深记忆,理解条件语句的执行顺序。 实验三选择结构程序设计 (解答) 1.改错题 (1)下列程序的功能为:输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy3_1.c存盘。 #include else if(ch=='Z') c2=ch-25; putchar(c1); putchar(ch); putchar(c2); putchar('\n'); } (2)下列程序的功能为:输入3个整数后,输出其中最大值。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy3_2.c存盘。 #include "stdio.h" main() { int a,b,c,max; printf ("请输入3个整数:\n"); scanf ("%d%d%d",&a,&b,&c); max=a; if (c>b) { if (b>a) max=c;} /* c>b>a */ else /* b>c */ {if (c>a) max=b;} /* b>c>a */ printf("3个数中最大者为:%d\n",max); } 改正后的程序:(方法1) #include "stdio.h" main() { int a,b,c,max; printf ("请输入3个整数:\n"); scanf ("%d%d%d",&a,&b,&c); max=a; if (c>b) { if (c>a) max=c;} else {if (b>a)max=b;} printf("3个数中最大者为:%d\n",max); } 改正后的程序:(方法2) #include "stdio.h" main()c语言第4章 选择结构程序设计习题答案
实验四-答案--选择结构程序设计讲课讲稿
选择结构程序设计练习题
程序的选择结构教学设计
C语言选择结构程序设计编程题.doc
第4章选择结构程序设计
第四版C语言实验报告实验4选择程序设计
C语言选择结构程序教案设计
实验三 选择结构程序设计(解答)