c语言循环结构上机习题.doc

上传人:豆**** 文档编号:29931531 上传时间:2022-08-02 格式:DOC 页数:14 大小:75.50KB
返回 下载 相关 举报
c语言循环结构上机习题.doc_第1页
第1页 / 共14页
c语言循环结构上机习题.doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《c语言循环结构上机习题.doc》由会员分享,可在线阅读,更多相关《c语言循环结构上机习题.doc(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1、计算n的阶乘(n!),n的取值在110之间。分别使用while、dowhile和for语句实现。(三个程序)给循环变量赋初值循环条件循环体循环变量的增值2、输入一行字符,分别统计输入了多少个字母、数字、空格和其他字符。3、假设函数f(x)=3x2+2x+1,试利用for循环语句分别求出1=xamax) amax=x; if( ) amin=x;scanf(%f,&x);printf(namax=%fnamin=%fn,amax,amin);7、使用循环语句输出以下图形 8、有一个数学等式:AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。8、一百

2、个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)。分析:这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为三元一次方程组: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 /*公鸡、母

3、鸡、小鸡的只数*/初始算法1初始化为1;2计算x循环,找到公鸡的只数;3计算y循环,找到母鸡的只数;4计算z循环,找到小鸡的只数;5结束,程序输出结果后退出。算法细化算法的步骤1实际上是分散在程序之中的,由于用的是for循环,很方便的初始条件放到了表达式之中了。步骤2和3是按照步长1去寻找公鸡和母鸡的个数。步骤4的细化 41 z1 42 是否满足百钱,百鸡 421 满足,输出最终百钱买到的百鸡的结果 422 不满足,不做处理 43 变量增加,这里注意步长为3程序代码如下#include stdio.hmain()int x,y,z;for(x=1;x=20;x+) for(y=1;y=33;y

4、+) 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=%dn,x,y,z); 分析程序运行结果如下:cock=4,hen=8,chicken=78cock=8,hen=11,chicken=81cock=12,hen=4,chicken=84对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母鸡数确定后,小鸡数就定了,即。请同学们自己分析二重循环和三重循环的运行次数,做为练习自己调试这一方法。程序修改:1、 统计使用三重循环的循环次数2、

5、 使用二重循环完成,并统计循环次数#include 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,j2); return 0; #include void main()int a,b,c,d;for(a=1; a=9;

6、a+)for(b=1; b=9; b+)for(c=a+1; c=9; c+)for(d=1; d=9; d+)dif(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%dt,a,b,c,d,b,a,d,c);#includemain()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

7、) printf(%-3d,i); j+; if(j%5=0)putchar(n);elseprintf(输入错误!);#includeint main()int x,y;for(x=1;x=9;x+)y=3*x*x+2*x+1;printf(f(%d)=%dn,x,y);#includeint main()int n,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);print

8、f(n1到100一共有%d个整数可以被%d整除n,i,n);elseprintf(输入错误);#includeint main()int letters=0,space=0,digit=0,others=0;char c;printf(请输入一串字符:);for(;(c=getchar()!=n;)if(c=a&c=A&c=0&c=9) digit+; else others+;printf(你一共输入了%d个字母,%d个空格,%d个数字,%d个其它字符n,letters,space,digit,others);使用数组#includestring.h#includevoid main()in

9、t k;static char st1;gets(st);k=strlen(st); printf(%d,k);14),% ) ( ) ( 数) , ,个%数,格,个了共 + + &= + = + &= |& ;)( =;()符输( 0 ,= , = ( )输( ; , 以整个一 ) 0= ), + = ( 00& )& ( )整输( ) 整整以之 求( 0=0 ( . ;), ) * + ; ( )!错( ) 0=(+) ;= =)数整%间 (00)&, ): 一请 0= ( ), , %= % ) !)!()=(=!)= =( )+0* 0=)0( + ;( + ; + ( + , ( 0

10、 ) % * ;+ = + = =&!& &= !( 0 00 0%=0/ + ; += + =;= , ( . 次循计完循次环环用改法一这自为次运环和二分们同了就小确母公,重是,循不际问 = ,= = = =下结分 ) , ,= , /的和百是)0= (&0 + ( +;= = +; + = ( 如码代为长意,变处做满 结鸡到百终足 百,满否 细细 数数和公 照是了之表了件的很 是的,序程是实细出退结输束数的鸡环 数只母找 数数公,算 为算*的鸡公/ 出出:入:常要解的得,能可 ,,的穷以问为步 范的 范的 围的围范取 ,0数钱于数倍且数 + /+*=组组一化, 鸡鸡、中百设数典析)少小母公

11、鸡问 鸡小一母只鸡,百了铜百出出式乘求上出,数代个的 =*:学一 图下句语使 % ( ;& ;= ; ) ( ;, 使句图学 个,出出百,只鸡鸡公析典百鸡,组* 倍钱0 的 的范步问, 得要:出/的算为公 只鸡数结实程的的了是照数细否 终到结,代 ;+ =; 0 0百 , , 问,公确同二和自法改环计 , ;+= +/0 ! &= += % ) ( + + ; (+ 0=* !=) %= , 请: )0数) ; )( ) ; ( 0求 整)() (= , 0 )一 输) =, ; ; = + = + + 共,数, ) )% ( ; ; , ) 输时负,绩绩最输,成的若入从功序增的环条初初序个三句 和 、 使。0 值的!阶 阶的0使 序条增从若输绩)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com