C编程(25题)

上传人:缘*** 文档编号:333172582 上传时间:2022-09-01 格式:PDF 页数:71 大小:4.42MB
返回 下载 相关 举报
C编程(25题)_第1页
第1页 / 共71页
C编程(25题)_第2页
第2页 / 共71页
C编程(25题)_第3页
第3页 / 共71页
C编程(25题)_第4页
第4页 / 共71页
C编程(25题)_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《C编程(25题)》由会员分享,可在线阅读,更多相关《C编程(25题)(71页珍藏版)》请在金锄头文库上搜索。

1、一、程序设计 共30题(共 计300分)第1题(1 0.0分)题 号:5 2 1/*-【程序设计】题目:找出二维整型数组a 4 4 中每行元素的最大值,并将该元素移动至该行首列。编写程序:1、编写 v o id f in d m a x (in t a N,in t n )函数:找出二维数组a中每行元素的最大值,并将该元素的列下标存入数组n中,即第0行元素最大值的列卜标存入n 0 ,.,第3行元素最大值的列下标存入n 3。2、编写 v o id m o v e(in t a N,in t n口)函数:根据数组n中保存的数据,将a数组中每行最大值元素移动到该行首列,要求移动后该元素与该行其他元素

2、的相对位置不变。例如:a数组的初始数据为:-2 1 3 6 92 5 4 0 1 1-8 3 1 0 1 64 7 5 2 0经过处理后a数组中数据为:1 3 62 5 41 6 -82 0 49 -20 1 13 1 07 5注意:请勿改动主函数m a in。中的任何语句。*/it in c l u d e in c l u d e d e f in e N 4v o id f in d m a x(in t a N,in t n )/*Pr o gr a iii*/*En d */)v o id m o v e(in t a N,in t n )/*Pr o gr a n i*/*En d

3、 */)v o id m a in ()in t i,j;in t a N N =-2,1 3,6,9,2 5,4,0,1 1,-8,3,1 0,1 6,4,7,5,2 0,n 4 ;FI L E*f p;f in d m a x (a,n);m o v e (a,n);if (f p=f o p e n (z,d a t a.t x t ,w)=NU L L)p r in t f (z/o p e n f il e e r r o r n,z);e x it(0);)f o r(i=0;iN;i+)f o r(j=0;jN;j+)f p r in t f (f p,/%d t,/,a i j

4、);p r in t f a i j);)f p r in t f(f p,n);p r in t f (v n,z);)f c l o s e (f p);)答 案:v o id f in d m a x(in t a N,in t n )in t i,j,k;f o r(i=0;iN;i+)k=0;f o r(j=l;ja i k )k=j;n i=k;)v o id m o v e(in t a N,in t n )in t i,j,k,1;f o r(i=0;iN;i+)k=n i;w hil e(k!=0)l=a i 0 ;f o r(j=l;jN;j+)a l j-l =a i j

5、;a i 3 =1;k ;)第2题(1 0.0分)题号:5 2 2/*-【程序设计】题目:程序对一维数组a中数据进行升序排序后,对数组a中重复出现的数据,删除重复数据,保留一个。对只出现一次的数据则全部保留。编写程序:1 编写s o r t(in t a ,in t n)函数,对数组a中n个元素进行升序排序。2、编写 in t d e l e l e m(in t a ,in t n)函数,对数组 a 中 n 个数据删除重复数据,只保留个。对只出现次的数据则全部保留。函数返回数组中剩余元素的个数。例如:数组 a 的初始数据为:2,5,2,4,2 0,0,4,-5,-5,1 6,2,-4,2 0

6、。升序排序后为:-5,-5,-4,0,2,2,2,4,4,5,1 6,2 0,2 0。删除重复数据后为:-5,-4,0,2,4,5,1 6,2 0。注意:请勿改动主函数m a in()中的任何语句。-*/it in c l u d e#in c l u d e v o id s o r t (in t a ,in t n)/*Pr o gr a iii*/*En d */)in t d e l e l e m(in t a ,in t n)/*Pr o gr a m*/*En d */)v o id m a in ()in t a =1 2,2,1,-3,7,-3,4,1 5,2,0,1,1

7、5;in t n,i;FI L E*f p;n=s ize o f(a)/s ize o f(in t);s o r t (a,n);f o r(i=0;in;i+)pri ntfai);p r in t f(n);n=d e l e l e m(a,n);if (f p=f o p e n (d a t a,t x t”,w)二 二 NU L L)p r in t f(Fil e o p e n e r r o r nv);e x it (0);)f o r(i=0;in;i+)f p r in t f(f p,a i);p r in t f(%dt,a i);)p r in t f(n);

8、f c l o s e(f p);)答案:in t d e l e l e m(in t a ,in t n)in t i,j,k=0,1;f o r(k=0;k n-1;k+)i=k+l;w hil e(a k =a i)&(in)i+;l=i-k-l;f o r(j=i;jn;j+)a j-l =a j;n=n-l;r e t u r n n;)v o id s o r t(in t a ,in t n)in t i,j,k,x;f o r(i=0;in-l;i+)k=i;f o r (j=i+l;jn;j+)if(a j a k )k=j;if(k!=i)x=a i;a i=a k ;a

