c语言循环结构上机习题可编辑范本.docx

上传人:b****7 文档编号:25814839 上传时间:2023-06-15 格式:DOCX 页数:10 大小:61.58KB
下载 相关 举报
c语言循环结构上机习题可编辑范本.docx_第1页
第1页 / 共10页
c语言循环结构上机习题可编辑范本.docx_第2页
第2页 / 共10页
c语言循环结构上机习题可编辑范本.docx_第3页
第3页 / 共10页
c语言循环结构上机习题可编辑范本.docx_第4页
第4页 / 共10页
c语言循环结构上机习题可编辑范本.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

c语言循环结构上机习题可编辑范本.docx

《c语言循环结构上机习题可编辑范本.docx》由会员分享,可在线阅读,更多相关《c语言循环结构上机习题可编辑范本.docx(10页珍藏版)》请在冰豆网上搜索。

c语言循环结构上机习题可编辑范本.docx

c语言循环结构上机习题可编辑范本

1、计算n的阶乘(n!

),n的取值在1~10之间。

分别使用while、do…while和for语句实现。

(三个程序)

给循环变量赋初值

循环条件

循环体

循环变量的增值

2、输入一行字符,分别统计输入了多少个字母、数字、空格和其他字符。

3、假设函数f(x)=3x2+2x+1,试利用for循环语句分别求出1<=x<=9的f

(1)~f(9)各函数值。

4、有分数序列2/1,3/2,5/3,8/5,13/8,21/13…求这个数列的前20项和。

(分析提示:

每个分子等于前一个数据分子与分母的和,每个分母等于前一个数据的分子)

5、输出显示1~100之间可以被n整除的所有整数,运行时n由键盘输入。

要求每一行显示5个数,并且统计一共有多少个整数能被n整除。

6、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。

ﻫmain()

{floatx,amax,amin;

scanf(”%f”,&x);ﻫamax=x;

amin=x;

while( ①)ﻫ{if(x〉amax)amax=x; 

if(②)amin=x;ﻫscanf(”%f”,&x);

}ﻫprintf("\namax=%f\namin=%f\n",amax,amin);ﻫ}

7、使用循环语句输出以下图形

8、有一个数学等式:

AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出.

8、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。

分析:

这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组:

100=x*5+y*3+z/3

100=x+y+z

这里x,y,z为正整数,且z是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z的取值范围:

1) x的取值范围为1~20

2)y的取值范围为1~33

3)z的取值范围为3~99,步长为3

对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。

数据要求

问题中的常量:

问题的输入:

问题的输出:

intx,y,z/*公鸡、母鸡、小鸡的只数*/

初始算法

1.初始化为1;

2.计算x循环,找到公鸡的只数;

3.计算y循环,找到母鸡的只数;

4.计算z循环,找到小鸡的只数;

5.结束,程序输出结果后退出。

算法细化

算法的步骤1实际上是分散在程序之中的,由于用的是for循环,很方便的初始条件放到了表达式之中了。

步骤2和3是按照步长1去寻找公鸡和母鸡的个数.

步骤4的细化

 4.1z=1

4.2 是否满足百钱,百鸡

 4.2.1满足,输出最终百钱买到的百鸡的结果

    4.2.2不满足,不做处理

  4.3变量增加,这里注意步长为3

程序代码如下

#include”stdio.h”

main()

{

intx,y,z;

for(x=1;x<=20;x++)

{

 for(y=1;y〈=33;y++)

{

      for(z=3;z〈=99;z+=3)

   {

if((5*x+3*y+z/3==100)&&(x+y+z==100))/*是否满足百钱和百鸡的条件*/  printf("cock=%d,hen=%d,chicken=%d\n",x,y,z);

  }

 }

}

}

分析

程序运行结果如下:

cock=4,hen=8,chicken=78

cock=8,hen=11,chicken=81

cock=12,hen=4,chicken=84

对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母鸡数确定后,小鸡数就定了,即。

请同学们自己分析二重循环和三重循环的运行次数,做为练习自己调试这一方法。

程序修改:

1、统计使用三重循环的循环次数

2、使用二重循环完成,并统计循环次数

#include

h〉

intmain()

inti1,i2,j1,j2,a,b,c,d;

for(i1=11;i1〈=99;i1++)

ﻩﻩfor(j1=i1+1;j1<=99;j1++)

ﻩﻩ{a=i1/10;

b=i1%10;

c=j1/10;

ﻩ d=j1%10;

if(a!

=b&&a!

=c&&a!

=d&&b!

=c&&b!

=d&&c!

=d)

 {i2=b*10+a;

ﻩj2=d*10+c;}

ﻩ if(i1*j1==i2*j2)

ﻩﻩ{ﻩprintf("%d*%d=%d*%d\t",i1,j1,i2,j2);

ﻩ}ﻩﻩ}

ﻩﻩreturn0;

} 

#include〈stdio。

h〉

void main()

{

inta,b,c,d;

ﻩfor(a=1;a<=9;a++)

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

ﻩfor(c=a+1;c〈=9; c++)

ﻩfor(d=1; d〈=9;d++)

d{if((a*10+b)*(c*10+d)==(10*b+a)*(10*d+c))

ﻩﻩif((a!

=b)&&(a!

=c)&&(a!

=d)&&(b!

=c)&&(b!

=d)&&(c!

=d))

ﻩﻩﻩprintf("%d%d*%d%d=%d%d*%d%d\t”,a,b,c,d,b,a,d,c);

ﻩ}ﻩﻩﻩ

}

#include<stdio。

h〉

main()

{

inti, n,j=0;

printf(”请输入一个整数n:

”);

scanf(”%d”,&n);

if(n>=1&&n<=100)

printf("1~100间可以被%d整除的数是:

\n",n);

for(i=n;i〈=100;i+=n)

{printf("%—3d",i);

j++;

if(j%5==0)putchar('\n');

}}

else

printf("输入错误!

");

}

#include<stdio.h〉

intmain()

{intx,y;

for(x=1;x〈=9;x++)

{y=3*x*x+2*x+1;

printf(”f(%d)=%d\n”,x,y);}

}

#include

h>

intmain()

{

intn,m=0,i=0;

printf(”求1到100之间可以被n整除的整数\n");

ﻩprintf("请输入整数n:

”);

scanf(”%d”,&n);

if(n>=1&&n〈=100)

{ﻩwhile(m〈=100-n)

ﻩﻩ{ﻩm+=n;

ﻩﻩi++;

ﻩﻩﻩprintf(”%3d,”,m);

if(i%5==0)putchar('\n’);

}

ﻩprintf(”\n1到100一共有%d个整数可以被%d整除\n",i,n);}

else

printf(”输入错误");

}

#include〈stdio。

h〉

int main()

ﻩintletters=0,space=0,digit=0,others=0;

char c;

ﻩprintf(”请输入一串字符:

");

ﻩfor(;(c=getchar())!

='\n’;)

{if(c>=’a’&&c<=’z’||c〉='A'&&c〈=’Z')

ﻩ letters++;

else if(c==’ ')

ﻩspace++;

 else if(c>='0’&&c〈='9')

ﻩ digit++;

ﻩ   else

ﻩﻩﻩothers++;

ﻩ}

ﻩprintf("你一共输入了%d个字母,%d个空格,%d个数字,%d个其它字符\n”,letters,space,digit,others);

}

使用数组

#include"string。

h"

#include〈stdio.h>

voidmain()

{int k;

static charst[1];

gets(st);

k=strlen(st);

printf("%d",k);

}

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

当前位置:首页 > PPT模板 > 其它模板

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

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