您好,欢迎访问三七文档
第6章循环控制1.退出循环语句的语句是(3)。①return②exit(0)③break④enddo2.退出C程序的语句是(2)。①return②exit(0)③break④enddo3.已知inti=10;则执行while(i--5);后,i的值为_4_.4.#includestdio.hvoidmain(){ints=0,i;scanf(%d,&i);dos=s+i++;while(i=100);printf(i=%d,s=%d,i,s);}运行后输入:1____则输出结果:_i=101,s=5050______5.#includestdio.hvoidmain(){ints=0,i;scanf(%d,&i);dos=s+i++;while(i=100);printf(i=%d,s=%d,i,s);}运行后输入:200__则输出结果:___i=201,s=2006.#includestdio.hvoidmain(){inti;for(i=0;i5;i++)putchar(getchar()-32);}输入:abcdefghijklmnopqrstuvwxyz←┘运行结果输出:______ABCDE_____________7.#includestdio.hvoidmain(){inti;for(i=1;i20;i++){if(i%17==0)break;if(i%3)continue;printf(%d,i);}}运行结果输出:3691215_8.#includestdio.hvoidmain(){inti=1;for(;i100;i++){if(i%21==0)break;if(i%5)continue;printf(%d,,i);}}运行结果输出:5,10,15,20,9.使用goto语句实现s=1+2+……+n,其中n为大于0的整数。运行后输入:100,则结果输出:i=101,s=5050参考答案:#includestdio.hvoidmain(){inti=1,n,/*【*/s=0/*】*/;scanf(%d,&n);loop:if(/*【*/i=n/*】*/){/*【*/s=s+i++/*】*/;/*【*/gotoloop/*】*/;}printf(/*【*/i=%d,s=%d/*】*/,i,s);}10.使用while语句实现s=1+2+……+n,其中n为大于0的整数。运行后输入:100,则结果输出:i=101,s=5050参考答案:#includestdio.hvoidmain(){intn,s=/*【*/0/*】*/,i=/*【*/1/*】*/;scanf(%d,&n);while(/*【*/i=n/*】*/)/*【*/s=s+i++/*】*/;printf(/*【*/i=%d,s=%d/*】*/,i,s);}11.求s=1/1+1/2+1/3+…+1/n运行后输入:100,则结果输出:i=101,s=5.18738参考答案:#includestdio.hvoidmain(){intn,i=/*【*/1/*】*/;/*【*/float/*】*/s=/*【*/0/*】*/;scanf(%d,&n);while(/*【*/i=n/*】*/)/*【*/s=s+1.0/i++/*】*/;printf(i=%d,s=%g,i,s);}12.输入两个正整数a和b,求其最大公约数。运行后输入:1812,则输出结果:6参考答案:#includestdio.hvoidmain(){intr,a,b;scanf(%d%d,&a,&b);do{/*【*/r=a%b/*】*/;/*【*/a=b/*】*/;/*【*/b=r/*】*/;}/*【*/while(r)/*】*/;printf(%d,/*【*/a/*】*/);}13.输入两个正整数a和b,求其最小公倍数。运行后输入:1812,则输出结果:36参考答案:#includestdio.hvoidmain(){intr,a,b,x,y;scanf(%d%d,&a,&b);x=a;y=b;do{/*【*/r=a%b/*】*/;/*【*/a=b/*】*/;/*【*/b=r/*】*/;}/*【*/while(r)/*】*/;printf(%d,/*【*/x*y/a/*】*/);}14.求π/4=1-1/3+1/5-1/7+1/9-1/11+.....直到最后一项绝对值小于1e-4为止.运行后输入:(任意),则输出结果:和为0.785349参考答案:#includestdio.hvoidmain(){inti=1;/*【*/floats=0/*】*/;for(;/*【*/2*i-110000/*】*/;i++)if(/*【*/i%2/*】*/)s=s/*【*/+1.0/(2*i-1)/*】*/;elses=s/*【*/-1.0/(2*i-1)/*】*/;printf(和为%f,s);}15.求s=1+2+3+4+5+......n,其中n为大于0的整数。运行后输入:100,则输出结果:s=1+2+......100=5050参考答案:#includestdio.hvoidmain(){inti,s,n;scanf(%d,&n);for(/*【*/i=1,s=0/*】*/;/*【*/i=n/*】*/;/*【*/i++/*】*/)s=/*【*/s+i/*】*/;printf(s=1+2+......%d=%d,/*【*/n,s/*】*/);}16.求n以内(含n)的所有奇数和(n为大于0的整数)。运行后输入:100,则输出结果:100以内奇数和为2500参考答案:#includestdio.hvoidmain(){inti,s,n;scanf(%d,&n);for(/*【*/i=1,s=0/*】*/;/*【*/i=n/*】*/;/*【*/i+=2/*】*/)s=/*【*/s+i/*】*/;printf(%d以内奇数和为%d,/*【*/n,s/*】*/);}17.求n以内的所有偶数和(n为大于0的整数)。运行后输入:100,则输出结果:100以内偶数和为2550参考答案:#includestdio.hvoidmain(){inti,s,n;scanf(%d,&n);for(/*【*/i=2,s=0/*】*/;/*【*/i=n/*】*/;/*【*/i+=2/*】*/)s=/*【*/s+i/*】*/;printf(%d以内偶数和为%d,/*【*/n,s/*】*/);}18.求s=1-1/2+1/3-1/4+.......+(-1)n/n运行后输入:100,则输出结果:和为0.688172参考答案:#includestdio.hvoidmain(){inti,n;/*【*/floats/*】*/;scanf(%d,&n);for(i=1,s=0;/*【*/i=n/*】*/;i++)if(/*【*/i%2/*】*/)s=/*【*/s+1.0/i/*】*/;elses=/*【*/s-1.0/i/*】*/;printf(和为%f,s);}19.编程求n!的值并按十进制数输出(要求n值由键盘输入,n=1~7)。运行后输入:5,则输出结果:5!=120参考答案:#includestdio.hvoidmain(){intn,i;/*【*/longs=1/*】*/;scanf(%d,/*【*/&n/*】*/);for(/*【*/i=1/*】*/;/*【*/i=n/*】*/;i++)/*【*/s*=i/*】*/;printf(/*【*/%d!=%Ld/*】*/,n,s);}20.编程判断n是否是素数(要求n值由键盘输入,1n≤2147483647)。运行后输入:5,则输出结果:5是素数运行后输入:6,则输出结果:6不是素数参考答案:#includestdio.h#includemath.hvoidmain(){intn,i,k;scanf(%d,/*【*/&n/*】*/);k=/*【*/sqrt(n)/*】*/;for(i=2;/*【*/i=k/*】*/;i++)if(/*【*/n%i==0/*】*/)/*【*/break/*】*/;if(/*【*/ik/*】*/)printf(%d是素数,n);elseprintf(%d不是素数,n);}21.求s=1!+2!+3!+4!+……+n!(要求n值由键盘输入,1n10)运行后输入:2,则输出结果:1!+…+2!=3运行后输入:9,则输出结果:1!+…+9!=409113参考答案:#includestdio.hvoidmain(){inti=1,n;doubles=0,t=/*【*/1/*】*/;scanf(%d,&n);for(;/*【*/i=n/*】*/;i++){t=/*【*/t*i/*】*/;s=/*【*/s+t/*】*/;}printf(1!+…+%d!=%g,/*【*/n,s/*】*/);}22.显示如下图所示99乘法表(注意每列之间的空格数)。参考答案:#includestdio.hvoidmain(){inta,b;for(a=1;a=9;a++){for(b=1;b=a;b++)printf(%d*%d=%-2d,b,a,a*b);/*形成第a行共a列*/printf(\n);/*换行*/}}23.求Fibonacci数列前n个数(要求n值由键盘输入,1n41)。已知前两个数都为1,之后每个数是其前面两个数之和。运行后输入:8,则输出结果:1123581321运行后输入:40,则输出结果:1123581321345589144233377610987159725844181676510946177112865746368750251213931964183178115142298320401346269217830935245785702887922746514930352241578173908816963245986102334155参考答案:#includestdio.hvoidmain(){longa=1,b=1,n,i=2;scanf(%ld,&n);printf(%10d%10d,a,b);for(;in;i=i+2){a=a+b;b=b+a;if(i%4==0)printf(\n);printf(%10ld%10ld,a,b);}}24.输入一个正整数n(=1~9),则输出由n构成的一位到九位的数。运行后输入:3,则输出结果:333333333333333333333333333333333333333333333运行后输入:8,则输出结果:888888888888888888888888888888888888888888888参考答案:#includestdio.hvoidmain(){longi,n,a=10;scanf(%ld,&n);for(i=1;i10;i++){printf(%ld\n,(a-1)/9*n);a*=10;}}参考答案2:#includestdio.hvoidmain(){inti,j,n;scanf(%d,&n);for(i=1;i10;i++){for(j=1;j=i;j++)printf(%d,n);printf(\n,n);}}25.求打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。如153=13+53+33。运行后输入:(任意),则输出结果:153370371407参考答案:#includestdio.hvoidmain(){inti,a,b,c;for(i=100;i=999;i++){a=/*【*/i%10/*】*/;/*求个位*/b=/*【*/i/10%10/*】*/;/*求十位*/c=/*【*/i/100/*】*/;/*求百位*/if(/*【*/i==a*a*a+b*b*b+c*c*c/*】*/)/*【*/printf(%d,i)/*】*/;}}26.输入n则打印n行由“*”构
本文标题:第6章循环控制
链接地址:https://www.777doc.com/doc-2197423 .html