实验三 选择结构程序设计

2019-04-16 23:22

实验三 选择结构程序设计

一、实验学时 2学时 二、实验目的

(一)掌握C语言关系表达式和逻辑表达式的运算和使用;

(二)正确使用条件控制语句(if语句、switch语句)进行选择结构程序设计。

三、预习要求

(一)关系运算符和关系表达式、逻辑运算符和逻辑表达式; (二)if语句的三种形式(单分支、双分支、多分支),以及if语句的嵌套; (三)switch语句的形式。

四、实验内容

(一)分析下面程序,掌握关系及逻辑表达式的运算规则。 /* c3-1.c */

/* 关系及逻辑表达式运算规则 */

#include \void main( ) { int a=3,b=5,c=8;

if(a++<3 && c--!=0) b=b+1;

printf(\

}

注意该程序中的条件判断表达式a++<3 && c--!=0是一个逻辑表达式,关系表达式a++<3的值为假,因此后一部分c--!=0就不再计算。

(二)输入下面两段程序并运行,掌握case语句中break语句的作用。

1./* c3-2.c */ /* c3-3.c */

/* 不含break的switch */ /* 含break的switch */

#include \

void main( ) void main( ) { int a,m=0,n=0,k=0; scanf(\ switch(a) { case 1: m++; case 2: case 3: n++; case 4: case 5: k++;

{ int a,m=0,n=0,k=0; scanf(\ switch(a) { case 1: m++; break; case 2:

case 3: n++; break;

case 4:

case 5: k++;

} }

printf(\} }

分别从键盘上输入1、3、5,写出程序运行的结果。

(三)完善程序,从键盘上输入x的值,按下式计算y的值。

┌ x x<1 y= ┤ 2x-1 1≤x<10

└ 3x-11 x≥10

编程提示:注意逻辑表达式的正确表达方法,数学中的1≤x<10应使用C语言的逻辑表达式(x>=1 && x<10)来表示。

下面是用多分支选择结构实现本题的程序结构: /* c3-4.c */

/* if 语句实现的多分支结构 */ #include \ void main( ) { 定义变量;

输入x;

if ( _______________ ) 按y=x为变量y赋值; else if( _______________ ) 按y=2x-1为变量y赋值; else

按y=3x-11为变量y赋值; printf(\ }

注意:在赋值语句中加乘号。

(四)编写程序,给出一个百分制成绩,要求输出相应的等级A、B、C、D、E。90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。

编程提示: 1.先定义一个整型变量存放百分制成绩、定义一个字符型变量存放相应的等级成绩; 2.输入百分制成绩;

3.将百分制成绩按10分,分档作为switch语句中括号内的表达式; 4.按case 10:

case 9:

case 8: case 7: case 6: default:

这六种匹配情况分别选择不同的入口; 5.输出转换后的等级成绩。

(五)下面程序运行时从键盘上分别输入(20,15),(15,20),写出运行结果。 /* c3-5.c */

/* 分支结构中的复合语句*/ #include \ void main( )

{ int a,b,t; t = 0;

scanf(\ if (a>b) t = a ; a = b ; b = t ;

printf(\ }

(六)编写程序,给出一个不多于3位的正整数n,要求:(1)求出它是几位数;(2)分别打印出每一位数字(数字之间加一个空格);(3)按逆序打印出各位数字(数字之间加一个空格)。

编程提示: 1.定义变量(考虑需要几个变量)并输入一个3位以下的正整数n 2.将n拆分成三个一位数:

表达式:n 可将一个三位数n拆分出三位数中的个位数;

表达式:n/100 可将一个三位数n拆分出三位数中的百位数;

表达式:((n0))/10 或(n-(n/100)*100)/10 可将一个三位数n拆分出三位数中

的十位数。

3.用一个嵌套的选择结构,按照百位数、十位数是否为0决定n为几位数。 4.按相反的顺序输出n。

思考:如果是对一个5位的正整数进行上述处理,程序应如何改动?

(七)写出与表达式z =( x>=y ? x : y )等价的if语句,并上机验证。

五、实验注意事项

(一)C程序中表示比较运算的等号用“==”表示,赋值运算符用“=”表示,不能将赋值号“=”用于比较运算。

(二)控制表达式是指任何合法的C语言表达式(不只限于关系或逻辑表达式),只要表达式的值为“非零”,则为“真”,“零”则为“假”

(三)在if语句的嵌套结构中,else与if的配对原则是:每个else总是与同一个程序中、在前面出现的、而且距它最近的一个尚未配对的if构成配对关系。

(四)case及后面的常量表达式,实际仅是起标号作用。控制表达式的值与某个情况常量一旦匹配,那么,在执行下面语句的过程中,只要不遇到break语句,就一直执行下去,而不再判别是否匹配。允许出现多个“case”与一组语句相对应的情况。

六、思考题

(一)下面程序的功能是实现表达式z=( x>=y ? x : y),请将程序填写完整。 /* 分支结构的程序 */

#include \ void main( )

{ int x, y, z;

printf(\ scanf(\ if (________) z=x; else z=y;

printf(\ }

(二)下面程序的运行结果为_______________。 /* 分支结构的程序 */ #include \ void main( )

{ int a=3,b=5,c=8;

if(a++<3 && c--!=0) b=b+1; printf(\

}

(三)程序填空,从键盘上输入x的值,按下式计算y的值。 ┌ x x<1 y= ┤ 2x-1 1≤x<10 └ 3x-11 x≥10 /* 多分支结构的程序 */ #include \ void main( ) { float x,y; printf(\

scanf(\

if ( _________ ) y=x; else if( x>=1 && x<10 ) y=2*x-1; else y=3*x-11;

printf(\ }

(四)下面程序运行时从键盘上输入15,20,运行结果为_______________。 /* 分支结构的程序 */ #include \ void main( )

{ int a,b,t;

t = 0;

scanf(\if (a>b)

t = a ; a = b ; b = t ;

printf(\

}


实验三 选择结构程序设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:17—18学年上学期高一期末考试英语试题(附答案)(6)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: