編程大題總匯_第1頁
編程大題總匯_第2頁
編程大題總匯_第3頁
編程大題總匯_第4頁
編程大題總匯_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1編寫程序:用遞歸算法實(shí)現(xiàn)函數(shù):int sum( int n ); 其功能是求 1+2+3+n 的值并返回。要求編寫主函數(shù)main()去調(diào)用遞歸函數(shù)sum()。編寫程序如下:【答案】#include <iostream.h>int sum (int n)if(n=0|n=1) return 1;else return n+sum(n-1);void main()int n;cout<<"please input n:n"cin>>n;cout<<"1+2+3+.+"<<n<<&quo

2、t;="<<sum(n)<<endl;1 編寫程序:分別求出acm(5,3)、acm(4,2)、acm(5,5)的值。阿克曼函數(shù)定義如下:n+1 m=0acm ( m , n ) = acm ( m-1 , n ) n=0acm ( m-1 , acm ( m, n-1 ) ) n>0,m>0編寫程序如下:【答案】#include <iostream.h>int acm(int m, int n);void main()int m,n;cout<<"please input m and n:n"cin&g

3、t;>m>>n;cout<<"acm(m,n)="<<acm(m,n)<<endl;int acm(int m,int n)if(m=0)return n+1;elseif(n=0)return acm(m-1,n);elsereturn acm(m-1,acm(m,n-1);輸入:5 3輸出:5輸入:4 2輸出:3輸入:5 5輸出:62 編寫程序:要求輸入一個(gè)整數(shù)n,能夠逐位取出正序或反序輸出,用遞歸算法實(shí)現(xiàn):函數(shù): void f1( int n ); 功能是:將 n 逐位取出反序輸出函數(shù): void f2( int

4、n ); 功能是:將 n 逐位取出正序輸出算法提示:重復(fù)除以10取余數(shù),直到商為0為止;若函數(shù)中先輸出余數(shù),后遞歸調(diào)用,則為反序輸出;若函數(shù)中先遞歸調(diào)用,后輸出余數(shù),則為正序輸出。編寫程序如下:【答案】#include <iostream.h>void f1(int n);void f2(int n);void main()int n;cout<<"please input an int number n="cin>>n;cout<<"n反序輸出"f1(n);cout<<endl;cout<

5、;<"n正序輸出"f2(n);cout<<endl;void f1(int n)cout<<n%10;if (n<10) return;else f1(n/10);void f2(int n)if (n>10)f2(n/10);cout<<n%10 ;return;-1編寫程序:用“篩選法”求出 2 80 之間的所有素?cái)?shù),要求每行輸出4個(gè)素?cái)?shù)。編寫程序如下:【答案】#include<iostream.h>#include<iomanip.h>void main ( ) int prime 39 ;

6、 for ( int i=0 , j=3 ; i<39 ; i+ , j+=2 ) prime i = j ; for ( i=0 ; i<39 ; i+ ) if ( prime i ) for ( j = i+1 ; j<39 ; j+ ) if ( prime j && prime j % prime i = 0 ) prime j = 0 ; cout << "280之間的素?cái)?shù):n" ; for ( j=0 , i=0 ; i<39 ; i+ ) if ( prime i ) cout << setw(

7、8) << prime i ; j+ ; if ( j%4 = 0 ) cout << endl ; 2編寫程序:隨機(jī)產(chǎn)生10個(gè)三位數(shù)的整數(shù)并存入數(shù)組中,用“選擇排序法”對(duì)數(shù)組中的隨機(jī)數(shù)進(jìn)行升序排序。編寫程序如下:【答案】#include<iostream.h>#include<iomanip.h>#include<stdlib.h>void main ( ) int a 10 , i , k ; unsigned seed ; cout << "請(qǐng)輸入一個(gè)隨機(jī)數(shù)種子(無符號(hào)整數(shù))= " cin >

8、;> seed ; srand( seed ) ; cout << "數(shù)組中的內(nèi)容:" ; for ( i=0 ; i<10 ; i+ ) a i = rand()%900 + 100 ; cout << setw(6) << a i ; cout << endl ;int j , temp ; cout << "排序前:" ; for ( i=0 ; i<10 ; i+ ) cout << setw(6) << a i ; cout <<

9、endl ; for ( i=0 ; i<9 ; i+ ) temp = a i ; k = i ; for ( j = i+1 ; j<10 ; j+ ) if ( temp > a j ) temp = a j ; k = j ; if ( k != i ) temp = a i ; a i = a k ; a k = temp ; cout << "排序后:" ; for ( i=0 ; i<10 ; i+ ) cout << setw(6) << a i ; cout << endl ; 3編寫

