C++循环控制结构练习题.docx

上传人:scccc 文档编号:14105191 上传时间:2022-02-02 格式:DOCX 页数:22 大小:35.46KB
返回 下载 相关 举报
C++循环控制结构练习题.docx_第1页
第1页 / 共22页
C++循环控制结构练习题.docx_第2页
第2页 / 共22页
C++循环控制结构练习题.docx_第3页
第3页 / 共22页
C++循环控制结构练习题.docx_第4页
第4页 / 共22页
C++循环控制结构练习题.docx_第5页
第5页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C++循环控制结构练习题.docx》由会员分享,可在线阅读,更多相关《C++循环控制结构练习题.docx(22页珍藏版)》请在三一文库上搜索。

1、共享知识分享快乐循环控制结构练习题1 .从键盘上输入一个正整数n,计算其阶乘n!#include #include using namespacestd; 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;cout endl;if (n 0)n = abs(n);cout n!= f(n);system( pause); return 0;2 .从键盘上输入一个正整数n,判断是否是素数? 法 1: #include #include using

2、namespacestd;void f( int n) int k = sqrt( n),i;for ( i = 2; i = k+1)cout n 是素数 endl; else cout n 不是素数 endl;int main()int n;cout n; f(n);system( pause);return 0;法2; #include #include using namespacestd; bool f( int n) int k = sqrt( n), i;for (i = 2; i = k + 1) return 1; else return 0;int main()int n;

