选择结构程序设计习题.docx
《选择结构程序设计习题.docx》由会员分享,可在线阅读,更多相关《选择结构程序设计习题.docx(8页珍藏版)》请在冰豆网上搜索。
![选择结构程序设计习题.docx](https://file1.bdocx.com/fileroot1/2023-1/10/b382328a-0496-47b8-ab88-64a244c4331a/b382328a-0496-47b8-ab88-64a244c4331a1.gif)
选择结构程序设计习题
选择结构程序设计练习
1.从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。
[提示]根据字符型数据的ASCII码值是否在‘0’字符与‘9’字符之间进行判断。
使用if…else…语句。
#include"stdio.h"
intmain()
{
charch;
intdch;
printf("请输入一个字符:
\n");
scanf("%c",&ch);
printf("输入的字符是:
%c\n",ch);
if(ch>='0'&&ch<='9')
{
dch=ch-'0';
printf("%c对应的整数是:
%d\n",ch,dch);
}
else
{
printf("%c不是数字字符\n",ch);
}
}
2.编写一个程序,其功能为:
从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!
=z”的信息。
[提示]条件判断表达式x+y==z
#include"stdio.h"
intmain()
{
floatx,y,z;
printf("请输入x,y,z:
\n");
scanf("%f%f%f",&x,&y,&z);
if(x+y==z)
printf("x+y=z\n");
else
printf("x+y!
=z\n");
}
3.编写一个程序,其功能为:
输入三个整数,输出最大数和最小数。
[提示]设置最大值变量max和最小值变量min;首先比较a,b的大小,并把大数存入max,小数存入min;然后最大值变量max和最小值变量min再与c比较,若c大于max,则max取值c,否则保持不变;如果c小于min,则min取值c,否则保持不变。
最后输出max和min的值。
使用if…else…语句、if语句以及复合语句。
#include"stdio.h"
intmain()
{
inta,b,c,max,min;
printf("请输入三个整数a,b,c:
\n");
scanf("%d%d%d",&a,&b,&c);
printf("三个整数为:
\n");
printf("a=%db=%dc=%d\n",a,b,c);
if(a>b)
{
max=a;
min=b;
}
else
{
max=b;
min=a;
}
if(c>max)max=c;
if(cprintf("max=%dmin=%d\n",max,min);
}
使用条件算符:
x=(a>b?
a:
b);max=(c>x?
c:
x);
x=(a
a:
b);min=(cc:
x);
4.某产品生产成本c=c1+mc2,其中c1为固定成本,c2为单位产品可变成本。
当生产数量m<10000时,c1=20000元,c2=10元;当生产数量m≥10000时,c1=40000元,c2=5元;编写一个程序,其功能为:
分别计算出生产数量为6000以及25000时,总生产成本及单位生产成本。
#include"stdio.h"
voidmain()
{
intm,c1,c2,c;
printf("请输入生产数量:
\n");
scanf("%d",&m);
if(m<10000)
{
c1=20000;
c2=10;
}
else
{
c1=40000;
c2=5;
}
c=c1+m*c2;
printf("生产数量=%d\n",m);
printf("总成本=%d\n",c);
printf("单位生产成本=%d\n",m*c2);
}
5.分段函数的计算。
编写一个程序,计算下列函数:
y=
x
x<1
2x-1
1≤x<10
3x-11
x≥10
[提示]根据输入的x值的取值,计算y的值并输出。
使用if…elseif语句以及复合语句。
#include"stdio.h"
voidmain()
{
floatx,y;
printf("请输入x:
\n");
scanf("%f",&x);
printf("输入x=:
%f\n",x);
if(x<1)
{
y=x;
printf("y=%f\n",y);
}
elseif(x>=1&&x<10)
{
y=2*x-1;
printf("y=%f\n",y);
}
else
{
y=3*x-11;
printf("y=%f\n",y);
}
}
6.编写程序,输入三角形三边a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。
[提示]利用三角形两边之和大于第三边判断是否能够构成三角形,能够成三角形时再以等腰、等边、直角三角形的条件进行判断。
#include"stdio.h"
voidmain()
{
floata,b,c;
printf("请输入a,b,c:
\n");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)
{
if(a==b&&b==c&&c==a)
printf("a=%fb=%fc=%f构成等边三角形!
\n",a,b,c);
else
if(a==b||b==c||c==a)
printf("a=%fb=%fc=%f构成等腰三角形!
\n",a,b,c);
elseif(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b)
printf("a=%fb=%fc=%f构成直角三角形!
\n",a,b,c);
else
printf("a=%fb=%fc=%f构成一般三角形!
\n",a,b,c);
}
else
printf("a=%fb=%fc=%f不能构成三角形!
\n",a,b,c);
}
7.某个电力公司对其用户的收费规定如下:
用电数量收费标准
0~200x*0.5元
201~400100+(x-200)*0.65元
401~600230+(x-400)*0.8元
601以上390+(x-600)*1.0元
编写程序,对于一个输入的用电数量,计算用户的缴费额。
[提示]用if…elseif语句实现。
注意输入负数时的处理。
#include"stdio.h"
voidmain()
{
doublex,y;
printf("请输入用电数量x:
\n");
scanf("%lf",&x);
if(x<0)
printf("输入数据有误!
");
else
{
if(x>=0&&x<=200)
y=x*0.5;
elseif(x>=201&&x<=400)
y=100+(x-200)*0.65;
elseif(x>=401&&x<=600)
y=230+(x-400)*0.8;
else
y=390+(x-600)*1.0;
printf("x=%lfy=%lf\n",x,y);
}
}
8.编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:
操作数1运算符op操作数2
计算表达式的值,指定的运算符为加(+)、减(-)、乘(*)、除(/)
例如[输入]
Pleaseentertheexpression:
22.12+12.10
[输出]
22.12+12.10=34.22
#include
voidmain()
{floatx,y,z;
charop;
printf(“请输入表达式:
”);
scanf(“%f,%c,%f”,&x,&op,&y);
switch(op)
{
case‘+’:
z=x+y;
case‘-’:
z=x-y;
case‘*’:
z=x*y;
case‘/’:
{if(y!
=0)z=x/y;
elseprintf(“除数为0”);}
}
printf(“%f%c%f=%f\n”,x,op,y,z);
}