新概念C语言能力教程练习答案.doc

练习66.1 输入10个整数,计算它们的平均值。找出最小数,再找出与平均值最接近的整数。include stdio.hvoid mainint a10, min, pos, i;double ave, mdif, dif;min 0; ave 0;fori0; i10; iscanfd, ave ai;ifai aminmin i;ave / 10;printf平均值为.1f,最小数为d ave, amin;mdif ave - a0 0 ave - a0 a0 - ave;pos 0;fori1; i10; idif ave - ai 0 ave - ai ai - ave;ifdif mdifmdif dif;pos i;printf与平均值最接近的整数为dn, apos;6.2 输入20个1至5之间的整数,给出1至5每个数出现的次数。include stdio.hvoid mainint a6 0, i;fori0; i20; iscanfd, ifa0 5 a0 1printf输入错误;return;aa0;fori1; i6; iprintfd出现了d次n, i, ai;6.3 以十六进制的形式输出用户输入的十进制正整数。includestdio.h void mainint n;int a8, j0;scanfd, printfXn, n;whilen 0aj n 16;n / 16;j;forj; j0; jif aj 9printfc, Aaj-10;elseprintfd, aj;printfn;或者直接用printf函数输出正整数的十六进制形式printfx, n;6.4找出整型数组中的最大值,把它后面的元素依次前移一位,再把它放在数组的末尾。include stdio.hdefine N 5void main int numN, max, i, temp;max 0;fori0; iN; iscanfd, ifnumi nummaxmax i;temp nummax;forimax; iN-1; inumi numi 1;numi temp;printf处理后的数组为n;fori0; iN; iprintf d , numi;6.5 有一整型数组a1020,23,37,52,95,输入5个整数存储在a中,且要保持数组a中的元素按升序排列。include stdio.hvoid main int a1020,23,37,52,95, i, j, temp;fori0; i4; iscanfd, forj4i; j0 ajtemp; jaj 1 aj;aj 1 temp;printf添加元素后的数组为n;fori0; i10; iprintf d , ai;6.6 输入20个整数到数组num中,并对num中的偶数号元素按升序排序。include stdio.hdefine N 20void main int i, j, numN, temp;fori0; iN; iscanfd, fori2; iN; ii2 temp numi; forji; j0 tempnumj-2; jj-2 numj numj-2; numj temp; 按升序10个一行输出fori0; iN; iifi 10 0printfn;printf d , numi;printfn;6.7 输入一个5位无符号整数,输出构成这个整数的5个数字可以组成的整数中最大的及最小的5位整数(输入67890、10002测试)。include stdio.hvoid main int bit5, i, j, temp;unsigned num, max, min;max min 0;scanfu, fori0; i4; ibiti num 10;num / 10;fori1; i4; itemp biti; forji; j0 tempbitj-1; j bitj bitj-1; bitj temp;fori4; i0; imax max * 10 biti;fori0; i4; iifbiti 0temp biti;biti bit0;bit0 temp;break;fori0; i4; imin min * 10 biti;printf最大的5位整数为d,最小的为dn, max, min;6.8 分析下面的程序1. include stdio.hvoid main int i, j, a10, temp;fori0; i10; i ai i; printf3d, ai; i 0; j 9; whileij temp ai; ai aj; aj temp; i; j; printfnn; fori0; i10; i printf3d, ai;2.include stdio.hvoid main int a35 1;int i, k, n, m;forn2; n1000; nk 1; m n - 1; fori2; in; i ifn i 0 m - i; ak i; ifm 0 printfnd, n; forik-1; i0; i printfd , ai; printfdn, a0; 分析1. 对数组进行了倒置。循环结构的执行过程如下循环体循环控制tempai;aiaj;ajtemp;i;ja0a1 a2a3a4a5a6a7a8a9ijij0123456789091(真)a0a9互换0-19-89123456780181(真)a1a8互换1-28-79823456710271(真)a2a7互换2-37-69873456210361(真)a3a6互换3-46-59876453210451(真)a4a5互换4-55-49876543210540(假)退出不再执行不不循环控制条件改为ij时会出现什么情况有9个数组元素时,分析循环结构的执行过程。2. 求出了1000以内的完全数。循环结构的执行过程如下 循环体循环控制kmfori2;in; iifn i 0 m - i;ak i;ifm0输出n;nn100021(真)11iinifni0i假不输出a012-3makk20-假31(真)1221-真2-3假不输出a013-430-假41(真)1321-真3-1a121-22-3假不输出a01a124-531-真3-440-假51(真)1421-真2-3假不输出a01a125-631-真3-441-真4-550-假61(真)1521-真5-3a121-22-3真,a01,a12,a33输出分析略6-731-真3-0a232-33-441-真4-551-真5-660-假76.9 冒泡排序时第一趟操作可用代码描述如下include stdio.hvoid main int i, num 25, 22, 21, 29, 23, temp; fori0; i4; i ifnumi numi1 temp numi; numi numi1; numi1 temp; 请结合代码分析冒泡排序中一趟操作的效果。冒泡排序需要几趟类似操作才能使整个数组有序请实现冒泡排序算法。答冒泡排序中一趟操作的效果是找出数组里无序元素中的最大者(或最小者),并将其放在适当的位置。具体的分析过程如下循环体循环控制ifnuminumi1tempai;aiaj;ajtemp;i;num0num1 num2num3num4ii4252221292301(真)真num0num1互换0-1222521292311(真)真num1num2互换1-2222125292321(真)假不互换2-3222125292331(真)真num3num4互换3-4222125232940(假)退出不再执行不冒泡排序需要比数组元素总数少一趟的类似操作才能使整个数组有序。冒泡排序算法为include stdio.hdefine N 5void main int i, j, num 25, 22, 21, 29, 23, temp;forjN-1; j1; jfori0; ij; iifnumi numi1temp numi;numi numi1;numi1 temp;fori0; iN; iprintf d , numi;6.10 选择排序算法的思路是先从数组中找出最小的元素和第0号元素交换,接着从余下的元素中找出最小的元素和第1号元素交换,再从余下的元素中找出最小的元素和第2号元素交换。请实现选择排序算法。include stdio.hdefine N 5void main int i, j, numN 25, 22, 21, 29, 23, min, temp;forj0; jN; jforminij; iN; iifnuminumminmin i;temp numj;numj nummin;nummin temp;fori0; iN; iprintf d , numi;6.11 分析下面两段代码。1. int num 49, 38, 65, 97, 76, 13, 27; int i 1, j 7, temp, pivot; pivot num0; while1 for ; i7 numipivot; i ; whilenumj pivot ; ifi j break; temp numi; numi numj; numj temp; num0 numj; numj pivot;2. int num 49, 38, 65, 97, 76, 13, 27; int left 0, right 6, pivot num0; do whileright left numright pivot right; ifright left numleft numright; left; whileleft right numleft pivot left; ifleft right numright numleft; right; whileleft right; numleft pivot;参考.输出为数组中小于首元素的元素均位于首元素的左边,而大于的均去了右边。具体的执行过程分析如下。循环体循环控制for;i7numipivot; i;whilenumjpivot;ifij break;tempnumi; numinumj;numj temp;11(真)ii7numipivot;ijnumjpivotj;0(假)交换num2与num6数组状态见111(真)1-270(假)620(假)1(真)21(真)2-360(假)50(假)交换num3与num5数组状态见230(假)1(真)31(真)3-451(真)41(真)退出循环40(假)40(假)3编号num0num1num2num3num4num5num6493865977613271493827977613652493827137697652. 输出为作用同1,但采用的算法不同,具体的执行过程分析如下。whilerlnumr pivot r;ifrlnumlnumr;l;whilelrnumlpivotl; iflrnumrnuml;r;循环体循环控制lrlrlrrlnumrprivotrrlnumlnumr ;l;lrrlnumlprivotllrnumrnuml;r;251(真)060(假)1(真)状态10-1161(真)1-21(真)状态26-5260(假)250(假)1(真)状态32-3350(假)1(真)状态45-4341(真)341(真)4-3330(假)0(假)330(假)330(假)编号num0num1num2num3num4num5num6493865977613271273865977613272273865977613653273813977613654273813977697656.12 分析下面的程序include stdio.hvoid main int a -15, 6, 0, 7, 9, 23, 54, 82, 101; int b3 101, -14, 82; int i, left, right, middle; fori0; i3; i left 0; right 8; whileleft right middle left right / 2; ifbi amiddle printfadbddn, middle, i, bi;break; else ifbi amiddle left middle 1; else right middle - 1; ifleft right printfbdd不在数组中n, i, bi; b0101b1 -14b282leftrightmiddleleftrightmiddleleftrightmiddle084084084586031586787000787888106.13 利用筛选法求1000以内的素数的步骤如下第一步依次列出2,3,4,5,,1000,并确定第一个素数2;第二步从该素数起(但不包括),筛去(删去)序列中该素数的倍数;第三步把序列中大于原素数且没有被删去的第一个数作为新确定的素数,并重复第二步。如果找不到这样的数,则算法结束。提示用数组存储序列。int num1000 0,2是素数则num20,筛去2的倍数时让num41,num6 1 参考程序include stdio.hvoid main int num1000 0, i, j, sum 0;fori2; i1000; iifnumi 0printf5d, i;ifsum 10 0printfn;forjii; j1000; j inumj 1;6.14 找出矩阵m中的最大、最小元素,并输出它们的位置。include stdio.hdefine ROW 2define COL 3void mainint mROWCOL, i, j;int pos4 0;printf请输入d行d列矩阵的元素n, ROW, COL;fori0; iROW; iforj0; jCOL; jscanfd, printf矩阵为n;fori0; iROW; iforj0; jCOL; jprintf d , mij;ifj COL - 1printfn;ifmij mpos0pos1pos0 i;pos1 j;else ifmij mpos2pos3pos2 i;pos3 j;printf最大元素在d行d列为dn, pos0, pos1, mpos0pos1;printf最小元素在d行d列为dn, pos2, pos3, mpos2pos3;6.15 求矩阵m的转置矩阵。include stdio.hdefine ROW 2define COL 3void mainint mROWCOL, nCOLROW, i, j;printf请输入d行d列整型矩阵的元素n, ROW, COL;fori0; iROW; iforj0; jCOL; jscanfd, nji mij;printf转置后的矩阵为n;fori0; iCOL; iforj0; jROW; jprintf d , nij;printfn;6.16 计算n阶方阵的两条主对角线上元素的和。include stdio.h define N 3void main int mNN;int i, j, sum 0;printf请输入d行d列整型矩阵的元素n, N, N;fori0; iN; iforj0; jN; jscanfd, ifi j i j N - 1sum mij;printf两条主对角线上元素的和为dn, sum;注此算法把两条主对角线交叉点上的元素只计算了一次。6.17 计算n阶方阵上三角元素的和。include stdio.h define N 3void main int mNN;int i, j, sum 0;printf请输入d行d列整型矩阵的元素n, N, N;fori0; iN; iforj0; jN; jscanfd, ifi jsum mij;printf上三角元素的和为dn, sum;6.18输出金字塔形的杨辉三角。 include stdio.h define N 10void main int aNN, i, j;fori0; iN; iforj0; ji; jifj 0 i jaij 1;elseaij ai - 1j ai - 1j - 1;fori0; iN; iforji1; jN; jprintf4c, ;forj0; ji; jprintf4d4c, aij, ;printfn;或者include stdio.h define N 10void main int aNN, i, j;fori0; iN; iforji1; jN; jprintf4c, ;forj0; ji; jifj 0 i jaij 1;elseaij ai - 1j ai - 1j - 1;printf4d4c, aij, ;printfn;6.19 能用一维数组输出杨辉三角吗提示有a101,2,1,求下一行时,a31,a2a2a1,a1a1 a0。include stdio.h define N 10void main int aN, i, j;fori0; iN; iforji1; jN; jprintf4c, ;forji; j0; jifj i j 0aj 1;elseaj aj aj - 1;printf4d4c, aj, ;printfn;6.20 学号为1、2、3的学生的英语、高数、C语言成绩1号80,89,83;2号72,85,95;3号61,72,80。按如下形式输出他们的平均成绩及合计成绩。学号 英语 高数 C语言 平均分1 80 89 83 84 合计 无include stdio.hdefine M 4 define N 3void main int aMN 80,89,83, 72,85,95, 61,72,80, i, j, ave;printf学号 英语 高数 C语言 平均分n;fori0; iM-1; iave 0;printf4d, i 1;forj0; jN; jave aij;aM-1j aij;printf6d, aij;printf8dn, ave / N;printf合计6d6d6d8sn, aM-10, aM-11, aM - 12, 无;6.21 国际象棋88的棋盘上,皇后会攻击与之同行的,同列的及同对角线(两条)上的棋子,输入两个皇后在棋盘上的位置,输出它们能否相互攻击。include stdio.hdefine N 8void main int boardNN 0;int i, j, pos4, flag 0; printf请输入两个后的位置1-8n;fori0; i3; iscanfd, boardpos0 - 1pos1 - 1 1;boardpos2 - 1pos3 - 1 1;ifpos0 pos2 pos1 pos3flag 1;ifpos3 - pos1 pos2 - pos0flag 1;ifpos3 - pos1 -1* pos2 - pos0flag 1;ifflag 0printf它们不能相互攻击n;elseprintf它们能相互攻击n;fori0; iN; iforj0; jN; jifboardij 0printf0;elseprintf*;printfn;6.22 三维数组还能用什么方式初始化编程验证。并总结多维数组的初始化方法。参考三维数组初始化时还可在花括号中依次列出初值。如include stdio.hvoid main int a342 1, 1, 1, 2, 1, 3, 1,

