资源描述:
《c语言练习题库40题版答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、好好学习好好学习1.将所有的水仙花数保存到维数组a中。(所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153=1*1*1+5*5*5+3*3*3)#includeintmain(){ints[100]={0};inti;intk=0;//表示水仙花数的个数。inta,b,c;for(i=100;i<1000;i++){a=i%10;b=(i%100)/10;c=i/100;if(i==a*a*a+b*b*b+c*c*c){s[k]=i;printf("%d",s[k]);k++;}}}2.按下面的公式求sum的值。sum=1-
2、2+3-4+5-6+……+99–100#includeintmain(){inti;intk=1;intsum=0;for(i=1;i<=100;i++){sum=sum+k*i;k=-1*k;}printf("%d",sum);}好好学习3.编写代码,实现冒泡排序,并要求:(1)在有序的数组中,接着插入一个元素,新数组仍然有序(2)在数组中删除一个元素,新数组仍然有序(3)对该数组进行逆序存放好好学习#includeintmain(){voidsort(inta[],intm);inta[100]={1,22,55,8,9,
3、29,3,5,244,24};inti;intx;sort(a,10);for(i=0;i<10;i++){printf("%d",a[i]);}/*插入一个数后,仍然按序输出*/printf("");printf("请输入要插入的数字:");scanf("%d",&x);insert(x,a,11);for(i=0;i<11;i++){printf("%d",a[i]);}/*逆序输出序输出*/printf("");for(i=10;i>=0;i--){printf("%d",a[i]);好好学习}}voidinsert(intx,inta[],intm)
4、{voidsort(inta[],intm);a[m-1]=x;sort(a,m);}/*冒泡排序*/voidsort(inta[],intm)//m表示数组的个数{inti,j,t;for(i=0;ia[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}好好学习4.编写程序实现以下功能,能够将下面所示的6*6的二维矩阵读入并存储到二维数组中,并求其对角线之和,以及最大数,并输出最大数所在的行列下标。351626192433272123253192222720828331
5、710153053412141643629131811好好学习#includeintmain(){inti,j;inta[6][6]={{35,1,6,26,19,24},{3,32,7,21,23,25},{31,9,2,22,27,20},{8,28,33,17,10,15},{30,5,34,12,14,16},{4,36,29,13,18,11}};intmax=a[0][0];intcol,row;intsum=0;for(i=0;i<6;i++)for(j=0;j<6;j++){if(i==j
6、
7、i+j==5)sum=sum+a[i][
8、j];好好学习}printf("%d",sum);for(i=0;i<6;i++)for(j=0;j<6;j++){if(a[i][j]>=max){max=a[i][j];col=j;row=i;}}printf("max=%d,row=%d,col=%d",max,row,col);}好好学习5.对任意输入的5个字符数组进行排序比如:输入abcdeffdccccefg得到abccccdefefgfdc6.求2个数组的交集输入{5,6,7,9,10}{2,3,4,5,6}得到{5,6}#includeintmain(){inta[5]={
9、5,6,7,9,10};intb[5]={2,3,4,5,6};inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++){if(a[i]==b[j])printf("%d",a[i]);}好好学习}}7.求[m,n]之间既不能被7整除也不能被5整除的整数之和,m和n的值由键盘输入。例如,如果m和n的值分别为10和20,则计算结果为:106。#includeintmain(){intm,n;inti,sum=0;printf("请输入m和n:");scanf("%d%d",&m,&n);for(i=m;i<=n;i++){