10、程序:隨機(jī)產(chǎn)生10個(gè)四位數(shù)的整數(shù)并存入數(shù)組中,用“冒泡排序法”對(duì)數(shù)組中的隨機(jī)數(shù)進(jìn)行降序排序。編寫程序如下:【答案】#include<iostream.h>#include<iomanip.h>#include<stdlib.h>void main ( ) int a 10 , i , k ; unsigned seed ; cout << "請(qǐng)輸入一個(gè)隨機(jī)數(shù)種子(無符號(hào)整數(shù))= " cin >> seed ; srand( seed ) ; cout << "數(shù)組中的內(nèi)容:" ; f

11、or ( i=0 ; i<10 ; i+ ) a i = rand()%900 + 100 ; cout << setw(6) << a i ; cout << endl ; int j , temp ; cout << "排序前:" ; for ( i=0 ; i<10; i+ ) cout << setw(6) << a i ; cout << endl ; for ( i=0 ; i<9 ; i+ ) for ( j=9 ; j>i ; j- ) if ( a

12、j > a j-1 ) temp = a j ; a j = a j-1 ; a j-1 = temp ; cout << "排序后:" ; for ( i=0 ; i<10 ; i+ ) cout << setw(6) << a i ; cout << endl ;4編寫程序:隨機(jī)產(chǎn)生10個(gè)二位數(shù)的整數(shù)并存入數(shù)組中,再從鍵盤上任意輸入一個(gè)要查找的整數(shù),用“順序查找法”在數(shù)組中進(jìn)行查找。編寫程序如下:【答案】#include<iostream.h>#include<iomanip.h>#in

13、clude<stdlib.h>void main ( ) int a 10 , i , k ; unsigned seed ; cout << "請(qǐng)輸入一個(gè)隨機(jī)數(shù)種子(無符號(hào)整數(shù))= " ; cin >> seed ; srand( seed ) ; cout << "數(shù)組中的內(nèi)容:" ; for ( i=0 ; i<10 ; i+ ) a i = rand()%90 + 10 ; cout << setw(6) << a i ; cout << endl ; co

14、ut << "請(qǐng)輸入要查找的數(shù):" ; cin >> k ; for ( i=0 ; i<10 ; i+ ) if ( a i = k ) cout << k << " 已找到!n " ; return ; cout << k << "未找到!n " ; 5編寫程序:隨機(jī)產(chǎn)生10個(gè)二位數(shù)的整數(shù)并存入數(shù)組中,對(duì)其進(jìn)行升序排序,再從鍵盤上任意輸入一個(gè)要查找的整數(shù),用“折半查找法”在數(shù)組中進(jìn)行查找。編寫程序如下:【答案】#include<iostream.h

15、>#include<iomanip.h>#include<stdlib.h>void main ( ) int a 10 , i , j,low , high , mid ,k ; unsigned seed ; cout << "請(qǐng)輸入一個(gè)隨機(jī)數(shù)種子(無符號(hào)整數(shù))= " ; cin >> seed ; srand( seed ) ; cout << "數(shù)組中的內(nèi)容:" ; for ( i=0 ; i<10 ; i+ ) a i = rand()%90 + 10 ; cout <

16、;< setw(6) << a i ; cout << endl ; for ( i=0 ; i<9 ; i+ ) for ( j=i+1 ; j<10 ; j+ ) if ( a i > a j ) k = a i ; a i = a j ; a j = k ; cout << "數(shù)組中的內(nèi)容(排序后):" ; for ( i=0 ; i<10 ; i+ ) cout << setw(4) << a i ; cout << endl ; cout << &qu

17、ot;請(qǐng)輸入要查找的數(shù):" cin >> k ; for ( low=0 , high=9 ; low <= high ; ) mid = ( low + high ) / 2 ; if ( a mid = k ) cout << k << "已找到!n " ; exit( 0 ) ; if ( k > a mid ) low = mid+1 ; else high = mid-1 ; cout << k << "未找到!n " ; 1編寫程序:有數(shù)組int a 12 ;

18、找出該數(shù)組中的最大元素及其下標(biāo)、最小元素及其下標(biāo)。要求用指針實(shí)現(xiàn)。編寫程序如下:【答案】#include<iostream.h>void main()int a12,*p,i,j=0;cout<<" please input 12 integer numbers"<<endl;for(i=0;i<12;i+)cin>>ai;for(i=0;i<12;i+)if(aj<ai)j=i;p=&aj;cout<<"the max number is a"<<j+1&

19、lt;<"="<<*p<<endl; for(i=0;i<12;i+)if(aj>ai)j=i;p=&aj;cout<<"the min number is a"<<j+1<<"="<<*p<<endl; 2編寫程序:有數(shù)組int a 12 ; 并從鍵盤上輸入12個(gè)整數(shù)存入數(shù)組a中,然后將數(shù)組a中的數(shù)據(jù)按逆序存放,要求不能借助于其他數(shù)組,并用指針實(shí)現(xiàn)。編寫程序如下:【答案】#include<iostream.h>v

