版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 编写程序:用递归算法实现函数:int sum( intn );其功能是求1+2+3+n的值并返回。要求编写 主函数main()去调用递归函数sum()。 编写程序如下: 【答案】 #in elude viostream.h int sum (int n) if(n=0| n=1) retur n 1; else return n+sum( n-1); void mai n() int n; coutplease in put n:n; cinn; 8山1+2+3+.+ 门=$口口( n)v0,m0 编写程序如下: 【答案】#include int acm(i nt m, int n); v
2、oid mai n() int m,n; coutvplease in put m and n:n; cinmn; coutvacm( m,n)= acm( m,n)ven 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
3、);功能是:将n逐位取出反序输出 函数:void f2( intn );功能是:将 n逐位取出正序输出 算法提示:重复除以10取余数,直到商为0为止;若函数中先输出余数,后递归调用,则为反序输出; 若函数中先递归调用,后输出余数,则为正序输出。 编写程序如下: 【答案】#include viostream.h void f1(int n); void f2(int n); void mai n() int n; cout10) f2( n/10); coutvv n%10 ; return; 1 .编写程序:用“筛选法”求出280之间的所有素数,要求每行输出4个素数。 编写程序如下: 【答案】
4、#includeviostream.h #in cludevioma ni p.h 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 cout 280 之间的素数:n; for ( j=0 , i=0;i39;i+) if ( prime i ) cout setw(8) prime i ;j+ ; if (j%4 = 0) cout
5、endl ; 2 .编写程序:随机产生10个三位数的整数并存入数组中,用“选择排序法”对数组中的随机数进行升序排 序。 编写程序如下: 【答案】#include #i ncludevioma nip.h #in clude void mai n () int a 10 , i , k ; un sig ned seed ; cout seed ; sra nd( seed ); cout 数组中的内容:”; for (i=0 ;i10 ;i+) a i = ran d()%900 + 100 ; I, f.I-! cout setw(6) a i ; cout endl ; I .- int
6、j , temp ; cout 排序前:”; for (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 #i ncludevioma nip.h #in clude void mai n () int a 10 , i , k ; un sig ned seed ; cout seed ; sra nd( seed ); cout 数组中的内容:”; for (i=0 ;i10 ;i+) a i = ran d()%900 + 100 ; cout setw(6) a i ; cout endl ; int j , temp ; cout 排序前:”; for(i=0 ;i10;i+)cout setw(6)
8、a i ; cout endl ; for(i=0 ;ii ;j-) if ( a j a j-1 ) temp = a j ; a j = a j-1 ; a j-1 = temp ; cout 排序后:”; I for (i=0 ;i10 ;i+) cout setw(6) a i ; cout endl ; 、 4 .编写程序:随机产生10个二位数的整数并存入数组中,再从键盘上任意输入一个要查找的整数,用“顺 序查找法”在数组中进行查找。 编写程序如下: 【答案】#include #i ncludevioma nip.h #in clude void mai n () int a 10
9、, i , k ; un sig ned seed ; cout seed ; sra nd( seed ); cout 数组中的内容:”; for (i=0 ;i10 ;i+) a i = ran d()%90 + 10 ; cout setw(6) a i ; cout endl ; cout k ; for ( i=0 ;i10 ;i+ ) if ( a i = k ) cout k vv 已找到!n ; return ; cout k 未找到!n ; 5.编写程序:随机产生10个二位数的整数并存入数组中,对其进行升序排序,再从键盘上任意输入一个要 查找的整数,用“折半查找法”在数组中进
10、行查找。 仅供参考 编写程序如下: 【答案】#include #i ncludevioma nip.h #in clude void mai n () int a 10 , i , j,low , high , mid ,k ; un sig ned seed ; cout seed ; sra nd( seed ); cout 数组中的内容:”; for (i=0 ;i10 ;i+ a i = ran d()%90 + 10 ; cout setw(6) a i ; cout endl ; for (无符号整数) I! (i=0 ; for ( if i a j ) 数组中的内容(排序后)
11、(i=0 ; iv10 ;i+ j+ ) k = a i ; a i = a j ; a j = k ; . cout vv for cout endl ; cout k ; for ( low=0 , high=9 mid = ( low + high ) / 2 ; if ( a mid = k ) cout k a mid ) low = mid+1 ; 11、i else high = mid-1 ; cout k 未找到!n ; 1.编写程序:有数组int a 12 ;找出该数组中的最大元素及其下标、最小元素及其下标。 现。 编写程序如下: 【答案】#include ) cout s
12、etw(4) vv a i ; II. low ai; for(i=0;iv12;i+) if(ajvai) j=i; 仅供参考 p= coutthe max nu mber is avvj+1vv=vv*pvve ndl; for(i=0;iai) j=i; p= coutvthe min nu mber is avvj+1vv=vv*pv ai; coutvvthe former numbers are; for(i=0;iv12;i+)coutvvaivvt; /1I f.I/ coutvve ndl; for(p1=a,p2=a+11;p1vp2;p1+,p2-) I- t=*p1;*
13、p1=*p2;*p2=t; coutvvafter tran smati on; for(i=0;iv12;i+)coutvvaivvt; coutvve ndl; 3编写程序:随机产生15个2288之间的整数并存入矩阵a 3 5 中,求矩阵a 3 5 的转置矩阵 b 5 3 ,并按矩阵形式输出两矩阵,要求用指针实现。 编写程序如下: 【答案】#includeviostream.h #i ncludevioma nip.h #in cludevstdlib.h void mai n() int a3 5,b53,*p,*q,i,j,t; un sig ned seed; coutvvpleas
14、e in put a seed nu mbervve ndl; cin seed; sran d(seed); for(i=0;iv3;i+) for(j=0;jv5;j+) aij=ra nd()%66+22; couta35 =n; for(p=(i nt*)a,i=0;i15;i+) if(i coutvv*p+vvt: coutvve ndl; for(i=0;i void mai n() i nt i ; char *n ame= Turbo C , Visual C+ , Borla nd C+ ; cout vv 第 1 遍输出:vv endl ; for (i=0; iv3;
15、i+) cout vv n ame i vv endl ; cout vv 第 2 遍输出:vv endl ; for (i=0; iv3; i+) cout vv (n ame + i ) vv endl ; 【答案】 【答案】* 2 根据给出的运行结果,完善下面程序。 仅供参考 运行结果:第1遍输出: Turbo C Visual C+ Borla nd C+ 第2遍输出: Turbo C Visual C+ Borla nd C+ #in clude void mai n() i nt i ; char *n ame = Turbo C , Visual C+ , Borla nd C+
16、 ; char p ; cout 第 1 遍输出: endl ; for (i=0 ;i3 ;i+) p = name + i ;把 name i 的地址赋给 p cout *p n ; cout 第 2 遍输出: endl ; for (i=0;i3;i+) cout n ame endl ; 【答案】* 【答案】i 1 .函数find()用来判断数组a中的数据是升序、降序或无序。若为升序返回1,若为降序返回2,若为无 序返回3。形参n为数组a中有效整数的个数。 # in clude int find ( int a , int n ) int s , i ; if (a0 a1); els
17、e 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 mai n () 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 ”b reak ; case 3 :cout ai
18、+ 【答案】break 【答案】ivn-1 【答案】s=3 【答案】a 2 .下面函数in verse的功能是使一个字符串按逆序存放,请填空 # in clude # in clude voidin verse ( char str char m; int i ,j ; for (i=0 , j=strle n( str)-1 m = str i ; str i = void mai n () char s 100 ; cout 请输入一行字符: cin.getline( s , 100 ); cout 调用前字符串: in verse( s ); cout 调用后字符串: 【答案】strle
19、n(str)/2 【答案】j- 【答案】strj 【答案】strj=m 1 .参考输出结果,完成填空 i i+ , _ s endl ; ” s endl ; #in clude void swap1 ( int p1 , int p2 ) int temp = p1 ; p1 = p2 ; p2 = temp ; void swap2 ( int p1 = p2 ; p2 = temp ; void swap3 ( int *p1 ,int *p2) int temp = *p1 ; *p1 =*p2 ; *p2 = temp ; void swap4 ( int *p1 ,int *p2)
20、 int *temp = :p1 ; p1 = =p2 ; p2 = temp ; o void int swap1( mai n () a = 3 , b = 6 ; 仅供参考 cout a ” a= a tb= ” “ b endl ; /输出: a=3 b=6 a = 3 ; b = 6 ; swap2( ); cout a ” a= a tb= ” “ b endl ; /输出: a=6 b=3 a = 3 ; b = 6 ; swap3( ); cout a ” a= a tb= ” “ b endl ; /输出: a=6 b=3 a = 3 ; b = 6 ; swap4( );
21、cout a ” a= a tb= ” “ b endl ; /输出: a=3 b=6 【答案】a, b 【答案】a, b 【答案】 int i , j ; for (i=0 , j=strlen( )-1; ij ;i+ , .) m = *( st r+ i ); *( st叶 i )= ; void mai n () 1 char s 100 ; cout 请输入一行字符: J cin.getline( s , 100 ); cout 调用前字符串: s endl in verse(); cout 调用后字符串: s endl 【答案】 str 【答案】j- 【答案】*(str+j) 【
22、答案】*(str+i) 【答案】s 3. 输入一个字符串,串内含有数字和非数字字符,将其中连续的数字串转换为对应的一个整数,依次存放 到另一个整型数组 b中。例如:输入字符串abc2345up345rf78fd945 ,将2345存放到b0、345放入 b1、。统计出字符串中所含整数的个数,并输出这些整数 int *p ) 转换函数,返回值是提取数字的个数 #in clude int cton( char *p1, int m, n = 0 ; char c; while ( ) if ( c=0 p n = m ; return n ; /遇到了一串连续数字字符中的第一个 /将该数字字符转换
23、为一位数字 c=0 char p 100 ; cout 请输入一行带有数字的字符串:”; cin.getline( p , 100 ); n = cton(); cout 字符串 p 中包含 n 个整数为:n; for (i=0 ; in ; i+) cout a i t; cout endl ; 【答案】c=p1+ 【答案】m=c-48?; 【答案】n+1 【答案】p,a 1 .编写程序: 字符串处理函数:char * strin gcat ( char *s1, con st char *s2 ); 功能:将字符串s2拼接到 字符串s1尾部,并将字符串s1返回 编写main()函数 对st
24、ringcat()函数 进行测试。 编写程序如下: 【答案】#include #in clude char *stri ngcat(char *s1,c onst char *s2) char *p=s1; while(*p+); p-; while(*p+=*s2+); return s1; void mai n() char s150,s220; cout s1s2; coutvvthey arenvvs1vvnvvs2vvendl; coutvv拼接后stringcat(s1,s2)endl; 2. 编写程序: 字符串处理函数:int stri ngle n ( con st char *s ); 功能:求字符串s中所含字符的个数,并将该个数返回。 编写mai n()函数 对strin glen ()函数 进行测试。 编写程序如下: 【答案】#include #in clude int stri ngle n(const char *s) const char *p=s; int n=0; while(*p+)n+;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030智慧城市市场深入分析及市政数字化平台的构建与资本投资前景报告
- 2025-2030智慧城市基础设施行业市场供需分析竞争环境行业评估规划报告
- 2025-2030智慧城市基础设施建设现状分析及重点项目投资评估
- 2025-2030智慧城市交通信号系统市场现状供需分析及智能交通规划
- 2025-2030智慧园区项目开发运营管理与投资价值评估分析
- 2025-2030智慧商场建设项目市场经典分析及商业价值拓展研究报告
- 2025-2030智慧农业装备行业市场深度研究及未来趋势与前景展望报告
- 2025-2030智慧农业行业市场前景及农业生产及农产品供应链管理分析
- 2025-2030智慧农业行业市场供需情况分析及投资发展前景规划研究报告
- 2025-2030智慧农业行业供需要求特点及现代农业投资发展规划报告
- 《动物营养学》全套教学课件
- 职业病化学中毒考试试题及答案
- 2023-2024学年重庆市潼南区四年级(上)期末数学试卷
- 膝关节损伤术后康复运动康复方案设计
- 医保法律法规培训
- 新版苏教版三年级数学上册《间隔排列》教案
- 物流配送责任免除协议条款
- MRI常见伪影简介课件
- 安全工器具的检查及使用培训
- 中国黄酒酿造技术单选题100道及答案
- 前列腺癌内分泌治疗护理
评论
0/150
提交评论