ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:22.86KB ,
资源ID:3674491      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3674491.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(02选择结构程序设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

02选择结构程序设计.docx

1、02选择结构程序设计选择结构程序设计作者 巨同升所谓选择结构程序,是指程序中的语句完全按照它们的排列次序执行。顺序结构程序一般由四个部分组成:1 定义变量部分;2 已知变量赋值或输入部分;3 未知变量求值部分;4 输出结果部分。顺序结构程序的编写方法,与求解物理题很相似。1 变量相当于物理量,有几个物理量就定义几个变量。并明确哪些变量是已知的,哪些变量是未知的。2 给出已知变量的值。若已知变量有明确的值,则用赋值语句给出;否则用输入语句获得。3 根据已知变量与未知变量的关系,用赋值语句求得未知变量的值。4 输出求得的未知变量的值。选择结构程序设计1、从键盘输入两个整数,求出最大数并输出。解:解

2、法1:编程思路:首先定义变量,x,y存储两个整数,max存储求出的最大数。用输入语句输入变量x,y的值。若xy,则变量max取x的值,否则取y的值。输出求得的变量max的值。源程序:main()int x,y,max;scanf(%d%d,&x,&y);if(xy) max=x;else max=y;printf(max=%dn,max);注意:else之后不能直接写条件,如不能写作else(x=y),但可以写作else if(xy?x:y; /*使用条件表达式判断求值*/printf(max=%dn,max);2、从键盘输入一个实数,求其绝对值并输出。解:解法1:编程思路:首先定义变量,x存

3、储该实数,y存储其绝对值。用输入语句输入变量x的值。若x0,则变量y取x的值,否则取-x的值。输出求得的变量y的值。源程序:main()float x,y;scanf(%f,&x);if(x=0) y=x;else /*否定x=0,即x0*/ y=-x;printf(y=%fn,y);解法2:编程思路:首先定义变量x,先存储该实数,后存储其绝对值。用输入语句输入变量x的值。若x0,则将变量x取负之后再存入x;否则x保持不变。输出求得的变量x的值。源程序:main()float x;scanf(%f,&x);if(x0,则变量y取1; 若x=0,则变量y取0; 若x0) y=1;if(x=0)

4、/*等号不能写作=*/ y=0;if(x0,则变量y取1; 否则若x=0,则变量y取0; 否则若x0) /*若满足x0*/ y=1;else if(x=0) /*否定x0,同时满足x=0*/ y=0;else /*再否定x=0,必然是xb,则max取a的值,否则取b的值。再用第三个数与前两个数中的最大数比较,求出三个数中的最大数,并存入变量max中。若cmax,则max取c的值,否则max保持不变。输出求得的变量max的值。源程序:main()int a,b,c,max;scanf(%d%d%d,&a,&b,&c);if(ab) max=a;else max=b;if(cmax) /*该if语

5、句与第一个if语句平行*/ max=c;printf(max=%dn,max);解法2:利用条件运算符求出三个数中的最大数。编程思路: 同解法1。源程序:main()int a,b,c,max;scanf(%d%d%d,&a,&b,&c);max=ab?a:b;max=cmax?c:max;printf(max=%dn,max);解法3:编程思路:首先定义变量,a,b,c存储三个整数,max存储求出的最大数。用输入语句输入变量a,b,c的值。若ab同时ac,则max取a的值。若ba同时bc,则max取b的值。若ca同时cb,则max取c的值。输出求得的变量max的值。源程序:main()int

6、 a,b,c,max;scanf(%d%d%d,&a,&b,&c);if(ab&ac) max=a;if(ba&bc) /*或else if(ba&bc)*/ max=b;if(ca&cb) /*或else if(ca&cb)*/ max=c;printf(max=%dn,max);注意:因为该程序中的三个条件是互相排斥的,即只有第一个条件为假时,才需要判断第二个条件;只有前两个条件均为假时,才需要判断第三个条件,故可以用三个嵌套的if语句进行判断。同时因为三个条件是相互独立、互不依赖的,故也可以用三个平行的if语句进行判断。5、从键盘输入两个数,然后按升序输出。解:解法1:编程思路:首先定义

7、变量,a,b存储两个数,t作为交换a,b的中间变量。用输入语句输入变量a,b的值。若ab,则将变量a,b的值相交换,以保证a的值较小,b的值较大。按照先a后b顺序输出两个变量的值。源程序:main()float a,b,t;scanf(%f%f,&a,&b);if(ab)t=a;a=b;b=t;printf(%f,%fn,a,b);注意:用于交换变量a,b值的三条赋值语句,必须括起来作为一条复合语句。即当条件为真时,三条赋值语句都执行;当条件为假时,三条赋值语句都不执行。解法2:编程思路:首先定义变量a,b,用于存储两个数。用输入语句输入变量a,b的值。若ab,按照先a后b顺序输出两个变量的值

8、;否则按照先b后a顺序输出两个变量的值。源程序:main()float a,b;scanf(%f%f,&a,&b);if(ab,则将变量a,b的值相交换,以保证a的值较小,b的值较大。若ac,则将变量a,c的值相交换,以保证a的值较小,c的值较大。此时变量a的值最小。若bc,则将变量b,c的值相交换,以保证b的值较小,c的值较大。此时变量a的值最小,变量b的值次之,变量c的值最大。即a,b,c已按升序排序。输出变量a,b,c的值。源程序:main() int a,b,c,t; scanf(%d%d%d,&a,&b,&c); if(ab) t=a;a=b;b=t; /*三条赋值语句必须括起来*/

9、 if(ac) /*三条if语句相互平行*/ t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(a=%d,b=%d,c=%dn,a,b,c); 注意:用于交换两个变量值的三条赋值语句,必须括起来作为一条复合语句。即当条件为真时,三条赋值语句都执行;当条件为假时,三条赋值语句都不执行。因为后面的两个判断不应依赖于其前边判断,故必须用三个平行的if语句进行判断。6、从键盘输入一个字符,若为小写字母,则转化为相应的大写字母,否则保持不变。解:解法1:编程思路:首先定义变量,ch1用于存储输入的字符,ch2用于存储转化之后的字符。用输入语句输入一个字符并存入变量ch1。若

10、ch1=a&ch1=z(即ch1的值为小写字母),则将ch1-32(即转化为相应的大写字母)赋给ch2;否则直接将ch1赋给ch2。最后输出ch2的值。源程序:#include main()char ch1,ch2;ch1=getchar(); /*或scanf(%c,&ch1);*/if(ch1=a&ch1=z) /*不能写作if(a=ch1=a&ch1=z)不能写作if(a=ch1=a&ch=z(即ch的值为小写字母),则将ch-32(即转化为相应的大写字母)再赋给ch;否则ch保持不变。最后输出ch的值。源程序:#include main()char ch;ch=getchar(); /

11、*或scanf(%c,&ch);*/if(ch=a&ch=z) /*不能写作if(a=ch=a&ch1=A&ch1=Z(即ch1的值为大写字母),则将ch1+32(即转化为相应的小写字母)赋给ch2;否则直接将ch1赋给ch2。最后输出ch2的值。源程序:#include main()char ch1,ch2;ch1=getchar();if(ch1=a&ch1=A&ch1=A&ch1=a&ch=A&ch=Z(即ch的值为大写字母),则将ch+32(即转化为相应的小写字母)再赋给ch;否则ch保持不变。最后输出ch的值。源程序:#include main()char ch;ch=getchar

12、();if(ch=a&ch=A&ch=a&ch1=A&ch1=a&ch1=A&ch1=Z(即ch1的值为大写字母),则将ch1+32(即转化为相应的小写字母)赋给ch2;否则将ch1+1(即转化为ASCII码表中的下一个字符)赋给ch2。最后输出ch2的值。源程序:#include main()char ch1,ch2;ch1=getchar();if(ch1=a&ch1=A&ch1=a&ch=A&ch=Z(即ch的值为大写字母),则将ch+32(即转化为相应的小写字母)再赋给ch;否则将ch+1(即转化为ASCII码表中的下一个字符)再赋给ch。最后输出ch的值。源程序:#include m

13、ain()char ch;ch=getchar();if(ch=a&ch=A&ch=Z) /*此处else不能缺省*/ ch=ch+32;else ch=ch+1;putchar(ch);注意:第二个if语句应嵌套在第一个if语句的else子句中,而不能与第一个if语句平行。9、从键盘输入两个整数及一个运算符,分别求出其和差积商并输出。(其中运算符在两个整数之间输入)解法1:编程思路:首先定义变量,a,b存储两个整数,s存储两个整数的运算结果,ch存储运算符。用输入语句输入变量a,b,ch的值。若ch为加号,则s=a+b;若ch为减号,则s=a-b;若ch为乘号,则s=a*b;若ch为除号,则

14、s=a/b。最后输出变量s的值。源程序:main()int a,b,s;char ch;scanf(%d%c%d,&a,&ch,&b); /*运算符在两个整数之间输入*/if(ch=+) s=a+b; /*单引号不可少*/else if(ch=-) s=a-b; else if(ch=*) s=a*b;else if(ch=/) s=a/b;printf(s=%dn,s);注意:因为四个判断相互排斥、互不依赖,故既可以采用嵌套的if语句进行判断,也可以采用平行的if语句进行判断。解法2:编程思路: 同解法1。源程序:main()int a,b,s;char ch;scanf(%d%c%d,&a

15、,&ch,&b); /*运算符在两个整数之间输入*/if(ch=+) s=a+b; /*单引号不可少*/if(ch=-) s=a-b; if(ch=*) s=a*b;if(ch=/) s=a/b;printf(s=%dn,s);解法3:编程思路: 同解法1。源程序:main()int a,b,s;char ch;scanf(%d%c%d,&a,&ch,&b); /*运算符在两个整数之间输入*/switch(ch)case +:s=a+b;break; /*case之后要有空格,单引号不可少*/ case -:s=a-b;break; case *:s=a*b;break; case /:s=a

16、/b;printf(s=%dn,s);10、从键盘输入一个百分制分数,将其转化为等级分输出。解法1:利用嵌套的if语句进行判断选择。编程思路:首先定义变量,score存储输入的百分制分数, ch存储转化后的等级分。用输入语句输入变量score的值。若score=90,则ch赋值为A;否则,若score=80,则ch赋值为B;否则,若score=70,则ch赋值为C;否则,若score=60,则ch赋值为D;否则,若score=0,则ch赋值为E。最后输出变量ch的值。源程序:main()int score;char ch;scanf(%d,&score);if(score=90)ch=A;el

17、se if(score=80) /*此处else不能缺省*/ch=B;else if(score=70) /*此处else不能缺省*/ch=C;else if(score=60) /*此处else不能缺省*/ch=D;else if(score=0) /*此处else不能缺省*/ch=E;printf(Grade is %cn,ch);注意:因为后面的判断依赖于前面的判断,故必须采用嵌套的if语句进行判断。解法2:利用平行的if语句进行判断选择。编程思路:首先定义变量,score存储输入的百分制分数, ch存储转化后的等级分。用输入语句输入变量score的值。若score=90,则ch赋值为A

18、;若score=80,则ch赋值为B;若score=70,则ch赋值为C;否则,若score=60,则ch赋值为D;score=0则ch赋值为E。最后输出变量ch的值。源程序:main()int score;char ch;scanf(%d,&score);if(score=90)ch=A;if(score=80)ch=B;if(score=70) ch=C;if(score=60)ch=D;if(score=0)ch=E;printf(Grade is %cn,ch);注意:因为后面的判断不依赖于前面的判断,故可以采用平行的if语句进行判断。同时由于后面的判断条件与前面的判断条件相互排斥,故

19、也可以采用嵌套的if语句进行判断。解法3:利用switch语句进行判断选择。编程思路:首先定义变量,整型变量g存储输入的百分制分数, ch存储转化后的等级分。用输入语句输入变量g的值。通过g除以10(整除),将一个百分制分数转化为一个0到10之间的整数。而且同一个分数段将转化为同一个整数,如90到99均转化为9。利用switch语句根据表达式g/10的值,跳转到相应的分支执行,求出变量ch的值。最后输出变量ch的值。源程序:main()int g; /*g为整型变量*/char ch;scanf(%d,&g);switch(g/10) case 10: /*当g=100时,转到此处*/ case 9:ch=A;break; /*当g=90且g=80且g=70且g80时,转到此处*/ case 6:ch=D;break; /*当g

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1