c语言循环结构上机习题_第1页
c语言循环结构上机习题_第2页
c语言循环结构上机习题_第3页
c语言循环结构上机习题_第4页
c语言循环结构上机习题_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、计算n的阶乘(n ! ), n的取值在110 之间。分别使用 while、do - while 和for 语句实现。(三个程序)给循环变量赋初值循环条件循环体循环变量的增值2、输入一行字符,分别统计输入了多少个 字母、数字、空格和其他字符。3、假设函数f(x)=3x 2+2x+1 ,试利用for循 环语句分别求出 1<=x<=9的f(1)f(9)各函 数值。*C: DOCU1EFTS AJTO SETTIIGSXADIIMISTRATOK.-.mf<2>=17f<3>=34f<4>=57F<5>=86f<6>=121f

2、<7>=162FC8>=2B9F<9>-362Press anv key to continue4、有分数序列 2/1 , 3/2 , 5/3 , 8/5 , 13/8, 21/13求这个数列的前 20项和。(分析提示:每个分子等于前一个数据分子与分母的和,每个分母等于前一个数据的分 子)5、输出显示1100之间可以被n整除的所 有整数,运行时n由键盘输入。要求每一行 显示5个数,并且统计一共有多少个整数能 被n整除。6、下面程序的功能是从键盘上输入若干学 生的学习成绩,统计并输出最高成绩和最低 成绩,当输入为负数时结束输入。main()( float x,ama

3、x,amin ;scanf("%f",&x);amax=x ;amin=x ;while()( if(x>amax) amax=x ;if()amin=x ;scanf("%f",&x);printf("namax=%fnamin=%fn",amax,a min)7、使用循环语句输出以下图形8、有一个数学等式: AB*CD=BA*DC ,式 中的一个字母代表一位数字, 试找出所有符 合上述要求的乘积式并打印输出。12*6321*4826*9334*8641*2848*6363*4884*12Press21*36

4、12*84 62*39 43*6814*82 84*36 36*84 48*2112*84=21*4823*64=32*4628*41=82*1436*21=63*1242*36=24*6362*13=26*3164*23=46*3284*36=48*6313*62=31*2623*96=32*6931*26=13*6236*42=63*2443*68=34*8662*39=26*9368*43=86*3486*34=68*4386483132 *2*3«6'*4|*2*2*2*6 12334669 44266393 -=- 23642226 *8*6*4|*8*3*1*3*

5、2 44266393 1233466921*36=12*6326*31=62*1332*69=23*9639*62=93*2648*21=84*1263*24=36«4282*14=28*4196*23=69*32anu key to continuer-C: DocuMents and SettingsAdiinistr atorI$Debug 1. exe*X12*3=21*3612*B4=21«4813*62=31*261-82=41 *2H21*36=12*321*48=12*6423*64=32*4623*96=32*6924*63=42*3626*31=62*1

6、326-93=62*3928*41=82*1432*46=23*6432*69=23-9634*86=43*6836*)2=63*2436*84-63*4839*62-93*2643*66=34*8648*63=64*36Press dny ke</ to continueHe *C: DocuAent s and Sett in.gsAdAin.ist rat or桌面Debugl. eze8、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问 一百只鸡中公鸡、母鸡、小鸡各多少) 。分析:这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为 X , y, z,

7、问题化为 三元一次方程组:100=x*5+y*3+z/3100=x+y+z这里x,y,z为正整数,且z是3的倍数;由 于鸡和钱的总数都是 100,可以确定x,y,z 的取值范围:1) x的取值范围为1202) y的取值范围为1333) z的取值范围为399,步长为3对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。数据要求问题中的常量:无问题的输入:无问题的输出:int x , y, z /*公鸡、母鸡、小鸡的只数 */初始算法1 .初始化为1 ;2 .计算x循环,找到公鸡的只数;3 .计算y循环,找到母鸡的只数;4 .计算z循环,找到小鸡的只数;5.结束,程序

8、输出结果后退出。算法细化算法的步骤1实际上是分散在程序之中的, 由于用的是for循环,很方便的初始条件放 到了表达式之中了。步骤2和3是按照步长1去寻找公鸡和母鸡 的个数。步骤4的细化4. 1 z = 14. 2是否满足百钱,百鸡4. 2 . 1满足,输出最终百钱买 到的百鸡的结果4. 2. 2不满足,不做处理4. 3变量增加,这里注意步长为3程序代码如下#include "stdio.h"main()(int x,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+

9、z/3=100)&&(x+y+z=100)/*是否满足百钱和百鸡的条件*/printf("cock=%d,hen=%d,chicken=%dn ”,x,y,z);分析程序运行结果如下:cock=4,hen=8,chicken=78 cock=8,hen=11,chicken=81 cock=12,hen=4,chicken=84对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母鸡数确定后, 小鸡数就定了,即。请同学们自己分析二重 循环和三重循环的运行次数,做为练习自己调试这一方法。程序修改:1、统计使用三重循环的循环次数2、使用二重循环完成,并统计循环次

10、数#include <stdio.h>int main()(int i1,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*%dt",i1,j1,i2,

11、j2);return 0;#include <stdio.h>void main()(int a,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%

12、d*%d%dt" ,a,b,c,d,b,a,d,c);)#include<stdio.h>main()int i, n,j=0;printf("请输入一个整数 n:");scanf("%d",&n);if(n>=1&&n<=100)printf("1100 间可以被%d整除的数是:n",n);for(i=n;i<=100;i+=n) printf("%-3d",i);j+;if(j%5=0)putchar('n');elseprintf

13、("输入错误!”);#include<stdio.h>int main()int x,y;for(x=1;x<=9;x+)y=3*x*x+2*x+1;printf("f(%d)=%dn",x,y);#include<stdio.h>int main()int n,m=0,i=0;printf("求1到100之间可以被n整除的 整数n");printf("请输入整数n :");scanf("%d",&n);if(n>=1&&n<=100)(

14、while(m<=100-n)( m+=n;i+;printf("%3d,",m);if(i%5=0)putchar('n');printf("n1至U 100 一共有%d个整数可以 被%d 整除 n”,i,n); elseprintf("输入错误");#include<stdioh>int main()int letters=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<=&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论