C++循環(huán)控制結(jié)構(gòu)練習(xí)題_第1頁(yè)
C++循環(huán)控制結(jié)構(gòu)練習(xí)題_第2頁(yè)
C++循環(huán)控制結(jié)構(gòu)練習(xí)題_第3頁(yè)
C++循環(huán)控制結(jié)構(gòu)練習(xí)題_第4頁(yè)
C++循環(huán)控制結(jié)構(gòu)練習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、共享知識(shí)分享快樂(lè)循環(huán)控制結(jié)構(gòu)練習(xí)題1 .從鍵盤上輸入一個(gè)正整數(shù)n,計(jì)算其階乘n!#include <iostream>#include <cmath> 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="cin >> n;cout << endl;if (n < 0)n = abs(n);cout <

2、;< "n!=" <<f(n);system( "pause"); return 0;2 .從鍵盤上輸入一個(gè)正整數(shù)n,判斷是否是素?cái)?shù)? 法 1: #include <iostream>#include <iomanip> using namespacestd;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 <<"是素

3、數(shù)"<< endl; else cout << n << "不是素?cái)?shù)"<< endl;int main()int n;cout << "n="cin >> n; f(n);system( "pause");return 0;法2; #include <iostream>#include <iomanip> using namespacestd; bool f( int n) int k = sqrt( n), i;for (i =

4、 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 << "是素?cái)?shù)"<< endl; else cout << n << "不是素?cái)?shù)"<< endl; system( "pause");retu

5、rn 0; 3.26.2017 bool 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;1 int main()int n;while (1)cin>>n;if (n=0) break;if (f2(n)cout <<"是素?cái)?shù)! ! " <<endl;system( "pause");return 03 .編寫程序,輸入一個(gè)整數(shù),求該整數(shù)的各位數(shù)字和#include <iostr

6、eam>#include <cmath> using namespacestd;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 的各位數(shù)字和為:"<< f(n) << endl; system( "pause");r

7、eturn 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 的各位數(shù)字和為:"<< f(n) << endl; system( "pause");return 0;3.26.2017int f3( int n)n=abs( n);i

8、f ( 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.編寫程序,輸入一個(gè)整數(shù),求該整數(shù)的各位數(shù)字的乘積法一':#include <iostream>using namespacestd;int f( int n) if ( n < 10) return n;else return ( n % 10 )*

9、 f( n / 10); int main()int n;cout << "n="cin >> n;n = abs(n);cout << f(n);system( "pause");return 0;法二:#include <iostream> 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 <&l

10、t; "n="cin >> n;n = abs(n);cout << f(n);system( "pause"); return 0; 3.26.2017int f4( int n)卑微如蟋蟻、堅(jiān)強(qiáng)似大象n=abs( n);if (n<10)return n;else return ( n%10)*f3( n/10); int main()int n;while cin>>n;if (n=0) break;cout <<f4(n);system( "pause");return 0

11、;4.編寫程序,輸入一個(gè)整數(shù),求該整數(shù)的各位數(shù)字的平方和 法一:#include <iostream>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="cin >> n;n = abs(n);cout << f(n);system( "pause");return 0;法二:#in

12、clude <iostream>using namespacestd;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)ret

13、urn 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.編寫程序,輸入一個(gè)整數(shù),求該整數(shù)的各位上的數(shù)字是否包含數(shù)字 則輸出是第幾位有含數(shù)字5.#include <iostream> using namespacestd;void f( int n)int j = 0;for

14、( 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 n)for (int i= n,j=0;i>0;i=i/10

15、,j+) if (i%10=m)cout << "第"<<j+i<<"位"<<endl; int main() int n,m;while (1) cin>>n>>m;if (n=0) break; f5(n,m); system( "pause");return 0;6.編寫程序輸出一個(gè)平行四邊行。注:邊長(zhǎng)為 10個(gè)*號(hào)void u()int i = 0;for ( int i = 1; i <= 10; i+) cout << setw( i

16、);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;23456.一 一8.編程計(jì)算:1十一十一十一十

17、一十一十的前20項(xiàng)的和。3 5 7 9 11法一:#include <iostream>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="cin >> n;n = abs(n);cout << f(n);cout << endl;system( "pause");r

18、eturn 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;5的個(gè)數(shù)9.編寫一程序,輸入一個(gè)正整數(shù),統(tǒng)計(jì)該數(shù)中含數(shù)字using namespacestd;void f( int n)int j = 0;for ( int i = n; i > 0; i = i /

19、 10) if (i % 10 = 5)j+;cout <<j<<endl;int main()int n;cout << "n="cin >> n;n = abs(n);cout << "包含5的個(gè)數(shù)為:"f;cout << endl;system( "pause");return 0;10 .編寫程序,輸出所有含數(shù)字5且為77倍數(shù)的四位數(shù)。void J() for (int i=1000;i<=9999;i+) if (i % 77 = 0) int m

20、 = i;for (m;m>0;m=m/10)if (m % 10 = 5) cout << i << " " ; break ; int main()J();System( "pause");return 0;11 .編寫一程序,輸入一個(gè)正整數(shù)n,求大于等于n的最小素?cái)?shù)#include <iostream>using namespacestd; int main()int x, b, i, m, k;cout << "請(qǐng)輸入一個(gè)整數(shù):";cin >> x;b = sq

