02选择结构程序设计文档格式.docx

上传人:b****4 文档编号:16579326 上传时间:2022-11-24 格式:DOCX 页数:20 大小:22.86KB
下载 相关 举报
02选择结构程序设计文档格式.docx_第1页
第1页 / 共20页
02选择结构程序设计文档格式.docx_第2页
第2页 / 共20页
02选择结构程序设计文档格式.docx_第3页
第3页 / 共20页
02选择结构程序设计文档格式.docx_第4页
第4页 / 共20页
02选择结构程序设计文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

02选择结构程序设计文档格式.docx

《02选择结构程序设计文档格式.docx》由会员分享,可在线阅读,更多相关《02选择结构程序设计文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

02选择结构程序设计文档格式.docx

printf("

max=%d\n"

max);

}

注意:

①else之后不能直接写条件,如不能写作else(x<

=y),但可以写作elseif(x<

=y)。

解法2:

同解法1。

max=x>

y?

x:

y;

/*使用条件表达式判断求值*/

2、从键盘输入一个实数,求其绝对值并输出。

①首先定义变量,x存储该实数,y存储其绝对值。

②用输入语句输入变量x的值。

0,则变量y取x的值,否则取-x的值。

④输出求得的变量y的值。

{floatx,y;

%f"

x);

=0)

y=x;

else/*否定x>

=0,即x<

0*/

y=-x;

y=%f\n"

y);

①首先定义变量x,先存储该实数,后存储其绝对值。

③若x<

0,则将变量x取负之后再存入x;

否则x保持不变。

④输出求得的变量x的值。

{floatx;

if(x<

0)

x=-x;

x);

3、从键盘输入x的值,求y的值并输出。

采用三条平行的if语句分别求值,每条if语句对应于一种情况(一个分支)。

①首先定义变量x,y。

0,则变量y取1;

若x=0,则变量y取0;

若x<

0,则变量y取-1。

y=1;

if(x==0)/*等号不能写作=*/

y=0;

y=-1;

①if(x==0)不能写作if(x=0),因为后者表示赋值,x的值总为0,即条件总为假。

②在一组平行的if语句中,不管前边的if语句条件是真是假,后边的if语句总要执行。

采用嵌套的if语句分别求值,共分为三种情况(三个分支)。

否则若x=0,则变量y取0;

否则若x<

0)/*若满足x>

elseif(x==0)/*否定x>

0,同时满足x=0*/

else/*再否定x=0,必然是x<

①在两个嵌套的if语句中,只有前边的if语句条件是假(或者是真),后边的if语句才会执行。

4、从键盘输入三个整数,求出最大数并输出。

①首先定义变量,a,b,c存储三个整数,max存储求出的最大数。

②用输入语句输入变量a,b,c的值。

③先求出前两个数中的最大数,并存入变量max中。

若a>

b,则max取a的值,否则取b的值。

④再用第三个数与前两个数中的最大数比较,求出三个数中的最大数,并存入变量max中。

若c>

max,则max取c的值,否则max保持不变。

⑤输出求得的变量max的值。

{inta,b,c,max;

%d%d%d"

a,&

b,&

c);

if(a>

b)

max=a;

max=b;

if(c>

max)/*该if语句与第一个if语句平行*/

max=c;

利用条件运算符求出三个数中的最大数。

同解法1。

max=a>

b?

a:

b;

max=c>

max?

c:

max;

解法3:

③若a>

b同时a>

c,则max取a的值。

若b>

a同时b>

c,则max取b的值。

a同时c>

b,则max取c的值。

b&

&

a>

c)

if(b>

a&

b>

c)/*或elseif(b>

c)*/

c>

b)/*或elseif(c>

b)*/

①因为该程序中的三个条件是互相排斥的,即只有第一个条件为假时,才需要判断第二个条件;

只有前两个条件均为假时,才需要判断第三个条件,故可以用三个嵌套的if语句进行判断。

②同时因为三个条件是相互独立、互不依赖的,故也可以用三个平行的if语句进行判断。

5、从键盘输入两个数,然后按升序输出。

