1 / 17
文档名称:

c 编程大题总汇.docx

格式:docx   大小:56KB   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c 编程大题总汇.docx

上传人:guoxiachuanyue 2021/4/12 文件大小:56 KB

下载得到文件列表

c 编程大题总汇.docx

相关文档

文档介绍

文档介绍:编写程序如下:
【答案】
#in elude >
int sum (int n)
{
if(n==0|| n==1) retur n 1;
else return n+sum( n-1);
}
void mai n()
{
int n;
cout<<"please in put n:\n";
cin»n;
8山<<"1+2+3+...+"<< 门<<"="<<$口口( n)v<e ndl;
}
1 •编写程序:分别求出acm(5,3)、acm(4,2)、acm(5,5)的值。阿克曼函数定义如下:
{
n+1 m=0
acm ( m-1 , n ) n=0
acm ( m-1 , acm ( m, n-1 ) ) n>0,m>0
编写程序如下:
【答案】#include <>
int acm(i nt m, int n);
void mai n()
{
int m,n;
cout<v"please in put m and n:\n";
cin»m»n;
cout<v"acm( m,n)=" <<acm( m,n)v<en dl;
}
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( intn ); 功能是:将n逐位取出反序输出
函数:void f2( intn ); 功能是:将 n逐位取出正序输出
算法提示:重复除以10取余数,直到商为0为止;若函数中先输出余数,后递归调用,则为反序输出; 若函数中先递归调用,后输出余数,则为正序输出。
编写程序如下:
【答案】#include 〉
void f1(int n);
void f2(int n);
void mai n()
{
int n;
cout<<"please in put an int nu mber n=";
cin»n;
coutvv"n反序输出";
f1( n);
coutvve ndl;
coutvv"n正序输出";
f2(n);
coutvve ndl;
}
void f1(int n)
{
coutvv n%10;
if (n v10) return;
else f1(n/10);
}
void f2(i nt n)
丿 1 1 \ ■
{
if (n >10)
f2( n/10);
coutvv n%10 ;
return;
}
1 .编写程序:用“筛选法”求出 2〜80之间的所有素数,要求每行输出 4个素数。
编写程序如下:
【答案】#〉
#in cludevioma ni > void mai n ()
int
prime[ 39 ];
for
(
int i=0 , j=3
;iv39
;i++ , j+=2 ) prime[ i ] = j
for
(
i=0 ; iv39 ;
i++ )
if
( prime[ i ]
)
for ( j = i+1
;jv39
;j++ )
if (
prime[ j ] && prime[ j ] % prime[ i ] == 0
) prime[ j ] = 0 ;
cout << "2〜80 之间的素数:\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<>
#i ncludevioma >
#in clude<>
void mai n ()
{ int a[ 10 ] , i , k ;
un sig ned seed ;
cout <<