21、rt(x);for (i = 2; i <= b;i+)if (x%i = 0) break;if (i >= b+ 1) cout << x << endl; elsefor (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

22、>using namespacestd; 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 .從鍵盤輸入一個(gè)小于15的正整數(shù),計(jì)算其階乘。13 .編程計(jì)算1!+2!+3!+.+n!。n從鍵盤輸

23、入。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 .從鍵盤上輸入一個(gè)正整數(shù) m,找出1000

24、至10000之間所有各位數(shù)字之和等于 m的數(shù)。如輸入32,則有9869滿足要求。因?yàn)?869各位上數(shù)字之和等于32。#include <iostream> using namespacestd; 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 m

25、ain()int n, m;cout << "n="cin >> n;f(n);system( "pause");return 0;15 .已知xxz+yzz=532,求所有可能的x,y,z的值#include <iostream> using namespacestd; 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 * 1

26、00 + z + y * 100 + z * 10 + z;if (k = 532)cout << x <<" " << y << " "<< z << " "<< endl;system( "pause"); return 0;16 .編程從鍵盤中隨機(jī)輸入若干整數(shù),統(tǒng)計(jì)其中正整數(shù)、 0、負(fù)整數(shù)數(shù)的個(gè)數(shù)。當(dāng) 輸入整數(shù)100000時(shí)結(jié)束輸入。#include <iostream> using namespacestd; v

27、oid 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 << "正整數(shù)的個(gè)數(shù)是:"<< k << endl;cout << "負(fù)整數(shù)的個(gè)數(shù)是:"<< k << endl;cout << "0 的個(gè)數(shù)是:"

28、<< k << endl;system( "pause");17 .編寫一程序,輸入一個(gè)正整數(shù)n,求小于等于n的最大素?cái)?shù)。18 .求100999中的。所謂水仙花數(shù)是指一個(gè)三位數(shù),它的每位數(shù)字的立方之和 等于該數(shù)。例如,因?yàn)?53= 13+53+ 33,所以153為水仙花數(shù)。#include <iostream>using namespacestd;void main()int i;for (i = 100; i <= 999; i+)int j, sum = 0;j = i;while (j)int k = j % 10;sum =

29、 sum + k*k*k;j = j / 10;if (sum = i)cout << sum <<"" ;system( "pause");19 .求1000之內(nèi)的所有完數(shù)。所謂完數(shù)是指一個(gè)數(shù)恰好等于它的所有因子之和。例如,6=1+2 + 3,所以6為完數(shù)。20 .編一程序顯示如下圖案:* * * * * * * * * * * * * * * * * * * *21 .編一程序顯示如下圖案:AA B CA B C D E#include <iostream>#include <iomanip>using

30、 namespacestd;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;system( "pause");return 0;21.根據(jù)冗/4 =1-1/3+1/5-1/7+ 求冗的近似值,直到最后一項(xiàng)的值小于 0.000001 為止。22 .猴子吃桃問(wèn)題。猴

31、子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不過(guò)癮,又 多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每 天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),發(fā)現(xiàn)只剩一個(gè)桃子了,求猴子第一天究竟摘了多少個(gè)桃子?23 .編程序模擬剪刀,石頭和紙游戲。游戲規(guī)則為:剪刀剪紙,石頭砸剪刀,紙 包石頭.玩游戲者從鍵盤上輸入 s (表示剪刀)或R (表示石頭)或P (表 示紙),要求兩個(gè)游戲者交替輸入,計(jì)算機(jī)給出輸贏的信息。24 .編寫程序輸出菲波那切數(shù)列的前 20項(xiàng)。即前兩項(xiàng)為1,以后每一項(xiàng)為前兩項(xiàng) 之和。25 .打印九九乘法表。26 .若一頭小母牛,從出生起第四個(gè)年頭開(kāi)始每年生一

32、頭母牛,按此規(guī)律,第 n 年時(shí)有多少頭母牛?27 .編寫程序,輸入一個(gè)整數(shù),求該整數(shù)是幾位數(shù)?并輸出最高位數(shù)字。#include <iostream>using namespacestd;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 =

