天津大学2012年c++上机考试复习题_第1页
天津大学2012年c++上机考试复习题_第2页
天津大学2012年c++上机考试复习题_第3页
天津大学2012年c++上机考试复习题_第4页
天津大学2012年c++上机考试复习题_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上机考试复习题 12 1. 定义一个二维数组 a 并用下列数据初始化。编写一个直接插入排序函数 void insert(int x, int n)对每一行元素排序。并对每行元素最大值进行排序。要求:在 main 函数中输出原数组、排序后的数组、及排序后的最大值。 (提示:把每行最大值存 到一个一维数组 max 中) /利用同一个函数对二维数组的每行及最大值数组进行排序 #include void insert(int x, int n);/形参为一维数组,因只处理一维数组,故只需传递列 数(每行元素的个数) void main() int a46=12,34,38,20,82,17,30,18,25,13,56,21,45,39,15,24,19,32,11,76,4 0,41,64,43; int i, j, max4; for(i=0; i0) xj=xj-1;/后移 j-; xj=k;/插入 2. 定义一个二维数组 a 并用下列数据初始化。输入一个数,在数组中进行顺序查找,找到 时输出该数的下标,否则输出“没有找到” (用查找函数 int seqsearch(int a6, int x, int /顺序查找函数,二维数组作形参,6 不可省略! void select(int x, int m, int n);/直接选择排序。一维数组作形参,因需处理二维数组, 故要传递行列数 m n void main() 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; for(i=0; ix; if(seqsearch(a,x,m,n) cout void bubble(int x, int n, float void main() 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 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; float aver4=0; for(i=0; ixj+1)/出现逆序 k=1; t=xj; xj= xj+1; xj+1=t;/重置 k ,交换逆序数对 i+; for(i=0; i #include int lsum(int x, int, int/求和函数,返回每行之和。 void exch(int x4, int);/转置函数 void main() int a4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16; int i, j, sum; sum=0; for(i=0; i long fact(int x); void main() int c, m, n, t; cinmn; if(m #include int del(int x, int void main() int a=11,27,19,23,15,27,19,11,13,13,13,17; int i,n=12,c=0; for(i=0; i #include int bisearch(int a, int n, int b); void main() int x20=2,4,6,8,10,12,14,16,18;/因为要插入数据,数组定义要比实际数据大 int n=9, i, j, k, a; for(i=0; ik; while(k%2=0); i=n; while(k0)/插入方法:k 从最后一个数开始比较,小则把数组元素后 移 xi=xi-1; i-;/i 为插入指针(下标) xi=k; n+;/插入,不要忘记数组长度增加! for(i=0; ia; if(j=bisearch(x, n, a)=0) couth) return -1;/没找到,返回-1(不存在的下标) else return m;/找到,返回该数下标 8. 在主函数中定义一个字符串“We are learning C+ language. C+ is useful.”并显 示。输入一个字符串(如“Fortran 95” )替换句中的“C+” 。定义函数 void exch(char*)将其倒序。输出替换及倒序后的字符串。要求:使用指针操作完成倒序运 算。 /字符串的操作练习,并熟悉常用字符串函数的用法 #include #include void exch( char *); void main() char s080=“We are learning C+ language. C+ is useful.“; char st80, s120, *sp; int n, i; cout void push(char *st, char c, int char pop(char *st, int void main() char *p=“madam“, *q=p, s20; int t=-1;/设置空栈指针(数组下标) while(*q)/把指针 q 所指字符逐个压入堆栈 s 中 push(s, *q, t); q+; q=p;/重要!重置指针 q cout=0 /正向 *q,逆向 pop(s,t) 逐个字符比较字符串,若 完全相同(至 t #include int md(int, int); inline int ly(int year) return (year%400=0|year%4=0 void main() int y, m, d, yd, i, k=1; for( i=1900; iymd; while( !(y=1900 /输入合法 性检测 yd=d;/当月的天数 for(i=1; im; i+) yd+=md(y,i);/累加前几个月的天数 cout“是 “y“ 年的第 “yd“天n“endl; int md(int year, int month) /返回任意一个月份的天数 in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论