实验四+选择结构程序设计
- 格式:doc
- 大小:69.00 KB
- 文档页数:7
实验四选择结构程序设计在程序设计的世界里,选择结构就像是一个智能的决策者,根据不同的条件来决定程序的走向。
这一结构在解决各种实际问题中发挥着至关重要的作用,让程序变得更加灵活和高效。
选择结构,简单来说,就是让程序在运行时能够根据某些条件的判断结果,选择执行不同的代码块。
想象一下,你正在编写一个程序,要根据用户输入的成绩来判断他是否及格。
如果成绩大于等于 60 分,就输出“及格”;否则,输出“不及格”。
这就是一个典型的选择结构应用场景。
在大多数编程语言中,实现选择结构主要有两种方式:if 语句和switch 语句。
先来说说 if 语句。
它的基本形式是“if (条件) {代码块}”。
如果条件为真,就执行花括号里的代码块;如果条件为假,就跳过这个代码块,继续执行后面的代码。
比如说,我们要判断一个数是否为正数,可以这样写:```javaint num = 5;if (num > 0) {Systemoutprintln("这是一个正数");}```除了简单的 if 语句,还有 ifelse 语句。
它的形式是“if (条件) {代码块 1 } else {代码块 2 }”。
如果条件为真,执行代码块 1;如果条件为假,执行代码块 2。
例如,判断一个数是奇数还是偶数:```javaint num = 6;if (num % 2 == 0) {Systemoutprintln("这是一个偶数");} else {Systemoutprintln("这是一个奇数");}```另外,还有 ifelse ifelse 语句,可以处理多个条件的情况。
比如,根据学生的成绩划分等级:```javaint score = 85;if (score >= 90) {Systemoutprintln("优秀");} else if (score >= 80) {Systemoutprintln("良好");} else if (score >= 70) {Systemoutprintln("中等");} else if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}```接下来,再讲讲 switch 语句。
实验4 选择结构程序设计一、实验目的1.掌握C语言中逻辑量的表示和使用方法。
2.掌握if语句及switch语句的使用。
3.熟悉各种表达式作为if语句及switch语句的条件。
4.了解Turbo C程序的基本调试方法。
二、实验内容1.验证性实验(1)分析程序的运行结果。
①运行下列程序,输入1-7之间的任意数字,观察程序的运行结果。
#include <stdio.h>void main(){ int week;printf("Input(1-7):");scanf("%d",&week);switch(week){ case 1:printf("Mon.\n"); break;case 2:printf("Tue.\n"); break;case 3:printf("Wed.\n"); break;case 4:printf("Tur.\n"); break;case 5:printf("Fri.\n"); break;case 6:printf("Sat.\n"); break;case 7:printf("Sun.\n"); break;default:printf("The input is wrong!\n");}}②运行5次下列程序,输入的数据分别是1,2,3,4,5,请观察每次的运行结果,并根据结果分析原因。
#include <stdio.h>void main(){ int n,a=0,b=0,c=0,d=0,k=0;scanf("%d",&n);switch(n){ case 1:b++;break;case 2:c++;case 3:d++;break;case 4:k++;default:a++;}printf("%d,%d,%d,%d",a,b,c,d,n);}(2)输入x的不同值,以下程序将求一给定“y=f(x)”函数的值。
四《C语言程序设计》实验四选择结构程序设计一、实验目的1、掌握分支语句的格式和功能。
2、掌握选择结构的程序设计。
3、掌握分支结构的嵌套。
二、实验内容与要求1、编程,计算下列分段函数值:x2+3x-4,x<0且x≠-4f(x)= x2-6x+5,0=x<10且x≠1及x≠5x2-4x-1,其他要求如下:(1)用if语句实现分支。
自变量x与函数值均采用双精度类型。
(2)自变量x值从键盘输入,且输入前要有提示信息。
(3)数据的输出格式采用以下形式:x=输入值,f(x)=计算值(4)分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。
记录结果。
(5)源程序以sy4_1.c存盘。
2、编程,将一个百分制成绩转换成等级制成绩。
具体要求如下:(1)百分制与等级制的对应关系如下:(3)用键盘输入百分制成绩,输入前要有提示信息。
(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。
(5)输出结果中应包含百分制成绩和成绩等级。
(6)分别输入成绩-10,99,60,85,70,101,45,运行该程序。
记录结果。
(7)源程序以sy4_2.c存盘。
三、思考题1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?实验五循环结构程序设计(1)一、实验目的1、掌握循环的概念。
2、掌握三种常用的循环语句的格式和功能。
3、初步掌握循环结构的编程方法。
二、实验内容与要求1、编程,分别利用三种循环语句,求1+2+3+…50之和。
要求如下:(1)输出计算结果;数据的输出格式采用以下形式:1+2+3+…50=计算值(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。
2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:(1)输出计算结果;在数据输出之前应有提示信息。
实验题目:选择结构程序设计班级:学号:姓名:学院:实验室:日期:成绩评定:教师签字:实验目的:1、掌握顺序结构程序设计方法、执行过程和复合语句的作用。
2、熟练使用顺序结构编辑程序。
3、熟练掌握if——else条件语句,学习选择结构程序设计的方法及应用。
4、熟悉多分支选择的switch——case语句。
【2-1】阅读程序,上机调试并记录程序结果。
(记录结果,利用截图方式或者书写方式均可)(1)#include <stdio.h>int main( ){int x=3;if(x==0) {printf("x=%d\n",x);}else{printf("x=%d\n”,x+1);}return 0;}程序运行结果:x=4(2)#include <stdio.h>int main(){int a,b;scanf("%d",&a); /*键盘输入一个整数a*/if(a%2!=0) { /*判断a是否是奇数*/b=a*a;printf("b=%d\n",b);}return 0;}程序运行结果: 1 b=1(3)阅读程序,输入0~100之间的数值,上机调试并记录程序结果。
#include<stdio.h>#include<stdlib.h>int main(){double score;int level;printf("请输入成绩:\n");scanf("%lf",&score);if (score>100||score<0){printf("成绩输入错误!\n");}else{level=(int)((score -50)/10);switch(level){case 5: printf("优\n");break;case 4: printf("优\n");break;case 3: printf("良\n");break;case 2: printf("中\n");break;case 1: printf("差\n");break;default: printf("劣\n");break;}}return 0;}程序运行结果: 99 优【2-2】程序填空。
习题四选择结构程序设计1. 设变量x和y均已正确定义并赋值。
以下if语句中,在编译时将产生错误信息的是______。
A、if(x++);B、if(x>y && y!=0);C、if(x>0) x--D、if(y<0) {;}else y++; else x++;解析:本题考查的是if语句。
if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。
选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。
故本题答案选C。
2. 有以下程序main(){ int i;for(i=1;i<=40;i++){ if(i++%5==0)if(++i%8==0) printf ("%d",i);}printf("\n"); }执行后的输出结果是______。
A、5B、24C、32D、40解析:本题考查的是if语句的应用。
在满足for 语句条件下,第一个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。
故本题答案选C。
3. 在嵌套使用if语句时,C语言规定else总是______。
A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近的且不带else的if配对D、和之前的第一个if配对解析:本题考查的是if语句的使用规则。
在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对。
故本题答案为C。
4. 有以下程序main(){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k); }程序运行后的输出结果是______。
114 4.4 选择结构程序设计实验4.4.1 选择结构程序设计选择结构是根据表达式的值决定执行语句路径的控制结构,通过计算表达式的值是否为0,确定应该执行的程序语句,选择结构的程序从入口通过表达式判断有两条或多条分支汇接到出口,两条分支可以用if–else 语句实现二选一功能,多条分支可以用switch-case 语句实现多选一功能。
选择结构用于解决需要判断后才能决定程序执行路径的程序控制结构。
用选择结构编制程序,最好先画程序流程图,选择在else 部分嵌套的结构,即尽量采用if-else-if 型的控制结构,如例4.2.2和例4.2.6,避免使用在if 部分嵌套的结构;在if-else-if 控制结构中,多个表达式形成的作用域覆盖要正确,避免出现逻辑错误。
使用switch-case 语句时,要尽量采用带break 的多分支语句,如例4.2.9左边,避免使用不带break 的多分支语句。
流程图中程序的控制流程表达得简洁清楚、准确无误后,再编写程序代码,这样编制的程序控制条件明晰,逻辑判断简单,程序路径清楚,避免出现逻辑矛盾或歧义性。
下面分别介绍用选择结构组织的程序类型。
1.大小写字母的转换例4.4.1 输入一个字母给字符变量ch ,判断是大写字母,将其转换成小写字母,如果是小写字母,将其转换为大写字母。
解:前面章节已介绍字符数据的按字符在ASCII 码表中的位置和值定义内码,存储的字符数据是ASCII 码的值,字符ASCII 码的十六进制编码称为字符的存储码。
大写字母'A '的值,存储为41H (十进制数为65),小写字母'a '的值,存储为61H (十进制数为97),两者的位置相差20H (十进制数为32)。
因此,任一大写字母如D 加32可以转换成小写字母d ,小写字母d 减32转换成大写字母D 。
判断字母的大小写,是检查变量ch 的取值范围在'A'<=ch<='Z'之间为大写字母,变量ch 的取值范围在'a'<=ch<='z'之间为小写字母。
实验四:选择结构程序设计(2学时)一、实验方式:一人一机二、实验目的:1、熟悉选择结构特点和一般形式。
2、掌握单分支if结构的使用方法。
3、掌握双分支if-else结构的使用方法。
4、掌握多分支if-elif结构的使用方法。
三、实验内容:1、已知三角形的三边长a,b,c,利用海伦公式求该三角形的面积。
2、鸡兔同笼问题:从键盘输入鸡兔的总数和腿的总数,求鸡、兔的实际个数。
3、输入学生成绩,判定其成绩等级。
4、输入一个整数判断能否同时被5和7整除,若能,则输出“Yes”;否则输出“No”。
5、编写一个简单的出租车计费程序,当输入行程的总里程时,输出乘客应付的车费(车费保留一位小数)。
计费标准具体为起步价10元/3公里,超过3公里,每公里费用为1.2元,超过10公里以后,每公里的费用为1.5元。
四、实验结果与分析:1、已知三角形的三边长a,b,c,利用海伦公式求该三角形的面积。
(1)程序代码(程序运行最终正确代码):#已知三边,利用海伦公式求三角形的面积a=float(input("输入边长1:"))b=float(input("输入边长2:"))c=float(input("输入边长3:"))if a+b>c and b+c>a and c+a>b:s=(a+b+c)/2area=(s*(s-a)*(s-b)*(s-c))**0.5print("三角形的面积=%.2f"%area)else:print("不能构成三角形")(2)程序结果(截图Alt+PrtSc):(3)程序分析(程序运行错误修改或运行结果分析):无2、鸡兔同笼问题:从键盘输入鸡兔的总数和腿的总数,求鸡、兔的实际个数。
(1)程序代码(程序运行最终正确代码):#鸡兔同笼问题#设鸡兔总数为s,腿总数为t,兔的个数为tus,t=map(int,input("请输入鸡兔总数和腿总数,之间用空格分隔:").split()) tu=(t-s*2)/2#int(tu)==abs(tu)腿总数不能为奇数,abs(tu)腿不能为负数if int(tu)==abs(tu):print('鸡:{0},兔:{1}'.format(int(s-tu),int(tu)))else:print("输入的数据不正确,无解!!")(2)程序结果(截图Alt+PrtSc):(3)程序分析(程序运行错误修改或运行结果分析):无3、输入学生成绩,判定其成绩等级。
实验四 选择结构程序设计一、实验目的1.掌握关系、逻辑表达式的正确书写形式。
2.学习结构化程序的控制流程。
3.掌握单分支与双分支条件语句的使用。
4.掌握多分支条件语句(If … Then … ElseIf )的使用。
5.掌握Select Case 语句的使用及与多分支条件语句的区别。
6.熟悉选择结构程序设计,灵活使用各种分支语句。
7.学习掌握程序调试方法。
二、实验内容1.将实验三的“计算器3”另存为“计算器4”,按图4.7修改成“计算器4”的界面。
运行时单击“=”按钮,执行所选算术运算符按钮的运算,运算结果显示在文本框中。
编写事件过程及代码实现“计算器4”各运算符的运算功能。
(1)用If ……ElseIf ……End If 结构编写“=”按钮的事件过程及代码。
(2)用Select Case ……End Select 结构编写“=”按钮的事件过程及代码。
图4.7 实验1界面设计 图4.8 实验2界面设计 2.在文本框中输入三角形的三个边a 、b 、c ,计算三角形的面积并保留三位小数。
界面设计如图4.8所示。
三角形面积计算公式如下:P =( a + b + c )/ 2 S = )(*)(*)(*c p b p a p p ---要求:(1)用IsNumeric 函数对文本框输入的内容进行判断,若为非数字字符,显示“输入错误!重新输入”,清空该文本框,该文本框获得焦点。
(2)判断输入的三边是否能构成三角形,能构成三角形,计算三角形的面积。
否则用MsgBox 显示“不能构成三角形”的信息。
提示:对多个文本框输入数据的合法性用(LostFocus )进行判断,应防止文本框出现争夺焦点,可以在(LostFocus )事件过程中使用如下判断语句。
If Not IsNumeric(Text2) And Text2 <> "" Then3.编一模拟袖珍计算器的完整程序,运行界面如图4.9所示。