c语言课后答案(共11页)_第1页
c语言课后答案(共11页)_第2页
c语言课后答案(共11页)_第3页
c语言课后答案(共11页)_第4页
c语言课后答案(共11页)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上第7章 数组习题解答一、在以下每一题的四个选项中,请选择一个正确的答案。【题7.1】 C【题7.2】 D【题7.3】 D【题7.4】 D【题7.5】 C【题7.6】 C【题7.7】 C【题7.8】 C【题7.9】 B【题7.10】 B二、判断下列各叙述的正确性,若正确在()内标记,若错误在()内标记×。【题7.11】 【题7.12】 【题7.13】 ×【题7.14】 ×【题7.15】 【题7.16】 ×【题7.17】 ×【题7.18】 ×【题7.19】 【题7.20】 ×三、填空。请在下面各叙述的空

2、白处填入合适的内容。【题7.21】 字符数组【题7.22】 0【题7.23】 4【题7.24】 按行的顺序存放【题7.25】 48【题7.26】 strcat( )【题7.27】 6【题7.28】 10【题7.29】 strcmp( )【题7.30】 #include <stdio.h>四、阅读下面的程序,写出程序运行结果。【题7.31】 abcdefg abcdef abcde abcd abc ab a【题7.32】 1 1 1 2 1 1 2 3 1 1 2 3 4 1【题7.33】 a2*b1=2 a4*b4=16 a6*b7=42【题7.34】 10 1 2 3 4 5

3、6 7 8 9五、程序填空。请在下面程序空白处填入合适的语句。【题7.35】 aj+=ai【题7.36】 arrayi>arrayj六、编程。对下面的问题编写程序并上机验证。【题7.37】 编写程序,用冒泡法对20个整数排序(按升序排序)。 /*lx7_1.c*/#include "stdio.h"#define N 20void main( ) int dataN; int i,j,t; printf("请输入 %d 个整数:n",N); for(i=0;i<N;i+) scanf("%d",&datai); p

4、rintf("n"); for(i=0;i<N; i+) for(j=0; j<N-i; j+) if(datai>dataj) t=datai; datai=dataj; dataj=t; printf("排序后的输出为:n"); for(i=0;i<N; i+) printf("%d ",datai);【题7.38】 编写程序,将一个数插入到有序的数列中去,插入后的数列仍然有序。 /*lx7_2.c*/#include "stdio.h"#define N 5void main( ) i

5、nt aN+1; int i,j,t,num; printf("请输入 %d 个整数:n",N); for(i=0;i<N;i+) scanf("%d",&ai); printf("n"); for(i=0;i<N-1;i+) for(j=i+1;j<N;j+) if(ai>aj) t=ai; ai=aj; aj=t; printf("第一次输出:n"); for(i=0;i<N;i+) printf("%d ",ai); printf("n&qu

6、ot;); printf("请输入一个数:"); scanf("%d",&num); if(num>=aN-1) aN=num; else if(num<a0) for(i=N-1;i>=0;i-) ai+1=ai; a0=num; else for(i=N-1;i>=0;i-) if(ai>num) ai+1=ai; else ai+1=num; break; printf("第二次输出:n"); for(i=0;i<N+1;i+) printf("%d ",ai);

7、printf("n");【题7.39】 编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。 /*lx7_3.c*/#include "stdio.h"#define N 10void main( ) int aN; int num,i; char ch='n' printf("请输入一个数组:n"); for(i=0;i<N;i+) scanf("%d",&ai); printf("输出数组:n"); for(i=0;

8、i<N;i+) printf("%d ",ai); printf("n"); printf("请输入一个数n"); scanf("%d",&num); printf("开始查找n"); for(i=0;i<N;i+) if(num= =ai) ch='y' printf("%d 在数组的第 %d 位n",num,i+1); if(ch= ='n') printf("no foundn");【题7.40】

9、若有说明:int a23=1,2,3,4,5,6;,现要将a的行和列的元素互换后存到另一个二维数组b中,试编程。 /*lx7_4.c*/#include "stdio.h"void main( ) int a23=1,2,3,4,5,6,b32; int i,j; for(i=0;i<2;i+) for(j=0;j<3;j+) printf("%dt",aij); printf("n"); for(i=0;i<2;i+) for(j=0;j<3;j+) bji=aij; for(i=0;i<3;i+) f

10、or(j=0;j<2;j+) printf("%dt",bij); printf("n"); 【题7.41】 定义一个含有30个整数的数组,按顺序分别赋予从2开始的偶数,然后按顺序每五个数求出一个平均值,放在另一个数组中并输出,试编程。 /*lx7_5.c*/#include "stdio.h"#define N 30#define M 5void main( ) int aN,sumN/M; float s; int i,j,k=0; for(i=0;i<N;i+) ai=2*(i+1); printf("%d