9、 k =x;第3题(1 0.0 分)题 号:5 2 3/*-【程序设计】题目:主函数m a in O中字符串s是由若干个八进制形式的数字字符串与$字符组成。程序先将每个八进制形式的数字字符串转换成十进制数值(每个数值都对应一个AS CI I 码字符),并依次存入数组t中,然后将t中存放的字符串逆序。例如:s 串为$1 6 2$1 4 5$1 6 4$1 6 5$1 6 0$1 5 5$1 5 7$1 4 3$”,经转换后,t中的字符串为 r e t u p m o c”,逆序后为“c o m p u t e r”。编写程序:1、编写 in t a b s t r a c t (c ha r s

10、 ,c ha r t 口)函数:将字符数组s中的所有八进制形式的数字字符串转换成十进制数值并存入字符数组t中。函数返回字符串t的长度。2、编写 v o id r e v e r s e (c ha r t ,in t l e n)函数:将长度为l e n 的字符串t 逆序。注意:请勿改动上函数m a in。中的任何语句。-*/in c l u d e in c l u d e in t a b s t r a c t(c ha r s ,c ha r t )/*Pr o gr a iii*/*En d */)v o id r e v e r s e(c ha r t ,in t l e n)/

11、*Pr o gr a iT i*/*En d */v o id m a in()c ha rs 1 0 0 =r$1 6 4$1 6 3$1 4 5$1 2 4$4 0$1 4 5$1 4 7$1 4 1$1 6 5$1 4 7$1 5 6$1 4 1$1 1 4$4 0$1 0 3$;c ha r t 1 0 0 ;in t l e n;FI L E*f p;l e n=a b s t r a c t (s,t);r e v e r s e (t,l e n);if(f p=f o p e n(d a t a,t x t ,w)=NU L L)p r in t f (/Fil e o p e

12、 n e r r o r n);e x it(0);)p r in t f (%s r T,t);f p r in t f (f p,%s n ,t);f c l o s e(f p);)答案:in t a b s t r a c t (c ha r s ,c ha r t )in t i=0,j=0;c ha r c;w hil e(s i)c=0;w hil e(s i !=$&s i !=0)c=c*8+s i+O;if(c!=0)t j+=c;c=0;i+;t j=O;r e t u r n j;)v o id r e v e r s e (c ha r t ,in t l e n)i

13、n t l=l e n/2,i=0;c ha r c;f o r(i=0;il;i+)c=t i;t i=t l e n-i-l ;t l e n-iT =c;)第4题(1 0.0分)题 号:5 2 4/*-【程序设计】题目:若一个数和该数的逆序数相同,就称该数为回文数。对于个非回文数,加上该数的逆序数后,其和可能是回文数。如和仍然是非回文数,则有限次重复上述步骤总能得到回文数。例如,8 7是非回文数,则8 7+7 8=1 6 5 1 6 5非回文数1 6 5+5 6 1=7 2 6 7 2 6 非回文数7 2 6+6 2 7=1 3 5 3 1 3 5 3 非回文数1 3 5 3+3 5 3

14、 1=4 8 8 4 4 8 8 4 回文数主函数m a in。从文件中读入个正整数,判断其是否是回文数。如果该数是回文,则输出该数,如果不是回文,则使用上述算法,求出回文数。编写程序:1、编写in t r e v e r s e (in t x)函数:求参数x的逆序数,并将该逆序数返回。2、编写in t is p a l in(in t x)函数:判断参数x是否是回文数,是回文数,函数返回真,否则函数返回假。3、编写in t p a l in(in t x)函数:如果参数x是回文数,函数返回x;如果x不是回文数,则根据上述算法求出回文数后,返回该回文数。注意:请勿改动主函数m a in。中的

15、任何语句。*/#in c l u d e#in c l u d e in t r e v e r s e(in t x)/*Pr o gr a m*/*En d */in t is p a l in(in t x)/*Pr()gr a in*/*En d */)in t p a l in(in t x)/*Pr o gr a m*/*En d */)v o id m a in ()in t x,y;FI L E*f p in,*f p o u t;if (f p in=f o p e n(/zin p u t.t x t ,r )二 二NU L L)p r in t f (z,T n p u

16、t f il e o p e n e r r o r nz,);e x it (0);)f s c a n f (f p in,d”,&x);f c l o s e(f p in);y=p a l in(x);p r in t f (in it ia l is%d nz,,x);p r in t f (,zp a iin d r o m e is%d n,z,y);if(f p o u t=f o p e n(d a t a.t x t ,w)=NU L L)p r in t f (Ou t p u t f il e o p e n e r r o r nz,);e x it(0);)f p r in t f(f p o u t,in it ia l is%d n,x);f p r in t f (f p o u t,z/p a l in d r o m e is%d nzz,y);f c l o s e(f p o u t);)答案:in t r e v e r s e (in t x)in t n=0;w hi l e(x)n =n*1 0+x%1 0;x /=1 0;)r e t

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号