1 / 8
文档名称:

《C语言程序设计》李学刚数字资源9章 参考答案 1课堂实践答案 单元6 课堂实践答案.pdf

格式:pdf   大小:536KB   页数:8页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《C语言程序设计》李学刚数字资源9章 参考答案 1课堂实践答案 单元6 课堂实践答案.pdf

上传人:青山代下 2024/3/29 文件大小:536 KB

下载得到文件列表

《C语言程序设计》李学刚数字资源9章 参考答案 1课堂实践答案 单元6 课堂实践答案.pdf

相关文档

文档介绍

文档介绍:该【《C语言程序设计》李学刚数字资源9章 参考答案 1课堂实践答案 单元6 课堂实践答案 】是由【青山代下】上传分享,文档一共【8】页,该文档可以免费在线阅读,需要了解更多关于【《C语言程序设计》李学刚数字资源9章 参考答案 1课堂实践答案 单元6 课堂实践答案 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..-1编写程序求含有N个元素一维数组的最大值、最小值及它们的下标。要求:数组元素的输入、求最大值最小值及它们的下标通过函数实现,结果在主函数中输出。程序代码:#include#defineN5voidInput(intb[N]);voidMax(intb[N],intmax[2]);voidMin(intb[N],intmin[2]);intmain(){inta[N],min[2],max[2];Input(a);Max(a,max);Min(a,min);数组元素的最大值为:%d,下标为:数组元素的最小值为:%d,下标为:return0;}voidInput(intb[N]){//输入N个整数inti;请输入%d个整数:for(i=0;i<N;i++){}}voidMax(intb[N],intmax[2]){//求最大值及下标inti;max[0]=b[0];max[1]=0;:..for(i=1;i<N;i++){if(b[i]>max[0]){max[0]=b[i];max[1]=i;}}}voidMin(intb[N],intmin[2]){//求最小值及下标inti;min[0]=b[0];min[1]=0;for(i=1;i<N;i++){if(b[i]<min[0]){min[0]=b[i];min[1]=i;}}}-2将冒泡排序函数中控制趟数和每趟比较次数的初值均从0改为1,修改函数并实现降序排序。程序代码:#include#defineN10voidInput(intb[N]){//输入函数inti;请输入%d个整数:for(i=0;i<N;i++){}:..}voidBubbleSort(intb[N]){//冒泡排序函数inti,j,t;for(i=1;i<N;i++){//外层循环控制趟数for(j=1;j<N-i+1;j++){//内层循环控制每趟的比较次数if(b[j-1]<b[j]){t=b[j];b[j]=b[j-1];b[j-1]=t;}}}}voidPrint(intb[N]){//输出函数inti;for(i=0;i<N;i++){if(i%10==0)}}intmain(){inta[N];Input(a);排序前:Print(a);BubbleSort(a);:..排序后:Print(a);return0;}-3把m×n矩阵A的第i行变成第i列(i=1,2,…,m)得到的n×m矩阵称为矩阵A的转置矩阵,记为AT。编写程序求一个矩阵的转置矩阵,求得结果在主函数中输出。程序代码:#include#defineM3#defineN4voidtrans(inta[M][N],intb[N][M]){inti,j;for(i=0;i<M;i++)for(j=0;j<N;j++)b[j][i]=a[i][j];}voidInput(intb[M][N]){inti,j;请输入%d个整数for(i=0;i<M;i++)for(j=0;j<N;j++)}voidprint1(intb[M][N]){inti,j;for(i=0;i<M;i++){for(j=0;j<N;j++)}:..}voidprint2(intb[N][M]){inti,j;for(i=0;i<N;i++){for(j=0;j<M;j++)}}intmain(){intA[M][N],B[N][M];Input(A);转置前的矩阵为:print1(A);trans(A,B);转置后的矩阵为:print2(B);return0;}-4由键盘任意输入N个国家的英文名称,按英语词典规律(升序)排序后输出。程序代码:#include<>#include<>#defineN5voidsort(charstr[][80]){chart[80];inti,j;for(i=0;i<N-1;i++){for(j=0;j<N-1-i;j++):..{if(strcmp(str[j],str[j+1])>0){strcpy(t,str[j]);strcpy(str[j],str[j+1]);strcpy(str[j+1],t);}}}}voidshowstr(charstr[][80]){inti;for(i=0;i<N;i++){puts(str[i]);}}intmain(){charstr[N][80];inti;请输入%d个国家的英文名称for(i=0;i<N;i++){gets(str[i]);}sort(str);排序后国家的英文名称showstr(str);return0;}-5将用户输入的整数插入到按升序排好序的整数数组中,插入后仍然保持升序。:..程序代码:#include#defineN5voidinsert(inta[],intx){inti;for(i=N-1;i>=0&&a[i]>x;i--)a[i+1]=a[i];a[i+1]=x;}voidprintf(inta[],intn){inti;for(i=0;i<n;i++)}intmain(){intx,a[N+1]={2,12,18,22,33};现按升序排序的整数数组:printf(a,N);请输入待插入的整数:insert(a,x);插入后按升序排序的整数数组:printf(a,N+1);;return0;}-6编写求整数a的b次方函数voidpower(inta,intb)。要求对足够大的b能精确计算a的b次方,例如a的10000次方。程序代码:#defineN500000//a^b的位数,要足够大voidpower(inta,intb):..{staticintbit[N];//每个元素存放a^b的一位,初始化均为0inti=N-1,j,k,carry;j=a;//临时保存awhile(j)//把a的各位分解到bit[]中,{//个位在bit[N-1],十位在bit[N-2].....bit[i]=j%10;i--;j=j/10;}k=++i;//k表示最高位的下标,a有N-k位for(i=1;i<b;i++)//循环b-1次{carry=0;//carry表示进位数,开始进位数为0for(j=N-1;j>=k;j--){bit[j]=bit[j]*a+carry;carry=bit[j]/10;//处理进位bit[j]=bit[j]%10;//处理当前位if(j==k&&carry)//当处理到a最高位(即j==k)时,只要有//进位(即carry!=0),最高位下标前移k--;}}for(i=k;i<N;i++)}