33、 abs(n);cout << f(n);cout << endl;system( "pause");return 0;28 .從鍵盤上輸入一個(gè)正整數(shù)n,求出5位數(shù)中各位數(shù)字之和等于n的所有素?cái)?shù), 每行按6個(gè)素?cái)?shù)輸出。法: #include <iostream> (錯(cuò)誤)using namespacestd;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

34、 = 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 namespacestd;v

35、oid 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; i

36、nt main()foundPrime( 43);system( "pause");return 0;29 .編程求下式的化 n1+n2+n3+n4+ - +n10,其中n=1,2,3。編寫函數(shù)時(shí),設(shè)置參數(shù) n的默認(rèn)值為2。#include <iostream> 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; return sum;int main() cout << f

37、()<< endl;cout<< f<<endl;cout<< f(2)<<endl;cout<< f(3)<<endl;system( "pause");return0;30 .給定求組合數(shù)公式為:Cnm = m!/ n! (m-n)! 編一程序,輸入m和n的值31 .求 s=1+ (1+2) + (1+2+3) +.+ (1+2+3+n)的值。#include <iostream>using namespacestd;int f( int n)int sum, t = 0;f

38、or ( 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;20332 .編程計(jì)算:s=Z Z (i +1)2( j+2)2i 4 j =133 .求sum=a

39、+aa+aaa+aaaa +aa-a(表示n個(gè)a)的值。其中a是一位數(shù)字。例 如當(dāng) n=6,a=2 時(shí) sum=2+22+222+2222+22222+222222n 和 a 的值由鍵盤輸入。法一':#include <iostream>using namespacestd;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)<

40、< endl;system( "pause");return 0;法二:#include <iostream>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;system( "pause");return 0;34 .求1

41、00230之間所有素?cái)?shù)的和。#include <iostream>#include <iomanip> 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; i+)if (j%i = 0) break;if (i >= k + 1) cout << j << " " ; t+;if (t % 6 = 0)cout << endl

42、; 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 .從鍵盤上輸入若干整數(shù),計(jì)

43、算并輸出其中正整數(shù)的平均值,以0作為輸入結(jié)束標(biāo)志。(要求分別使用while語(yǔ)句、do while語(yǔ)句編寫)36 .編程實(shí)現(xiàn)下面的圖案。 * * * * * *37 .實(shí)現(xiàn)一個(gè)簡(jiǎn)單的菜單程序,運(yùn)行時(shí)顯示: Menu A(階乘) S(求和) F(找素?cái)?shù)) Q(退出) 請(qǐng)選擇(A/S/F/Q)?當(dāng)選擇刖寸,輸出"求階乘”信息;選擇S時(shí),輸出“求和”信息;選擇F時(shí),輸出” 找素?cái)?shù)”信息;選擇QM,退出循環(huán),結(jié)束程序。3.27.2017#include <iostream>#include <iomanip> using namespacestd; void menu(

44、)cout << "Menue"<<endl;cout <<setw(15)<< "A.求階乘"<<endl;cout <<setw(13)<< "S.求和"<<endl;cout <<setw(15)<< "F.找素?cái)?shù)"<<endl;cout <<setw(13)<< "Q.退出"<<endl; int sum( int n)

45、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 << "不是素?cái)?shù)! ! " <<endl;if (i>=k+1)cout << "是素?cái)?shù)! ! "<<

46、endl;void choice() char ch; int n;while menu();cout << "請(qǐng)輸入數(shù)字:"; cin>>n;cout << "請(qǐng)輸入查找的序號(hào):" cin>>ch;switch (ch)case 'A' :cout <<AA(n); break; case 'S' :cout <<sum(n);break;case 'F' :k3(n); break;case 'Q' : break;

47、 int main() choice();system( "pause");return 0;38 .編程找出所有的三位整數(shù)中各位數(shù)字之和為素?cái)?shù)的所有三位數(shù),每行輸出 個(gè)。39.1. 程實(shí)現(xiàn)如下圖案ststststststststststststs stststststststststststs ststststststststststsstststststststststsststststststststsstststststststsststststststsstststststsststststsstststs ststs sts S40 .編程實(shí)現(xiàn)如下圖案AB BC

48、 CD DEEFFG GHHHHHHHHHHHHHHH41 .編程實(shí)現(xiàn)如下圖案AB BC CD DEEFFGGHHHHHHHHHHHHHHH GGFFEED D C C B B Avoid printABCD()int j;/上半部分for (int i=1;i<=8;i+) cout<<setw(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<< "" cout<<endl;42 .從鍵盤上輸入一個(gè)整數(shù),判斷該數(shù)是否為回文數(shù)。所謂的回文數(shù)就是從左到 右讀與從右到左讀都是一樣的數(shù)。如7887、23432就是回文數(shù)。#include <iostream>#include <iostream>using namespacestd;void f( int n)int j =

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論