ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:21.96KB ,
资源ID:5238858      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5238858.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c+编程大题总汇.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c+编程大题总汇.docx

1、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; coutn; cout1+2+3+.+n=sum(n)0,m0编写程序如下:【答案】#include int acm(int m, int n);void main() int m,n; coutmn; coutacm(m,

2、n)=acm(m,n)endl;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 输出:62 编写程序:要求输入一个整数n,能够逐位取出正序或反序输出,用递归算法实现:函数: void f1( int n ); 功能是:将 n 逐位取出反序输出函数: void f2( int n ); 功能是:将 n 逐位取出正序输出算法提示:重复除以10取余数,直到商为0为止;若函数中先输出余

3、数,后递归调用,则为反序输出;若函数中先递归调用,后输出余数,则为正序输出。编写程序如下:【答案】#include void f1(int n);void f2(int n);void main() int n; coutn; coutn反序输出; f1(n); coutendl; coutn正序输出; f2(n); coutendl;void f1(int n) coutn%10; if (n10) f2(n/10); coutn%10 ; return;-1编写程序:用“筛选法”求出 2 80 之间的所有素数,要求每行输出4个素数。编写程序如下:【答案】#include#includevo

4、id main ( ) int prime 39 ; for ( int i=0 , j=3 ; i39 ; i+ , j+=2 ) prime i = j ; for ( i=0 ; i39 ; i+ ) if ( prime i ) for ( j = i+1 ; j39 ; j+ ) if ( prime j & prime j % prime i = 0 ) prime j = 0 ; cout 280之间的素数:n ; for ( j=0 , i=0 ; i39 ; i+ ) if ( prime i ) cout setw(8) prime i ; j+ ; if ( j%4 =

5、0 ) cout endl ; 2编写程序:随机产生10个三位数的整数并存入数组中,用“选择排序法”对数组中的随机数进行升序排序。编写程序如下:【答案】#include#include#includevoid main ( ) int a 10 , i , k ; unsigned seed ; cout seed ; srand( seed ) ; cout 数组中的内容: ; for ( i=0 ; i10 ; i+ ) a i = rand()%900 + 100 ; cout setw(6) a i ; cout endl ; int j , temp ; cout 排序前: ; fo

6、r ( i=0 ; i10 ; i+ ) cout setw(6) a i ; cout endl ; for ( i=0 ; i9 ; i+ ) temp = a i ; k = i ; for ( j = i+1 ; j a j ) temp = a j ; k = j ; if ( k != i ) temp = a i ; a i = a k ; a k = temp ; cout 排序后: ; for ( i=0 ; i10 ; i+ ) cout setw(6) a i ; cout endl ; 3编写程序:随机产生10个四位数的整数并存入数组中,用“冒泡排序法”对数组中的随机数

7、进行降序排序。编写程序如下:【答案】#include#include#includevoid main ( ) int a 10 , i , k ; unsigned seed ; cout seed ; srand( seed ) ; cout 数组中的内容: ; for ( i=0 ; i10 ; i+ ) a i = rand()%900 + 100 ; cout setw(6) a i ; cout endl ; int j , temp ; cout 排序前: ; for ( i=0 ; i10; i+ ) cout setw(6) a i ; cout endl ; for ( i

8、=0 ; ii ; j- ) if ( a j a j-1 ) temp = a j ; a j = a j-1 ; a j-1 = temp ; cout 排序后: ; for ( i=0 ; i10 ; i+ ) cout setw(6) a i ; cout endl ;4编写程序:随机产生10个二位数的整数并存入数组中,再从键盘上任意输入一个要查找的整数,用“顺序查找法”在数组中进行查找。编写程序如下:【答案】#include#include#includevoid main ( ) int a 10 , i , k ; unsigned seed ; cout seed ; sran

9、d( seed ) ; cout 数组中的内容: ; for ( i=0 ; i10 ; i+ ) a i = rand()%90 + 10 ; cout setw(6) a i ; cout endl ; cout k ; for ( i=0 ; i10 ; i+ ) if ( a i = k ) cout k 已找到!n ; return ; cout k 未找到!n ; 5编写程序:随机产生10个二位数的整数并存入数组中,对其进行升序排序,再从键盘上任意输入一个要查找的整数,用“折半查找法”在数组中进行查找。编写程序如下:【答案】#include#include#includevoid

10、main ( ) int a 10 , i , j,low , high , mid ,k ; unsigned seed ; cout seed ; srand( seed ) ; cout 数组中的内容: ; for ( i=0 ; i10 ; i+ ) a i = rand()%90 + 10 ; cout setw(6) a i ; cout endl ; for ( i=0 ; i9 ; i+ ) for ( j=i+1 ; j a j ) k = a i ; a i = a j ; a j = k ; cout 数组中的内容(排序后): ; for ( i=0 ; i10 ; i+

11、 ) cout setw(4) a i ; cout endl ; cout k ; for ( low=0 , high=9 ; low = high ; ) mid = ( low + high ) / 2 ; if ( a mid = k ) cout k a mid ) low = mid+1 ; else high = mid-1 ; cout k 未找到!n ; 1编写程序:有数组int a 12 ; 找出该数组中的最大元素及其下标、最小元素及其下标。要求用指针实现。编写程序如下:【答案】#includevoid main() int a12,*p,i,j=0; cout plea