新概念c语言教程答案,新概念C语言能力教程练习答案.doc相关推荐

  1. 新概念C语言能力教程练习3答案,新概念C语言教程答案参考(自做)中国电力

    新概念C语言教程答案参考(自做)中国电力 (138页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 39.9 积分 第一篇算法与C程序结构第1单元C语言程 ...

  2. 新概念c语言周二强07答案,新概念C语言能力教程(普通高等教育十二五规划教材)...

    导语 内容提要 周二强编写的<新概念C语言能力教程(普通高等教育十二五规划教材)>以先进的教学理念为指导,以培养编程能力与学习能力为目标,从全新的角度解析了C语言,高屋建瓴地阐释了C语言学 ...

  3. 新概念c语言能力教程答案,新概念c语言能力教程

    新概念c语言能力教程Tag内容描述: 1.练习 66.1 输入 10 个整数,计算它们的平均值.找出最小数,再找出与平均值最接近的整数.#include void main()int a10, min ...

  4. c语言课后题2.52.8答案,新概念第二册课后题答案详解:Lesson52

    新概念英语作为一套世界闻名的英语教程,以其全新的教学理念,有趣的课文内容和全面的技能训练,深受广大英语学习者的欢迎和喜爱.为了方便同学们的学习,新东方在线新概念英语网为大家整理了最全面的新概念第二册课 ...

  5. 新概念英语一册二册三册四册(含答案和mp3音频)

    新概念英语一册二册三册四册(含答案和mp3音频) 新概念英语第一册 ·新概念英语第一册Flash版4-3 ·新概念英语第一册Flash版4-4 ·新概念英语第一册Flash版4-2 ·新概念英语第一册 ...

  6. 建矩阵力学奠基新量子论 不确定原理颠覆经典概念|量子群英传

    建矩阵力学奠基新量子论 不确定原理颠覆经典概念|量子群英传 "大师之师"索末菲是旧量子论的最后守卫者,他在慕尼黑大学的"理论物理摇篮",却摇出了海森堡这位新量子 ...

  7. AI眼中的世界是什么样子?谷歌新研究找到了机器的视觉概念

    选自arXiv 作者:Amirata Ghorbani等 机器之心编译 参与:魔王 来自斯坦福大学和谷歌大脑的研究人员为基于概念的解释方法提出了一些原则和要求,在整个数据集上识别更高层次的人类可理解概 ...

  8. 走近分形与混沌(part11)--一个新概念、新理论的诞生往往伴随着新常数的出现

    学习笔记 学习书目:<蝴蝶效应之谜:走近分形与混沌 >-张天蓉: 文章目录 倍周期分岔 费根鲍姆常数 倍周期分岔 罗伯特·梅,将混沌魔鬼的诞生归结为系统周期性的一次又一次突变.或者,用一个 ...

  9. Kinect SDK v1.7 新特性、交互框架与新概念

    Kinect SDK v1.7 新特性.交互框架与新概念 zouxy09@qq.com http://blog.csdn.net/zouxy09 2013年3月18日,微软Kinect for Win ...

最新文章

  1. discuz登陆首页后提示style_1_commen.css,关于Discuz用户面板必须刷新才能显示登录状态的问题解决办法...
  2. IDEA MAVEN Project 显示问题
  3. 全部换新-微软复兴.NET,C#10 .NET6 VS2022各个强势!
  4. java 基本类型 引用类型_Java中的基本类型和引用类型变量的区别
  5. 【转】[iOS] 关于 self = [super init];
  6. 后端码农谈前端(HTML篇)第三课:常见属性
  7. Mysql 使用正则表达式
  8. log4j mysql 异步_spring boot:配置druid数据库连接池(开启sql防火墙/使用log4j2做异步日志/spring boot 2.3.2)...
  9. 架构设计工作笔记005---微服务架构中的服务编排了解
  10. Java进阶:SpringMVC中通过监听器将Spring上下文对象放置到servletContext中,方便其他地方使用
  11. 将某一列转换为字符类型_还在为数据清洗抓狂?这里有一个简单实用的清洗代码集...
  12. 全网最详细黑苹果安装教程,轻松打造Win10+黑苹果双系统,一看就懂。
  13. 3D模型欣赏:反派角色部落女战士 【3D游戏建模教程】
  14. QQ牧场接口协议分析
  15. 把Word文件变成JPG图片?(转)
  16. 可测空间、测度空间及σ-代数
  17. Win10镜像安装net3.5
  18. 从顶级会议Interspeech 2019看语音领域大家都在弄个啥嘞
  19. 真的有必要定义VO,BO,PO,DO,DTO吗?
  20. python3 分句

热门文章

  1. Math类的常用方法,进一法,退一法,四舍五入法,绝对值,随机数 ,平方根 xy的次方
  2. 如何通过%找到系统文件夹,例如%appdata%
  3. 酒饮赛道“破圈”风暴加速席卷 汇泉国际IPO能否掀起“资本浪花”?
  4. 夏普第二季度亏损数十亿日元 光伏业务持续陷入苦战
  5. 工程伦理--15.4 异种移植的伦理问题(下)
  6. 设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算。
  7. JAVA简单的键盘输入
  8. CCF 推荐中文科技期刊目录
  9. 电子发热手套方案开发控制板线路板方案设计pcba
  10. 忍者必须死3 玩什么忍者_为什么你害怕忍者