3、cout n;f(n);if (f(n)cout n 是素数 endl; else cout n 不是素数 endl; system( pause);return 0; 3.26.2017 bool f2( int n)int k=sqrt( n),i;for ( i=2;i=k+1) return 1;1 int main()int n;while (1)cinn;if (n=0) break;if (f2(n)cout 是素数! ! endl;system( pause);return 03 .编写程序,输入一个整数,求该整数的各位数字和#include #include using na

4、mespacestd;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;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;if (n 0)n = abs(n);cout n 的各位数字和

5、为: f(n) endl; system( pause);return 0;3.26.2017int f3( int n)n=abs( n);if ( nn;if (n=0) break;cout f3(n);system( pause);return 0;3.编写程序,输入一个整数,求该整数的各位数字的乘积法一:#include using namespacestd;int f( int n) if ( n 10) return n;else return ( n % 10 )* f( n / 10); int main()int n;cout n;n = abs(n);cout f(n);

6、system( pause);return 0;法二:#include using namespacestd;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;n = abs(n);cout f(n);system( pause); return 0; 3.26.2017int f4( int n)卑微如蟋蚁、坚强似大象n=abs( n);if (nn;if (n=0) break;cout f4(n);system( pause);r

7、eturn 0;4.编写程序,输入一个整数,求该整数的各位数字的平方和 法一:#include using namespacestd;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;n = abs(n);cout f(n);system( pause);return 0;法二:#include using namespacestd;int f( int n)if ( n 10) return n*n;else return

8、 ( n % 10)*( n % 10)+f( n / 10);int main()int n;cout n;n = abs(n);cout f(n);system( pause); return 0;3.27.2017 int f4( int n) n=abs( n);if (n10) return ( n%10)*( n%10)+f4( n/10); int main() int n;while (1) cinn;if (n=0) break;cout f4(n)endl; system( pause);return 0;5,若有5.编写程序,输入一个整数,求该整数的各位上的数字是否包含数

9、字 则输出是第几位有含数字5.#include using namespacestd;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;n = abs(n);cout 包含5的位置i为:”;f(n);cout 0;i=i/10,j+) if (i%10=m)cout 第j+i位nm;if (n=0) break; f5(n,m); system( pause);return 0;6.编写程序输出一个平行四边行。注:边长为 10个*号v

10、oid 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;j10;j+) coutsetw(20+j);for (int i=0;i10;i+)|cout *;cout endl; int main() int n,m;f6();system( pause);return 0;23456.一 一8.编程计算:1十一十一十一十一十一十的前20项的和。3 5 7 9 11法一:#

11、include using namespacestd;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;n = abs(n);cout f(n);cout 0)if (n=1)return 1;else return ( n/(2* n-1)+f7( n-1);int main()double n,m;cinn;cout 0; i = i / 10) if (i % 10 = 5)j+;cout jendl;int ma

12、in()int n;cout n;n = abs(n);cout 包含5的个数为:;f;cout endl;system( pause);return 0;10 .编写程序,输出所有含数字5且为77倍数的四位数。void J() for (int i=1000;i0;m=m/10)if (m % 10 = 5) cout i ; break ; int main()J();System( pause);return 0;11 .编写一程序,输入一个正整数n,求大于等于n的最小素数#include using namespacestd; int main()int x, b, i, m, k;c

13、out x;b = sqrt(x);for (i = 2; i = b+ 1) cout x endl; elsefor (m = x; m+) k = sqrt(m);for (i = 2; i = k + 1)cout m ; break;system( pause);return 0;法二:#include using namespacestd; int main()int n, k, m, i, j; cout n;for (i = n; i+)for (j = 2; j*j= i)cout i endl; break;system( pause); return 0;12 .从键盘输

14、入一个小于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;in;if (n=0) break;cout sum=sum2(n)endl;system( pause); return 0;14 .从键盘上输入一个正整数 m,找出1000至10000之间所有各位数字之和等于 m的数。如输入32,则有9869满足要求。因为9869各位上数字之和等于32。#include using namespacestd; v

15、oid f( int m)int i;for (i = 1000; i 0; j = j / 10) sum = sum + j % 10; if (sum = m cout i ; cout endl;int main()int n, m;cout n;f(n);system( pause);return 0;15 .已知xxz+yzz=532,求所有可能的x,y,z的值#include using namespacestd; int main()for ( int x = 0; x = 9; x+)for ( int y = 0; y = 9; y+)for ( int z = 0; z

16、= 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 using namespacestd; void main()int n=0,m=0,k=0,c=0; while (n != 100000)cout n;if (n 0)k+;else if (n = 0)m+;else if (n 0)c+

17、;cout 正整数的个数是: k endl;cout 负整数的个数是: k endl;cout 0 的个数是: k endl;system( pause);17 .编写一程序,输入一个正整数n,求小于等于n的最大素数。18 .求100999中的。所谓水仙花数是指一个三位数,它的每位数字的立方之和 等于该数。例如,因为153= 13+53+ 33,所以153为水仙花数。#include using namespacestd;void main()int i;for (i = 100; i = 999; i+)int j, sum = 0;j = i;while (j)int k = j % 10

18、;sum = sum + k*k*k;j = j / 10;if (sum = i)cout sum ;system( pause);19 .求1000之内的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。例如,6=1+2 + 3,所以6为完数。20 .编一程序显示如下图案:* * * * * * * * * * * * * * * * * * * *21 .编一程序显示如下图案:AA B CA B C D E#include #include using namespacestd;void f( int n) for ( int i = 1; i = n; i+) cout setw(

19、20 - i);for (int j = 0; j 2 * i - 1; j+) char t = A +j;cout t;cout endl;int main()f;system( pause);return 0;21.根据冗/4 =1-1/3+1/5-1/7+ 求冗的近似值,直到最后一项的值小于 0.000001 为止。22 .猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又 多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每 天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?23 .编程序模拟

20、剪刀,石头和纸游戏。游戏规则为:剪刀剪纸,石头砸剪刀,纸 包石头.玩游戏者从键盘上输入 s (表示剪刀)或R (表示石头)或P (表 示纸),要求两个游戏者交替输入,计算机给出输赢的信息。24 .编写程序输出菲波那切数列的前 20项。即前两项为1,以后每一项为前两项 之和。25 .打印九九乘法表。26 .若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第 n 年时有多少头母牛?27 .编写程序,输入一个整数,求该整数是几位数?并输出最高位数字。#include using namespacestd;int f( int n)int x = 0,j=0;for ( int i =

21、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;n = abs(n);cout f(n);cout endl;system( pause);return 0;28 .从键盘上输入一个正整数n,求出5位数中各位数字之和等于n的所有素数, 每行按6个素数输出。法: #include (错误)using namespacestd;void f( int m int n, int k)int l = 0;for ( int i = m i 0; j = j / 10)

22、s = s + j % 10;if (s = k) int t, z = sqrt(i);for (t = 2; t = k + 1) cout i ;l+;if (l % 6= 0)cout endl;int main()f(10000, 99999, 43);system( pause);return 0;法二:(正确)#include using namespacestd;void foundPrime( int n)int k = 0;for (int i = 10000; i0)s = s + m % 10;m = m / 10;if (s = n)int z = sqrt(i);i

23、nt j;for (j = 2; 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 using namespacestd; 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; retu

24、rn sum;int main() cout f() endl;cout fendl;cout f(2)endl;cout f(3)endl;system( pause);return0;30 .给定求组合数公式为:Cnm = m!/ n! (m-n)! 编一程序,输入m和n的值31 .求 s=1+ (1+2) + (1+2+3) +.+ (1+2+3+n)的值。#include using namespacestd;int f( int n)int sum, t = 0;for ( int j = 1; j 0; i-) sum = sum + i;t = t + sum; return t

25、; int main()int n;cout n;n = abs(n);cout f(n);cout endl;system( pause);return 0;20332 .编程计算:s=Z Z (i +1)2( j+2)2i 4 j =133 .求sum=a+aa+aaa+aaaa +aa-a(表示n个a)的值。其中a是一位数字。例 如当 n=6,a=2 时 sum=2+22+222+2222+22222+222222n 和 a 的值由键盘输入。法一:#include using namespacestd;int f( int a, int n)int i, t = 1, sum = 0,k

26、=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 using namespacestd;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;syste

27、m( pause);return 0;34 .求100230之间所有素数的和。#include #include using namespacestd; void f() int t = 0;for ( int j = 100; j 230; j+) int k = sqrt(j);int i;for (i = 2; 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=

28、n;i= m;i+)int k=sqrt(i),j;for ( j=2;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)?当选择刖寸,输出求阶乘”信息;选择S时,输

29、出“求和”信息;选择F时,输出” 找素数”信息;选择QM,退出循环,结束程序。3.27.2017#include #include using namespacestd; void menu()cout Menueendl;cout setw(15) A.求阶乘endl;cout setw(13) S.求和endl;cout setw(15) F.找素数endl;cout setw(13) Q.退出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; voi

30、d k3( int n) int k=sqrt( n); int i;for (i=2;i=k;i+)if (n%i=0)cout 不是素数! ! =k+1)cout 是素数! ! endl;void choice() char ch; int n;while menu();cout n;cout 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

