C语言第六章数组习题答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第六章数组习题答案一、选择题12345678910CDBDCDDBCC11121314151617181920DBBCDDCDBD21222324252627282930DDDDBDCCDC二、填空题1、y4x+y==22、043、064、&a[i]i%4==0printf(\n);5、i+j==3_a[i][j]6、127、a[i][j]+b[i][j]printf(“\n”)8、按行存放9、(a[i]a[j])10、将串str2复制到串str1中后再将串str3连接到串str1之后三、阅读题1、如右图所示2、AQM3、AzyD4、91985、如右图所示6、927、1,2,5,7,8、29、v1=5,v2=8,v3=6,v4=110、a*b*c*d*四、编程题1、以十个数排序为例,进行由小到大排(1)选择法排序#includestdio.hvoidmain(){inti,j,n=10,p,a[10];inttemp;for(i=0;in;i++)scanf(%d,&a[i]);//输入十个数printf(\n原始的一维数组是:\n);for(i=0;in;i++)printf(%5d,a[i]);/*输出原始的一维数组序列*/for(i=0;in-1;i++){p=i;/*假定第i趟中最小数的位置是i*/1题答案5题答案for(j=i+1;jn;j++)if(a[j]a[p])p=j;if(i!=p){temp=a[i];a[i]=a[p];a[p]=temp;}}printf(\n排序后的一维数组:\n);for(i=0;in;i++)printf(%5d,a[i]);/*输出排序后的一维数组序列*/}(2)比较法排序#includestdio.hvoidmain(){inti,j,n=10,p,a[10];inttemp;for(i=0;in;i++)scanf(%d,&a[i]);//输入十个数printf(\n原始的一维数组是:\n);for(i=0;in;i++)printf(%5d,a[i]);/*输出原始的一维数组序列*/for(i=0;in-1;i++)for(j=i+1;jn;j++)if(a[i]a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}printf(\n排序后的一维数组:\n);for(i=0;in;i++)printf(%5d,a[i]);/*输出排序后的一维数组序列*/}2、以在十个数据(由小到大排列的十个数)中插入一个数为例#includestdio.hvoidmain(){inta[11],i,n=10,k;intpoint;printf(\n请输入原始数据:\n);for(i=0;in;i++)scanf(%d,&a[i]);/*输入原始数据,输入的数据要从小到大*/printf(\n原始数据是:\n);for(i=0;in;i++)printf(%5d,a[i]);/*输出原始的一维数组序列*/printf(\n请输入要插入的数);scanf(%d,&k);/*输入要插入的数据*/for(i=0;in;i++)if(a[i]k){point=i;break;}if(i!=n){for(i=n;ipoint;i--)a[i]=a[i-1];a[point]=k;}/*从后向前方式*/elsea[n]=k;printf(插入后的数是:\n);for(i=0;in+1;i++)printf(%4d,a[i]);/*输出插入后的一维数组序列*/}3、#includestdio.hintmain(){inti,j,upp,low,dig,spa,oth;chartext[3][80];upp=low=dig=spa=oth=0;for(i=0;i3;i++){printf(pleaseinputline%d:\n,i+1);gets(text[i]);for(j=0;j80&&text[i][j]!='\0';j++){if(text[i][j]='A'&&text[i][j]='Z')upp++;elseif(text[i][j]='a'&&text[i][j]='z')low++;elseif(text[i][j]='0'&&text[i][j]='9')dig++;elseif(text[i][j]=='')spa++;elseoth++;}}printf(\nuppercase:%d\n,upp);printf(lowercase:%d\n,low);printf(digit:%d\n,dig);printf(space:%d\n,spa);printf(other:%d\n,oth);return0;}5、以5个数逆序存放为例,将n值修改,则可实现n个数逆序存放#includestdio.h#definen5//n为符号常量,值为5voidmain(){inti,a[n],t;for(i=0;in;i++)scanf(%d,&a[i]);//输入n个数for(i=0;in/2;i++)//将a[0]与a[4]交换,a[1]与a[3]交换,a[i]与a[n-1-i]交换{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}for(i=0;in;i++)//输出n个数printf(%5d,a[i]);printf(\n);}6、杨辉三角#includestdio.hvoidmain(){inti,j,a[10][10];for(i=0;i10;i++)for(j=0;j=i;j++)if(j==0||i==j)a[i][j]=1;elsea[i][j]=a[i-1][j]+a[i-1][j-1];for(i=0;i10;i++){for(j=0;j=i;j++)printf(%5d,a[i][j]);printf(\n);}}7、提高题:编写程序:#includestdio.h#includestring.hvoidmain(){chars1[80]={0},s2[80]={0};chara;inti,j,k;printf(请输入一段字符s1\n);gets(s1);printf(======================(1)============================\n);for(i=0;s1[i];i++);printf(%s的长度:%d\n,s1,i);printf(======================(2)============================\n);for(j=0;s1[j];j++){s2[j]=s1[j];}printf(将一个字符串S1的内容复制给另一个字符串S2:\n);puts(s2);printf(i:%d\n,i);printf(======================(3)============================\n);for(k=0;k=j;k++){s1[i]=s2[k];i++;}printf(将两个字符串S1和S2连接起来,结果保存在S1字符串中:\n);puts(s1);printf(======================(4)============================\n);printf(请输入要寻找的字母:);scanf(%c,&a);for(i=0;s1[i];i++){if(s1[i]==a)break;}if(!s1[i])printf(\n-1\n);elseprintf(\n%c在第%d个位置\n,a,i+1);8、与第5题同9、Fibonacci数列前20项数值#includestdio.hintmain(){inti;longf[20];f[0]=1;f[1]=1;for(i=2;i20;i++)f[i]=f[i-1]+f[i-2];for(i=0;i20;i++){if(i%5==0)printf(\n);//每行五个元素printf(%10ld,f[i]);}}10、输入10个元素,统计奇数的个数#includestdio.hvoidmain(){inti,num[10],count=0;for(i=0;i10;i++){printf(请输入第%d个数:,i+1);/*给予输入提示*/scanf(%d,&num[i]);if(num[i]%2!=0)count++;}printf(奇数个数是:%d\n,count);}11、下面程序的功能是从键盘输入一行字符,统计其中有多少单词。假设单词之间以空格分开。#includestdio.hintmain(){inti=0;intj;charbuff[512];scanf(%s,buff);while(buff[i]!='\0')if(buff[i]=='')j++;printf(wordnr:%d\n,j);return0;}12、编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和。#includestdio.hvoidmain(){inti,a[20],count=0,sum=0;for(i=0;i20;i++)scanf(%d,&a[i]);for(i=0;i20;i++)if(a[i]=0)count++;sum+=a[i];printf(个:%d,tot:%d,count,sum);}13、#includestdio.hvoidmain(){inti,j;inta[2][3]={{1,4,6},{8,10,12}};intb[2][3];for(i=0;i=1;i++){b[i][0]=a[i][2];for(j=1;j=2;j++)b[i][j]=a[i][j-1];}for(i=0;i=1;i++){for(j=0;j=2;j++)coutb[i][j];coutendl;}}14.不用函数strcat(),编程实现字符串连接函数strcat()的功能,将字符串srcStr连接到字符串dstStr的尾部。#includestdio.h#includestring.hmain(){inti,j,k;charstr[81]={\0},srcStr[40],dstStr40];gets(srcStr);gets(dstStr);j=strlen(srcStr),k=strlen(dstStr);for(i=0;ij+k;i++){if(ij)str[i]=srcStr[i];elsestr[i]=dstStr[i-j];}puts(str);}

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功