循环上机题习题.docx

上传人:b****7 文档编号:8867156 上传时间:2023-02-02 格式:DOCX 页数:16 大小:371.88KB
下载 相关 举报
循环上机题习题.docx_第1页
第1页 / 共16页
循环上机题习题.docx_第2页
第2页 / 共16页
循环上机题习题.docx_第3页
第3页 / 共16页
循环上机题习题.docx_第4页
第4页 / 共16页
循环上机题习题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

循环上机题习题.docx

《循环上机题习题.docx》由会员分享,可在线阅读,更多相关《循环上机题习题.docx(16页珍藏版)》请在冰豆网上搜索。

循环上机题习题.docx

循环上机题习题

循环上机题

题目1:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

程序分析:

利用while语句,条件为输入的字符不为'\n'。

#include

main()

{

chara;

intb=0,c=0,d=0,e=0;

printf("输入一行字符:

\n");

do

{

scanf("%c",&a);

printf("%c",a);

if(a>='A'&&a<='Z'||a>='a'&&a<='z')

b++;

elseif(a=='')

c++;

else

if(a>='0'&&a<='9')

d++;

else

if(a!

='\n')

e++;

}

while(a!

='\n');

printf("字母数:

%d\n空格数:

%d\n数字数:

%d\n其他数:

%d",b,c,d,e);

}

题目2:

一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如6=1+2+3.编程找出1000以内的所有完数。

#include

main()

{

inta,b,c;

for(a=1;a<=1000;a++)

{

for(c=0,b=1;b

{

if(a%b==0)

c=c+b;

}

if(c==a)

printf("%d是完数\n",a);

}

}

题目3:

猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

程序分析:

采取逆向思维的方法,从后往前推断。

#include

main()

{

inta,b=1,c=0;

for(a=1;a<10;a++)

{

b=(1+b)*2;

c=c+b;

}

printf("%d\n",b);

}

题目4:

打印出如下图案(三角和菱形)

*****************

***************

*************

***********

*********

*******

*****

***

*

*

*******

*************

*****************

*************

*******

*

*

***

******

********

******

***

*

(1)

#include

main()

{

inti,j,k,p,t,n;

printf("shuruyigeshuzi\n");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

for(j=2*i-1;j>0;j--)

{

printf("*");

}

printf("\n");

}

for(i=n-2;i>=0;i--)

{

for(j=2*i;j>=0;j--)

{

printf("*");

}

printf("\n");

}

}

(2)

#include

main()

{

inta=4,b,c,d,e;

for(b=a;b>0;b--)

{

for(c=2*b-2;c>0;c--)

printf("");

d=a-b;

for(e=4*d+1;e>0;e--)

printf("*");

printf("\n");

}

for(b=1;b<=a;b++)

{

for(c=2*b;c>0;c--)

printf("");

d=a-b-1;

for(e=4*d+1;e>0;e--)

printf("*");

printf("\n");

}

getch();

}

(3)

#include

main()

{

inta,b,c,d;

printf("输入一个数:

\n");

scanf("%d",&a);

for(b=a;b>0;b--)

{

for(c=a;c>b;c--)

printf("");

for(d=2*b-1;d>0;d--)

{

printf("*");

}

printf("\n");

}

}

题目5:

打印出如下图案。

A

ABC

ABCDE

ABCDEFG

ABCDEFGHI

ABCDEFGHIJK

A

AB

ABC

ABCD

ABCDE

ABCDEF

ABCDEFG

#include

main()

{

chara;

inti=7,j,q;

//printf("输入一个数:

\n");

//scanf("%d",&i);

for(j=1;j<=i;j++)

{

for(a='A',q=0;q

{

printf("%c",a);

a=a+1;

}

printf("\n");

}

}

#include

main()

{

chara;

inti=6,j,q,b,c;

//printf("输入一个数:

\n");

//scanf("%d",&i);

for(q=1;q<=i;q++)

{

for(b=q;b<=i;b++)

printf("");

for(a='A',c=1;c<=2*q-1;c++)

{

printf("%c",a);

a=a+1;

}

printf("\n");

}

}

题目6:

一个5位数,判断它是不是回文数。

即12321是回文数,个位与万位相同,十位与千位相同。

#include

main()

{

inta,x,y,p,q;

printf("输入一个五位数:

\n");

scanf("%d",&a);

for(;a<10000||a>99999;)

{

printf("输入错误再次输入:

\n");

scanf("%d",&a);

}

x=a%10;

y=a/10000;

q=(a/10)%10;

p=(a/1000)%10;

if(x==y&&q==p)

printf("%d是回文数\n",a);

}

题目7:

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

都是多少?

程序分析:

可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

#include

main()

{

inta,b,c,i=0;

for(a=1;a<=4;a++)

for(b=1;b<=4;b++)

for(c=1;c<=4;c++)

if(a!

=b&&a!

=c&&b!

=c)

{

printf("%d%d%d",a,b,c);

i++;

if(i%6==0)

printf("\n");

}

}

题目8:

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

程序分析:

关键是计算出每一项的值。

#include

main()

{

longinta,i,j,sum=0,c,b;

printf("输入两个数字:

\n");

scanf("%ld%ld",&j,&a);

for(c=a,i=1;i

{

c=c*10+a;

sum=sum+c;

printf("%d",c);

if(i

printf("+");

}

printf("=%ld\n",sum+a);

}

题目9:

对10个数进行排序

程序分析:

可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

#include

main()

{

inta[10],max,i,x;

printf("输入十个数:

\n");

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);

}

for(x=9;x>=1;x--)

{

for(i=0;i

{

if(a[i]>a[i+1])

{

max=a[i];

a[i]=a[i+1];

a[i+1]=max;

}

}

}

for(i=0;i<10;i++)

{

printf("%d",a[i]);

}

}

#include

main()

{

inta[10],min,i,b,x,j;

printf("shuruyigesh:

\n");

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);

}

for(x=0;x<=9;x++)

{

min=a[x];

for(b=x+1,j=x;b<=9;b++)

{

if(min>a[b])

{

min=a[b];

j=b;

}

}

//printf("%d",min);

a[j]=a[x];

a[x]=min;

}

for(i=0;i<10;i++)

{

printf("%d",a[i]);

}

}

#include

#defineN10

main()

{

inta[N],max,i,x,flag=0;

printf("输入十个数:

\n");

for(i=0;i

{

scanf("%d",&a[i]);

}

for(x=1;x

{

flag=0;

for(i=x+1;i<=N;i++)

if(a[i]>a[i+1])

{

flag=1;

max=a[i];

a[i]=a[i+1];

a[i+1]=max;

}

if(flag==0)break;

}

for(i=0;i<10;i++)

{

printf("%d",a[i]);

}

getch();

}

#include

main()

{

inta[10],temp,i,b,x,j;

printf("shuruyigesh:

\n");

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);

}

for(x=0;x<9;x++)

{

j=x;

for(b=x+1;b<=9;b++)

{

if(a[j]>a[b])

j=b;

}

if(j!

=x)

{

temp=a[x];

a[x]=a[j];

a[j]=temp;

}

}

for(i=0;i<10;i++)

{

printf("%d",a[i]);

}

getch();

}

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

当前位置:首页 > 高等教育 > 农学

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

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