h〉
intmain()
{
inta;
scanf("%d",&a);
switch(a)
{
case1:
printf(”monday");break;
case2:
printf("tuseday”);break;
case3:
printf("wednesday”);break;
case4:
printf("tuesday”);break;
case5:
printf(”friday”);break;
case6:
printf("saturday”);break;
case7:
printf(”sunday”);break;
}
return0;
}
4.从键盘输入一百分制成绩(实数),将其转换为成绩等级并输出:
大于等于90分为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’.
测试数据:
输入63
输出D
#include〈stdio。
h>
intmain()
{
doublea;
intb=0;
scanf("%lf”,&a);
b=a/10;
switch(b)
{
case9:
printf("A");break;
case8:
printf("B”);break;
case7:
printf(”C”);break;
case6:
printf("D");break;
case5:
case4:
case3:
case2:
case1:
case0:
printf("E");break;
}
return0;
}
5.从键盘输入一个3位正整数,判断并输出该数是否是“水仙花数",若是则输出“yes",否则输出“no"(“水仙花数"是指一个3为数,其各位数字的立方和等于该数本身。
例如153=13+53+33)
测试数据:
(1)输入407输出yes
(1)输入150输出no
#include〈stdio。
h〉
intmain()
{
inti,a=0,b=0,c=0;
printf(”输入一个正三位数");
scanf(”%d",&i);
a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
printf("yes\n”);
else
printf("no\n”);
return0;
}
7、某商场举行促销活动,根据顾客购买商品的总金额v给予相应的折扣,金额越大,折扣越高,具体如下:
v<200元没有折扣
200≤v<400元5%折扣
400≤v<800元10%折扣
800≤v〈1600元15%折扣
1600≤v元20%折扣
编程实现输入顾客购买商品的总金额,输出顾客实际需要支付的金额积极优惠的金额。
测试数据:
输入3000
输出应付金额2400.000000元优惠600。
000000元
#include
intmain()
{
floatv;
printf("请输入价格:
");
scanf("%f”,&v);
if(v〈200)
printf("应付金额%.2f元优惠%.2f元”,v,v*0);
elseif(v>=200&&v〈400)
printf(”应付金额%。
2f元优惠%.2f元”,v—v*0.05,v*0。
05);
elseif(v〉=400&&v<800)
printf(”应付金额%.2f元优惠%。
2f元”,v—v*0.1,v*0.1);
elseif(v>=800&&v<1600)
printf(”应付金额%.2f元优惠%.2f元",v—v*0.15,v*0。
15);
else
printf("应付金额%。
2f元优惠%。
2f元”,v—v*0.2,v*0。
2);
printf(”\n”);
return0;
}
6.
7.三角形判断.从键盘输入3个正整数作为三角形3条边的边长值,判断这3条边能否构成三角形,如果能构成三角形,再判断是等边三角形、等腰三角形还是一般三角形,输出器相应的结果(“不能构成三角形”,“一般三角形”,“等腰三角形”,“等边三角形")注:
等腰三角形不包括三条边都相等的特例
测试数据:
(1)输入321输出“不能构成三角形"
(2)输入356输出“一般三角形”
(3)输入353输出“等腰三角形"
(2)输入333输出“等边三角形”
#include〈stdio.h〉
intmain()
{
inta,b,c;
printf("任意输入三个数\n”);
scanf(”%d,%d,%d”,&a,&b,&c);
if(a+b<=c||a-b〉=c)
printf(”不能构成三角形");
else
{
if(a==b&&b==c)
printf("是等边三角形\n”);
elseif(a==b||a==c||b==c)
printf("是等腰三角形\n”);
else
printf(”是一般三角形\n”);
}
return0;
}
8.从键盘输入表示月份的一个正整数,输入其对应的季度.用switch语句编程。
测试数据:
(1)输入3输出“第一季度"
(2)输入15输出“月份输入错误"
#includeintmain()
{
inta;
printf(”输入一个正整数");
scanf("%d",&a);
switch(a)
{
case1:
case2:
case3:
printf(”第一季度\n");break;
case4:
case5:
case6:
printf("第二季度\n");break;
case7:
case8:
case9:
printf(”第三季度\n”);break;
case10:
case11:
case12:
printf(”第四季度\n");break;
default:
printf("月份错误\n”);
}
return0;
}
9.从键盘x的值,根据下面的函数计算并输出y的值.
y=
测试数据:
(1)输入0输出20
(2)输入15.3输出45.300000
(3)输入—10.5输出-0.500000
一、
二、循环结构
1.编程计算并输出n的阶乘(n为从键盘输入的任意一个小于20的正整数)
测试数据:
输入3
输出6
#includeintmain()
{
intn,i,s=1;
printf(”请输入要求阶乘的数:
\nn=”);
scanf(”%d”,&n);
for(i=1;i<=n;i++)
s=s*i;
printf("n的阶乘=%d\n",s);
return0;
}
2.编程计算输出1到100之间的奇数之和。
输出结果2500
#includeh>
intmain()
{
inti,s=0;
for(i=1;i<=100;i++)
if(i%2!
=0)
s=s+i;
printf(”奇数和=%d\n”,s);
return0;
}
3.编写求
的程序。
输出结果2046
#include〈iostream。
h〉
intmain()
{
inti,j=1,s=0;
for(i=1;i〈=10;i++)
{
j=j*2;
s=s+j;
}
cout〈
return0;
}
4.求
(即求1!
+2!
+3!
+.。
.+20!
)。
输出结果268040729
#include〈iostream。
h>
intjiecheng(intn)
{
inti,s=1;
for(i=1;i〈=n;i++)
s=s*i;
returns;
}
intmain()
{
inti,s=0;
for(i=1;i〈=20;i++)
s=s+jiecheng(i);
cout<〈”输出结果为:
"<〈s<〈endl;
return0;
}
5.编程计算并输出1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的和,n为从键盘输入的一个正整数。
测试数据:
输入3
输出6
#include〈iostream.h〉
intmain()
{
inti,j=0,n;
ints=0;
cout<<"请输入n的值:
"<〈’\n’;
cin>>n;
for(i=1;i〈=n;i++)
{
j=j+i;
s=s+j;
}
cout<〈"结果为:
”〈
return0;
}
6.有一分数序列
编程计算并输出这个数列的前20项之和。
(要求结果保留两位小数)
输出结果32。
66
#includeusingnamespacestd;
intmain()
{
inti;
floata=1,b=2,p1=2,p2;
floats=0;
for(i=1;i〈=20;i++)
{
s+=(p1/a);
p2=p1;
p1=p1+a;
a=p2;
}
printf("%。
2f",s);
return0;
7.编程输出1-100之间所有素数
}#include〈iostream。
h〉
#includeh〉
intprime(intn)
{
inti;
for(i=2;iif(n%i==0)
return0;
return1;
}
intmain()
{
inti;
for(i=2;i〈=100;i++)
if(prime(i))
cout<
cout<return0;
}
8.输入两个正整数m和n,求其最大公约数和最小公倍数。
测试数据:
输入m=12,n=24
输出最大公约数12最小公倍数24
#include〈stdio。
h>
intmain()
{
intGys(intx,inty);
intGbs(intx,inty);
intm,n;
printf(”计算两个数的最大公约数和最小公倍数:
\n");
printf(”m=");
scanf(”%d",&m);
printf("n=");
scanf(”%d”,&n);
printf("\n最大公约数:
%d\n最小公倍数:
%d\n”,Gys(m,n),Gbs(m,n));
return0;
}
intGys(intx,inty)
{
intr,t;
if(x〈y)
{
t=x;x=y;y=t;
}
while(y!
=0)
{
r=x%y;
x=y;
y=r;
}
returnx;
}
intGbs(intx,inty)
{
intm;
m=x〉y?
x:
y;
do
{
if(m%x==0&&m%y==0)
break;
m++;
}
while
(1);
returnm;
}
9.编程输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身.例如153是一个水仙花数,因为153=
输出结果:
水仙花数有:
153370371407
#include〈stdio.h〉
intmain()
{
intn,i,j,k,a;
a=1;
for(n=100;n<=999;n++)
{
i=n/100;
j=n%10;
k=n%100/10;
if(n==i*i*i+j*j*j+k*k*k)
{printf("第%d个水仙花数是:
%d\n",a,n);a++;}
}
return0;
}
10.3025这个数具有一种独特的性质:
将它平分为两段,即30和25,使之相加后求平方,即(30+25),恰好等于3025本身。
请求出具有这样性质的全部四位数.
输出结果:
202530259801
#include〈iostream。
h〉
#include〈iomanip。
h>
intmain()
{
inti,x,y;
for(i=1000;i<=9999;i++)
{
x=i%100;
y=i/100;
if((x+y)*(x+y)==i)
cout<
}
cout<〈endl;
return0;
}
11.两位数13和62具有很有趣的性质:
把它们个位数字和十位数字对调,其乘积不变,即13*62=31*26。
编程序求共有多少对这种性质的两位数(个位与十位相同的不在此列,如11、22,重复出现的不在此列,如13*62与62*13)。
输出结果:
共有64对
#include〈iostream。
h>
#include
#includeh>
intmain()
{
inti,j,x,y,n=0,p=10;
for(i=10;i<=99;i++)
{
for(j=p++;j〈=99;j++)
{
x=(i%10)*10+i/10;
y=(j%10)*10+j/10;
if(x!
=i&&y!
=j)
if((x*y)==(i*j))
n++;
}
}
printf("一共有%d对这样的数",n);
cout<〈endl;
return0;
}
12.一个数如果恰好等于它的因子之和,这个数就称为“完数"。
例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数"。
编程序找出1000之内的所有完数.
输出结果628496
#include〈iostream。
h>
#include〈iomanip.h〉
intmain()
{
inti,j,m=0;
for(i=1;i<=1000;i++)
{
for(j=1;j〈i;j++)
if(i%j==0)
m=m+j;
if(m==i