《C++循环结构23道题(含答案).doc》由会员分享,可在线阅读,更多相关《C++循环结构23道题(含答案).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流C+循环结构 23道题(含答案)【精品文档】第 11 页题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出循环01:最大数写一个程序,可以输入一批正数,输入0时结束循环,并且输出最大的正数。输入39 28 5 63 18 27 0 输出63测试:输入153 26 963 28 75 90 156 0输出963#includeusing namespace std;int main() int i,max=0; cini; while(i!=0) if(imax) max=i; cini; coutmaxendl; return 0;循环02:
2、素数输入正数n,判断n是否为素数。若为素数则输出1,否则输出0。(提示:素数是指只可以被1和其本身整除的正数(1除外)输入10输出0输入7输出1测试:输入9输出0#includeusing namespace std;int main() int n,i,d; cinn; for(i=2;in;i+) d=n%i; if(n%i=0) break; if(n=i) cout1endl; else cout0endl; return 0;循环03:数列求和输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10.+1/(3*n-2)。输入5输出1.56978输入4输出1.49286#inc
3、ludeusing namespace std;int main() int i,n; double s=0; cinn; for(i=1;i=n;i+) s+=1.0/(3*i-2); coutsendl; return 0;循环04:西瓜卖几天n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。输入:西瓜个数,输出:天数输入10输出2输入50输出4测试输入120输出5#includeusing namespace std;int main() int n,d=0; cinn; whil
4、e(n0) d+; n=n/2-2; coutdendl; return 0;循环05:成绩判定输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。输入5 35 68 49 94 88输出FailPassFailPassPass测试输入8 90 80 60 50 40 30 73 88 59输出PassPassPassFailFailFailPassPassFail#includeusing namespace std;int main() int repeat,n,i; cinrepe
5、at; for(i=0;in; if(n60) coutFailendl; else coutPassendl; return 0;循环06:数列求和 输入1 个正整数 n(n=100),计算并输出11/21/31/n 。输入5输出2.28333输入4输出2.08333#includeusing namespace std;int main() int n,i=1; double s=0; cinn; while(i=n) s+=1.0/i; i+; coutsendl; return 0;循环07:水仙花数打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身
6、。例如:153是一个 水仙花数 ,因为153=1的三次方5的三次方3的三次方。输入 无 输出 153 370 371 407 #includeusing namespace std;int main () int n,i,j,k;for(n=100;n1000;n+) i=n/100; j=n/10%10; k=n%10; if(i*i*i+j*j*j+k*k*k=n) coutn ;return 0;循环08:数位之和输入一个正整数,输出其各个位置上的数字之和。输入 1234输出10输入 12534输出15测试输入 4325输出14#includeusing namespace std;in
7、t main() int n,s=0; cinn; while(n) s+=n%10; n=n/10;coutsendl;return 0;循环09:奇数和读入一批正整数(以零为结束标志),求其中的奇数和。输入32 33 50 34 65 67 0 输出165输入13 15 17 30 35 0 输出80测试输入31 33 50 34 65 67 0 输出196#includeusing namespace std;int main() int n,s=0; cinn; while(n0) if(n%2!=0) s=s+n; cinn;coutsendl;return 0;循环10:求和从键盘
8、输入若干正数,对其求和并输出,遇到负数则终止输入。 输入32 33 50 34 65 67 -1 输出281输入13 15 17 30 35 -2 输出110测试输入31 33 50 34 65 67 -5 输出280#includeusing namespace std;int main() int n,a=0; cinn; while(n=0) a=n+a; cinn;coutaendl;return 0;循环11:特殊数值已知四位数3025有一个特殊性质: 它的前两位数字30和后两位数字25的和是 55, 而55的平方刚好等于该数(55*55=3025). 试编一程序打印所有具有这种性质
9、的四位数.输入无 输出2025 3025 9801#includeusing namespace std;int main() int i,a,b; for(i=1000;i=9999;i+) a=i/100; b=i%100; if(a+b)*(a+b)=i) couti ;return 0;循环12:征税税务部门征收所的税,规定如下: 1)收入在1000元以内(含1000),免征; 2)收入在10003000元以内(含3000),纳税额为收入的3%; 3)收入超过30005000元以内(含5000),纳税为收入的4%;4)当收入超过5000元时,纳税为收入的6%。请根据以上关系,输入收入m
10、,输出应缴纳的税收tax。输入:第一个整数n表示后续有n个收入输出:每个收入对应的纳税额输入4 900 2000 4000 6000输出0 60 160 360#includeusing namespace std;int main() double m,tax;int i,n; cinn; for(i=1;im; if(m=1000) tax=0; else if(m=3000) tax=m*0.03; else if(m=5000) tax=m*0.04; else tax=m*0.06; couttax ; return 0;循环13:因数个数给定一个正整数n,求它的因数个数。如6的因数
11、为1、2、3、6,则因数个数为4。输入12 输出6测试输入30 输出8#includeusing namespace std;int main() int n,i,count=0; cinn; for(i=1;i=n;i+) if(n%i=0) count+;coutcountendl;return 0;循环14:最大公约数键盘输入两个正整数m,n,求出他们的最大公约数。输入20 15 输出5测试输入32 80 输出16#includeusing namespace std;int main() int m,n,i; cinmn; for(i=m;i=1;i-) if(m%i=0&n%i=0)
12、 break; couti=2),编写一个程序,输入n(=0),如果F(n)能被3整除则输出一个“yes”,否则输出一个“no”。输入8输出yes输入6输出no测试输入12输出yes#includeusing namespace std;int main() int n,F0=1,F1=1,F,i; cinn; for(i=2;i=n;i+) F=F0+F1; F0=F1; F1=F; if(F%3=0) coutyesendl; else coutnoendl; return 0;循环16:计算奇偶数求N(=100)个数中奇数的平方和与偶数的立方和。注意:输入格式为,第一个数为N,后面接着N
13、个数。输出的平方和与立方和以空格隔开输入3 5 8 9 输出106 512测试输入5 5 8 9 10 输出106 1512#includeusing namespace std;int main() int i,N,n,a=0,b=0; cinN; for(i=1;in; if(n%2=0) a+=n*n*n; else b+=n*n; coutb aendl; return 0;循环17:数位计算对于输入的一个数字,请计算它的各个位上的数字为偶数的和。例如:1234,结果为6=2+4。输入4321输出6输入51289输出10测试输入54893输出12#includeusing namesp
14、ace std;int main () int n,x,s=0; cinn; while(n) x=n%10; if(x%2=0) s+=x; n=n/10; coutsendl;return 0;循环18:数根对于一个正整数n,我们将它的各个位相加得到一个新的数字,如果这个数字是一位数,我们称之为n的数根,否则重复处理直到它成为一个一位数,这个一位数也算是n的数根。例如:考虑24,2+4=6,6就是24的数根。考虑39,3+9=12,1+2=3,3就是39的数根。请编写程序,计算n的数根。输入189输出9测试输入8943输出6#includeusing namespace std;int m
15、ain() int n,s=0,t; cinn; t=n; while(t=10) s=0; while(t) s+=t%10; t=t/10; t=s; coutsendl; return 0;循环19:平均成绩假设有一个班级,n名同学选修了C+语言程序设计,要求统计该门课的平均成绩。输入格式:第一个数为学生人数n,后面接着n个成绩,输出平均成绩。输入:5 80 90 88 96 70 输出84.8#includeusing namespace std;int main() int n,i,a,s=0; cinn; for(i=1;ia; s+=a;coutdouble(s)/nendl;r
16、eturn 0;循环20:幂函数输入一个正整数repeat (0repeat10),做repeat次下列运算:读入1 个正实数x和1个正整数 n(n=50),计算并输出x的n次幂。输入3 2 5 3 4 5 3输出32 81 125#includeusing namespace std;int main() int repeat,i,x,n,j,k; cinrepeat; for(i=1;ixn;k=1; for(j=1;j=n;j+) k=k*x;coutk ;return 0;循环21:计数输入一组整数,以0结束,统计数据个数(不含0)及最大值。输入1 2 3 456 4 3 5 0输出7
17、 456#includeusing namespace std;int main() int a,max=0,i=0; cina; while(a!=0) i+; if(amax) max=a; cina; couti max; return 0;循环22:素数输入一个正整数n,输出2,n之间所有的素数及素数个数。输入10输出2 3 5 7 4#includeusing namespace std;int main() int n,i,j,s; s=0; cinn; for(i=2;i=n;i+) for(j=2;j=i;j+) if(i%j=0) break; if(j=i) s+; couti ; coutendls; return 0;循环23:完数输入一个正整数n,输出1,n之间的所有完数。完数的定义:除自身外的因子之和等于它本身。例如:6=1+2+3,因此6是完数。输入1000输出6 28 496#includeusing namespace std;int main() int n,i,j,s; cinn; for(i=1;i=n;i+) s=0; for(j=1;ji;j+) if(i%j=0) s+=j; if(s=i) couts ; return 0;