




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章自测练习参考答案一、选择题1.B或C 2.D 3.B 4.D 5.D 6.C和D 7.C 8.C 9.C 10.D(实际都正确)11.C 12.B 13.D 14.A 15.B 16.B 17.C 18.D 19.B 20.D21. D 22.B 23.D 24.D 25.D 26.D 27.C 28.A 29.A 30.A 31.D二、填空题1i=1 xi-12. &ai i%4=0 putchar(n);或printf(“n”);3. k=0; k=i j=0; j=i i=ak;ak=aj;aj=i; 4. 1 3 4 55. 求数组中正数的和并输出6The number
2、is :5,The average is:5.000000 7. 常量表达式 常量表达式8按行存放,即先存第一行,再存第二行,以此类推90 6100113012j=2 j>=013. 1 6 7 11 12 13 16 17 18 19 21 22 23 24 2514. j<=2 bji=aij15. 5816在第一条scanf语句后增加j=n; % / 将第三个printf语句中的输出项n换成j j=i; j>0; j17. 8 18. 60019. 在第三个for语句前增加s=0; k=0 aik*bkj printf(“n”);20. str0 并在第一个strcpy
3、语句后增加一行: if(strcmp(str1,s)<0) strcpy(s,str1); 最后的空为: s 三、编程题1参考程序如下:#include "stdio.h"#define N 10void main() int i,priceN; int max,min; float ave,sum; for(i=0;i<N;i+) scanf("%d",&pricei); max=min=price0; sum=ave=0; for(i=0;i<N;i+) sum+=pricei; if(pricei>max) max=
4、pricei; if(pricei<min) min=pricei; ave=(float)sum/N; printf("价格范围为%d-%d;平均价格为%.2fn",min,max,ave); 2选择排序的程序如下:#include "stdio.h"void main() int i,j,min,temp,a10; /*input*/ for(i=0;i<10;i+) scanf("%d",&ai); printf("n"); /* start to sort */ for(i=0;i<
5、;10-1;i+) min=i; for(j=i+1;j<10;j+) if(amin>aj) min=j; temp=ai; ai=amin; amin=temp; /*output*/ for(i=0;i<10;i+) printf("%5d",ai); 3冒泡排序的程序如下:#define N 10#include "stdio.h"void main() int i,j,m; int aN; for(i=0;i<N;i+) scanf("%d",&ai); for(i=1;i<N;i+)
6、for(j=0;j<N-i;j+) if(aj>aj+1) m=aj; aj=aj+1; aj+1=m; for(i=0;i<N;i+) printf("%5d",ai); printf("n"); 4。二分查找(或折半查找)程序如下:#include "stdio.h"#define n 10void main() int an,find; int x,i,top,bottom,mid; printf("input the sorted numbers:n"); for(i=0;i<n;i
7、+) scanf("%d",&ai); printf("input the number to find:n"); scanf("%d",&x); find=0;top=0;bottom=n-1; while(!find && top<=bottom) mid=(bottom+top+1)/2;if(x=amid) find=1; printf("x=%d position=%dn",x,mid);else if(x>amid) bottom=mid-1;elsetop=
8、mid+1; if(!find) printf("the number %d is not in the table",x); 5寻找指定的年龄并删除,若无则提示程序如下:#include "stdio.h"void main() int i,n,j,flag=0; int a10; printf("请输入10个年龄:n"); for(i=0;i<10;i+) scanf("%d",&ai); printf("再输入一个要删除的年龄:"); scanf("%d"
9、,&n); for(i=0;i<10;i+) if(ai=n) flag=1; break; if(flag) printf("有!n");for(j=i;j<10-flag;j+) aj=aj+1; else printf("无该年龄!n");for(i=0;i<10-flag;i+) printf("%5d",ai); printf("n");6插入排序的程序如下:#include "stdio.h"void main()int value,t1,t2,i,j;in
10、t a11=1,10,20,30,40,50,60,70,80,90;/在数组a中多设一个位置,以保存插入的数for(i=0;i<10;i+)printf("%5d",ai);putchar('n');scanf("%d",&value);if(value>a9)a10=value;elsefor(i=0;i<10;i+)if(ai>value)t1=ai;ai=value;for(j=i+1;j<11;j+)t2=aj;aj=t1;t1=t2;break;for(i=0;i<11;i+)pri
11、ntf("%5d",ai);putchar('n');7对称方阵检验的程序如下:#define N 5#include "stdio.h"void main()int aNN,i,j;int flag=0; /标识为对称方阵,若为1则不是printf("请输入%dx%d个数据:n",N,N);for(i=0;i<N;i+)for(j=0;j<N;j+)scanf("%d",&aij);for(i=0;i<N;i+)for(j=0;j<N;j+)if(aij!=aji)
12、 flag=1;break;if(flag) break;if(!flag) printf("你输入的对称方阵如下:n");else printf("你输入的非对称方阵如下:n");for(i=0;i<N;i+)for(j=0;j<N;j+)printf("%5d",aij);printf("n");8鞍点检验程序如下:#include "stdio.h"#define N 10#define M 10void main()int aNM;int i,j,flag,max,col;f
13、or(i=0;i<N;i+)for(j=0;j<M;j+)scanf("%d",&aij);putchar('n');for(i=0;i<N;i+)max=ai0;col=0;for(j=1;j<M;j+)if(aij>max)max=aij;col=j;/寻找第i行上的最大值,它位于第col列flag=0;/假定存在鞍点for(j=0;j<N;j+)/注意此处的j是作为行下标if(max>ajcol)/不是该列上的最小值flag=1;break;if(!flag)printf("行=%d,列=%d
14、,值=%dn",i,col,max);9矩阵填充程序如下:#define N 5#include "stdio.h"void main()int aNN,i,j;for(i=0;i<N;i+)for(j=0;j<N;j+)if(i+j=N-1) aij=0;if(i+j<N-1) aij=1;if(i+j>N-1) aij=-1;for(i=0;i<N;i+)for(j=0;j<N;j+)printf("%5d",aij);printf("n");10小写变大写程序如下:#include
15、"stdio.h"void main()char str="Happy New Year!"int i=0;while(stri!='0')if(stri>='a' &&stri<='z')stri=stri-32;i+;printf("%sn",str);11答案检查程序如下:#include "stdio.h"#include "string.h"void main() char pass_str80; /*定义字符
16、数组passstr*/ int i=0; /*检验答案*/ while(1) if(i=3) printf("你已三次输入错误答案。正确答案应是:Dennis Ritchie.n程序结束!n"); break; /*输入三次错误的答案,退出程序*/ else if(i>0) printf("再试一次:n");printf("请输入C语言的发明人:n");gets(pass_str); /*输入答案*/if(strcmp(pass_str,"Dennis Ritchie")!=0) /*答案错*/printf(
17、"答案错误!");elseprintf("Good!n");printf("你已通过测试!n");break;/*输入正确的答案,中止循环*/i+; /次数加1 12从一个字符串中删除指定字符的程序如下:#include "stdio.h"#include "string.h"void main() char p80,ch; int i=0,j; gets(p); scanf("%c",&ch); while(pi!='0') if(pi=ch) for(j=i;j<=strlen(p);j+) pj
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国防教育心得体会(甄选10篇)
- 职教对口高考题目及答案
- 某公司风险分级管控管理制度
- 秋季学期配班教师个人工作计划(5篇)
- 智能交通行业的前景分析
- 文旅融合发展路径探索
- 河北省保定市部分高中2025-2026学年高二上学期开学考试物理试卷
- 2025年成人心肺复苏考试试题及答案
- 2025年塔吊司机考试试题技巧及答案
- 考试水彩试题及答案
- 通信原理第7版樊昌信版新版
- 一汽商用车企业级BOM技术方案V1.7
- GB/T 19812.5-2019塑料节水灌溉器材第5部分:地埋式滴灌管
- GB/T 13808-1992铜及铜合金挤制棒
- 中国马克思主义与当代(社会问题)
- 光伏并网逆变器调试报告
- EMR术的配合要点
- 1844年经济学哲学手稿课件
- 痰培养的采集及药敏结果判读课件
- 家庭医生签约服务业务培训课件
- 1-商务沟通基本原理
评论
0/150
提交评论