欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C循环控制结构练习题 .doc

    • 资源ID:97462543       资源大小:104.50KB        全文页数:24页
    • 资源格式: DOC        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C循环控制结构练习题 .doc

    循环控制结构练习题1. 从键盘上输入一个正整数n,计算其阶乘n! #include <iostream>#include <cmath>using namespace std;int f(int n)int t = 1;for (int i = n; i > 0; i-)t = t*i;return t;(0的阶层为1)int main()int n;cout << "n="cin >> n;cout << endl;if (n < 0)n = abs(n);cout << "n!="<<f(n);system("pause"); return 0;2. 从键盘上输入一个正整数n,判断是否是素数?法1: #include<iostream>#include <iomanip>using namespace std;void f(int n) int k = sqrt(n),i;for ( i = 2; i <= k; i+)if (n%i = 0)break;if (i >= k+1)cout << n << "是素数" << endl;else cout << n << "不是素数" << endl;int main()int n;cout << "n="cin >> n;f(n);system("pause"); return 0;法2;#include<iostream>#include <iomanip>using namespace std;bool f(int n) int k = sqrt(n), i;for (i = 2; i <= k; i+)if (n%i = 0)break;if (i >= k + 1)return 1;else return 0;int main()int n;cout << "n="cin >> n;f(n);if(f(n)cout << n << "是素数" << endl;else cout << n << "不是素数" << endl;system("pause"); return 0;3.26.2017bool f2(int n)int k=sqrt(n),i;for( i=2;i<=k;i+)if(n%i=0)return 0;if(i>=k+1)return 1;1int main()int n;while(1)cin>>n;if(n=0)break;if(f2(n)cout <<"是素数!"<<endl;system("pause");return 03.编写程序,输入一个整数,求该整数的各位数字和。 #include <iostream>#include <cmath>using namespace std;int f(int n)int t = 0;for (int i = n; i > 0; i=i/10)t=i%10+t;return t;int main()int n;cout << "n="cin >> n;if (n < 0)n = abs(n);cout << "n的各位数字和为:" << f(n) << endl;system("pause"); return 0;法二: int f(int n)if (n < 10)return n;else return (n % 10 + f(n / 10);int main()int n;cout << "n="cin >> n;if (n < 0)n = abs(n);cout << "n的各位数字和为:" << f(n) << endl;system("pause"); return 0;3.26.2017int f3(int n)n=abs(n);if(n<10)return n;else return (n%10)+f3(n/10);int main()int n;while(1)cin>>n;if(n=0)break;cout <<f3(n);system("pause");return 0;3. 编写程序,输入一个整数,求该整数的各位数字的乘积。法一:#include <iostream>using namespace std;int f(int n)if (n < 10)return n;else return (n % 10 )* f(n / 10);int main()int n;cout << "n="cin >> n;n = abs(n);cout << f(n);system("pause");return 0;法二:#include <iostream>using namespace std;int f(int n)int t = 1;for (int i = n; i > 0; i = i / 10)t = t*(i % 10);return t;int main()int n;cout << "n="cin >> n;n = abs(n);cout << f(n);system("pause");return 0;3.26.2017int f4(int n)n=abs(n);if(n<10)return n;else return (n%10)*f3(n/10);int main()int n;while(1)cin>>n;if(n=0)break;cout <<f4(n);system("pause");return 0;4. 编写程序,输入一个整数,求该整数的各位数字的平方和。法一: #include <iostream>using namespace std;int f(int n)int t = 0;for (int i = n; i > 0; i = i / 10)t = t+(i % 10)*(i%10);return t;int main()int n;cout << "n="cin >> n;n = abs(n);cout << f(n);system("pause");return 0;法二:#include <iostream>using namespace std;int f(int n)if (n < 10)return n*n;else return (n % 10)*(n % 10)+f(n / 10);int main()int n;cout << "n="cin >> n;n = abs(n);cout << f(n);system("pause");return 0;3.27.2017 int f4(int n)n=abs(n);if(n<10)return n*n;if(n>10)return (n%10)*(n%10)+f4(n/10); int main()int n;while(1)cin>>n;if(n=0)break;cout <<f4(n)<<endl;system("pause");return 0;5. 编写程序,输入一个整数,求该整数的各位上的数字是否包含数字5,若有则输出是第几位有含数字5. #include <iostream>using namespace std;void f(int n)int j = 0;for (int i = n; i > 0; i = i / 10)j+;if (i % 10 = 5)cout << j << " "int main()int n;cout << "n="cin >> n;n = abs(n);cout << "包含5的位置i为:"f(n);cout << endl;system("pause");return 0;3.27.2017void f5(int n,int m)for(int i=n,j=0;i>0;i=i/10,j+)if(i%10=m)cout <<"第"<<j+1<<"位"<<endl;int main()int n,m;while(1)cin>>n>>m;if(n=0)break;f5(n,m);system("pause");return 0;6. 编写程序输出一个平行四边行。注:边长为10个*号 void u()int i = 0;for (int i = 1; i <= 10; i+)cout << setw( i);for (int j = 1; j <= 10; j+)cout << '*'cout << endl;3.27.2017 void f6()for(int j=0;j<10;j+)cout<<setw(20+j);for(int i=0;i<10;i+)cout<<'*'cout <<endl;int main()int n,m;f6();system("pause");return 0;8.编程计算:的前20项的和。法一: #include <iostream>using namespace std;double f(double n)if (n > 0) if (n = 1)return 1;else return n / (2 * n - 1) + f(n - 1);int main()int n;cout << "n="cin >> n;n = abs(n);cout << f(n);cout << endl;system("pause");return 0;3.27.2017double f7(double n)int i;if(n>0)if(n=1)return 1;else return (n/(2*n-1)+f7(n-1);int main()double n,m;cin>>n;cout <<f7(n);system("pause");return 0;9.编写一程序,输入一个正整数,统计该数中含数字5的个数。 using namespace std;void f(int n)int j = 0;for (int i = n; i > 0; i = i / 10)if (i % 10 = 5)j+;cout <<j<<endl;int main()int n;cout << "n="cin >> n;n = abs(n);cout << "包含5的个数为:"f(n);cout << endl;system("pause");return 0;10.编写程序,输出所有含数字5且为77倍数的四位数。 void J() for(int i=1000;i<=9999;i+)if (i % 77 = 0) int m = i;for(m;m>0;m=m/10)if (m % 10 = 5) cout << i << " " break; int main()J();System(“pause”);return 0;11.编写一程序,输入一个正整数n,求大于等于n的最小素数。#include<iostream>using namespace std; int main()int x, b, i, m, k;cout << "请输入一个整数:"cin >> x;b = sqrt(x);for (i = 2; i <= b;i+)if (x%i = 0) break;if (i >= b+ 1) cout << x << endl;else for (m = x; m+)k = sqrt(m);for (i = 2; i <= k;i+)if (m%i = 0)break;if (i >= k + 1)cout << m << " "break;system("pause");return 0;法二:#include <iostream>using namespace std;int main()int n, k, m, i, j;cout << "n="cin >> n;for (i = n; i+)for (j = 2; j*j<i; j+)if (i%j = 0)break;if (j*j >= i)cout << i << endl;break;system("pause");return 0;12.从键盘输入一个小于15的正整数,计算其阶乘。13.编程计算1!+2!+3!+.+n!。n从键盘输入。3.27.2017int sum2(int n)int sum=0,t=1;for(int j=1;j<=n;j+)t=1;for(int i=1;i<=j;i+)t=t*i;sum=sum+t;return sum;int main()int n;while(1)cin>>n;if(n=0)break;cout <<"sum="<<sum2(n)<<endl;system("pause");return 0;14.从键盘上输入一个正整数m,找出1000至10000之间所有各位数字之和等于m的数。如输入32,则有9869满足要求。因为9869各位上数字之和等于32。#include <iostream>using namespace std;void f(int m)int i;for (i = 1000; i < 10000; i+)int sum = 0;for (int j = i; j>0; j = j / 10) sum = sum + j % 10; if (sum = m) cout << i << " " cout << endl;int main()int n, m;cout << "n="cin >> n;f(n);system("pause");return 0;15.已知xxz+yzz=532,求所有可能的x,y,z的值#include <iostream>using namespace std;int main()for (int x = 0; x <= 9; x+)for (int y = 0; y <= 9; y+)for (int z = 0; z <= 9; z+)int k = x * 10 + x * 100 + z + y * 100 + z * 10 + z;if (k = 532)cout << x << " " << y << " " << z << " " << endl;system("pause");return 0;16.编程从键盘中随机输入若干整数,统计其中正整数、0、负整数数的个数。当输入整数100000时结束输入。#include <iostream>using namespace std;void main()int n=0,m=0,k=0,c=0;while (n != 100000)cout << "n="cin >> n; if (n > 0)k+;else if (n = 0)m+;else if (n < 0)c+;cout << "正整数的个数是:" << k << endl;cout << "负整数的个数是:" << k << endl;cout << "0的个数是:" << k << endl;system("pause");17.编写一程序,输入一个正整数n,求小于等于n的最大素数。18.求100999中的。所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。例如,因为153135333,所以153为水仙花数。#include <iostream>using namespace std;void main()int i;for (i = 100; i <= 999; i+)int j, sum = 0;j = i;while (j)intk = j % 10;sum = sum + k*k*k;j = j / 10;if (sum = i)cout << sum << " "system("pause");19.求1000之内的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。例如,6123,所以6为完数。20. 编一程序显示如下图案:* * * * * * * * * * * * * * * * * * * * *21.编一程序显示如下图案:AA B CA B C D E #include<iostream>#include <iomanip>using namespace std;void f(int n) for (int i = 1; i <= n; i+) cout << setw(20 - i);for (int j = 0; j < 2 * i - 1; j+)char t = 'A'+j;cout << t;cout << endl;int main()f(3);system("pause"); return 0;21.根据/4 =1-1/3+1/5-1/7+求的近似值,直到最后一项的值小于0.000001为止。22. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?23.编程序模拟剪刀,石头和纸游戏。游戏规则为:剪刀剪纸,石头砸剪刀,纸包石头玩游戏者从键盘上输入s (表示剪刀)或(表示石头)或(表示纸),要求两个游戏者交替输入,计算机给出输赢的信息。 24.编写程序输出菲波那切数列的前20项。即前两项为1,以后每一项为前两项之和。25.打印九九乘法表。26.若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛?27.编写程序,输入一个整数,求该整数是几位数?并输出最高位数字。 #include <iostream>using namespace std;int f(int n)int x = 0,j=0;for (int i = n; i > 0; i = i / 10) j+;if (x < i % 10)x = i % 10;cout << j << endl;return x;int main()int n;cout << "n="cin >> n;n = abs(n);cout << f(n);cout << endl;system("pause");return 0;28.从键盘上输入一个正整数n,求出5位数中各位数字之和等于n的所有素数,每行按6个素数输出。法一: #include <iostream>(错误)using namespace std;void f(int m, int n, int k)int l = 0;for (int i = m; i <= n; i+) int s = 0;for (int j = i; j > 0; j = j / 10)s = s + j % 10;if (s = k) int t, z = sqrt(i);for (t = 2; t <= k; t+)if (i%t = 0)break;if (t >= k + 1) cout << i << " "l+;if (l % 6= 0)cout << endl;int main()f(10000, 99999, 43);system("pause"); return 0;法二:(正确)#include <iostream>using namespace std;void foundPrime(int n)int k = 0;for (int i = 10000; i<100000; i+)int s = 0;int m = i;while (m>0)s = s + m % 10;m = m / 10;if (s = n)int z = sqrt(i);int j;for (j = 2; j <= z; j+) if (i%j = 0) break;if (j >= z + 1)cout << i << " "k+;if (k % 6 = 0) cout << endl;int main()foundPrime( 43);system("pause");return 0;29.编程求下式的值:n1+n2+n3+n4+n10,其中n=1,2,3。编写函数时,设置参数n的默认值为2。 #include <iostream>using namespace std;int f( int n=2)int i, t = 1, sum = 0,k=0;for (i = 1; i <=10; i+)t = t * n;sum = sum + t;return sum;int main()cout << f() << endl;cout << f(1) << endl;cout << f(2) << endl;cout << f(3) << endl;system("pause"); return 0;30.给定求组合数公式为:Cnm = m!/ n! (m-n)!编一程序,输入m 和n的值31.求s=1+(1+2)+(1+2+3)+.+(1+2+3+n)的值。 #include <iostream>using namespace std;int f(int n)int sum, t = 0;for (int j = 1; j <= n; j+) sum = 0;for (int i = j; i > 0; i-)sum = sum + i;t = t + sum;return t;int main()int n;cout << "n="cin >> n;n = abs(n);cout << f(n);cout << endl;system("pause");return 0;32.编程计算:s=33.求sum=a+aa+aaa+aaaa+aaa(表示n个a)的值。其中a是一位数字。例如当n=6,a=2时sum=2+22+222+2222+22222+222222。n和a的值由键盘输入。法一: #include <iostream>using namespace std;int f(int a, int n)int i, t = 1, sum = 0,k=0;for (i = 0; i <n; i+)sum = sum + pow(10, i)*a;k = k + sum;return k;int main()cout << f(2, 2) << endl;system("pause"); return 0; 法二:#include <iostream>using namespace std;int f(int a, int n)int i, t = 1, sum = 0,k=0;for (i = 0; i <n; i+)k = k + a*t;sum = sum + k;t = t * 10;return sum;int main()cout << f(2, 3) << endl;system("pause"); return 0;34.求100230之间所有素数的和。 #include<iostream>#include <iomanip>using namespace std;void f() int t = 0;for (int j = 100; j < 230; j+)int k = sqrt(j);int i;for (i = 2; i <= k; i+)if (j%i = 0)break;if (i >= k + 1) cout << j<< " " t+;if (t % 6 = 0)cout << endl;int main()f();system("pause");return 0;3.27.2017 int sum(int n,int m)int sum=0;for(int i=n;i<=m;i+)int k=sqrt(i),j;for( j=2;j<=k;j+)if(i%j=0)break;if(j>=k+1)sum=sum+i;return sum;int main()cout <<sum(100,230);system("pause");return 0;35.从键盘上输入若干整数,计算并输出其中正整数的平均值,以0作为输入结束标志。(要求分别使用while语句、do while语句编写)36.编程实现下面的图案。* * * * * *37.实现一个简单的菜单程序,运行时显示:Menu:A(阶乘)S(求和) F(找素数)Q(退出) 请选择(A/S/F/Q)?当选择A时,输出”求阶乘”信息;选择S时,输出”求和”信息;选择F时,输出”找素数”信息;选择Q时,退出循环,结束程序。3.27.2017#include <iostream>#include <iomanip>using namespace std;void menu()cout <<"-Menue-"<<endl;cout <<setw(15)<<"A.求阶乘"<<endl;cout <<setw(13)<<"S.求和"<<endl;cout <<setw(15)<<"F.找素数"<<endl;cout <<setw(13)<<"Q.退出"<<endl;int sum(int n)int sum=0;for(int i=n;i>0;i=i/10)sum=sum+i%10;return sum;int AA(int n)int t=1;for(int i=1;i<=n;i+)t=t*i;return t;void k3(int n)int k=sqrt(n);int i;for(i=2;i<=k;i+)if(n%i=0)cout <<"不是素数!"<<endl;if(i>=k+1)cout <<"是素数!"<<endl;void choice()char ch;int n;while(1)menu();cout <<"请输入数字:"cin>>n;cout <<"请输入查找的序号:"cin>>ch;switch(ch)case 'A':cout <<AA(n);break;case 'S':cout <<sum(n);break;case 'F':k3(n);break;case 'Q':break;int main()choice();system("pause");return 0;38.编程找出所有的三位整数中各位数字之和为素数的所有三位数,每行输出5个。39.编程实现如下图案 ststststststststststststs stststststststststststs ststststststststststs stststststststststs ststststststststs stststststststs ststststststs stststststs ststststs stststs ststs sts S40.编程实现如下图案 A B B C C D D E E F F G G HHHHHHHHHHHHHHH41.编程实现如下图案 A B B C C D D E E F F G G HHHHHHHHHHHHHHH G G F F E E

    注意事项

    本文(C循环控制结构练习题 .doc)为本站会员(yy****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开