如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验三选择结构程序设计一、实验学时2学时二、实验目的(一)掌握C语言关系表达式和逻辑表达式的运算和使用;(二)正确使用条件控制语句(if语句、switch语句)进行选择结构程序设计。三、预习要求(一)关系运算符和关系表达式、逻辑运算符和逻辑表达式;(二)if语句的三种形式(单分支、双分支、多分支),以及if语句的嵌套;(三)switch语句的形式。四、实验内容(一)分析下面程序,掌握关系及逻辑表达式的运算规则。/*c3-1.c*//*关系及逻辑表达式运算规则*/#include"stdio.h"voidmain(){inta=3,b=5,c=8;if(a++<3&&c--!=0)b=b+1;printf("a=%d\tb=%d\tc=%d\n",a,b,c);}注意该程序中的条件判断表达式a++<3&&c--!=0是一个逻辑表达式,关系表达式a++<3的值为假,因此后一部分c--!=0就不再计算。(二)输入下面两段程序并运行,掌握case语句中break语句的作用。1./*c3-2.c*//*c3-3.c*//*不含break的switch*//*含break的switch*/#include"stdio.h"#include"stdio.h"voidmain()voidmain(){inta,m=0,n=0,k=0;{inta,m=0,n=0,k=0;scanf("%d",&a);scanf("%d",&a);switch(a)switch(a){case1:m++;{case1:m++;break;case2:case2:case3:n++;case3:n++;break;case4:case4:case5:k++;case5:k++;}}printf("%d,%d,%d\n",m,n,k);printf("%d,%d,%d\n",m,n,k);}}分别从键盘上输入1、3、5,写出程序运行的结果。(三)完善程序,从键盘上输入x的值,按下式计算y的值。┌xx<1y=┤2x-11≤x<10└3x-11x≥10编程提示:注意逻辑表达式的正确表达方法,数学中的1≤x<10应使用C语言的逻辑表达式(x>=1&&x<10)来表示。下面是用多分支选择结构实现本题的程序结构:/*c3-4.c*//*if语句实现的多分支结构*/#include"stdio.h"voidmain(){定义变量;输入x;if(_______________)按y=x为变量y赋值;elseif(_______________)按y=2x-1为变量y赋值;else按y=3x-11为变量y赋值;printf("y=%f\n",y);}注意:在赋值语句中加乘号。(四)编写程序,给出一个百分制成绩,要求输出相应的等级A、B、C、D、E。90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。编程提示:1.先定义一个整型变量存放百分制成绩、定义一个字符型变量存放相应的等级成绩;2.输入百分制成绩;3.将百分制成绩按10分,分档作为switch语句中括号内的表达式;4.按case10:case9:case8:case7:case6:default:这六种匹配情况分别选择不同的入口;5.输出转换后的等级成绩。(五)下面程序运行时从键盘上分别输入(20,15),(15,20),写出运行结果。/*c3-5.c*//*分支结构中的复合语句*/#include"stdio.h"voidmain(){inta,b,t;t=0;scanf("%d,%d",&a,&b);if(a>b)t=a;a=b;b=t;printf("a=%d,b=%d\n",a,b);}(六)编写程序,给出一个不多于3位的正整数n,要求:(1)求出它是几位数;(2)分别打印出每一位数字(数字之间加一个空格);(3)按逆序打印出各位数字(数字之间加一个空格)。编程提示:1.定义变量(考虑需要几个变量)并输入一个3位以下的正整数n2.将n拆分成三个一位数:表达式:n%10可将一个三位数n拆分出三位数中的个位数;表达式:n/100可将一个三位数n拆分出三位数中的百位数;表达式:((n%100))/10或(n-(n/100)*100)/10可将一个三位数n拆分出三位数中的十位数。3.用一个嵌套的选择结构,按照百位数、十位数是否为0决定n为几位数。4.按相反的顺序输出n。思考:如果是对一个5位的正整数进行上述处理,程序应如何改