12、se input 12 integer numbersendl; for(i=0;iai; for(i=0;i12;i+) if(ajai) j=i; p=&aj; coutthe max number is aj+1=*pendl; for(i=0;iai) j=i; p=&aj; coutthe min number is aj+1=*pendl; 2编写程序:有数组int a 12 ; 并从键盘上输入12个整数存入数组a中,然后将数组a中的数据按逆序存放,要求不能借助于其他数组,并用指针实现。编写程序如下:【答案】#includevoid main() int a12,*p1,*p2,t

13、,i; coutplease input 12 integer numbersendl; for(i=0;iai; coutthe former numbers are; for(i=0;i12;i+)coutait; coutendl; for(p1=a,p2=a+11;p1p2;p1+,p2-) t=*p1;*p1=*p2;*p2=t; coutafter transmation; for(i=0;i12;i+)coutait; coutendl;3编写程序:随机产生15个2288之间的整数并存入矩阵a 3 5 中,求矩阵a 3 5 的转置矩阵b 5 3 ,并按矩阵形式输出两矩阵,要求用指

14、针实现。编写程序如下:【答案】#include#include#includevoid main() int a35,b53,*p,*q,i,j,t; unsigned seed; coutplease input a seed numberseed; srand(seed); for(i=0;i3;i+) for(j=0;j5;j+) aij=rand()%66+22; couta35 =n; for(p=(int*)a,i=0;i15;i+) if(i&(i%5=0)coutendl; cout*p+t; coutendl; for(i=0;i3;i+) for(j=0;j5;j+) bj

15、i=aij; coutb35 =n; for(q=(int*)b,j=0;j5;j+) for(i=0;i3;i+) coutbjit; coutendl; 1根据给出的运行结果,完善下面程序。运行结果:第1遍输出:Turbo CVisual C+Borland C+第2遍输出:Turbo CVisual C+Borland C+# include void main() int i ;char *name = Turbo C , Visual C+ , Borland C+ ;cout 第1遍输出: endl ;for ( i=0; i3; i+ )cout name i endl ;cou

16、t 第2遍输出: endl ;for ( i=0; i3; i+ )cout ( name + i ) endl ;【答案】 【答案】 *2根据给出的运行结果,完善下面程序。运行结果:第1遍输出:Turbo CVisual C+Borland C+第2遍输出:Turbo CVisual C+Borland C+#includevoid main() int i ;char *name = Turbo C , Visual C+ , Borland C+ ;char p ;cout 第1遍输出: endl ;for ( i=0 ; i3 ; i+ ) p = name + i ; /把name

17、i 的地址赋给pcout *p n ; cout 第2遍输出: endl ;for ( i=0; i3; i+ )cout name endl ;【答案】 *【答案】 i1函数find() 用来判断数组a中的数据是升序、降序或无序。若为升序返回1,若为降序返回2,若为无序返回3 。形参n为数组a中有效整数的个数。# include 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 (

18、s = 2 )for ( i = 1 ; _; i+ )if ( ai ai+1 ) _; break ; return s ;void main ( ) int a 10 , k ;for ( k=0 ; k10 ; k+ ) a k = 2*k ;k = find( _, 10 ) ;switch ( k ) case 1 : cout “升序n” ; break ;case 2 : cout “降序n” ; break ;case 3 : cout ai+【答案】break【答案】in-1【答案】s=3【答案】a2下面函数inverse的功能是使一个字符串按逆序存放,请填空。# incl

19、ude # include void inverse ( 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 “请输入一行字符:” ;( s , 100 ) ;cout “调用前字符串:” s endl ;inverse( s ) ;cout “调用后字符串:” s endl ;【答案】strlen(str)/2【答案】j-【答案】strj【答案】strj=m1参考输出结果,完成填空。#i

20、ncludevoid 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 ; void swap4 ( int *p1 , int *p2 ) int *temp = p1 ; p1 = p2 ; p2 = temp ; void ma

21、in ( ) 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=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,

22、 &b2下面函数inverse的功能是使一个字符串按逆序存放,请填空。# include # include void inverse ( char *str ) char m ; int i , j ; for ( i=0 , j=strlen( )-1 ; ij ; i+ , ) m = *( str+ i ) ; *( str+ i ) = ; ; void main ( ) char s 100 ; cout “请输入一行字符:” ; ( s , 100 ) ; cout “调用前字符串:” s endl ;inverse( ) ; cout “调用后字符串:” s endl ; 【答案】 str【答案】 j-【答案】 *(str+j)【答案】 *(str+i)【答案】 s3输入一个字符串,串内含有数字和非数字字符,将其中连续的数字串转换为对应的一个整数,依次存放到另一个整型数组b中。例如: 输入字符串abc2345up345rf78fd945,将2345存放到b0、345放入b1、。统计出字符串中所含整数的个数,并输出这些整数。#includeint cton( char *p1, int *p ) /

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1