循环结构程序设计编程题(答案).docx
第五章循环构造程序设计1 .用for循环语句编程输出120之间的所有整数,两数之间以空格分隔。#include<stdio.h>voidmain()(inti;fbr(i=l;i<=20;i+)printf(',%d",i);printf(',n,');)2 .用for循环语句编程输出20-1之间的所有整数,两数之间以空格分隔。#include<stdio.h>voidmain()(inti;for(i=20;i>=l;i-)printf(',%d",i);printf(',n,');)3 .用for循环语句编程输出AZ之间的所有字符,两字母之间以空格分隔,要求一行输出8个字符。#include<stdio.h>voidmain()charc;for(c='A'CV='A'+25;c+)putchar(c);4 .输出100200之间所有能被3和7整除的数(每行输出4个数)。#include<stdio.h>voidmain()(inti,j=0;for(i=100;i<=200;i+)(if(i%21=0)j÷+;PrintfC%12d”,i);if(j%4=0)printf(n);5 .输出1至1000之间所有满足用3除余2、用5除余3、用7除余2的数(要求每行只输出5个数)。#include<stdio.h>voidmain()inti,j=O;for(i=l;i<=1000;i+)if(i%3=2)&&(i%5=3)&&(i%7=2)j÷÷printf(',%12d,i);if(j%5=O)printf("nn);6 .先读入一个正整数n,然后计算并显示前n个偶数的和。例如n为5,那么求2÷4+6+8+10的值,即sum=30o#include<stdio.h>voidmain()(inti,n,sum=0;printf(Pleaseenteranintegern:");scanf(',%d,n);for(i=l;i<=n;i+)sum+=(2*i);printf("sum=%dnn,sum);7 .计算S=l+l2+l3+l4+l200的值并输出。#include<stdio.h>voidmain()(inti;floatS=0.0;for(i=1;i<=200;i+)S=S+l.Oi;printf(S=%fn,S);)8 .计算l-3+5-7+-99+101的值。#include<stdio.h>voidmain()(inti,sum=0;for(i=0;i<=50;i+)(if(i%2=0)sum+=2*i+l;elseSUm-=2*i+l;printf("sum=%dnn,sum);9 .输入6个整数并显示其平均值。#include<stdio.h>voidmain()(intnum,sum=0,i;floatavg;printf(Pleaseenter6integers:");for(i=l;i<=6;i+)(scanf(',%d,num);sum+=num;)avg=sum6.0;printf(avg=%fn,avg);)10 .输出Fibonacci数列的前几项,直到该项的值大于10000为止(每行输出5项)。FibOnaCCi数列为1,123,5,8,13,21,34,。即第一项和第二项为1,其他项为前两项之和。#include<stdio.h>voidmain()intfl=1,f2=1,f3=2,i=3;printf(%dt%dt%dtn,f1,f2,f3);while(f3<=10000)fl=f2;f2=f3;f3=fl+f2;printf(1,%dt,f3);i+;if(i%5=0)printf(n);)IL输出100oo至99999中所有的回文数(回文数是指从左到右读与从右到左读都一样的正整数,如11,22,3443,94349等)。#include<stdio.h>voidmain()(longi;intge,shi,qian,wan,k=O;for(i=10000;i<=99999;i+)(ge=i%10;wan=i10000;shi=i10%10;qian=i1000%10;if(ge=wan&&shi=qian)k+;printf(%12d,i);if(k%5=0)printf(nn);12 .找出所有“水仙花数。所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为153=13+53+33.#include<stdio.h>voidmain()(inti,ge,shi,bai;for(i=100;i<=999;i+)(ge=i%10;shi=i10%10;bai=i100;if(i=(ge*ge*ge+shi*shi*shi+bai*bai*bai)printf(',%dtn,i);13 .输出10100之间所有各位数之积大于各位数之和的数,例如23,因为2*3>2+3°include<stdio.h>voidmain()(inti,ge,shi;for(i=10;i<=99;i+)(ge=i%10;shi=i10;if(ge*shi)>(ge+shi)printf(1,%dtn,i);)14 .输入一个整数,计算该整数的位数及各位之和。#include<stdio.h>voidmain()(intnum=0,sum=0,i;printf(Pleaseenteraninteger:,);SCanf("d”,&i);if(i<0)i=-i;dosum+=i%10;num+;i=i10;while(i);printf(sum=%d,num=%dn,sum,num);