31、 .编程找出所有的三位整数中各位数字之和为素数的所有三位数,每行输出 个。39.1. 程实现如下图案ststststststststststststs stststststststststststs ststststststststststsstststststststststsststststststststsstststststststsststststststsstststststsststststsstststs ststs sts S40 .编程实现如下图案AB BC CD DEEFFG GHHHHHHHHHHHHHHH41 .编程实现如下图案AB BC CD DEEFFGGHHHH

32、HHHHHHHHHHH GGFFEED D C C B B Avoid printABCD()int j;/上半部分for (int i=1;i=8;i+) coutsetw(20-i);for ( j=1;j=2*i-1;j+) if (j=1 | j=2*i-1)cout( char)( A +i-1);else if (i=8)cout( char)( A +i-1);else cout ; coutendl;42 .从键盘上输入一个整数,判断该数是否为回文数。所谓的回文数就是从左到 右读与从右到左读都是一样的数。如7887、23432就是回文数。#include #include us

33、ing namespacestd;void f( int n)int j = 0,t=0;for ( int i = n; i 0; i = i / 10)j+;for ( int i = n; i 0; i = i / 10)t = t + pow(10, j-1)*(i % 10);j-;if (t = n)cout n 是回数 endl; else cout 不是回数 endl;int main()int n;cout n;f(n);return 0;43 .编写程序,输入正整数a,m和N,计算am mod N,即计算am % N。44 .编程从键盘输入一个正整数n,求大于等于n的最小素

34、数。45 .编程求出三位数中所有倒置后的数也为素数的素数。如 113和311均是满足 条件的素数。bool isPrime( int n) for (int i=2;in;i+)if (n%i=0) return false ; return true ; void inversPrime() int i,j;for (i=100;i1000;i+)x=x*10+m%10;m=m/10;if (isPrime(i) & isPrime(x) couti ;coutendl;46 .47 .最大数的出现次数:编写程序读取整数,找出它们的最大数,然后计算该数 的出现次数。假如输入是以0结束的。假定输入是3 5 2 5 5 5 0,则程序找出最大数是5,而5出现的次数是4。#include using namespacestd;void f( int a口,int n)int i, k=0, x =a0;for (i = 0; ix)x =ai;for (i = 0; i n; i+)if ( ai = x) k+;cout 最大值是: x endl;cout 出现的次数为: k endl;int main()int a7 = 3,5,2,5,5,5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1