上机练习题
1. 输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
long n;
int ww,qw,bw,sw,gw;
printf("Please input:\n");
scanf("%ld",&n);
while(n<=0||n>99999)
{
printf("\nThe number is 2 little or too large.Retry please!\n");
scanf("%ld",&n);
}
if(n>=10000&&n<=99999)
{
ww=n/10000;
qw=n/1000%10;
bw=n/100%10;
sw=n/10%10;
gw=n%10;
printf("The old number is:%ld\n",n);
printf("The new number is:%d%d%d%d%d\n",gw,sw,bw,qw,ww);
}
else if(n>=1000&&n<=9999)
{
qw=n/1000;
bw=n/100%10;
sw=n/10%10;
gw=n%10;
printf("The old number is:%ld\n",n);
printf("The new number is:%d%d%d%d\n",gw,sw,bw,qw);
}
scanf输入整型数组 else if(n>=100&&n<=999)
{
bw=n/100;
sw=n/10%10;
gw=n%10;
printf("The old number is:%ld\n",n);
printf("The new number is:%d%d%d\n",gw,sw,bw);
}
else if(n>=10&&n<=99)
{
sw=n/10;
gw=n%10;
printf("The old number is:%ld\n",n);
printf("The new number is:%d%d\n",gw,sw);
}
else printf("The old number equals the new number:%ld",n);
}
2. 计算1+2+3…+n的值,n是从键盘输入的自然数。
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int n,i;
long sum=0;
printf("1+2+3+....+n\n");
printf("Please input n:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum+=i;
}
printf("sum=%ld",sum);
}
3. 从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。、
/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 20
main()
{
int a[N],i,sum=0,count=0;
printf("Please input numbers :\n");
for(i=0;i<N;i++)
{ scanf("%d",&a[i]);
if(a[i]>0)
{ sum+=a[i];
count++;
}
}
printf("count=%d,sum=%d",count,sum);
}
4. 从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。
/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 5
main()
{ int a[N],b[N],i;
printf("Please input numbers:\n");
for(i=0;i<N;i++)
{ scanf("%d",&a[i]);
b[N-i-1]=a[i];
}
printf("\nThe old numbers are:\n");
for(i=0;i<N;i++)
printf("%-4d",a[i]);
printf("\nThe new numbers are:\n");
for(i=0;i<N;i++)
printf("%-4d",b[i]);
}
5. 要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{ int i,j,k,n;
for(i=1;i<=10;i++)
for(j=1;j<=25;j++)
for(k=1;k<=50;k++)
for(n=1;n<=100;n++)
if(i*50+j*20+k*10+n*5==500) printf("num50=%d,num20=%d,num10=%d,num5=%d\n",i,j,k,n);
}
6. 求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。例
如若n为1000时,函数值应为:s=153.909064。
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "math.h"
main()
{ int n,s,i;
float sum=0;
printf("Please input n:\n");
scanf("%d",&n);
while(n<=0)
{
printf("\nError input.Retry please:\n");
scanf("%d",&n);
}
for(i=1;i<n;i++)
if(i%3==0&&i%7==0)
sum+=i;
printf("The number is:%4.2f",sqrt(sum));
}
7. 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索出车号。
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "math.h"
main()
{
int i,qw,bw,sw,gw;
for(i=1122;i<=9988;i++)
{ if(sqrt(i)!=(int)sqrt(i))
continue;
qw=i/1000;
bw=i/100%10;
sw=i/10%10;
gw=i%10;
if(qw==bw&&sw==gw)
{
printf("\nThe number is:%d\n",i);
break;
}
}
8. 输入1~10之间的一个数字,输出它对应的英文单词。
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int n;
printf("Please input n:\n");
scanf("%d",&n);
while(n<1||n>10)
{
printf("Error input!Retry please:\n");
scanf("%d",&n);
}
switch(n)
{
case 1:printf("One!");break;
case 2:printf("Two!");break;
case 3:printf("Three!");break;
case 4:printf("Four!");break;
case 5:printf("Five!");break;
case 6:printf("Six!");break;
case 7:printf("Seven!");break;
case 8:printf("Eight!");break;
case 9:printf("Nine!");break;
case 10:printf("Ten!");break;
}
}
9. 个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些?
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int i,count=0;
for(i=106;i<596;i=i+10)
{
if(i%3==0&&i%5!=0)
{
printf("%-4d",i);
count++;
}
}
printf("count=%-4d",count);
}
10. 用自然语言描述程序逻辑如下,试写程序。
① 设置环境;
② 定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;
③ i=1;
④ 如果i≤100,则转⑤,否则转⑧;
⑤ 令s=0,求前i个自然数之和,并放于变量s之中;
⑥ sum=sum+s;
⑦ i增加1,转④;
8 输出和sum,结束。
/* Note:Your choice is C IDE */
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论