收藏 分销(赏)

C++循环结构--23道题(含答案).docx

上传人:二*** 文档编号:4498925 上传时间:2024-09-25 格式:DOCX 页数:13 大小:25KB 下载积分:5 金币
下载 相关 举报
C++循环结构--23道题(含答案).docx_第1页
第1页 / 共13页
本文档共13页,全文阅读请下载到手机保存,查看更方便
资源描述
题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出 循环01:最大数 写一个程序,可以输入一批正数,输入0时完毕循环,并且输出最大的正数。 输入39 28 5 63 18 27 0 输出63 测试: 输入153 26 963 28 75 90 156 0 输出963 #include<iostream> using namespace std; int main() { int i,max=0; cin>>i; while(i!=0) { if(i>max) max=i; cin>>i; } cout<<max<<endl; return 0; } 循环02:素数 输入正数n,判断n是否为素数。假设为素数那么输出1,否那么输出0。〔提示:素数是指只可以被1和其本身整除的正数〔1除外〕〕 输入10输出0 输入7输出1 测试: 输入9输出0 #include<iostream> using namespace std; int main() { int n,i,d; cin>>n; for(i=2;i<n;i++) {d=n%i; if(n%i==0) break; } if(n==i) cout<<"1"<<endl; else cout<<"0"<<endl; return 0; } 循环03:数列求和 输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10..+1/(3*n-2)。 输入5输出1.56978 输入4输出1.49286 #include<iostream> using namespace std; int main() { int i,n; double s=0; cin>>n; for(i=1;i<=n;i++) s+=1.0/(3*i-2); cout<<s<<endl; return 0; } 循环04:西瓜卖几天 n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完? 说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。 输入:西瓜个数,输出:天数 输入10输出2 输入50输出4 测试 输入120输出5 #include<iostream> using namespace std; int main() { int n,d=0; cin>>n; while(n>0) { d++; n=n/2-2; } cout<<d<<endl; return 0; } 循环05:成绩判定 输入一个正整数repeat (0<repeat<10),做repeat次以下运算: 输入一个学生的数学成绩,如果它低于60,输出“Fail〞,否那么,输出“Pass〞。 输入5 35 68 49 94 88 输出 Fail Pass Fail Pass Pass 测试 输入8 90 80 60 50 40 30 73 88 59 输出 Pass Pass Pass Fail Fail Fail Pass Pass Fail #include<iostream> using namespace std; int main() { int repeat,n,i; cin>>repeat; for(i=0;i<repeat;i++) { cin>>n; if(n<60) cout<<"Fail"<<endl; else cout<<"Pass"<<endl; } return 0; } 循环06:数列求和 输入1 个正整数 n(n<=100),计算并输出1+1/2+1/3+……+1/n 。 输入5输出2.28333 输入4输出2.08333 #include<iostream> using namespace std; int main() { int n,i=1; double s=0; cin>>n; while(i<=n) { s+=1.0/i; i++;} cout<<s<<endl; return 0; } 循环07:水仙花数 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该 数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。 输入无输出 153 370 371 407 #include<iostream> using namespace std; int main () { int n,i,j,k; for(n=100;n<1000;n++) { i=n/100; j=n/10%10; k=n%10; if(i*i*i+j*j*j+k*k*k==n) cout<<n<<" "; } return 0; } 循环08:数位之和 输入一个正整数,输出其各个位置上的数字之和。 输入 1234输出10 输入 12534输出15 测试 输入 4325输出14 #include<iostream> using namespace std; int main() { int n,s=0; cin>>n; while(n) { s+=n%10; n=n/10; } cout<<s<<endl; 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 #include<iostream> using namespace std; int main() { int n,s=0; cin>>n; while(n>0) {if(n%2!=0) s=s+n; cin>>n; } cout<<s<<endl; return 0; } 循环10:求和 从键盘输入假设干正数,对其求和并输出,遇到负数那么终止输入。 输入32 33 50 34 65 67 -1 输出281 输入13 15 17 30 35 -2 输出110 测试 输入31 33 50 34 65 67 -5 输出280 #include<iostream> using namespace std; int main() { int n,a=0; cin>>n; while(n>=0) {a=n+a; cin>>n;} cout<<a<<endl; return 0; } 循环11:特殊数值 四位数3025有一个特殊性质: 它的前两位数字30和后两位数字25的和是 55, 而55的平方刚好等于该数(55*55=3025). 试编一程序打印所有具有这种性质的四位数. 输入无 输出2025 3025 9801 #include<iostream> using 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) cout<<i<<" "; } return 0; } 循环12:征税 税务部门征收所的税,规定如下: 1〕收入在1000元以〔含1000〕,免征; 2〕收入在1000~3000元以〔含3000〕,纳税额为收入的3%; 3〕收入超过3000~5000元以〔含5000〕,纳税为收入的4%; 4〕当收入超过5000元时,纳税为收入的6%。 请根据以上关系,输入收入m,输出应缴纳的税收tax。 输入:第一个整数n表示后续有n个收入 输出:每个收入对应的纳税额 输入4 900 2000 4000 6000 输出0 60 160 360 #include<iostream> using namespace std; int main() { double m,tax;;int i,n; cin>>n; for(i=1;i<=n;i++) { cin>>m; 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; cout<<tax<<" "; } return 0; } 循环13:因数个数 给定一个正整数n,求它的因数个数。如6的因数为1、2、3、6,那么因数个数为4。 输入12 输出6 测试 输入30 输出8 #include<iostream> using namespace std; int main() { int n,i,count=0; cin>>n; for(i=1;i<=n;i++) { if(n%i==0) count++; } cout<<count<<endl; return 0; } 循环14:最大公约数 键盘输入两个正整数m,n,求出他们的最大公约数。 输入20 15 输出5 测试 输入32 80 输出16 #include<iostream> using namespace std; int main() { int m,n,i; cin>>m>>n; for(i=m;i>=1;i--) { if(m%i==0&&n%i==0) break; } cout<<i<<endl; return 0; } 循环15:斐波那契数列 判断第n个斐波那契数列能否被3整除给定斐波那契数列为:F(0)=1, F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2),编写一个程序,输入n(>=0),如果F(n)能被3整除那么输出一个“yes〞,否那么输出一个“no〞。 输入8输出yes 输入6输出no 测试 输入12输出yes #include<iostream> using namespace std; int main() { int n,F0=1,F1=1,F,i; cin>>n; for(i=2;i<=n;i++) { F=F0+F1; F0=F1; F1=F;} if(F%3==0) cout<<"yes"<<endl; else cout<<"no"<<endl; return 0; } 循环16:计算奇偶数 求N〔<=100〕个数中奇数的平方和与偶数的立方和。 注意:输入格式为,第一个数为N,后面接着N个数。输出的平方和与立方和以空格隔开 输入3 5 8 9 输出106 512 测试 输入5 5 8 9 10 输出106 1512 #include<iostream> using namespace std; int main() { int i,N,n,a=0,b=0; cin>>N; for(i=1;i<=N;i++) { cin>>n; if(n%2==0) a+=n*n*n; else b+=n*n; } cout<<b<<" "<<a<<endl; return 0; } 循环17:数位计算 对于输入的一个数字,请计算它的各个位上的数字为偶数的和。例如:1234,结果为6=2+4。 输入4321输出6 输入51289输出10 测试 输入54893输出12 #include<iostream> using namespace std; int main () { int n,x,s=0; cin>>n; while(n) { x=n%10; if(x%2==0) s+=x; n=n/10; } cout<<s<<endl; 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 #include<iostream> using namespace std; int main() { int n,s=0,t; cin>>n; t=n; while(t>=10) { s=0; while(t) {s+=t%10; t=t/10; } t=s;} cout<<s<<endl; return 0; } 循环19:平均成绩 假设有一个班级,n名同学选修了C++语言程序设计,要求统计该门课的平均成绩。输入格式:第一个数为学生人数n,后面接着n个成绩,输出平均成绩。 输入:5 80 90 88 96 70 输出84.8 #include<iostream> using namespace std; int main() { int n,i,a,s=0; cin>>n; for(i=1;i<=n;i++) { cin>>a; s+=a; } cout<<double(s)/n<<endl; return 0; } 循环20:幂函数 输入一个正整数repeat (0<repeat<10),做repeat次以下运算:读入1 个正实数x和1个正整数 n(n<=50),计算并输出x的n次幂。 输入3 2 5 3 4 5 3输出32 81 125 #include<iostream> using namespace std; int main() { int repeat,i,x,n,j,k; cin>>repeat; for(i=1;i<=repeat;i++) { cin>>x>>n;k=1; for(j=1;j<=n;j++) k=k*x; cout<<k<<" ";} return 0; } /************************** 循环21:计数 输入一组整数,以0完毕,统计数据个数〔不含0〕与最大值。 输入1 2 3 456 4 3 5 0 输出7 456 #include<iostream> using namespace std; int main() { int a,max=0,i=0; cin>>a; while(a!=0) { i++; if(a>max) max=a; cin>>a;} cout<<i<<" "<<max; return 0; } 循环22:素数 输入一个正整数n,输出[2,n]之间所有的素数与素数个数。 输入10 输出 2 3 5 7 4 #include<iostream> using namespace std; int main() { int n,i,j,s; s=0; cin>>n; for(i=2;i<=n;i++) { for(j=2;j<=i;j++) if(i%j==0) break; if(j==i) {s++; cout<<i<<" "; } } cout<<endl<<s; return 0; } 循环23:完数 输入一个正整数n,输出[1,n]之间的所有完数。 完数的定义:除自身外的因子之和等于它本身。 例如:6=1+2+3,因此6是完数。 输入1000 输出6 28 496 #include<iostream> using namespace std; int main() { int n,i,j,s; cin>>n; for(i=1;i<=n;i++) { s=0; for(j=1;j<i;j++) {if(i%j==0) s+=j;} if(s==i) cout<<s<<" "; } return 0; } 13 / 13
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服