程序设计基础-c语言-第四章数组-教材答案-科学出版社_第1页
程序设计基础-c语言-第四章数组-教材答案-科学出版社_第2页
程序设计基础-c语言-第四章数组-教材答案-科学出版社_第3页
程序设计基础-c语言-第四章数组-教材答案-科学出版社_第4页
程序设计基础-c语言-第四章数组-教材答案-科学出版社_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、程序设计基础-c语言-第四章数组-教材习题及其答案1.0 编程将一个一维数组的值按逆序重新存放#includevoid main()int i_data10;int m,i_temp;printf(给定10个数,用空格分隔:);scanf(%d %d %d %d %d %d %d %d %d %d,&i_data0,&i_data1,&i_data2,&i_data3,&i_data4,&i_data5,&i_data6,&i_data7,&i_data8,&i_data9);for(m=1;m=10/2;m+) /有意写成10/2 已解决任意一维数组的逆序问题,为什么此处用m=1;m=10/

2、2,而不能m=0;m10/2i_temp=i_datam-1;/下面三条语句是典型的两数交换的方法i_datam-1=i_data10-m;i_data10-m=i_temp;for(m=0;m10;m+) printf(%d ,i_datam);printf(n); 2.0 编程求Fibonacci数列的前二十项。FIBONACCI数列的定义 F0=0,F1=1,Fn=Fn-1+Fn-2 #includevoid main()int F20;int m,n,i_blanknum; for(m=0;m20;m+) switch(m)case 0:F0=0;break;case 1:F1=1;b

3、reak;default: Fm=Fm-1+Fm-2; printf(Fibonacci数列的前20项是:n);for(m=0;m20;m+) printf(%d ,Fm);printf(n);/下面输出项,这是我加的效果for(m=0;m0)printf( );i_blanknum-;printf(n); 2.0 在一个从小到大排列的数组中查找X,若x存在就将其测出,若不存在将其添加。使修改后的数组仍然有序,并输出到屏幕上啊 #include#define Yes 1 /Yes说明x在数组中#define No 0 /No说明x不在数组中void main()int i_data10=10,

4、20,30,40,50,60,70,80,90;int x,i,j;int YN;/记录x是否在数组中 int Total=9;/数组元素实际个数printf(请输入一个数:);scanf(%d,&x);YN=No;/假定不在数组中/第1种情况:进行x在数组中查找和删除操作,要考虑数组中有多个x的值i=0;while(iTotal)if(x=i_datai)YN=Yes;for(j=i;jTotal-1;j+)i_dataj=i_dataj+1;Total-;elsei+;/第1中情况操作完成if(YN=No) /说明第1种情况不存在,应进行第2种情况操作,即增加for(i=0;iTotal;

5、i+) if(xi;j-)i_dataj=i_dataj-1;i_datai=x;Total+;break;/下面输出for(i=0;iTotal;i+) printf(%d ,i_datai); printf(n); 4.0 将一个3*4二维数组的行和列的元素互换,存放到4*3的二维数组中,并输出元素 #includestdio.hvoid main()int a34,b43;int i,j;printf(n输入数组a34,输入一个数据请按Enter键n);for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&aij);/输入完毕 /开始转换和输出34printf(na

6、43n);for(i=0;i3;i+)for(j=0;j4;j+)bji=aij;printf(%6d,aij);printf(n);/转换完毕 /开始输出printf(nb43n);for(i=0;i4;i+)for(j=0;j3;j+)printf(%6d,bij);printf(n);/输出完毕 5.0 第五题 利用循环,使得10*10的二维数组元素具有以下值,并把内容输出到屏幕数01234567891234567890 2345678901 3456789012 4567890123 5678901234 6789012345 7890123456 8901234567 9012345

7、678 #includevoid main()int s1010;int m,n;for(m=0;m10;m+)for(n=0;n10;n+)smn=(m+n)%10;printf(%5d,smn);printf(n); 6.0 输入一个字符串,判断它是否回文,所谓回文是值字符串字符串正序和逆序一样的,如abcdcba就是回文。 #include stdio.h#include void main()char str101;int str_len,i,comparetimes;int isSame;/记录是否是回文字符串,其值=0,则不是,=0则是/输入字符串,要控制不能100个字符,所以用g

8、etcharprintf(请输入一个字符串(最多100个字符),按Enter结束输入n);for (i=0;i100;i+)stri=getchar();if(stri=n) break;stri=0;/将最后的回车符n改成0其目的是形成字符串数组,以便用字符串函数对字符串操作,方便!/判断是否是回文字符串的算法是把第1个字符和最后1个字符比较,第2个字符和倒数第2个字符比较,如此,/都相同则是回文字符串,只要有一对字符不同就不是isSame=1;/假定当前字符串是回文字符串str_len=strlen(str);comparetimes=str_len/2;/只需比较一半即可,for(i=0

9、;icomparetimes;i+)if(stri!=strstr_len-1-i)isSame=0; /有一对字符不同,则不用检查剩余的break;if(isSame=1)printf(该字符串是回文字符串!n);elseprintf(该字符串不是回文字符串!n); 7.0 统计一个字符串中的单词个数,字符串中二个空格之间的非空格字符可看做单词。 #include#includevoid main()char s100,s1100;int wordnum=0;/统计的单词个数int i,j,str_len;puts(请输入一个字符串:);gets(s);str_len=strlen(s);j=0;for(i=0;i0) /说明此时识别了一个单词wordnum+;s1j=0;printf(第%d个单词:%sn,wordnum,s1);j=0; printf(共有%d个单词,wordnum);printf(n); 8.0 将字符串s中所有长度为5的子字符串输出到屏幕上。所谓子串是指在字符串中连续截取若干的字符串所组成的字符串,被截取的原始字符串称为母串。 #include#includevoid main()char s100,s56;int i,

温馨提示

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

评论

0/150

提交评论