20、oid main()int a12,*p1,*p2,t,i;cout<<"please input 12 integer numbers"<<endl;for(i=0;i<12;i+)cin>>ai;cout<<"the former numbers are"for(i=0;i<12;i+)cout<<ai<<"t"cout<<endl;for(p1=a,p2=a+11;p1<p2;p1+,p2-)t=*p1;*p1=*p2;*p2=

21、t;cout<<"after transmation"for(i=0;i<12;i+)cout<<ai<<"t"cout<<endl;3編寫程序:隨機(jī)產(chǎn)生15個(gè)2288之間的整數(shù)并存入矩陣a 3 5 中,求矩陣a 3 5 的轉(zhuǎn)置矩陣b 5 3 ,并按矩陣形式輸出兩矩陣,要求用指針實(shí)現(xiàn)。編寫程序如下:【答案】#include<iostream.h>#include<iomanip.h>#include<stdlib.h>void main()int a35,b53,*

22、p,*q,i,j,t;unsigned seed;cout<<"please input a seed number"<<endl;cin>>seed;srand(seed);for(i=0;i<3;i+)for(j=0;j<5;j+)aij=rand()%66+22;cout<<"a35 =n"for(p=(int*)a,i=0;i<15;i+)if(i&&(i%5=0)cout<<endl;cout<<*p+<<'t'

23、cout<<endl;for(i=0;i<3;i+)for(j=0;j<5;j+)bji=aij;cout<<"b35 =n"for(q=(int*)b,j=0;j<5;j+)for(i=0;i<3;i+)cout<<bji<<"t"cout<<endl;1根據(jù)給出的運(yùn)行結(jié)果,完善下面程序。運(yùn)行結(jié)果:第1遍輸出:Turbo CVisual C+Borland C+第2遍輸出:Turbo CVisual C+Borland C+# include < iostream

24、.h >void main() int i ;char *name = "Turbo C" , "Visual C+" , "Borland C+" ;cout << "第1遍輸出:" << endl ;for ( i=0; i<3; i+ )cout << name i << endl ;cout << "第2遍輸出:" << endl ;for ( i=0; i<3; i+ )cout <<

25、 ( name + i ) << endl ;【答案】 【答案】 *2根據(jù)給出的運(yùn)行結(jié)果,完善下面程序。運(yùn)行結(jié)果:第1遍輸出:Turbo CVisual C+Borland C+第2遍輸出:Turbo CVisual C+Borland C+#include<iostream.h>void main() int i ;char *name = "Turbo C" , "Visual C+" , "Borland C+" ;char p ;cout << "第1遍輸出:" <

26、< endl ;for ( i=0 ; i<3 ; i+ ) p = name + i ; /把name i 的地址賦給pcout << *p << "n" ; cout << "第2遍輸出:" << endl ;for ( i=0; i<3; i+ )cout << name << endl ;【答案】 *【答案】 i1函數(shù)find() 用來判斷數(shù)組a中的數(shù)據(jù)是升序、降序或無序。若為升序返回1,若為降序返回2,若為無序返回3 。形參n為數(shù)組a中有效整數(shù)的個(gè)數(shù)。#

27、include < iostream.h >int find ( int a , int n ) int s , i ;if ( a0 < a1 ) _;else s = 2 ;if ( s = 1 ) i = 1 ;while ( i < n-1 ) if (_ ) s = 3 ; break ; _; if ( s = 2 )for ( i = 1 ; _; i+ )if ( ai < ai+1 ) _; break ; return s ;void main ( ) int a 10 , k ;for ( k=0 ; k<10 ; k+ ) a k =

28、 2*k ;k = find( _, 10 ) ;switch ( k ) case 1 : cout << “升序n” ; break ;case 2 : cout << “降序n” ; break ;case 3 : cout << “無序n” ; 【答案】s=1【答案】ai>ai+【答案】break【答案】i<n-1【答案】s=3【答案】a2下面函數(shù)inverse的功能是使一個(gè)字符串按逆序存放,請(qǐng)?zhí)羁铡? include < iostream.h ># include < string.h >void inverse

29、 ( char str ) char m ;int i , j ;for ( i=0 , j=strlen(str)-1 ; i<_ ; i+ , _ ) m = str i ;str i = _;_; void main ( ) char s 100 ; cout << “請(qǐng)輸入一行字符:” ;cin.getline( s , 100 ) ;cout << “調(diào)用前字符串:” << s << endl ;inverse( s ) ;cout << “調(diào)用后字符串:” << s << endl ;【答案】

