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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

天津大学C++上机考试复习题Word格式文档下载.docx

1、 int i, j, k; for(i=1;n; k=xi; j=i; /把待排序元素存入中间变量,设置插入指针j while(k0) xj=xj-1; /后移 j-; xj=k; /插入2. 定义一个二维数组a并用下列数据初始化。输入一个数,在数组中进行顺序查找,找到时输出该数的下标,否则输出“没有找到”(用查找函数int seqsearch(int a6, int x, int &m, int &n)完成)。编写一个直接选择排序函数void select(int x, int m, int n)对每一行元素排序,输出排序后的数组。/两种传递二维数组的方式int seqsearch(int

2、a6, int x, int &n); /顺序查找函数,二维数组作形参,6不可省略!void select(int x, int m, int n); /直接选择排序。一维数组作形参,因需处理二维数组,故要传递行列数 m n int a46= 12,34,38,20,82,17, 30,18,25,13,56,21, 45,39,15,24,19,32, 11,76,40,41,64,43, ; int i, j, x, m, n;输入需查找的数: cinx; if(seqsearch(a,x,m,n) cout(i,j)=m, nendl /注意:形参是二维数组,须用数组名a作实参 else

3、 cout没有找到nn select(a0, 4, 6); /调用排序函数,降阶处理:采用一维形式处理二维数组。(因此须用一维数组名a0作实参) /由于一次性传递整个数组,故效率高,是处理二维数组更为普遍的方式。要求对数组有较深入的了解。void select(int x, int m, int n) int h, i, j, k, t; for(h=0; hm; h+) / h 为需处理的行数(把数组x看作一行一行一字排开一维数组)n-1; i+) /直接选择排序算法,对一行(n个数)排序 k=i; /设置交换指针k for(j=i+1; j+) if(xjxk) k=j; /记录最小值元素

4、的下标 t=xi; xi= xk; xk=t; /与待排序元素xi交换 x+=n; /降阶处理的要点:由于数组名 x 是指针(变量),使它指向下一行。n) /顺序查找函数(挨个比较),找到返回1,否则返回0,下标由引用返回 int i, j, ok=0;4&!ok; i+) /双重循环条件:找到一个即停止循环,否则一直找到底 if(aij=x) ok=1; m=i; n=j; break; /找到!置ok为1,并记录下标。注意:函数中的m n 是主函数中m n 的引用(在不同函数中可以同名) return ok; /如没找到,ok保持为03. 定义一个二维数组a并用下列数据初始化。编写冒泡排序

5、函数 void bubble(int x, int n,float& av)对每一行元素排序,并计算每行元素的平均值。在main函数中输出原数组、按行输出排序后的数组及平均值。把平均值存到一个一维数组aver中)void bubble(int x, int n, float& av); int i, j; float aver4=0; i+) bubble(ai, 6, averi); /注意3个实参:ai,6 是数组名和长度,传递二维数组的一行, /averi是数组元素(相当于简单变量),地址传给引用形参av averixj+1) /出现逆序 k=1; t=xj; xj= xj+1; xj+

6、1=t; /重置 k ,交换逆序数对 i+; i+) av+=xi; /同时计算每行的平均值并由av回传 av=av/n;4. 定义一个二维数组int a4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16。定义函数int lsum(int x, int n, int &sum)返回每行元素之和并求所有元素之和,要求该函数中使用静态局部变量s存储二维数组总和。按行输出数组及每行之和,最后输出总和。定义数组void exch(int x4, int n)其功能是转置该数组并作如上操作。iomanip.hint lsum(int x, int, int& ); /求和函

7、数,返回每行之和。void exch(int x4, int); /转置函数 int a4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16; int i, j, sum; sum=0;setw(3)aij;setw(7)lsum(ai, 4, sum);total:sum if(mn) t=m; m=n; n=t; c=fact(m)/fact(n)/fact(m-n);Comb(,)=clong fact(int x) long f; if(x=0) f=1; else f=x*fact(x-1); return f;6. 定义一个整型数组a=11,27,19,

