C语言程序设计新编教程(第2版)答案第5章 数组答案_第1页
C语言程序设计新编教程(第2版)答案第5章 数组答案_第2页
C语言程序设计新编教程(第2版)答案第5章 数组答案_第3页
C语言程序设计新编教程(第2版)答案第5章 数组答案_第4页
C语言程序设计新编教程(第2版)答案第5章 数组答案_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

第五章数组习题答案1、填空题(1)14、0(2)常量表达式1、常量表达式2(3)以行优先存储(4)i*n+j+1(5)0,0(6)地址(7)1(8)string.h(9)2,1(10)for(i=0;i<20;i++)printf("%d",a[0]);2、选择题(1)-(5)BDDCD(6)-(10)CDDDB(11)-(15)BCDBD(16)-(20)BBBDD(21)-(25)CDDBD3、分析题(1)(2)LBLMNP(3)SW*(4)(5)4、程序设计题(1)用冒泡排序法对20个整数从大到小排序。#include<stdio.h>voidmain(){intarr[20];inti,j,temp,n=20;printf("请输入20个整数:");for(i=0;i<n;i++)scanf("%d",&arr[i]);for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++)if(arr[j]<arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}printf("排序后:\n");for(i=0;i<n;i++)printf("%d",arr[i]);printf("\n");}(2)求二维数组中最大最小值及其行列号。#include<stdio.h>voidmain(){inta[4][4],i,j,max,row1,column1;intmin,row2,column2;for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);max=a[0][0];row1=0;column1=0;min=a[0][0];row2=0;column2=0;for(i=0;i<4;i++)for(j=0;j<4;j++){if(max<a[i][j]){max=a[i][j];row1=i;column1=j;}if(min>a[i][j]){min=a[i][j];row2=i;column2=j;}}printf("max=%d,row=%d,column=%d\n",max,row1+1,column1+1);printf("min=%d,row=%d,column=%d\n",min,row2+1,column2+1);}(3)编程序求一个矩阵中的马鞍点。例如如下矩阵,第一行第二列中的30,是它所在的行中最小的数,同时又是它所在的列中最大的数,这样的数就是马鞍点。3230495615731928241737199835#include<stdio.h>intmain(){inta[4][4];intb[4];inti,j,t;intflag=0;//用于标示数组b中是否存在不是-1的元素printf("输入一个4*4二维数组:\n");for(i=0;i<4;i++){scanf("%d%d%d%d",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);}//找出每一行中最小的元素,并把列号存在数组b中for(i=0;i<4;i++){//默认每一行第一个元素为最小值b[i]=a[i][0];//引入一个循环变量t用来记录最小值的列号t=0;//把最小值的数值暂时存在b中,把最小值的列号暂时存在t中for(j=0;j<4;j++){if(b[i]>a[i][j]){b[i]=a[i][j];t=j;}}//如果一行中有两个相同的最小值,t等于-1for(j=0;j<4;j++){if(b[i]==a[i][j]&&j!=t){t=-1;}}//把最小值的列号存在b中b[i]=t;}for(i=0;i<4;i++){if(b[i]!=-1){for(j=0;j<4;j++){if(a[i][b[i]]<a[j][b[i]]){b[i]=-1;}elseif(a[i][b[i]]==a[j][b[i]]&&i!=j){b[i]=-1;}}}}for(i=0;i<4;i++){if(b[i]!=-1){flag=1;printf("鞍点为:a[%d][%d]\n",i,b[i]);}}if(flag==0){printf("没有鞍点");}}(4)编写程序实现从键盘中输入一行字符串,然后逆序输出。例如:输入字符串“abcd”,输出应为”dcba”。#include<stdlib.h>#include<string.h>intmain(){charstr[100];charptr[100];intn,i;printf("Inputastring:");gets(str);n=strlen(str);for(i=0;i<=n;i++){ptr[i]=str[n-i-1];}ptr[i-1]='\0';printf("Inversedresults:%s\n",ptr);}(5)从键盘中敲入三个字符串,找出最大的那个字符串并把它输出出来。#include<stdio.h>#include<stdio.h>#include<string.h>intmain(){charstr[3][100];inti,n=0;printf("输入三个字符串:\n");for(i=0;i<3;i++)gets(str[i]);for(i=1;i<3;i++){if(strcmp(str[i],str[n])>0)n=i;}printf("最大字符串是:\n%s\n",str[n]);}(6)编写程序求某班20位学生三门课(英语、数学、语文)总成绩,并按照总成绩从大到小排序。#include<stdio.h>#defineN20intmain(){inti,j,x,y,z,r,a[N];for(i=1;i<=N;i++){scanf("%d%d%d",&x,&y,&z);a[i-1]=x+y+z;}for(i=0;i<N;i++){for(j=0;j<

温馨提示

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

评论

0/150

提交评论