ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:20.69KB ,
资源ID:4330121      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4330121.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(习题六 解答.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

习题六 解答.docx

1、习题六 解答习题六一 选择题1 C 2 B 3 A 4 D 5 D 6 B 7 都正确 8 A 9 D 10 A11 A 12 B 13 D 14 A 15 B二 填空题1 按行排序 2 2,4 3 字符数组 4 数组第一个元素地址 5 0 6 1 5 9 2 6 10 3 7 114 8 12 7 * * * * * 8 * * * * *9 1 2 1 3 3 14 6 4 110 abcde11 i=1 xi-1 12 int flag, i scanf(”%s”,str1) stri!=str1i 13 i=10-j aiai+1 t=ai ai+1=t三 编程题1 #include

2、void main() int i,n=0; int a10; /* 定义一个数组,用来存放10个数 */ float avg=0; /* 定义一个变量,用来存放这10个数的平均值*/ int max,min; printf(请输入10个数:n); /* 提示输入10个数 */ /* 读入10个数,并求这些数的和 */ for(i=0;i10;i+) scanf(%d,&ai); max=min=a0; for (i=1;imax) max=ai; if (aimin) min=ai; avg+=ai; avg/=10; printf(最大值为:%d,最小值为: %d 平均值为: %f,max

3、,min,avg);2#include void main() int i,temp,n=0,k=0; int a10; /* 定义一个数组,用来存放10个数 */ int min; printf(请输入10个数:n); /* 提示输入10个数 */ /* 读入10个数,并求这些数的和 */ for(i=0;i10;i+) scanf(%d,&ai); min=a0; for (i=1;i10;i+) if (aimin) min=ai; k=i; if (k!=0) temp=a0; a0=ak; ak=temp; printf(“最终的数组为:n”);for(i=0;i10;i+) pri

4、ntf(“%d ”,ai); printf(n最小值为: %d ,下标为:%d,min,k);3# include # define N 6main ( ) int aNN=0, i=0, j=0; for (i=0; iN; i+) ai0=aii=1; /* 给第一列和对角线上的元素赋1 */ for (i=2; iN; i+) for (j=1; ji; j+) /*对角线上的元素已被赋值,所以就ji */ aij=ai-1j-1+ai-1j; /* 给其他元素赋值 */ for (i=0; iN; i+) for (j=0; j=i; j+) printf (“%5d”, aij);p

5、rintf (“n”);4【解】 程序如下:# include main ( ) float a46=0, sum=0; int i=0, j=0; for (i=0; i4; i+) for (j=0; j5; j+) aij=i*j+1; /* 给数组a的前五列赋值 */ for (i=0; i4; i+) /* 计算各行平均值,并存放在ai5上 */ sum=0;for (j=0; j5; j+) sum=sum+aij;ai5=sum/5; for (i=0; i4; i+) for (j=0; j6; j+) printf (“%5.1f”, aij);printf (“n”);运行

6、结果:1.0 1.0 1.0 1.0 1.0 1.01.0 2.0 3.0 4.0 5.0 3.01.0 3.0 5.0 7.0 9.0 5.01.0 4.0 7.0 10.0 13.0 7.05【解】 程序如下:# include main ( ) int i=0, j=0, k=0, p=0 a35=3,1,10,4,7, 22,32,5,15,6, 11,21,8,9,16; printf (“Before:n”); for (i=0; i3; i+) /* 找最大值所在元素的下标 */ for (j=0; j5; j+) printf (“%5d”, aij);printf (“n”)

7、; for (i=0; i3; i+) for (j=0; j5; j+) if (akpaij) k=i; p=j;i=akp; akp=a00; a00=i; /* 对调 */printf (“After:n”); for (i=0; i3; i+) for (j=0; j5; j+) printf (“%5d”, aij);printf (“n”);运行结果:Before: 3 1 10 4 722 32 5 15 611 21 8 9 16After:32 1 10 4 722 3 5 15 611 21 8 9 166【解】 编程点拨:用count统计单词数。统计单词的个数可按一下步

8、骤进行:(1)在字符串中找出第一个非空格字符。(2)如果第一个非空格字符为有效字符(即不等于”0”),count增1,即处理第一个单词。(3)在字符串中,只要一个空格和一个非空格字符(不能为”0”)连续存在,说明找到了新的单词,因此count增1。程序如下:# include main ( ) char a80=”; int i=0; count=0; gets (a); while (ai = = ) i+; /* 找第一个非空格字符 */ if (ai!=0) count+; /* 非空格字符为有效字符时 */ while (ai!=0) if (ai = =& ai+1!=& ai+1!

9、=0)count +; /*一个空格和一个非空格字符连续存在时 */i+;printf (“%s: %d Wordsn”,a,count);运行结果:|_| |_| I |_| am |_| OK|_| |_| I |_| am |_| OK: 3 Words7【解】 编程点拨:找鞍点的操作可以通过嵌套的for循环来实现。外层for循环用来控制二维数组的行数。在外层循环体中需要处理三件事情:(1)找每行中最大值所在的列下标;(2)判断该元素在本列上是否为最小;(3)判断是否找到了鞍点,若找到,输出后退出循环。程序如下:# include # define N 3# define M 4main

