好文档 - 专业文书写作范文服务资料分享网站

c++编程大题总汇

天下 分享 时间: 加入收藏 我要投稿 点赞

1.编写程序:用递归算法实现函数:int sum( int n ); 其功能是求 1+2+3+…+n 的值并返回。要求编写主函数main()去调用递归函数sum()。 编写程序如下: 【答案】

#include int sum (int n) { if(n==0||n==1) return 1; else return n+sum(n-1); }

void main() { int n; cout<<\ cin>>n; cout<<\} 1. 编写程序:分别求出acm(5,3)、acm(4,2)、acm(5,5)的值。阿克曼函数定义如下:

n+1 m=0

acm ( m , n ) = acm ( m-1 , n ) n=0

acm ( m-1 , acm ( m, n-1 ) ) n>0,m>0

编写程序如下:

【答案】#include int acm(int m, int n); void main() { int m,n; cout<<\ cin>>m>>n; cout<<\}

int acm(int m,int n) { if(m==0) return n+1; else { if(n==0) return acm(m-1,n); else return acm(m-1,acm(m,n-1)); } }

输入:5 3 输出:5

输入:4 2 输出:3 输入:5 5 输出:6 2. 编写程序:要求输入一个整数n,能够逐位取出正序或反序输出,用递归算法实现:

函数: void f1( int n ); 功能是:将 n 逐位取出反序输出 函数: void f2( int n ); 功能是:将 n 逐位取出正序输出

算法提示:重复除以10取余数,直到商为0为止;若函数中先输出余数,后递归调用,则为反序输出;若函数中先递归调用,后输出余数,则为正序输出。 编写程序如下:

【答案】#include void f1(int n); void f2(int n); void main() { int n; cout<<\ cin>>n; cout<<\反序输出\ f1(n); cout<

void f1(int n) { cout<

void f2(int n) { if (n>10) f2(n/10); cout<

}----------------------------------------------------

1.编写程序:用“筛选法”求出 2 ~ 80 之间的所有素数,要求每行输出4个素数。 编写程序如下:

【答案】#include #include void main ( )

{ int prime[ 39 ] ;

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 << \之间的素数:\\n\ for ( j=0 , i=0 ; i<39 ; i++ ) if ( prime[ i ] )

{ cout << setw(8) << prime[ i ] ; j++ ;

if ( j%4 == 0 )

cout << endl ; }

}

2.编写程序:随机产生10个三位数的整数并存入数组中,用“选择排序法”对数组中的随机数进行升序排序。

编写程序如下:

【答案】#include #include #include

void main ( )

{ int a[ 10 ] , i , k ; unsigned seed ;

cout << \请输入一个随机数种子(无符号整数)= \ cin >> seed ; srand( seed ) ; cout << \数组中的内容:\ for ( i=0 ; i<10 ; i++ ) { a[ i ] = rand()?0 + 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++ ) { 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个四位数的整数并存入数组中,用“冒泡排序法”对数组中的随机数进行降序排序。

编写程序如下:

【答案】#include #include

#include

void main ( )

{ int a[ 10 ] , i , k ; unsigned seed ;

cout << \请输入一个随机数种子(无符号整数)= \ cin >> seed ; srand( seed ) ; cout << \数组中的内容:\ for ( i=0 ; i<10 ; i++ ) { a[ i ] = rand()?0 + 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[ 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.编写程序:随机产生10个二位数的整数并存入数组中,再从键盘上任意输入一个要查找的整数,用“顺序查找法”在数组中进行查找。 编写程序如下:

【答案】#include #include #include void main ( )

{ int a[ 10 ] , i , k ; unsigned seed ;

cout << \请输入一个随机数种子(无符号整数)= \ cin >> seed ;

srand( seed ) ;

cout << \数组中的内容:\

for ( i=0 ; i<10 ; i++ ) { a[ i ] = rand()? + 10 ; cout << setw(6) << a[ i ] ; } cout << endl ;

cout << \请输入要查找的数:\ cin >> k ;

for ( i=0 ; i<10 ; i++ )

if ( a[ i ] == k ) { cout << k << \已找到!\\n \ return ; } cout << k << \未找到!\\n \ }

5.编写程序:随机产生10个二位数的整数并存入数组中,对其进行升序排序,再从键盘上任意输入一个要查找的整数,用“折半查找法”在数组中进行查找。 编写程序如下:

【答案】#include #include #include void main ( )

{ int a[ 10 ] , i , j,low , high , mid ,k ; unsigned seed ;

cout << \请输入一个随机数种子(无符号整数)= \ cin >> seed ;

srand( seed ) ;

cout << \数组中的内容:\

for ( i=0 ; i<10 ; i++ ) { a[ i ] = rand()? + 10 ; cout << 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 << \数组中的内容(排序后):\

for ( i=0 ; i<10 ; i++ ) cout << setw(4) << a[ i ] ; cout << endl ;

cout << \请输入要查找的数:\ 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.编写程序:有数组int a [ 12 ] ; 找出该数组中的最大元素及其下标、最小元素及其下标。要求用指针实现。

编写程序如下:

【答案】#include void main() {

c++编程大题总汇

1.编写程序:用递归算法实现函数:intsum(intn);其功能是求1+2+3+…+n的值并返回。要求编写主函数main()去调用递归函数sum()。编写程序如下:【答案】#includeintsum(intn){if(n==0||n==1)return1;elsereturnn+sum(n-1);}
推荐度:
点击下载文档文档为doc格式
3fyow35a3y3gzju6vsv034ka295j0v00cwm
领取福利

微信扫码领取福利

微信扫码分享