11、t",ai); printf("n"); for(i=0;i<N;i+=M) s=0; for(j=i;j<i+M;j+) s=s+aj; sumk+=s/M; for(i=0;i<N/M;i+) printf("%dt",sumi);【题7.42】 编写程序,在5行7列的二维数组中查找第一次出现的负数。 /*lx7_6.c*/#include "stdio.h"void main( ) int i,j,a57; printf("请输入一个二维数组n"); for(i=0;i<5;

12、i+) for(j=0;j<7;j+) scanf("%d",&aij); printf("n"); for(i=0;i<5;i+) for(j=0;j<7;j+) if(aij<0) printf("第一次出现的负数被找到!,负数值是%dn",aij); goto end1; end1: ;【题7.43】 从键盘上输入60个字符,求相邻字母对(如ab)出现的频率。/*lx7_7.c*/ #include "stdio.h"#include "string.h"#

13、define N 60void main( ) int i, len; char chN; float p,m=0; printf("请输入一个字符串:n"); scanf("%s",ch); len=strlen(ch); for(i=0;chi!='0' && i<N-1;i+) if(chi= =chi+1+1 | chi+1= =chi+1) m+; p=m/len; printf("相邻字母对出现的频率是 %fn",p);【题7.44】 编写程序,定义数组int a46, b46, c4

14、6,并完成如下操作:(1)从键盘上输入数据给数组a、b。(2)将数组a与数组b各对应元素作比较,如果相等,则数组c的对应元素为0,若前者大于后者,则数组c的对应元素为1;若前者小于后者,则数组c的对应元素为1。(3)输出数组c各元素的值。 /*lx7_8.c*/#include "stdio.h"void main( ) int i,j; int a46,b46,c46; for(i=0;i<4;i+) for(j=0;j<6;j+) scanf("%d",&aij); for(i=0;i<4;i+) for(j=0;j<

15、6;j+) scanf("%d",&bij); for(i=0;i<4;i+) for(j=0;j<6;j+) if(aij=bij) cij=0; else if(aij>bij) cij=1; else cij=-1; for(i=0;i<4;i+) for(j=0;j<6;j+) printf("%dt",cij); printf("n"); 【题7.45】 编写程序,从键盘上输入两个字符串a和b,要求不用strcat( )函数把串b的前五个字符连接到串a中,如果b的长度小于5,则把b的所有

16、元素都连接到a中。 /*lx7_9.c*/#include "stdio.h"#include "string.h"#define N 80void main( ) char aN,bN; int i,j,lena,lenb; printf("Please input first string:"); scanf("%s",a); printf("Please input second string:"); scanf("%s",b); lena=strlen(a); len

17、b=strlen(b); if(lenb<=5) for(i=lena,j=0;i<lena+lenb;i+) ai=bj+; ai='0' else for(i=lena,j=0;j<5;j+) ai+=bj; ai='0' printf("Output first string:"); printf("%sn",a);【题7.46】 编写函数,从一个排好序的整型数组中删去某数。/*lx7_10.c*/#define N 10#include "stdio.h"int dele(in

18、t str ,int y) int i, j, p=0; for(i=0; i<N; i+) if(stri= =y) j=i; p=1; break; if(p= =1) for(; j<=N-1; j+) strj=strj+1; return p;void main( ) int i, j, t, aN, x; printf("Input an array:n"); for(i=0; i<N; i+) scanf("%d",&ai); for(i=0; i<N-1; i+) for(j=i;j<N;j+) if

19、(ai>aj) t=ai,ai=aj,aj=t; printf("Input a data:"); scanf("%d",&x); if(dele(a,x) for(i=0;i<N-1;i+) printf("%d ",ai); else printf("no deleten");【题7.47】 编写函数,它将无符号整数转换成二进制字符表示。/*lx7_11.c*/#include "stdio.h"void dtob(unsigned m) char str17; int

20、i,n; n=m; for(i=15;i>=0;i-) if(m%2= =1) stri='1' else stri='0' m=m/2; str16='0' printf("n=%dt%sn",n,str);void main( ) unsigned num; printf("Please input a integer:"); scanf("%d",&num); dtob(num);【题7.48】 编写函数lower( )模拟标准函数strlwr( ),调用形式为low

21、er(char *st),其作用是将字符串st中的大写字母转换成小写。/*lx7_12.c*/#include "stdio.h"#define N 20void lower(char *st) int i=0; while(sti!='0') if(sti>'A' && sti<='Z') sti+=32; i+; void main( ) char sN; printf("Input a string:n"); scanf("%s",s); lower(s); printf("Output: %sn",s);【题7.49】 编写函数replicate( )模拟标准函数strset( ),调用形式为replicate (char *st,char

温馨提示

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

评论

0/150

提交评论