10、 ( ) int aNM=0, i=0, j=0, k=0, flag=0; printf (“Input %d data:”, N*M); for (i=0; iN; i+) /* 输入、输出二维数组 */ for (j=0; jM; j+) scanf (“%d”,&aij); printf (“%4d”, aij); printf (“n”); for (i=0; iN; i+) k=0; for (j=0; jM; j+) if (aikaij) k=j;flag=1; /* 不是鞍点时用0做标记 */for (j=0; jajk) flag=0;if (flag = =1) /* 若

11、是鞍点,则输出后提前退出循环 */ printf (“i=%d, k=%d, saddle point: %dn”,i,k,aik);break;if (i = =N) printf (“Not exist saddle point.n”); /* 如果正常退出循环,说明无鞍点 */第1次运行结果:Input 12 data: 1 2 3 4 5 6 7 8 9 10 11 121 2 3 45 6 7 89 10 11 12i=0,k=3,saddle point: 4第2次运行结果:Input 12 data: 1 2 30 4 5 6 7 8 9 10 11 121 2 30 45 6

12、7 89 10 11 12Not exist saddle point.8#include #define M 5#define N 3void main() int sum; int max,i,j,sMN; /* 用数组s存学生的每门课程的成绩 */ double avgM=0,meanN=0; /*avg每个学生的平均分,mean每门课程的平均分*/ /* 获取每个学生的每门课程的成绩,并计算学生平均成绩 */ for(i=0;iM;i+) printf(No.%d ,i+1); for(sum=0,j=0;jN;j+) scanf(%d,&sij); sum+=sij; avgi=1.

13、0*sum/N; max=s00; /* 计算每门课程的平均分 */ for(j=0;jN;j+) for(i=0;iM;i+) meanj+=sij; meanj=meanj/M; for (i=0;iM;i+) for (j=0;jN;j+) if (maxsij) max=sij; /* 输出考试情况 */ printf(学生 ); for(i=0;iN;i+) printf(课程%d ,i+1); printf(平均分n); for(i=0;iM;i+) printf(No.%d ,i+1); for(j=0;jN;j+) printf(%5d ,sij); printf(%6.1fn

14、,avgi); for (i=0;iN;i+) printf(平均: %5.1fn,meani); printf(最高分为: %dn,max);9#include #include void main() char str80; char c; printf(请输入字符串:n); gets(str); printf(请输入要删除的开始字符: ); scanf(%c,&c); int i,j=0; for(i=0;stri!=0;i+) if(stri=c) stri=0; break; printf(%sn,str);10【分析】字符串存入字符数组中,要逆序存放,就要将下标为0的字符串与下标最

15、大的字符交换,下标为1的字符与下标次最大的字符交换.,最大下标应为字符串长度-1.#include #include void main()char str20,t;int i,j;gets(str);j=strlen(str)-1;for(i=0;i=A & stri=a & stri=0 & stri=9) a2+; else a3+; for(i=0;i4;i+)printf(%s: %dn,namei,ai);运行结果:输入一个字符串:ahjYTBJ%655#21Upper:4;Lower:3;Digit:5;Other:4;12【分析】本题有两个关键:一是要找到插入的位置,二是要将插

16、入的位置及以后的元素向后平移一个元素,最后才能在插入的位置插入概述,程序如下。void main() int a11=3,5,8,11,15,19,23,26,33,i,j,x; /*定义数组预留一个插入位置*/ printf(输入一个数:); scanf(%d,&x); for(i=0;ix)break; for(j=9;j=i;j-)aj+1=aj; ai=x; for(i=0;i11,i+) printf(%3d,ai); printf(n);运行结果:输入一个数:18 3 5 8 11 15 16 18 19 23 26 3313【分析】两个矩阵的乘积必须满足条件:第一个矩阵的列数要等

17、于第二个矩阵的行数,乘积矩阵元计算公式为 ,程序如下。#include #define m 3;#define n 4;#define p 5;void main()int amn=1,2,3,4,5,6,7,8,9,10,11,12;int bnp=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20;int cmp,i,j,k;printf(C=n);for(i=0;im;i+) for(j=0;jp;j+) cij=0; for(k=0;kn;k+) cij+=aik*bkj; printf(%-7d,cij); printf(n);运行结

18、果:C=110 120 130 140 150 246 272 298 324 350382 424 466 508 55014#includevoid main() char str120,str220; int i=0; printf(输入第二个字符串:n); gets(str2); while(str1i=str2i)!=0) i+; printf(第一个字符串是:n); puts(str1);运行结果:输入第二个字符串:ABCDEFG第一个字符串是:ABCDEFG15源程序:/*计算字符串的有效长度*/#include int main(void) int i=0,len; char str80=Happy; /用字符串常量个初始化字符数组 /*计算字符串的有效长度*/ for(i=0;stri!=0;i+) /循环条件:stri!=0 ; / for的循环体语句为空 len=i; printf(len=%dn,len); for(i=0;stri!=0;i+) putchar(stri); return 0;运行结果: Len=5 Happy

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1