①首先定义变量,a,b存储两个数,t作为交换a,b的中间变量。

②用输入语句输入变量a,b的值。

b,则将变量a,b的值相交换,以保证a的值较小,b的值较大。

④按照先a后b顺序输出两个变量的值。

{floata,b,t;

%f%f"

b);

{t=a;

a=b;

b=t;

%f,%f\n"

a,b);

①用于交换变量a,b值的三条赋值语句,必须括起来作为一条复合语句。

即当条件为真时,三条赋值语句都执行;

当条件为假时,三条赋值语句都不执行。

①首先定义变量a,b,用于存储两个数。

③若a<

b,按照先a后b顺序输出两个变量的值;

否则按照先b后a顺序输出两个变量的值。

{floata,b;

if(a<

printf("

b,a);

6、从键盘输入三个整数,按升序排序后输出。

①首先定义变量,a,b,c存储两个数,t作为交换a,b,c的中间变量。

④若a>

c,则将变量a,c的值相交换,以保证a的值较小,c的值较大。

此时变量a的值最小。

⑤若b>

c,则将变量b,c的值相交换,以保证b的值较小,c的值较大。

此时变量a的值最小,变量b的值次之,变量c的值最大。

即a,b,c已按升序排序。

⑥输出变量a,b,c的值。

{inta,b,c,t;

scanf("

if(a>

{t=a;

}/*三条赋值语句必须括起来*/

c)/*三条if语句相互平行*/

a=c;

c=t;

if(b>

{t=b;

b=c;

a=%d,b=%d,c=%d\n"

a,b,c);

}

①用于交换两个变量值的三条赋值语句,必须括起来作为一条复合语句。

②因为后面的两个判断不应依赖于其前边判断,故必须用三个平行的if语句进行判断。

6、从键盘输入一个字符,若为小写字母,则转化为相应的大写字母,否则保持不变。

①首先定义变量,ch1用于存储输入的字符,ch2用于存储转化之后的字符。

②用输入语句输入一个字符并存入变量ch1。

③若ch1>

='

a'

ch1<

z'

(即ch1的值为小写字母),则将ch1-32(即转化为相应的大写字母)赋给ch2;

否则直接将ch1赋给ch2。

④最后输出ch2的值。

#include<

stdio.h>

{charch1,ch2;

ch1=getchar();

/*或scanf("

%c"

ch1);

*/

if(ch1>

)/*不能写作if('

<

=ch1<

)*/

ch2=ch1-32;

ch2=ch1;

putchar(ch2);

/*或printf("

ch2=%c\n"

ch2);

①if(ch1>

)不能写作if('

)。

①首先定义变量ch,先存储输入的字符,后存储转化之后的字符。

②用输入语句输入一个字符并存入变量ch。

③若ch>

ch<

(即ch的值为小写字母),则将ch-32(即转化为相应的大写字母)再赋给ch;

否则ch保持不变。

④最后输出ch的值。

{charch;

ch=getchar();

ch);

if(ch>

=ch<

ch=ch-32;

putchar(ch);

ch=%c\n"

ch);

7、从键盘输入一个字符,若为小写字母,则转化为相应的大写字母;

若为大写字母,则转化为相应的小写字母,否则保持不变。

否则,若ch1>

A'

Z'

(即ch1的值为大写字母),则将ch1+32(即转化为相应的小写字母)赋给ch2;

) 

else 

)/*此处else不能缺省*/

ch2=ch1+32;

①因为只有ch1不是小写字母时,才需要判断ch1是不是大写字母,故第二个if语句应嵌套在第一个if语句的else子句中。

②若第二个if语句与第一个if语句平行(即第二个if语句之前无else),则第二个if语句中的else仅否定第二个条件ch1>

,即只要不是大写字母,ch2=ch1;

都要执行。

显然与题目要求不符。

否则,若ch>

(即ch的值为大写字母),则将ch+32(即转化为相应的小写字母)再赋给ch;

elseif(ch>

ch=ch+32;

①因为只有ch不是小写字母时,才需要判断ch是不是大写字母,故第二个if语句应嵌套在第一个if语句的else子句中。

②若第二个if语句与第一个if语句平行(即第二个if语句之前无else),则当输入一个小写字母(如’f’)时,先执行第一个if语句,因ch1>

为真,故转化为相应的大写字母(如’F’);

接着执行第二个if语句,又因此时ch1>

为真,故再转化为相应的小写字母(如’f’)。

8、从键盘输入一个字符,若为小写字母,则转化为相应的大写字母;

若为大写字母,则转化为相应的小写字母;

否则转化为ASCII码表中的下一个字符。

否则将ch1+1(即转化为ASCII码表中的下一个字符)赋给ch2。

else 

ch2=ch1+1;

①第二个if语句应嵌套在第一个if语句的else子句中,而不能与第一个if语句平行。

否则将ch+1(即转化为ASCII码表中的下一个字符)再赋给ch。

ch=ch+1;

9、从键盘输入两个整数及一个运算符,分别求出其和差积商并输出。

(其中运算符在两个整数之间输入)

①首先定义变量,a,b存储两个整数,s存储两个整数的运算结果,ch存储运算符。

②用输入语句输入变量a,b,ch的值。

③若ch为加号,则s=a+b;

若ch为减号,则s=a-b;

若ch为乘号,则s=a*b;

若ch为除号,则s=a/b。

④最后输出变量s的值。

{inta,b,s;

charch;

%d%c%d"

ch,&

/*运算符在两个整数之间输入*/

if(ch=='

+'

)s=a+b;

/*单引号不可少*/

elseif(ch=='

-'

)s=a-b;

*'

)s=a*b;

/'

)s=a/b;

s=%d\n"

s);

①因为四个判断相互排斥、互不依赖,故既可以采用嵌套的if语句进行判断,也可以采用平行的if语句进行判断。

switch(ch)

{case'

:

s=a+b;

break;

/*case之后要有空格,单引号不可少*/

case'

s=a-b;

s=a*b;

s=a/b;

10、从键盘输入一个百分制分数,将其转化为等级分输出。

利用嵌套的if语句进行判断选择。

①首先定义变量,score存储输入的百分制分数,ch存储转化后的等级分。

②用输入语句输入变量score的值。

③若score<

=100同时score>

=90,则ch赋值为'

否则,若score>

=80,则ch赋值为'

B'

=70,则ch赋值为'

C'

=60,则ch赋值为'

D'

=0,则ch赋值为'

E'

④最后输出变量ch的值。

{intscore;

%d"

score);

if(score<

=100&

score>

=90)

ch='

;

elseif(score>

=80)/*此处else不能缺省*/

=70)/*此处else不能缺省*/

=60)/*此处else不能缺省*/

=0)/*此处else不能缺省*/

Gradeis%c\n"

①因为后面的判断依赖于前面的判断,故必须采用嵌套的if语句进行判断。

利用平行的if语句进行判断选择。

若score<

90同时score>

80同时score>

否则,若score<

70同时score>

score<

60同时score>

=0则ch赋值为'

90&

=80)

80&

=70)

70&

=60)

60&

①因为后面的判断不依赖于前面的判断,故可以采用平行的if语句进行判断。

同时由于后面的判断条件与前面的判断条件相互排斥,故也可以采用嵌套的if语句进行判断。

利用switch语句进行判断选择。

①首先定义变量,整型变量g存储输入的百分制分数,ch存储转化后的等级分。

②用输入语句输入变量g的值。

③通过g除以10(整除),将一个百分制分数转化为一个0到10之间的整数。

而且同一个分数段将转化为同一个整数,如90到99均转化为9。

④利用switch语句根据表达式g/10的值,跳转到相应的分支执行,求出变量ch的值。

⑤最后输出变量ch的值。

{intg;

/*g为整型变量*/

g);

switch(g/10) 

{case10:

/*当g=100时,转到此处*/

case9:

/*当g>

=90且g<

100时,转到此处*/

case8:

=80且g<

90时,转到此处*/

case7:

=70且g<

80时,转到此处*/

case6:

/*当g

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

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

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