30、strlen(str)/2【答案】j-【答案】strj【答案】strj=m1參考輸出結(jié)果,完成填空。#include<iostream.h>void swap1 ( int p1 , int p2 ) int temp = p1 ; p1 = p2 ; p2 = temp ; void swap2 ( int &p1 , int &p2 ) int temp = p1 ; p1 = p2 ; p2 = temp ; void swap3 ( int *p1 , int *p2 ) int temp = *p1 ; *p1 = *p2 ; *p2 = temp ; v

31、oid swap4 ( int *p1 , int *p2 ) int *temp = p1 ; p1 = p2 ; p2 = temp ; void main ( ) int a = 3 , b = 6 ;swap1( ) ;cout << “a=” << a << “tb=” << b << endl ; /輸出:a=3 b=6a = 3 ; b = 6 ;swap2( ) ;cout << “a=” << a << “tb=” << b << endl ; /輸出:a=

32、6 b=3a = 3 ; b = 6 ;swap3( ) ;cout << “a=” << a << “tb=” << b << endl ; /輸出:a=6 b=3a = 3 ; b = 6 ;swap4( ) ;cout << “a=” << a << “tb=” << b << endl ; /輸出:a=3 b=6【答案】 a, b【答案】 a, b【答案】 &a, &b【答案】 &a, &b2下面函數(shù)inverse的功能是使一個(gè)字符串按

33、逆序存放,請(qǐng)?zhí)羁铡? include < iostream.h ># include < string.h >void inverse ( char *str ) char m ; int i , j ; for ( i=0 , j=strlen( )-1 ; i<j ; i+ , ) m = *( str+ i ) ; *( str+ i ) = ; ; void main ( ) char s 100 ; cout << “請(qǐng)輸入一行字符:” ; cin.getline( s , 100 ) ; cout << “調(diào)用前字符串:” &l

34、t;< s << endl ;inverse( ) ; cout << “調(diào)用后字符串:” << s << endl ; 【答案】 str【答案】 j-【答案】 *(str+j)【答案】 *(str+i)【答案】 s3輸入一個(gè)字符串,串內(nèi)含有數(shù)字和非數(shù)字字符,將其中連續(xù)的數(shù)字串轉(zhuǎn)換為對(duì)應(yīng)的一個(gè)整數(shù),依次存放到另一個(gè)整型數(shù)組b中。例如:輸入字符串a(chǎn)bc2345up345rf78fd945,將2345存放到b0、345放入b1、。統(tǒng)計(jì)出字符串中所含整數(shù)的個(gè)數(shù),并輸出這些整數(shù)。#include<iostream.h>int cton(

35、 char *p1, int *p ) /轉(zhuǎn)換函數(shù),返回值是提取數(shù)字的個(gè)數(shù) int m, n = 0 ;char c;while ( )if ( c>='0' && c<='9' ) /遇到了一串連續(xù)數(shù)字字符中的第一個(gè) ; /將該數(shù)字字符轉(zhuǎn)換為一位數(shù)字while ( (c=*p1+) && c>='0' && c<='9' )m = m*10+(c-48) ; /將這一串連續(xù)的數(shù)字字符轉(zhuǎn)換為整數(shù)p n = m ; /將這個(gè)轉(zhuǎn)換好的整數(shù)存入數(shù)組 ; /提取出的整

36、數(shù)個(gè)數(shù)增加1return n ;void main( ) int i , n , a 20 ;char p 100 ;cout << "請(qǐng)輸入一行帶有數(shù)字的字符串:" ;cin.getline( p , 100 ) ;n = cton( ) ;cout << "字符串" << p << "中包含 " << n << "個(gè)整數(shù)為:n" ;for ( i=0 ; i<n ; i+ ) cout << a i << &#

37、39;t' ;cout << endl ;【答案】 c=p1+【答案】 m=c-48 【答案】 n+1【答案】 p,a1 編寫程序: 字符串處理函數(shù):char * stringcat ( char *s1, const char *s2 );功能:將字符串s2 拼接到 字符串s1 尾部,并將字符串s1 返回。編寫main()函數(shù) 對(duì)stringcat()函數(shù) 進(jìn)行測試。編寫程序如下:【答案】#include<iostream.h>#include<fstream.h>char *stringcat(char *s1,const char *

38、s2)char *p=s1;while(*p+);p-;while(*p+=*s2+);return s1;void main()char s150,s220;cout<<"please input two stings of wordsn"cin>>s1>>s2;cout<<"they aren"<<s1<<"n"<<s2<<endl;cout<<"拼接后"<<stringcat(s1,s2)<<endl;2編寫程序:字符串處理函數(shù):int stringlen ( const char *s );功能:求字符串s 中所含字符的個(gè)數(shù),并將該個(gè)數(shù)返回。編寫main()函數(shù) 對(duì)stringlen ()函數(shù) 進(jìn)行測試。編寫程序如下:【答案】#include<iostream.h>#include<fstream.h>int stringlen(const char *s)const char *p=s;int n=0;while(*p+)n+;return n;voi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論