8、23,15,27,19,11,13,13,13,17,并且定义一个函数,int del(int x,int &m),该函数的功能为删除数组中所有重复的元素,并返回所删除元素的个数。输出原数组,和删除后的数组,分别用一行四位宽度输出,并输出所删除元素的个数c。int del(int x, int &m); int a=11,27,19,23,15,27,19,11,13,13,13,17; int i,n=12,c=0;setw(4)ai; c=del(a,n); elements deleted.nnm) /删除相同元素函数,返回删除个数,由于有元素的删除,所以数组长度 m 要相应改变,并回传

9、 int i, j, k, c=0; /算法:用xi与后面的元素逐个比较xj,有相同元素,则由 j 开始将后面的元素逐个前移(删除xj)m-1; if(xi=xj)xj /显示删除的元素 for(k=j; k0) /插入方法:k 从最后一个数开始比较,小则把数组元素后移 xi=xi-1; i-; /i为插入指针(下标) xi=k; n+; /插入,不要忘记数组长度增加!输入待查找的整数:a; if(j=bisearch(x, n, a)=0) cout该数下标为:j该数不存在!int bisearch(int a, int n, int b) /二分查找函数:要求待查序列必须是排序好的! in

10、t l=0, h=n-1, m; while(l=h) /循环条件:低边界小于等于高边界 m=(l+h)/2; /二分 if(am=b) break; else if(bh) return -1; /没找到,返回-1(不存在的下标) else return m; /找到,返回该数下标 8. 在主函数中定义一个字符串“We are learning C+ language. C+ is useful.”并显示。输入一个字符串(如“Fortran 95”)替换句中的“C+”。定义函数 void exch(char*)将其倒序。输出替换及倒序后的字符串。使用指针操作完成倒序运算。/字符串的操作练习,

11、并熟悉常用字符串函数的用法string.hvoid exch( char *); char s080=We are learning C+ language. C+ is useful. char st80, s120, *sp; int n, i;s0输入一个字符串: cin.getline(s1,20); /输入字符串的方式(可含空格) n=strlen(s1); /测定输入字符串的长度(字符数) for(i=0,sp=s0; *sp; i+,sp+) /工作指针sp指向初始字符串 s0 逐个字符查找 C+(子字符串) if(strncmp(sp, , 3)=0) /找到,(sp所指字串前

12、3个字符为) strcpy(st,sp+3); /把后面的内容复制到数组 st (保护起来) strcpy(sp,s1); /用输入的字符串 s1 替换 及其以后的内容,sp也可写为s0+i sp+=n-1; i+=n-1; /把指针以及下标值置于替换后字符串尾部 strcat(sp,st); /把保存在 st 中原字符串的其余部分再复制回来,完成一次替换。继续如上过程替换后面的 exch(s0);void exch(char* str) /倒序函数 char *p, *q, c; p=str; q=p+strlen(str)-1; /工作指针 p 指向字符串 str 首字符,q 指向尾字符

13、while(p=0 & *q=pop(s,t) q+; /正向 *q,逆向 pop(s,t) 逐个字符比较字符串,若完全相同(至 t0 )则为回文 if(t0) cout 是回文!n 不是回文!top) /入栈函数 top+; /栈顶指针(栈顶元素的下标)上移 sttop=c; /将字符 c 压入栈中(入栈一个元素)top) /出栈函数,返回栈顶元素 char c=sttop; /栈顶元素初始化 c top-; /栈顶指针下移,(出栈一个元素)10.输出19002100的所有闰年,要求每年7位宽度(每行10年)。输入一个日期:年(19002100)、月、日,求该日期为本年的第几天。编写返回每月

14、天数的函数,并对输入的年、月、日进行合理性检测。int md(int, int);inline int ly(int year) return (year%400=0|year%4=0&year%100!=0); int y, m, d, yd, i, k=1; for( i=1900;=2100; if(ly(i)i; if(k+%10=0) coutcoutd; while( !(y=1900 & y0 & m d=md(y,m) ); /输入合法性检测 yd=d; /当月的天数 i+) yd+=md(y,i); /累加前几个月的天数是 y 年的第 yd天nint md(int year, int month) /返回任意一个月份的天数 int n; switch (month) case 4: case 6: case 9: case 11: n=30; case 2: if(ly(year) n=29; else n=28; default: n=31; return n;

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

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